X-Git-Url: https://piware.de/gitweb/?a=blobdiff_plain;f=buildd.py;h=766fb49e5643fbfd9f81e340c432bccbbb6a6a07;hb=af83a9d9bfaa2b1f55d0c66f429110e5e420cde6;hp=f0467f2f3f5616bb366d8bcd214e9ecd5fdb5a17;hpb=afe32515ad59a0da4f8e8d41151cd42e757684f3;p=bin.git diff --git a/buildd.py b/buildd.py index f0467f2..766fb49 100755 --- a/buildd.py +++ b/buildd.py @@ -17,11 +17,13 @@ operation: status | retry | rescore [priority (default 5000)]''' % sys.argv[0] sys.exit(1) # find cookie file -try: - cookiefile = glob.glob(os.path.expanduser('~/.mozilla/firefox/*/cookies.txt'))[0] -except IndexError: - print >> sys.stderr, 'Could not find Firefox cookie file' - sys.exit(1) +cookiefile = os.path.expanduser('~/.lpcookie') +if not os.path.exists(cookiefile): + try: + cookiefile = glob.glob(os.path.expanduser('~/.mozilla/*/*/cookies.txt'))[0] + except IndexError: + print >> sys.stderr, 'Could not find Firefox cookie file' + sys.exit(1) # build HTML opener with cookie file cj = cookielib.MozillaCookieJar() @@ -30,10 +32,15 @@ urlopener = urllib2.build_opener() urlopener.add_handler(urllib2.HTTPCookieProcessor(cj)) # find out the version in given release -page = urlopener.open('https://launchpad.net/ubuntu/+source/' + package).read() -m = re.search('"/ubuntu/%s/\+source/%s/(\d[^"]+)"' % (release, package), page) +try: + page = urlopener.open('https://launchpad.net/ubuntu/+source/' + package).read() +except urllib2.HTTPError: + print >> sys.stderr, 'This source does not appear to exist in Ubuntu' + sys.exit(1) + +m = re.search('"/ubuntu/%s/\+source/%s/(\d[^"]+)"' % (release, package.replace('+', '\+')), page) if not m: - print >> sys.stderr, 'Cannot find this package' + print >> sys.stderr, 'Cannot find this source package in this release' sys.exit(1) version = m.group(1) print 'Source version:', version @@ -44,7 +51,7 @@ page = urlopener.open('https://launchpad.net/ubuntu/+source/%s/%s' % (package, v url = page.geturl() page = page.read() for m in re.finditer('"/ubuntu/\+source/%s/%s(/\+build/\d+)"[^\n]+\n\s*(\w+).*?(\w+).*?\s*([^\n]+)\n' % - (package, version), page, re.S): + (package.replace('+', '\+'), version.replace('+', '\+')), page, re.S): if m.group(2) == release: print '%s: %s' % (m.group(3), m.group(4)) buildstats[url + m.group(1)] = [m.group(3).strip(), m.group(4).strip()] @@ -60,7 +67,7 @@ for build, (arch, status) in buildstats.iteritems(): urlopener.open(build+'/+rescore', urlencode( {'SCORE': '5000', 'RESCORE': '1'})) elif op == 'retry': - if status == 'Failed to build': + if status in ('Failed to build', 'Chroot problem', 'Failed to upload'): print 'retrying', build, '(%s)' % arch urlopener.open(build+'/+retry', urlencode( {'RETRY': '1'}))