Mercurial > hg > installfile
comparison installfile.py @ 0:cf72635e9572 default tip
install a file to site-packages
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Wed, 31 Aug 2011 13:49:42 -0700 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:cf72635e9572 |
---|---|
1 #!/usr/bin/env python | |
2 | |
3 """ | |
4 installs python files to sys.path | |
5 """ | |
6 | |
7 import os | |
8 import shutil | |
9 import sys | |
10 import optparse | |
11 | |
12 from distutils.sysconfig import get_python_lib | |
13 | |
14 def install(path): | |
15 """install to sys.path""" | |
16 site_packages = get_python_lib() | |
17 path = os.path.abspath(path) | |
18 dirname, filename = os.path.split(path) | |
19 root, ext = os.path.splitext(filename) | |
20 pth = file(os.path.join(site_packages, '%s.pth' % root), 'w') | |
21 pth.write(dirname) | |
22 pth.close() | |
23 | |
24 def main(args=sys.argv[1:]): | |
25 | |
26 # parse command line arguments | |
27 usage = '%prog [options] python_file.py another_python_file.py [...]' | |
28 | |
29 # description formatter | |
30 class PlainDescriptionFormatter(optparse.IndentedHelpFormatter): | |
31 def format_description(self, description): | |
32 if description: | |
33 return description + '\n' | |
34 else: | |
35 return '' | |
36 | |
37 parser = optparse.OptionParser(usage=usage, description=__doc__, formatter=PlainDescriptionFormatter()) | |
38 options, args = parser.parse_args(args) | |
39 | |
40 # print usage if no files are given | |
41 if not args: | |
42 parser.print_usage() | |
43 parser.exit() | |
44 | |
45 # install the things | |
46 for python_file in args: | |
47 install(python_file) | |
48 | |
49 if __name__ == '__main__': | |
50 main() | |
51 |