So we’re finally on to building Fedora 15 for ARMv5 on F13 builders and since we’re managing a repo manually, I needed a script to do the following:
- Move all failed build packages back to the source folder to be rebuilt again
- Move all completed build packages not in the destination to that directory
- Move any build packages in the destination that are not built back to the source folder
Here is the following script which helps us achieve this:
fixs.py
import os import re import subprocess z = '/var/export/f15v5.0' os.system("mkdir \"%s/fixs/\" 2> /dev/null" % (z)) r = subprocess.Popen(["find", "%s/repo" % (z), "-type", "f"], stdout=subprocess.PIPE).communicate()[0] s = r.split("\n") f = subprocess.Popen(["ls", "%s/dest" % (z)], stdout=subprocess.PIPE).communicate()[0] g = f.split("\n") for i in g: i = i.strip() n = re.sub("\.src\.rpm$", "", i) m = [0, 0] for j in s: j = j.strip() k = re.sub("[^0-9A-Za-z]", ".", n) if (re.match("^.*%s.*$" % (k), j)): m[0] = 1 if (re.match("^.*%s\.src\.rpm$" % (k), j)): m[1] = 1 c = ("mv \"%s/dest/%s\" \"%s/fixs/\"" % (z, i, z)) if ((m[0] == 1) and (m[1] == 0)): print(c) os.system(c) if ((m[0] == 0) and (m[1] == 0)): print(c) os.system(c)