#!/usr/bin/python import string import os,sys,errno import re import StringIO sourcetarballs = [] for root, dirs, files in os.walk('/var/www/auto-build/'): dirs.sort() if 'latest' in dirs: dirs.remove('latest') for name in files: m = re.search('^Pd-[01]\.[0-9][0-9].*[^5]$', name) if m: commonbuildname = re.sub('-20[01][0-9][01][0-9][0-9][0-9]', '', name) commonbuildpath = os.path.join('/var/www/auto-build/latest', commonbuildname) buildtarball = os.path.join(root, m.string) #print "link: ", buildtarball, commonbuildpath try: os.symlink(buildtarball, commonbuildpath) except OSError, e: if e.errno == errno.EEXIST: #print "removing ", commonbuildpath os.remove(commonbuildpath) os.symlink(buildtarball, commonbuildpath) m2 = re.search('^Pd-extended_[01]\.[0-9][0-9].*-source.*tar.bz2$', name) if m2: sourcetarballs.append(os.path.join(root, m2.string)) if len(sourcetarballs) > 0: sourcetarball = sourcetarballs[-1] linkname = re.sub('/20[01][0-9]-[01][0-9]-[0-9][0-9]/', '/latest/', sourcetarball) debiantarball = re.sub('-source', '-source.debian', sourcetarball) debianlinkname = re.sub('-source', '-source.debian', linkname) try: os.remove(linkname) os.remove(debianlinkname) except Exception as e: print e try: os.symlink(sourcetarball, linkname) os.symlink(debiantarball, debianlinkname) foundsourcetarball = True except Exception as e: print e