~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to setup/install.py

  • Committer: William Grant
  • Date: 2009-02-23 23:47:02 UTC
  • mfrom: (1099.1.211 new-dispatch)
  • Revision ID: grantw@unimelb.edu.au-20090223234702-db4b1llly46ignwo
Merge from lp:~ivle-dev/ivle/new-dispatch.

Pretty much everything changes. Reread the setup docs. Backup your databases.
Every file is now in a different installed location, the configuration system
is rewritten, the dispatch system is rewritten, URLs are different, the
database is different, worksheets and exercises are no longer on the
filesystem, we use a templating engine, jail service protocols are rewritten,
we don't repeat ourselves, we have authorization rewritten, phpBB is gone,
and probably lots of other things that I cannot remember.

This is certainly the biggest commit I have ever made, and hopefully
the largest I ever will.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
import os
24
24
import sys
25
25
import functools
26
 
import distutils.sysconfig
27
26
 
28
27
from setup import util
29
28
 
 
29
PYTHON_VERSION = sys.version[:3]
 
30
 
30
31
def install(args):
31
32
    usage = """usage: %prog install [options]
32
33
(Requires root)
42
43
    parser.add_option("-n", "--dry",
43
44
        action="store_true", dest="dry",
44
45
        help="Print out the actions but don't do anything.")
 
46
    parser.add_option("-R", "--nosvnrevno",
 
47
        action="store_true", dest="nosvnrevno",
 
48
        help="Don't write out the Subversion revision to the share directory.")
45
49
    parser.add_option("--root",
46
50
        action="store", dest="rootdir",
47
51
        help="Install into a different root directory.",
53
57
    parser.add_option("--python-site-packages",
54
58
        action="store", dest="python_site_packages",
55
59
        help="Path to Python site packages directory.",
56
 
        default=None)
 
60
        default='/usr/local/lib/python%s/site-packages' % PYTHON_VERSION)
57
61
    (options, args) = parser.parse_args(args)
58
62
 
59
 
    # Prefix must be absolute (not really necessary, but since a relative
60
 
    # prefix will be taken relative to *root* not working directory, it is
61
 
    # confusing if we allow it).
62
 
    if options.prefix[:1] not in (os.path.sep, os.path.altsep):
63
 
        print >>sys.stderr, """prefix must be an absolute path.
64
 
    (This will be interpreted relative to root, so provide --root=. if you
65
 
    want a path relative to the working directory)."""
66
 
        return 1
67
 
 
68
 
    # Calculate python_site_packages using the supplied prefix
69
 
    if options.python_site_packages is None:
70
 
        options.python_site_packages = distutils.sysconfig.get_python_lib(
71
 
            prefix=options.prefix)
72
 
 
73
63
    # Call the real function
74
64
    return __install(prefix=options.prefix,
75
65
                     python_site_packages=options.python_site_packages,
76
 
                     dry=options.dry, rootdir=options.rootdir)
 
66
                     dry=options.dry, rootdir=options.rootdir,
 
67
                     nosvnrevno=options.nosvnrevno)
77
68
 
78
 
def __install(prefix, python_site_packages, dry=False, rootdir=None):
 
69
def __install(prefix, python_site_packages, dry=False, rootdir=None,
 
70
              nosvnrevno=False):
79
71
    install_list = util.InstallList()
80
72
 
81
73
    # We need to apply make_install_path with the rootdir to an awful lot of
124
116
    # Copy the lib directory (using the list)
125
117
    util.action_copylist(install_list.list_ivle_lib, python_site_packages, dry)
126
118
 
 
119
    if not nosvnrevno:
 
120
        # Create the ivle working revision record file
 
121
        ivle_revision_file = os.path.join(share_path, 'revision.txt')
 
122
        if not dry:
 
123
            try:
 
124
                conf = open(ivle_revision_file, "w")
 
125
 
 
126
                conf.write("""# SVN revision r%s
 
127
# Source tree location: %s
 
128
# Modified files:
 
129
""" % (util.get_svn_revision(), os.getcwd()))
 
130
 
 
131
                conf.close()
 
132
            except IOError, (errno, strerror):
 
133
                print "IO error(%s): %s" % (errno, strerror)
 
134
                sys.exit(1)
 
135
 
 
136
            os.system("svn status . >> %s" % ivle_revision_file)
 
137
 
 
138
        print "Wrote IVLE code revision status to %s" % ivle_revision_file
 
139
 
127
140
    return 0
128
141