rendered paste bodydiff -r 111eb4953d61 add-metadata.py--- a/add-metadata.py Tue Feb 26 13:38:11 2008 -0500+++ b/add-metadata.py Mon Mar 16 15:44:52 2009 -0400@@ -1,66 +1,59 @@ #!/usr/bin/python+#+# Copyright (c) 2008-2009 Foresight Linux+# This file is distributed under the terms of the MIT License.+# A copy is available at http://www.rpath.com/permanent/mit-license.html+# import os, sys, itertools+import optparse from conary import conaryclient, conarycfg, errors, trove, constants from conary.conaryclient import cmdline -class Error(errors.ConaryError): pass+def main():+ op = optparse.OptionParser(usage = "%prog [options] troveSpec [...]")+ op.add_option('-u', '--url', help = "URL")+ op.add_option('-s', '--short', help = "Short description")+ op.add_option('-l', '--long', help = "Long description")+ op.add_option('-c', '--category', help = "Category (semicolon-separated)",+ action = "append") -def addMetadataCategories(troveSpec, categories):+ options, args = op.parse_args()+ if not (options.url or options.short or options.long or options.category):+ sys.stderr.write("No option specified\n")+ return 1+ if not args:+ sys.stderr.write("No trove specified\n")+ return 2+ if options.category and len(options.category) == 1:+ # If only one option was specified, split at semicolon+ options.category = options.category.split(';')+ cfg = conarycfg.ConaryConfiguration(readConfigFiles=True) client = conaryclient.ConaryClient(cfg)- n, v, f = cmdline.parseTroveSpec(troveSpec)- trvList = client.repos.findTrove(cfg.installLabelPath, (n, v, f), defaultFlavor = cfg.flavor)+ troveList = []+ for troveSpec in args:+ n, v, f = cmdline.parseTroveSpec(troveSpec)+ troveList.extend(client.repos.findTrove(cfg.installLabelPath, (n, v, f), defaultFlavor = cfg.flavor)) + metadataItem = buildMetadataItem(options)+ client.repos.addMetadataItems(zip(troveList, itertools.repeat(metadataItem)))++def buildMetadataItem(options): mi = trove.MetadataItem()- for category in categories:++ if options.url:+ mi.url.set(options.url)++ if options.short:+ mi.shortDesc.set(options.short)++ if options.long:+ mi.longDesc.set(options.long)++ for category in (options.category or []): mi.categories.set(category)- client.repos.addMetadataItems(zip(trvList, itertools.repeat(mi)))--def addMetadataShortDesc(troveSpec, shortDesc):- cfg = conarycfg.ConaryConfiguration(readConfigFiles=True)- client = conaryclient.ConaryClient(cfg)- n, v, f = cmdline.parseTroveSpec(troveSpec)- trvList = client.repos.findTrove(cfg.installLabelPath, (n, v, f), defaultFlavor = cfg.flavor)-- mi = trove.MetadataItem()- mi.shortDesc.set(shortDesc)- client.repos.addMetadataItems(zip(trvList, itertools.repeat(mi)))--def addMetadataLongDesc(troveSpec, longDesc):- cfg = conarycfg.ConaryConfiguration(readConfigFiles=True)- client = conaryclient.ConaryClient(cfg)- n, v, f = cmdline.parseTroveSpec(troveSpec)- trvList = client.repos.findTrove(cfg.installLabelPath, (n, v, f), defaultFlavor = cfg.flavor)-- mi = trove.MetadataItem()- mi.longDesc.set(longDesc)- client.repos.addMetadataItems(zip(trvList, itertools.repeat(mi)))--def usage():- print >> sys.stderr, 'usage:'- print >> sys.stderr, ' %s [trove] [categories|shortDesc|longDesc] [content]' %sys.argv[0]- sys.exit(1)+ return mi if __name__ == '__main__':- if len(sys.argv) != 4:- print "%s \n" % sys.argv[1]- print "%s \n" % sys.argv[2]- print "%s \n" % sys.argv[3]- print "%s \n" % sys.argv[4]- usage()-- try:- troveSpec = sys.argv[1]- if sys.argv[2] == 'categories':- rawCategories = sys.argv[3]- categories = rawCategories.split(';')- addMetadataCategories(troveSpec, categories)- elif sys.argv[2] == 'shortDesc':- addMetadataShortDesc(troveSpec, sys.argv[3])- elif sys.argv[2] == 'longDesc':- addMetadataLongDesc(troveSpec, sys.argv[3])-- except errors.ConaryError, e:- print >> sys.stderr, 'error: %s' % str(e)- sys.exit(1)+ sys.exit(main())diff -r 111eb4953d61 get-metadata.py--- a/get-metadata.py Tue Feb 26 13:38:11 2008 -0500+++ b/get-metadata.py Mon Mar 16 15:44:52 2009 -0400@@ -1,4 +1,9 @@ #!/usr/bin/python+#+# Copyright (c) 2008-2009 Foresight Linux+# This file is distributed under the terms of the MIT License.+# A copy is available at http://www.rpath.com/permanent/mit-license.html+# import sys from conary import conaryclient, conarycfg, errorsdiff -r 111eb4953d61 parse-desktop-file.sh--- a/parse-desktop-file.sh Tue Feb 26 13:38:11 2008 -0500+++ b/parse-desktop-file.sh Mon Mar 16 15:44:52 2009 -0400@@ -1,4 +1,9 @@ #!/bin/bash+#+# Copyright (c) 2008-2009 Foresight Linux+# This file is distributed under the terms of the MIT License.+# A copy is available at http://www.rpath.com/permanent/mit-license.html+# if [ $# -lt 1 ]; then@@ -23,6 +28,4 @@ echo $longDesc echo "####################################################################" -./add-metadata.py "$trove=$label" categories "$categories"-./add-metadata.py "$trove=$label" shortDesc "$shortDesc"-./add-metadata.py "$trove=$label" longDesc "$longDesc"+./add-metadata.py --category "$categories" --short "$shortDesc" --long "$longDesc" "$trove=$label"