On Thu, Sep 15, 2005 at 02:40:06PM -0700, Christopher Crammond wrote: > I was curious as to where I might be able to find out what > non-command-line interfaces into .deb packages are available. For > instance, is there a C interface that could pull out information such as > Name, Version, Release, etc... ? [..]
libapt_inst (from the apt package) provides a interface in C++ and python-apt (module apt_inst) provides a interface in python. Attached is a example using python-apt. Cheers, Michael -- Linux is not The Answer. Yes is the answer. Linux is The Question. - Neo
#!/usr/bin/env python # some example for apt_inst import apt_pkg import apt_inst import sys def Callback(What,Name,Link,Mode,UID,GID,Size,MTime,Major,Minor): """ callback for debExtract """ print "%s '%s','%s',%u,%u,%u,%u,%u,%u,%u"\ % (What,Name,Link,Mode,UID,GID,Size, MTime, Major, 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.debExtract(open(file), Callback, "data.tar.gz") print "Now extracting the control file:" control = apt_inst.debExtractControl(open(file)) sections = apt_pkg.ParseSection(control) print sections print "Maintainer is: " print sections["Maintainer"] print print "DependsOn: " depends = sections["Depends"] print apt_pkg.ParseDepends(depends)