[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