#!/usr/bin/python # # # pool-import # # Copyright (C) 2016 Christian Pointner # # This file is part of pool-import. # # pool-import is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # any later version. # # pool-import is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with pool-import. If not, see . # '''Radio Helsinki pool-import runner.''' groups = [ { 'old': "Pool01", 'new': "P_test" }, { 'old': "Pool02", 'new': "Pbumbumtsch" }, { 'old': "Pool03", 'new': "Pechochamber" } ] # TODO: add other group mappings def run_one(g): import subprocess import os print "start import from %s to %s" % (g['old'], g['new']) log = open("%s.log" % (g['old']), "w") p = subprocess.Popen(["./pool-import", g['old'], g['new']], shell=True, universal_newlines=True, stdout=log, stderr=log) ret_code = p.wait() log.flush() log.close() print "done importing from %s to %s ... exit_code: %d" % (g['old'], g['new'], ret_code) if __name__ == '__main__': import getopt import sys from multiprocessing import Pool usage = '''spreadspace simple pic downloader. Usage: run_import.py [pool-size] Options: -h, --help this help message. -p=N, --pool-size=N the number of paralell imports. ''' pool_size = 2 try: opts, args = getopt.getopt(sys.argv[1:], "hp", ["help", "pool-size" ]) for o, a in opts: if o in ("-h", "--help"): print >> sys.stderr, usage sys.exit(0) elif o == ("-s", "--pool-size"): device = a else: raise getopt.GetoptError('Too many arguments') if len(args) > 1: raise getopt.GetoptError('Too many arguments') except getopt.GetoptError, msg: print >> sys.stderr, "ERROR: %s" % msg print >> sys.stderr, usage sys.exit(2) p = Pool(pool_size) p.map(run_one, groups)