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

« back to all changes in this revision

Viewing changes to setup/configure.py

[Uber-commit of holiday work because I lacked a local copy of the branch.]

 ivle.makeuser: Don't use jailconf.py as a header for the in-jail conf.py;
     generate the whole thing using string formatting operators and include
     the template inline.

 ivle.makeuser.make_conf_py: XXX the inclusion of ivle.conf.jail_base in
     the jail. It is simply there to placate ivle.studpath, and needs
     to go before we can entirely remove the in-jail config.

 ivle-buildjail:
   - Add. Converted from setup.buildjail.
   - Build the jail in __base_build__ and rsync it to __base__ when
     done, rather than operating only in ./jail
   - Rename --rebuildjail/-j to --recreate/-r, as the whole script
     is now for jail rebuilding. Also add a warning to the usage string about
     the large volume likely to be downloaded.
   - Check existence before removing trees.
   - Don't copy jailconf.py over conf.py in the jail. Also make
     sure that we remove conf.pyc.

 setup.configure:
   - Stop generating jailconf.py at all.
   - Add a jail_system_build setting, defaulting to __base_build__ next to
     the existing __base__.
   - Don't use an OptionParser before calling the real function, as that
     adds options dynamically.

 setup.install:
   - Add an option (-R) to avoid writing out svn revision info to
     $PREFIX/share/ivle/revision.txt.
   - Remove jail-copying things.
   - Install all services to the host, rather than just usrmgt-server. We do
     this so we can build the jail from the host without the source tree.
   - Shuffle some things, and don't install phpBB3 twice.
   - Add a --root argument, to take an alternate root directory to install
     into (as given to autotools in $DESTDIR).

 setup.build:
   - Allow running as non-root.
   - Take a --no-compile option to not byte-compile Python files.

 setup.util:
   - Include usrmgt-server in the list of services.
   - Add make_install_path(), a wrapper around os.path.join() that ensures
     the second path is relative.
   - Install ivle-buildjail with the other binaries.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# IVLE - Informatics Virtual Learning Environment
2
 
# Copyright (C) 2007-2008 The University of Melbourne
 
2
# Copyright (C) 2007-2009 The University of Melbourne
3
3
#
4
4
# This program is free software; you can redistribute it and/or modify
5
5
# it under the terms of the GNU General Public License as published by
19
19
# Author: Matt Giuca, Refactored by David Coles
20
20
# Date:   03/07/2008
21
21
 
22
 
# setup/config.py
23
 
# Configures IVLE with machine-specific details, most notably, various paths.
24
 
# Either prompts the administrator for these details or accepts them as
25
 
# command-line args.
26
 
# Creates lib/conf/conf.py and bin/trampoline/conf.h.
 
22
'''Configures IVLE with machine-specific details, most notably, various paths.
 
23
Either prompts the administrator for these details or accepts them as
 
24
command-line args.
 
25
 
 
26
Creates ivle/conf/conf.py and bin/trampoline/trampoline/conf.h.
 
27
'''
27
28
 
28
29
import optparse
29
30
import getopt
220
221
# The password for the usrmgt-server.""", ask=False))
221
222
 
222
223
def configure(args):
223
 
    usage = """usage: %prog config [options]
224
 
Creates lib/conf/conf.py (and a few other config files).
225
 
Interactively asks questions to set this up."""
226
 
 
227
 
    # Parse arguments
228
 
    parser = optparse.OptionParser(usage)
229
 
    (options, args) = parser.parse_args(args)
230
 
 
231
224
    # Call the real function
232
225
    return __configure(args)
233
226
 
256
249
 
257
250
    # the files that will be created/overwritten
258
251
    conffile = os.path.join(cwd, "ivle/conf/conf.py")
259
 
    jailconffile = os.path.join(cwd, "ivle/conf/jailconf.py")
260
252
    conf_hfile = os.path.join(cwd, "bin/trampoline/conf.h")
261
253
    phpBBconffile = os.path.join(cwd, "www/php/phpBB3/config.php")
262
254
 
278
270
    %s
279
271
    %s
280
272
    %s
281
 
    %s
282
273
prompting you for details about your configuration. The file will be
283
274
overwritten if it already exists. It will *not* install or deploy IVLE.
284
275
 
285
276
Please hit Ctrl+C now if you do not wish to do this.
286
 
""" % (conffile, jailconffile, conf_hfile, phpBBconffile)
 
277
""" % (conffile, conf_hfile, phpBBconffile)
287
278
 
288
279
        # Get information from the administrator
289
280
        # If EOF is encountered at any time during the questioning, just exit
360
351
 
361
352
    print "Successfully wrote %s" % conffile
362
353
 
363
 
    # Write conf/jailconf.py
364
 
 
365
 
    try:
366
 
        conf = open(jailconffile, "w")
367
 
 
368
 
        # In the "in-jail" version of conf, we don't need MOST of the details
369
 
        # (it would be a security risk to have them here).
370
 
        # So we just write root_dir, and jail_base is "/".
371
 
        # (jail_base being "/" means "jail-relative" paths are relative to "/"
372
 
        # when inside the jail.)
373
 
        conf.write("""# IVLE Configuration File
374
 
# conf.py
375
 
# Miscellaneous application settings
376
 
# (User jail version)
377
 
 
378
 
 
379
 
# In URL space, where in the site is IVLE located. (All URLs will be prefixed
380
 
# with this).
381
 
# eg. "/" or "/ivle".
382
 
root_dir = %s
383
 
 
384
 
# In the local file system, where are the student/user file spaces located.
385
 
# The user jails are expected to be located immediately in subdirectories of
386
 
# this location.
387
 
jail_base = '/'
388
 
 
389
 
# The hostname for serving publicly accessible pages
390
 
public_host = %s
391
 
 
392
 
# The URL under which the Subversion repositories are located.
393
 
svn_addr = %s
394
 
""" % (repr(root_dir),repr(public_host),repr(svn_addr)))
395
 
 
396
 
        conf.close()
397
 
    except IOError, (errno, strerror):
398
 
        print "IO error(%s): %s" % (errno, strerror)
399
 
        sys.exit(1)
400
 
 
401
 
    print "Successfully wrote %s" % jailconffile
402
 
 
403
354
    # Write bin/trampoline/conf.h
404
355
 
405
356
    try:
488
439
    print
489
440
    print "You may modify the configuration at any time by editing"
490
441
    print conffile
491
 
    print jailconffile
492
442
    print conf_hfile
493
443
    print phpBBconffile
494
444
    print
532
482
# In the local file system, where the template system jail will be stored.
533
483
jail_system = os.path.join(jail_src_base, '__base__')
534
484
 
 
485
# In the local file system, where the template system jail will be stored.
 
486
jail_system_build = os.path.join(jail_src_base, '__base_build__')
 
487
 
535
488
# In the local file system, where the subject content files are located.
536
489
# (The 'subjects' and 'exercises' directories).
537
490
content_path = os.path.join(data_path, 'content')