All pastes #1362537 Raw Edit

Miscellany

public diff v1 · immutable
#1362537 ·published 2009-03-16 19:46 UTC
rendered paste body
diff -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"