diff options
Diffstat (limited to 'master/setup-master.py')
-rwxr-xr-x | master/setup-master.py | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/master/setup-master.py b/master/setup-master.py index e74931e..78e73e7 100755 --- a/master/setup-master.py +++ b/master/setup-master.py @@ -6,6 +6,7 @@ # # Immortal lh! # +# FIXME: This is so fucking ugly. import sys, os, shutil try: @@ -22,6 +23,7 @@ if os.environ.has_key('PYTHONPATH'): DESTDIR = 'autotua_master' SYMLINKS = True +srcdir = None def print_help(): print \ @@ -150,34 +152,47 @@ def setup_sample_job(): job.slaves.add(Slave.objects.get(name=sample_job['slave'])) job.save() +def setup_dirs(dir): + """This must be called before doing anything else.""" + # cd to setup-master.py location + os.chdir(os.path.dirname(sys.argv[0])) + # Store the current directory + # We cd and store to work around relative invocations + global srcdir + srcdir = os.getcwd() + + if not os.path.isdir(dir): + os.makedirs(dir) + os.chdir(dir) + sys.path.append(os.getcwd()) + + # Add cwd+/custom + sys.path.append(srcdir+'/custom') + ### Start Work ### if len(sys.argv) < 3: print_help() sys.exit(1) -# cd to setup-master.py location -os.chdir(os.path.dirname(sys.argv[0])) -# Store the current directory -# We cd and store to work around relative invocations -srcdir = os.getcwd() -if not os.path.isdir(sys.argv[2]): - os.makedirs(sys.argv[2]) -os.chdir(sys.argv[2]) - if management.get_version() < '0.99': print "You need django-1.0 to use this." sys.exit(1) -sys.path.append(os.getcwd()) -# Add cwd+/custom -sys.path.append(srcdir+'/custom') - if sys.argv[1] == 'install': + if sys.argv[2] == '--final': + where = os.path.dirname(sys.argv[3].rstrip('/')) + DESTDIR = os.path.basename(sys.argv[3].rstrip('/')) + elif sys.argv[1] == 'install': + where = os.path.dirname(sys.argv[2].rstrip('/')) + setup_dirs(where) install_master() print """Setup done. Now you need to edit the database settings in %(dest)s/settings.py -and run `./setup-master.py syncdb %(dest)s`""" % { 'dest': os.path.join(sys.argv[2], DESTDIR) } +and run `./setup-master.py syncdb %(dest)s`""" % { 'dest': os.path.join(where, DESTDIR) } elif sys.argv[1] == 'syncdb': + # Setup the relevant directories + where = os.path.dirname(sys.argv[2].rstrip('/')) + setup_dirs(where) # Import stuff import settings from django.core.management import setup_environ |