#!/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': "Pbumbumtsc" }, { 'old': "Pool03", 'new': "Pechochamb" }, { 'old': "Pool04", 'new': "Pelekthop" }, { 'old': "Pool05", 'new': "Pblue" }, { 'old': "Pool06", 'new': "Ppropelles" }, { 'old': "Pool07", 'new': "Pamon" }, { 'old': "Pool08", 'new': "Pbrigitte" }, { 'old': "Pool09", 'new': "Pbrigitten" }, { 'old': "Pool10", 'new': "Pcine" }, { 'old': "Pool11", 'new': "Pe5b" }, { 'old': "Pool12", 'new': "Pelektro" }, { 'old': "Pool13", 'new': "Plounged" }, { 'old': "Pool14", 'new': "Plounge" }, { 'old': "Pool15", 'new': "Pmiles" }, { 'old': "Pool16", 'new': "Ptomwaits" }, { 'old': "Pool17", 'new': "Psonne" }, { 'old': "Pool18", 'new': "Phoefmix1" }, { 'old': "Pool19", 'new': "Photelpass" }, { 'old': "Pool20", 'new': "Partcore" }, { 'old': "Pool21", 'new': "Pbreakcore" }, { 'old': "Pool22", 'new': "Pbritpop" }, { 'old': "Pool23", 'new': "Pselchfle" }, { 'old': "Pool24", 'new': "Ppolanz1" }, { 'old': "Pool25", 'new': "Pweirdjazz" }, { 'old': "Pool26", 'new': "Pelesyndub" }, { 'old': "Pool27", 'new': "Prock" }, { 'old': "Pool28", 'new': "Pbigbredru" }, { 'old': "Pool29", 'new': "Pcinleilan" }, { 'old': "Pool30", 'new': "Pdrone" }, { 'old': "Pool31", 'new': "PLeichgita" }, { 'old': "Pool32", 'new': "Pzeitgenoe" }, { 'old': "Pool33", 'new': "Pelemisch" }, { 'old': "Pool34", 'new': "Pabunda" }, { 'old': "Pool35", 'new': "Pska" }, { 'old': "Pool36", 'new': "Pdemo" }, { 'old': "Pool37", 'new': "Pgeraeusch" }, { 'old': "Pool38", 'new': "Pmezopotam" }, { 'old': "Pool39", 'new': "Pwuggi" }, { 'old': "Pool40", 'new': "Pkaramba" }, { 'old': "Pool41", 'new': "Psongbirds" }, { 'old': "Pool42", 'new': "Pjokebux" }, { 'old': "Pool43", 'new': "Psingbirds" }, { 'old': "Pool44", 'new': "Ponconnait" }, { 'old': "Pool45", 'new': "Pcanzital" }, { 'old': "Pool46", 'new': "Pmarlies" } ] 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']], 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 = '''Radio Helsinki pool-import runner. Usage: run_import.py [pool-size] Options: -h, --help this help message. --pool-size N the number of paralell imports. ''' pool_size = 2 try: opts, args = getopt.getopt(sys.argv[1:], "h", ["help", "pool-size=" ]) for o, a in opts: if o in ("-h", "--help"): print >> sys.stderr, usage sys.exit(0) elif o == "--pool-size": pool_size = int(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)