| |
| |
|
|
| import apt_pkg |
| import apt_inst |
| import sys |
| import os.path |
|
|
|
|
| def Callback(member, data): |
| """ callback for debExtract """ |
| print("'%s','%s',%u,%u,%u,%u,%u,%u,%u" |
| % (member.name, member.linkname, member.mode, member.uid, |
| member.gid, member.size, member.mtime, member.major, |
| member.minor)) |
|
|
|
|
| if __name__ == "__main__": |
| if len(sys.argv) < 2: |
| print("need filename argumnet") |
| sys.exit(1) |
| file = sys.argv[1] |
|
|
| print("Working on: %s" % file) |
| print("Displaying data.tar.gz:") |
| apt_inst.DebFile(open(file)).data.go(Callback) |
|
|
| print("Now extracting the control file:") |
| control = apt_inst.DebFile(open(file)).control.extractdata("control") |
| sections = apt_pkg.TagSection(control) |
|
|
| print("Maintainer is: ") |
| print(sections["Maintainer"]) |
|
|
| print() |
| print("DependsOn: ") |
| depends = sections["Depends"] |
| print(apt_pkg.parse_depends(depends)) |
|
|
| print("extracting archive") |
| dir = "/tmp/deb" |
| os.mkdir(dir) |
| apt_inst.DebFile(open(file)).data.extractall(dir) |
|
|
| def visit(arg, dirname, names): |
| print("%s/" % dirname) |
| for file in names: |
| print("\t%s" % file) |
|
|
| os.path.walk(dir, visit, None) |
|
|