- fixed manpage generation: in build environments like the obs we cannot call 'osccli...
[opensuse:osc.git] / setup.py
1 #!/usr/bin/env python
2
3 from distutils.core import setup
4 import distutils.command.build
5 import distutils.command.install_data
6 import os.path
7 import osc.core
8 from osc import commandline
9 from osc import babysitter
10
11 class build_osc(distutils.command.build.build, object):
12     """
13     Custom build command which generates man page.
14     """
15
16     def build_man_page(self):
17         """
18         """
19         import gzip
20         man_path = os.path.join('build', 'osc.1.gz')
21         distutils.log.info('generating %s' % man_path)
22         outfile = gzip.open(man_path, 'w')
23         osccli = commandline.Osc(stdout = outfile)
24         # FIXME: we cannot call the main method because osc expects an ~/.oscrc file
25         # (this would break builds in environments like the obs)
26         #osccli.main(argv = ['osc','man'])
27         osccli.optparser = osccli.get_optparser()
28         osccli.do_man(None)
29         outfile.close()
30
31     def run(self):
32         super(build_osc, self).run()
33         self.build_man_page()
34
35 setup(name='osc',
36       version=osc.core.__version__,
37       description='openSUSE (buildsystem) commander',
38       long_description='Commandline client for the openSUSE Build Service, which allows to access repositories in the openSUSE Build Service in similar way as Subversion repositories.',
39       author='openSUSE project',
40       author_email='opensuse-buildservice@opensuse.org',
41       license='GPL',
42       platforms = ['Linux'],
43       keywords = ['openSUSE', 'SUSE', 'RPM', 'build', 'buildservice'],
44       url='https://forgesvn1.novell.com/svn/opensuse/trunk/buildservice/src/clientlib/python/osc/',
45
46       packages=['osc', 'osc.util'],
47       scripts=['osc_hotshot.py', 'osc-wrapper.py'],
48       data_files=[(os.path.join('share','man','man1'), [os.path.join('build', 'osc.1.gz')])],
49
50       # Override certain command classes with our own ones
51       cmdclass = {
52         'build': build_osc,
53         },
54      )
55