Exemple #1
0
 def update_repos(self, repos):
     if repos == 'debian':
         basedir = path(config.get('repos_debian', 'basedir'))
     elif repos == 'security':
         basedir = path(config.get('repos_security', 'basedir'))
     else:
         msg = "%s not a valid repository" % repos
         raise RuntimeError , msg
     self.repos.set_basedir(basedir)
     ready = self.is_process_ready()
     if not ready:
         raise RuntimeError , "repos process not ready"
     self.repos.update()
     return True
Exemple #2
0
def main(pkgname):
    # build for amd64 first
    cleanup(pkgname)
    get_source(pkgname)
    dirname = get_dirname(pkgname)
    build_source_package(dirname)
    dscfile = get_dscfile(pkgname)
    cowpoke(dscfile)
    get_result()
    changes = find_result_changes(pkgname)
    dput(changes)
    amd64_changes = changes
    # build for i386
    i386_changes = None
    retcode = cowpoke(dscfile, binonly=True)
    get_result(arch='i386')
    try:
        changes = find_result_changes(pkgname, arch='i386')
        dput(changes)
    except ChangesNotFoundError:
        helper_file = path('cowssh_it')
        if helper_file.isfile():
            helper_file.remove()
        print "There doesn't seem to be a binary for i386"
        print "Please doublecheck"
    print "Finished Building %s" % pkgname
Exemple #3
0
def find_result_changes(pkgname, arch='amd64'):
    resultdir = path('result.%s' % arch)
    files = resultdir.listdir()
    all_changes = [f for f in files if f.endswith('_%s.changes' % arch)]
    #print "ALL_CHANGES", all_changes
    pkg_changes = [f for f in all_changes \
                       if f.basename().startswith('%s_' % pkgname)]
    if len(pkg_changes) != 1:
        msg = "problem finding changes file -> %s" % pkg_changes
        raise ChangesNotFoundError , msg
    return pkg_changes[0]
def fix_oem_directory(directory):
    directory = path(directory)
    archdir = directory / "i386"
    oemdir = directory / "OEM"
    if oemdir.isdir():
        uglypath = archdir / "$oem$/$1"
        uglypath.makedirs()
        oem_lower = uglypath / "oem"
        if oem_lower.isdir():
            raise RuntimeError, "%s shouldn't exist." % oem_lower
        oemdir.rename(oem_lower)
    # cmd = ['perl', opts.lc_script, directory]
    # subprocess.check_call(cmd)
    for filename in directory.walk():
        dirname, basename = filename.splitpath()
        lower = basename.lower()
        if basename != lower:
            newname = dirname / lower
            if newname.exists():
                raise RuntimeError, "%s already exists" % newname
            print "Renaming %s to %s in %s" % (basename, lower, dirname)
            os.rename(filename, newname)
        driverpacks.append(dp)
    return driverpacks

def get_torrents(driverpacks):
    for dp in driverpacks:
        dp.get_torrent()

def parse_rss_feed():
    return feedparser.parse(DRIVERPACKS_LATEST_FEED)


        

if __name__ == '__main__':
    import pickle
    filename = path('feed.pickle')
    if filename.isfile():
        parser = pickle.load(file(filename))
    else:
        print 'downloading feed...'
        parser = feedparser.parse(DRIVERPACKS_LATEST_FEED)
        feed_dump = file(filename, 'w')
        pickle.dump(feed, feed_dump)
        feed_dump.close()
    p = parser
    
    d = get_driverpacks(p)
    get_torrents(d)
    
    
Exemple #6
0
 def set_basedir(self, basedir):
     self.basedir = path(basedir)
     self.logfile_name = self.basedir / 'logs/debrepos.log'
     self.logfile = None
     self.open_logfile()
Exemple #7
0
 def __init__(self):
     self.baseparent = path(config.get('main', 'homedir'))
     self.repos = RepRepRo()
Exemple #8
0
 def __init__(self, baseparent):
     self.baseparent = path(baseparent)
     self.repos = RepRepRo()