From 061f40df08f6992bf314eb6f23315ef415e58882 Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Wed, 9 Feb 2005 16:20:53 -0500 Subject: Fixes to thes pbs send script util/pbs/send.py: - add a -d to set the job root directory allowing one to run send.py from anywhere. - specify full paths to files instead of relative paths to make -d work and to allow ssh qsub to work again. - make the Link directory only copy links that point to regular files. --HG-- extra : convert_revision : dd330cee08b97c5d72c3d58ef123f83ac7ccede7 --- util/pbs/send.py | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) (limited to 'util/pbs') diff --git a/util/pbs/send.py b/util/pbs/send.py index c0c56d98b..1f174b1f8 100755 --- a/util/pbs/send.py +++ b/util/pbs/send.py @@ -54,7 +54,7 @@ Usage: try: import getopt - opts, args = getopt.getopt(sys.argv[1:], '-cefhlq:v') + opts, args = getopt.getopt(sys.argv[1:], '-cd:efhlq:v') except getopt.GetoptError: sys.exit(usage) @@ -65,42 +65,48 @@ force = False listonly = False queue = '' verbose = False -for o,a in opts: - if o == '-c': +rootdir = re.sub(r'^/\.automount/', r'/n/', os.getcwd()) +for opt,arg in opts: + if opt == '-c': clean = True - if o == '-e': + if opt == '-d': + rootdir = arg + if opt == '-e': onlyecho = True - if o == '-f': + if opt == '-f': force = True - if o == '-h': + if opt == '-h': print usage sys.exit(0) - if o == '-l': + if opt == '-l': listonly = True - if o == '-q': - queue = a - if o == '-v': + if opt == '-q': + queue = arg + if opt == '-v': verbose = True +basedir = joinpath(rootdir, 'Base') +linkdir = joinpath(rootdir, 'Link') + for arg in args: exprs.append(re.compile(arg)) -if not listonly and not onlyecho and isdir('Link'): +if not listonly and not onlyecho and isdir(linkdir): print 'Checking for outdated files in Link directory' - entries = listdir('Link') + entries = listdir(linkdir) for entry in entries: - link = joinpath('Link', entry) - if not islink(link): + link = joinpath(linkdir, entry) + if not islink(link) or not isfile(link): continue - base = joinpath('Base', entry) + base = joinpath(basedir, entry) if not isfile(base) or not filecmp(link, base): - print '%s is different than source %s...copying' % (base, link) + print 'Base/%s is different than Link/%s: copying' % (entry, entry) copyfile(link, base) import job, jobfile, pbs -test = jobfile.JobFile(joinpath('Base', 'test.py')) +test = jobfile.JobFile(joinpath(basedir, 'test.py')) joblist = [] for jobname in test.jobs: @@ -143,7 +149,6 @@ if not onlyecho: jl.append(jobname) joblist = jl -rootdir = re.sub(r'^/\.automount/', r'/n/', os.getcwd()) for jobname in joblist: jobdir = joinpath(rootdir, jobname) @@ -165,5 +170,5 @@ for jobname in joblist: if len(queue): qsub.queue = queue - qsub.do(joinpath('Base', 'job.py')) + qsub.do(joinpath(basedir, 'job.py')) print >>sys.stderr, '' -- cgit v1.2.3