~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to setup.py

update TODO

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
# './setup.py install', or
5
5
# './setup.py --help' for more options
6
6
 
 
7
# Reinvocation stolen from bzr, we need python2.4 by virtue of bzr_man
 
8
# including bzrlib.help
 
9
 
 
10
import os, sys
 
11
 
 
12
try:
 
13
    version_info = sys.version_info
 
14
except AttributeError:
 
15
    version_info = 1, 5 # 1.5 or older
 
16
 
 
17
REINVOKE = "__BZR_REINVOKE"
 
18
NEED_VERS = (2, 4)
 
19
KNOWN_PYTHONS = ('python2.4',)
 
20
 
 
21
if version_info < NEED_VERS:
 
22
    if not os.environ.has_key(REINVOKE):
 
23
        # mutating os.environ doesn't work in old Pythons
 
24
        os.putenv(REINVOKE, "1")
 
25
        for python in KNOWN_PYTHONS:
 
26
            try:
 
27
                os.execvp(python, [python] + sys.argv)
 
28
            except OSError:
 
29
                pass
 
30
    print >>sys.stderr, "bzr: error: cannot find a suitable python interpreter"
 
31
    print >>sys.stderr, "  (need %d.%d or later)" % NEED_VERS
 
32
    sys.exit(1)
 
33
if hasattr(os, "unsetenv"):
 
34
    os.unsetenv(REINVOKE)
 
35
 
 
36
 
7
37
from distutils.core import setup
 
38
from distutils.command.install_scripts import install_scripts
 
39
from distutils.command.build import build
 
40
 
 
41
###############################
 
42
# Overridden distutils actions
 
43
###############################
 
44
 
 
45
class my_install_scripts(install_scripts):
 
46
    """ Customized install_scripts distutils action.
 
47
    Create bzr.bat for win32.
 
48
    """
 
49
    def run(self):
 
50
        import os
 
51
        import sys
 
52
 
 
53
        install_scripts.run(self)   # standard action
 
54
 
 
55
        if sys.platform == "win32":
 
56
            try:
 
57
                scripts_dir = self.install_dir
 
58
                script_path = os.path.join(scripts_dir, "bzr")
 
59
                batch_str = "@%s %s %%*\n" % (sys.executable, script_path)
 
60
                batch_path = script_path + ".bat"
 
61
                f = file(batch_path, "w")
 
62
                f.write(batch_str)
 
63
                f.close()
 
64
                print "Created:", batch_path
 
65
            except Exception, e:
 
66
                print "ERROR: Unable to create %s: %s" % (batch_path, e)
 
67
 
 
68
 
 
69
class bzr_build(build):
 
70
    """Customized build distutils action.
 
71
    Generate bzr.1.
 
72
    """
 
73
    def run(self):
 
74
        build.run(self)
 
75
 
 
76
        import bzr_man
 
77
        bzr_man.main()
 
78
 
 
79
########################
 
80
## Setup
 
81
########################
8
82
 
9
83
setup(name='bzr',
10
 
      version='0.0.0',
 
84
      version='0.7pre',
11
85
      author='Martin Pool',
12
86
      author_email='mbp@sourcefrog.net',
13
87
      url='http://www.bazaar-ng.org/',
14
88
      description='Friendly distributed version control system',
15
89
      license='GNU GPL v2',
16
 
      packages=['bzrlib'],
17
 
      scripts=['bzr'])
 
90
      packages=['bzrlib',
 
91
                'bzrlib.export',
 
92
                'bzrlib.plugins',
 
93
                'bzrlib.store',
 
94
                'bzrlib.tests',
 
95
                'bzrlib.tests.blackbox',
 
96
                'bzrlib.transport',
 
97
                'bzrlib.ui',
 
98
                'bzrlib.util',
 
99
                'bzrlib.util.elementtree',
 
100
                'bzrlib.util.effbot.org',
 
101
                'bzrlib.util.configobj',
 
102
                ],
 
103
      scripts=['bzr'],
 
104
      cmdclass={'install_scripts': my_install_scripts, 'build': bzr_build},
 
105
      data_files=[('man/man1', ['bzr.1'])],
 
106
     )