--- portell.py.orig Mon Aug 11 15:23:47 2003 +++ portell.py Mon Aug 11 15:34:56 2003 @@ -1,70 +1,78 @@ -#! /usr/bin/env python -# portell.py -# Description: prints a port's descr-file from whatever directory you're in. -# Author: Ryan "gt3" Kulla -# Email: ambiod@sbcglobal.net -# Version: 0.1 -# Usage: portell.py - -import sys, os, shelve -from string import join - -try: - PORTELL_DB = os.environ['PORTELL_PATH'] -except KeyError: - PORTELL_DB = "/var/db/portell.db" - -PORTS_DIR = "/usr/ports/" - -def write_pathname(d, dirname, names): - dirname = join(dirname.split('/')[:5], '/') # chop port path subdirs - d[os.path.basename(dirname)] = dirname - -def update_db(): - if os.access(PORTELL_DB, os.F_OK): - os.unlink(PORTELL_DB) - try: - d = shelve.open(PORTELL_DB) - os.chmod(PORTELL_DB, 0666) - except: - print "can't read or write %s. are you root?" % PORTELL_DB - sys.exit(0) - os.path.walk(PORTS_DIR, write_pathname, d) - d.close() - -def main(): - if len(sys.argv) != 2: - print "usage: %s " % sys.argv[0] - sys.exit(0) - - if sys.argv[1] == '-u': - update_db() - sys.exit(0) - else: - portname = sys.argv[1] - - if not os.access(PORTELL_DB, os.F_OK): - print >> sys.stderr, "you need to create %s first." % PORTELL_DB - print >> sys.stderr, "type: %s -u" % sys.argv[0] - sys.exit(0) - - d = shelve.open(PORTELL_DB) - - if d.has_key(portname): - descr_path = d[portname] + "/pkg-descr" - match = descr_path - try: - descr_file = open(match, 'r').readlines() - print "%s reads:\n" % descr_path - for line in descr_file: - print line, - except IOError, errmsg: - print errmsg - else: - print >> sys.stderr, "can't find %s" % portname - - d.close() - - -if __name__=='__main__': - main() +#! /usr/bin/env python +# portell.py +# Description: prints a port's descr-file from whatever directory you're in. +# Author: Ryan "gt3" Kulla +# Email: ambiod@sbcglobal.net +# Version: 0.1 +# Usage: portell.py + +import sys, os, shelve +from string import join + +try: + PORTELL_DB = os.environ['PORTELL_PATH'] + if sys.version[:3] == '2.2': + PORTELL_DB = PORTELL_DB + ".db" + + PORTELL_DB_FILE = PORTELL_DB + ".db" +except KeyError: + if sys.version[:3] == '2.2': + PORTELL_DB = "/var/db/portell.db" + else: + PORTELL_DB = "/var/db/portell" + PORTELL_DB_FILE = "/var/db/portell.db" + +PORTS_DIR = "/usr/ports/" + +def write_pathname(d, dirname, names): + dirname = join(dirname.split('/')[:5], '/') # chop port path subdirs + d[os.path.basename(dirname)] = dirname + +def update_db(): + if os.access(PORTELL_DB_FILE, os.F_OK): + os.unlink(PORTELL_DB_FILE) + try: + d = shelve.open(PORTELL_DB) + os.chmod(PORTELL_DB_FILE, 0666) + except: + print "can't read or write %s. are you root?" % PORTELL_DB_FILE + sys.exit(0) + os.path.walk(PORTS_DIR, write_pathname, d) + d.close() + +def main(): + if len(sys.argv) != 2: + print "usage: %s " % sys.argv[0] + sys.exit(0) + + if sys.argv[1] == '-u': + update_db() + sys.exit(0) + else: + portname = sys.argv[1] + + if not os.access(PORTELL_DB_FILE, os.F_OK): + print >> sys.stderr, "you need to create %s first." % PORTELL_DB_FILE + print >> sys.stderr, "type: %s -u" % sys.argv[0] + sys.exit(0) + + d = shelve.open(PORTELL_DB) + + if d.has_key(portname): + descr_path = d[portname] + "/pkg-descr" + match = descr_path + try: + descr_file = open(match, 'r').readlines() + print "%s reads:\n" % descr_path + for line in descr_file: + print line, + except IOError, errmsg: + print errmsg + else: + print >> sys.stderr, "can't find %s" % portname + + d.close() + + +if __name__=='__main__': + main()