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

« back to all changes in this revision

Viewing changes to setup/install.py

setup.install: Removed a lot of install steps, which created directories and
    chmodded things. This will be done by a separate post-install script, not
    the installer itself (the only job of the installer is to copy files).

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
Copy etc/ivle.conf to /etc/ivle/ivle.conf.
37
37
chown and chmod the installed trampoline.
38
38
Copy www/ to $target.
39
 
Copy subjects/ to subjects directory (unless --nosubjects specified).
40
39
"""
41
40
 
42
41
    # Parse arguments
44
43
    parser.add_option("-n", "--dry",
45
44
        action="store_true", dest="dry",
46
45
        help="Print out the actions but don't do anything.")
47
 
    parser.add_option("-S", "--nosubjects",
48
 
        action="store_true", dest="nosubjects",
49
 
        help="Don't copy subject/ to subjects directory.")
50
46
    parser.add_option("-R", "--nosvnrevno",
51
47
        action="store_true", dest="nosvnrevno",
52
48
        help="Don't write out the Subversion revision to the share directory.")
57
53
    (options, args) = parser.parse_args(args)
58
54
 
59
55
    # Call the real function
60
 
    return __install(options.dry, options.nosubjects, options.rootdir,
61
 
                     options.nosvnrevno)
 
56
    return __install(dry=options.dry, rootdir=options.rootdir,
 
57
                     nosvnrevno=options.nosvnrevno)
62
58
 
63
 
def __install(dry=False, nosubjects=False, rootdir=None, nosvnrevno=False):
 
59
def __install(dry=False, rootdir=None, nosvnrevno=False):
64
60
    # We need to import the one in the working copy, not in the system path.
65
61
    confmodule = __import__("ivle/conf/conf")
66
62
    install_list = util.InstallList()
74
70
    share_path = mip(confmodule.share_path)
75
71
    bin_path = mip(confmodule.bin_path)
76
72
    python_site_packages = mip(confmodule.python_site_packages)
77
 
    jail_base = mip(confmodule.jail_base)
78
 
    jail_system = mip(confmodule.jail_system)
79
 
    subjects_base = mip(confmodule.subjects_base)
80
 
    exercises_base = mip(confmodule.exercises_base)
81
73
 
82
74
    # Must be run as root or a dry run  
83
75
    if dry:
87
79
        print >>sys.stderr, "Must be root to run install"
88
80
        return 1
89
81
 
90
 
    # Make some directories for data.
91
 
    util.action_mkdir(mip(confmodule.log_path), dry)
92
 
    util.action_mkdir(mip(confmodule.data_path), dry)
93
 
    util.action_mkdir(mip(confmodule.jail_base), dry)
94
 
    util.action_mkdir(mip(confmodule.jail_src_base), dry)
95
 
    util.action_mkdir(mip(confmodule.content_path), dry)
96
 
    util.action_mkdir(mip(confmodule.notices_path), dry)
97
 
    util.action_mkdir(os.path.join(mip(confmodule.data_path), 'sessions'), dry)
98
 
    util.action_mkdir(mip(confmodule.svn_path), dry)
99
 
    util.action_mkdir(mip(confmodule.svn_repo_path), dry)
100
 
    util.action_mkdir(os.path.join(mip(confmodule.svn_repo_path), 'users'),dry)
101
 
    util.action_mkdir(os.path.join(mip(confmodule.svn_repo_path),'groups'),dry)
102
 
 
103
 
    util.action_chown(mip(confmodule.log_path), util.wwwuid, util.wwwuid, dry)
104
 
    util.action_chown(os.path.join(mip(confmodule.data_path), 'sessions'),
105
 
                      util.wwwuid, util.wwwuid, dry)
106
 
    util.action_chown(os.path.join(mip(confmodule.svn_repo_path), 'users'),
107
 
                      util.wwwuid, util.wwwuid, dry)
108
 
    util.action_chown(os.path.join(mip(confmodule.svn_repo_path), 'groups'),
109
 
                      util.wwwuid, util.wwwuid, dry)
110
 
 
111
82
    # Create lib and copy the compiled files there
112
83
    util.action_mkdir(lib_path, dry)
113
84
 
145
116
    # Copy the lib directory (using the list)
146
117
    util.action_copylist(install_list.list_ivle_lib, python_site_packages, dry)
147
118
 
148
 
    # Make the config file private
149
 
    configpath = os.path.join(python_site_packages, 'ivle/conf/conf.py')
150
 
    util.action_make_private(configpath, dry)
151
 
 
152
 
    if not nosubjects:
153
 
        # Copy the subjects and exercises directories across
154
 
        util.action_mkdir(subjects_base, dry)
155
 
        util.action_copylist(install_list.list_subjects, subjects_base, dry,
156
 
            srcdir="./subjects")
157
 
        util.action_mkdir(exercises_base, dry)
158
 
        util.action_copylist(install_list.list_exercises, exercises_base, dry,
159
 
            srcdir="./exercises")
160
 
 
161
119
    # XXX We shouldn't have ivle.pth at all any more.
162
120
    # We may still need the www packages to be importable.
163
121
    # Anything from www that is needed from the outside should go to lib.