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

« back to all changes in this revision

Viewing changes to setup.py

  • Committer: drtomc
  • Date: 2008-01-02 22:21:12 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:128
A couple of bug fixes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
126
126
        help([])
127
127
        return 1
128
128
 
129
 
    # Disallow run as root unless installing
130
 
    if operation != 'install' and os.geteuid() == 0:
131
 
        print >>sys.stderr, "I do not want to run this stage as root."
132
 
        print >>sys.stderr, "Please run as a normal user."
133
 
        return 1
134
129
    # Call the requested operation's function
135
130
    try:
136
131
        oper_func = {
144
139
        print >>sys.stderr, (
145
140
            """Invalid operation '%s'. Try python setup.py help."""
146
141
            % operation)
147
 
        return 1
148
142
    return oper_func(argv[2:])
149
143
 
150
144
# Operation functions
154
148
        print """Usage: python setup.py operation [args]
155
149
Operation (and args) can be:
156
150
    help [operation]
157
 
    listmake (developer use only)
158
151
    conf [args]
159
152
    build
160
153
    install [--nojail] [-n|--dry]
182
175
Either prompts the administrator for these details or accepts them as
183
176
command-line args. Will be interactive only if there are no arguments given.
184
177
Takes defaults from existing conf file if it exists.
185
 
 
186
 
To run IVLE out of the source directory (allowing development without having
187
 
to rebuild/install), just provide ivle_install_dir as the IVLE trunk
188
 
directory, and run build/install one time.
189
 
 
190
178
Creates www/conf/conf.py and trampoline/conf.h.
191
 
 
192
179
Args are:
193
180
    --root_dir
194
181
    --ivle_install_dir
488
475
    copy_file_to_jail('/lib/tls/i686/cmov/libpthread.so.0', dry)
489
476
    copy_file_to_jail('/lib/tls/i686/cmov/libutil.so.1', dry)
490
477
    copy_file_to_jail('/usr/bin/python2.5', dry)
491
 
    action_symlink('python2.5', 'jail/usr/bin/python', dry)
 
478
    # TODO: ln -s jail/usr/bin/python2.5 jail/usr/bin/python
492
479
    action_copytree('/usr/lib/python2.5', 'jail/usr/lib/python2.5', dry)
493
480
 
494
481
def copy_file_to_jail(src, dry):
530
517
        # to the jails template directory (it will be used as a template
531
518
        # for all the students' jails).
532
519
        action_copytree('jail', os.path.join(jail_base, 'template'), dry)
 
520
        # Set up symlinks inside the jail
 
521
        action_symlink(os.path.join(jail_base, 'template/usr/bin/python2.5'),
 
522
            os.path.join(jail_base, 'template/usr/bin/python'), dry)
533
523
 
534
524
    return 0
535
525
 
585
575
            shutil.rmtree(dst, True)
586
576
    print "cp -r", src, dst
587
577
    if dry: return
588
 
    shutil.copytree(src, dst, True)
 
578
    shutil.copytree(src, dst)
589
579
 
590
580
def action_copylist(srclist, dst, dry):
591
581
    """Copies all files in a list to a new location. The files in the list
599
589
            action_mkdir(dstdir, dry)
600
590
        print "cp -f", srcfile, dstfile
601
591
        if not dry:
602
 
            try:
603
 
                shutil.copyfile(srcfile, dstfile)
604
 
                shutil.copymode(srcfile, dstfile)
605
 
            except shutil.Error:
606
 
                pass
 
592
            shutil.copyfile(srcfile, dstfile)
607
593
 
608
594
def action_copyfile(src, dst, dry):
609
595
    """Copies one file to a new location. Creates all parent directories
614
600
        action_mkdir(dstdir, dry)
615
601
    print "cp -f", src, dst
616
602
    if not dry:
617
 
        try:
618
 
            shutil.copyfile(src, dst)
619
 
            shutil.copymode(src, dst)
620
 
        except shutil.Error:
621
 
            pass
 
603
        shutil.copyfile(src, dst)
622
604
 
623
605
def action_symlink(src, dst, dry):
624
606
    """Creates a symlink in a given location. Creates all parent directories
627
609
    dstdir = os.path.split(dst)[0]
628
610
    if not os.path.isdir(dstdir):
629
611
        action_mkdir(dstdir, dry)
630
 
    # Delete existing file
631
 
    if os.path.exists(dst):
632
 
        os.remove(dst)
633
 
    print "ln -fs", src, dst
 
612
    print "ln -s", src, dst
634
613
    if not dry:
635
614
        os.symlink(src, dst)
636
615