diff --git a/checkin_notes b/checkin_notes index e5fdc19aa8..523f7f13e4 100644 --- a/checkin_notes +++ b/checkin_notes @@ -10761,3 +10761,13 @@ David 30 Dec 2009 lib/ util.cpp filesys.cpp + +David 30 Dec 2009 + - upgrade: add --server_only option + (updates scheduler and back-end programs, but not web code) + fixes #968 + + tools/ + upgrade + py/Boinc/ + setup_project.py diff --git a/py/Boinc/setup_project.py b/py/Boinc/setup_project.py index 3776e89dd3..dbbc6eaf41 100644 --- a/py/Boinc/setup_project.py +++ b/py/Boinc/setup_project.py @@ -296,7 +296,7 @@ def create_project_dirs(dest_dir): 'html/user_profile/images' ]) -def install_boinc_files(dest_dir, web_only): +def install_boinc_files(dest_dir, install_web_files, install_server_files): """Copy files from source dir to project dir. Used by the upgrade script, so don't copy sample files to real name.""" @@ -305,26 +305,30 @@ def install_boinc_files(dest_dir, web_only): create_project_dirs(dest_dir); - install_glob(srcdir('html/inc/*.inc'), dir('html/inc/')) - install_glob(srcdir('html/inc/*.php'), dir('html/inc/')) - install_glob(srcdir('html/inc/*.dat'), dir('html/inc/')) - install_glob(srcdir('html/ops/*.php'), dir('html/ops/')) - install_glob(srcdir('html/ops/*.inc'), dir('html/ops/')) - install_glob(srcdir('html/ops/ffmail/sample*'), dir('html/ops/ffmail/')) - install_glob(srcdir('html/ops/mass_email/sample*'), dir('html/ops/mass_email/')) - install_glob(srcdir('html/ops/remind_email/sample*'), dir('html/ops/remind_email/')) - install_glob(srcdir('html/user/*.php'), dir('html/user/')) - install_glob(srcdir('html/user/*.inc'), dir('html/user/')) - install_glob(srcdir('html/user/*.css'), dir('html/user/')) - install_glob(srcdir('html/user/*.txt'), dir('html/user/')) - install_glob(srcdir('html/user/*.js'), dir('html/user/')) - install_glob(srcdir('html/user/*.png'), dir('html/user/img')) - install_glob(srcdir('html/user/*.gif'), dir('html/user/img')) - install_glob(srcdir('html/user/img/*.*'), dir('html/user/img')) - if not os.path.exists(dir('html/user/motd.php')): - shutil.copy(srcdir('html/user/sample_motd.php'), dir('html/user/motd.php')) - os.system("rm -f "+dir('html/languages/translations/*')) - install_glob(srcdir('html/languages/translations/*.po'), dir('html/languages/translations/')) + if install_web_files: + install_glob(srcdir('html/inc/*.inc'), dir('html/inc/')) + install_glob(srcdir('html/inc/*.php'), dir('html/inc/')) + install_glob(srcdir('html/inc/*.dat'), dir('html/inc/')) + install_glob(srcdir('html/ops/*.php'), dir('html/ops/')) + install_glob(srcdir('html/ops/*.inc'), dir('html/ops/')) + install_glob(srcdir('html/ops/ffmail/sample*'), dir('html/ops/ffmail/')) + install_glob(srcdir('html/ops/mass_email/sample*'), dir('html/ops/mass_email/')) + install_glob(srcdir('html/ops/remind_email/sample*'), dir('html/ops/remind_email/')) + install_glob(srcdir('html/user/*.php'), dir('html/user/')) + install_glob(srcdir('html/user/*.inc'), dir('html/user/')) + install_glob(srcdir('html/user/*.css'), dir('html/user/')) + install_glob(srcdir('html/user/*.txt'), dir('html/user/')) + install_glob(srcdir('html/user/*.js'), dir('html/user/')) + install_glob(srcdir('html/user/*.png'), dir('html/user/img')) + install_glob(srcdir('html/user/*.gif'), dir('html/user/img')) + install_glob(srcdir('html/user/img/*.*'), dir('html/user/img')) + if not os.path.exists(dir('html/user/motd.php')): + shutil.copy(srcdir('html/user/sample_motd.php'), dir('html/user/motd.php')) + os.system("rm -f "+dir('html/languages/translations/*')) + install_glob(srcdir('html/languages/translations/*.po'), dir('html/languages/translations/')) + + if not install_server_files: + return # copy Python stuff map(lambda (s): install(srcdir('sched',s), dir('bin',s)), @@ -342,9 +346,6 @@ import sys, os sys.path.insert(0, os.path.join('%s', 'py')) ''' % dest_dir - if web_only: - return - # copy backend (C++) programs; # rename current web daemons in case they're in use @@ -480,7 +481,7 @@ class Project: # Create the project log directory self.create_logdir() - install_boinc_files(self.dir(), self.web_only) + install_boinc_files(self.dir(), True, not self.web_only) # copy sample web files to final names install(srcdir('html/user/sample_index.php'), @@ -489,8 +490,6 @@ class Project: self.dir('html/project/project.inc')) install(srcdir('html/project.sample/project_specific_prefs.inc'), self.dir('html/project/project_specific_prefs.inc')) - install(srcdir('html/project.sample/project_news.inc'), - self.dir('html/project/project_news.inc')) install(srcdir('html/project.sample/cache_parameters.inc'), self.dir('html/project/cache_parameters.inc')) install(srcdir('html/ops', 'sample_server_status.php'), diff --git a/tools/upgrade b/tools/upgrade index 9979122c87..d348573897 100755 --- a/tools/upgrade +++ b/tools/upgrade @@ -20,14 +20,14 @@ from Boinc.setup_project import * import os, getopt def usage(): - print "Usage: upgrade [--project_root] [--web_only] [--srcdir DIR] project_name" + print "Usage: upgrade [--project_root] [--web_only | --server_only] [--srcdir DIR] project_name" raise SystemExit def syntax_error(str): raise SystemExit('%s; See "%s --help" for help\n' % (str, sys.argv[0])) try: - opts, args = getopt.getopt(sys.argv[1:], '', ['help', 'project_root=', 'web_only', 'srcdir=']) + opts, args = getopt.getopt(sys.argv[1:], '', ['help', 'project_root=', 'web_only', 'server_only', 'srcdir=']) except getopt.GetoptError, e: syntax_error(e) @@ -35,12 +35,14 @@ home = os.path.expanduser('~') options.project_root = os.path.join(home, 'projects') options.web_only = False +options.server_only = False options.srcdir = None for o,a in opts: if o == '--help': usage() elif o == '--project_root': options.project_root = a elif o == '--web_only': options.web_only = True + elif o == '--server_only': options.server_only = True elif o == '--srcdir': options.srcdir = a else: raise SystemExit('internal error o=%s'%o) @@ -70,7 +72,7 @@ print "Upgrading files... " options.install_method = 'copy' init() -install_boinc_files(INSTALL_DIR, options.web_only) +install_boinc_files(INSTALL_DIR, not options.server_only, not options.web_only) print "Upgrading files... done"