-#! /usr/bin/python
-
-
-import sys, os.path
-#from debian_bundle import deb822
-import apt_pkg
-
-
-def check_source(ok, f, fw):
- ret=[]
- pkg = apt_pkg.ParseTagFile(f)
- while pkg.Step():
- if pkg.Section['Section'].startswith('non-free'):
- if pkg.Section.get('Autobuild') != 'yes': continue
- if pkg.Section['Package'] not in ok: continue
- ret += [pkg.Section['Package']]
- fw.write(str(pkg.Section))
- fw.write("\n")
- return ret
- f.close()
- fw.close()
-
-def check_binary(ok, f, fw):
- pkg = apt_pkg.ParseTagFile(f)
- while pkg.Step():
- if pkg.Section.get('Source', pkg.Section.get('Package')).split(" ")[0] not in ok: continue
- fw.write(str(pkg.Section))
- fw.write("\n")
- f.close()
- fw.close()
-
-def outfile(name, file):
- #return open(dir + "/" + os.path.basename(file), "w")
- #return open(file + name, "w")
- if file.endswith(name): return open(file[:-len(name)], "w")
-
-def main():
- if len(sys.argv) <= 4:
- print "Error - too few args"
- return
-
- name = sys.argv[1]
- oklist = [ x[:-1].split(' ')[0] for x in open(sys.argv[2]) ]
- okpkgs = check_source(oklist, open(sys.argv[3]), outfile(name, sys.argv[3]))
- for file in sys.argv[4:]:
- check_binary(okpkgs, open(file), outfile(name, file))
-
-if __name__ == '__main__':
- main()