-#!/usr/bin/python2
+#!/usr/bin/python
import itertools
import optparse
def run(running_jobs, cmd):
- p = subprocess.Popen(cmd, stdin=file(os.devnull, 'r'))
+ p = subprocess.Popen(cmd, stdin=subprocess.DEVNULL)
running_jobs.append(p)
def wait_for_completion(max_jobs, running_jobs):
# Wait for remaining jobs to finish
wait_for_completion(1, running_jobs)
+def make_and_chdir(filename):
+ dirname = os.path.splitext(filename)[0] + ".out"
+ try:
+ os.makedirs(dirname)
+ except FileExistsError:
+ pass
+ os.chdir(dirname)
+
def parse_args():
parser = optparse.OptionParser(usage="%prog batchfile1 [batchfile2] ...")
parser.add_option("-j", "--jobs",
def main():
opts, args = parse_args()
- for name in args:
- os.chdir(os.path.dirname(name))
- batch_process(opts, parse_file(open(name)))
+ filenames = list(map(os.path.abspath, args))
+ for filename in filenames:
+ print("Processing", filename)
+ make_and_chdir(filename)
+ with open(filename) as fd:
+ batch_process(opts, parse_file(fd))
if __name__ == "__main__":
main()