-
Notifications
You must be signed in to change notification settings - Fork 2
/
setup.py
57 lines (50 loc) · 2.21 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import distutils.core
from distutils.command.sdist import sdist as _sdist
import subprocess
import time
VERSION='0.1.0'
RELEASE='0'
class sdist(_sdist):
''' custom sdist command, to prep pyfat.spec file for inclusion '''
def run(self):
global VERSION
global RELEASE
# Create a development release string for later use
git_head = subprocess.Popen("git log -1 --pretty=format:%h",
shell=True,
stdout=subprocess.PIPE).communicate()[0].strip()
date = time.strftime("%Y%m%d%H%M%S", time.gmtime())
git_release = "%sgit%s" % (date, git_head)
# Expand macros in pyfat.spec.in and create pyfat.spec
spec_in = open('pyfat.spec.in', 'r')
spec = open('pyfat.spec', 'w')
for line in spec_in.xreadlines():
if "@VERSION@" in line:
line = line.replace("@VERSION@", VERSION)
elif "@RELEASE@" in line:
# If development release, include date+githash in %{release}
if RELEASE.startswith('0'):
RELEASE += '.' + git_release
line = line.replace("@RELEASE@", RELEASE)
spec.write(line)
spec_in.close()
spec.close()
# Run parent constructor
_sdist.run(self)
distutils.core.setup(name='pyfat',
version=VERSION,
description='Pure python FAT manipulation library',
url='http://github.com/clalancette/pyfat',
author='Chris Lalancette',
author_email='[email protected]',
license='LGPLv2',
classifiers=['Development Status :: 4 - Beta',
'Intended Audience :: Developers',
'License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)',
'Natural Language :: English',
'Programming Language :: Python :: 2',
],
keywords='FAT FAT12 FAT16 FAT32',
py_modules=['pyfat'],
cmdclass={'sdist': sdist},
)