diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installfile.py	Wed Aug 31 13:49:42 2011 -0700
@@ -0,0 +1,51 @@
+#!/usr/bin/env python
+
+"""
+installs python files to sys.path
+"""
+
+import os
+import shutil
+import sys
+import optparse
+
+from distutils.sysconfig import get_python_lib
+
+def install(path):
+    """install to sys.path"""
+    site_packages = get_python_lib()
+    path = os.path.abspath(path)
+    dirname, filename = os.path.split(path)
+    root, ext = os.path.splitext(filename)
+    pth = file(os.path.join(site_packages, '%s.pth' % root), 'w')
+    pth.write(dirname)
+    pth.close()
+
+def main(args=sys.argv[1:]):
+
+    # parse command line arguments
+    usage = '%prog [options] python_file.py another_python_file.py [...]'
+
+    # description formatter
+    class PlainDescriptionFormatter(optparse.IndentedHelpFormatter):
+        def format_description(self, description):
+            if description:
+                return description + '\n'
+            else:
+                return ''
+    
+    parser = optparse.OptionParser(usage=usage, description=__doc__, formatter=PlainDescriptionFormatter())
+    options, args = parser.parse_args(args)
+
+    # print usage if no files are given
+    if not args:
+        parser.print_usage()
+        parser.exit()
+
+    # install the things
+    for python_file in args:
+        install(python_file)
+
+if __name__ == '__main__':
+    main()
+