[yum-git] yum-groups-manager.py

James Antill james at linux.duke.edu
Fri Aug 22 00:10:34 UTC 2008


 yum-groups-manager.py |   24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

New commits:
commit ad5639bc5e391d17d0adda7c061b76e6f890b1f9
Author: James Antill <james at and.org>
Date:   Thu Aug 21 20:07:09 2008 -0400

     Trap IO exceptions, allow just group metadata changes (no package
    name additions/removals).

diff --git a/yum-groups-manager.py b/yum-groups-manager.py
index f1369fa..97b92aa 100755
--- a/yum-groups-manager.py
+++ b/yum-groups-manager.py
@@ -16,8 +16,8 @@ from urlgrabber.progress import TextMeter
 
 def setup_opts():
     version = "0.0.1"
-    vers_txt = "Create groups data version %s" % version
-    usage_txt = "%prog <pkg-wildcard>..."
+    vers_txt = "Manage yum groups data version %s" % version
+    usage_txt = "%prog [pkg-wildcard]..."
     parser =  optparse.OptionParser(usage = usage_txt, version = vers_txt)
 
     parser.add_option("-n", "--name", help="group name")
@@ -115,9 +115,6 @@ def main():
 
     parser = setup_opts()
     (opts, args) = parser.parse_args()
-    if len(args) < 1:
-        parser.print_help()
-        sys.exit(1)
 
     comps = yum.comps.Comps()
 
@@ -185,6 +182,7 @@ def main():
 
     loaded_files = False
     for fname in opts.load:
+      try:
         if not os.path.exists(fname):
             yb.logger.error("File not found: %s" % fname)
             continue
@@ -192,6 +190,9 @@ def main():
             fname = gzip.open(cf)
         comps.add(srcfile=fname)
         loaded_files = True
+      except IOError, e:
+        yb.logger.error(e)
+        sys.exit(50)
 
     if not loaded_files and opts.remove:
         yb.logger.error("Can't remove package(s) when we havn't loaded any")
@@ -235,7 +236,10 @@ def main():
         group.translated_description[lang] = text
 
     try:
-        pkgs     = yb.pkgSack.returnNewestByName(patterns=args)
+        if args:
+            pkgs = yb.pkgSack.returnNewestByName(patterns=args)
+        else:
+            pkgs = []
     except yum.packageSack.PackageSackError, e:
         yb.logger.error(e)
         sys.exit(50)
@@ -263,13 +267,21 @@ def main():
             group.default_packages[pkgname]   = 1
 
     if opts.save:
+      try:
         fo = open(opts.save, "wb")
         fo.write(comps.xml())
         del fo
+      except IOError, e:
+        yb.logger.error(e)
+        sys.exit(50)
     if opts.merge:
+      try:
         fo = open(opts.merge, "wb")
         fo.write(comps.xml())
         del fo
+      except IOError, e:
+        yb.logger.error(e)
+        sys.exit(50)
 
     if (opts.print2stdout or
         (opts.print2stdout is None and not (opts.save or opts.merge))):



More information about the Yum-cvs-commits mailing list