Commit 00c62091 authored by James Antill's avatar James Antill

Write man page for yum-groups-manger, tweak the cmd a bit to match docs

parent 78c4c0be
DOCS = repoquery package-cleanup repo-rss yumdownloader yum-builddep yum-changelog reposync \
yum-list-data yum-filter-data yum-verify yum-utils yum-aliases yum-debug-dump yum-versionlock
yum-list-data yum-filter-data yum-verify yum-utils yum-aliases yum-debug-dump yum-versionlock yum-groups-manager
DOCS5 = yum-changelog.conf yum-versionlock.conf
DOCS8 = yum-security yum-complete-transaction
......
.\" yum-groups-manager
.TH "yum-groups-manager" "1" "2008 Aug 23" "" ""
.SH "NAME"
yum-groups-manager - create and edit yum's group metadata
.SH "SYNOPSIS"
\fByum-groups-manager\fP [options] [packages]
.SH "DESCRIPTION"
\fByum-groups-manager\fP is used to create or edit a group metadata file for a
yum repository. This is often much easier than writting/editing the XML by hand.
The \fByum-groups-manager\fP can load an entire file of groups metadata and
either create a new group or edit an existing group and then write all of the
groups metadata back out.
.SH "OPTIONS"
.IP "\fB\-h, \-\-help\fP"
Display a help message, and then quit.
.IP "\fB\-\-version\fP"
Display a version message, and then quit.
.IP "\fB\-n, \-\-name\fP"
The name to lookup/use for the group. If you specify an existing group id, then
the group with that id will have it's name changed to this value.
.IP "\fB\-\-id\fP"
The id to lookup/use for the group. If you don't specify an id, but do specify a
name that doesn't refer to an existing group, then an id for the group is
generated based on the name.
.IP "\fB\-\-description\fP"
The description to use for the group.
.IP "\fB\-\-mandatory\fP"
Store the package names specified within the mandatory section of the specified
group, the default is to use the default section. This overrides the optional
argument.
.IP "\fB\-\-optional\fP"
Store the package names specified within the optional section of the specified
group, the default is to use the default section. This option is overridden by
the mandatory argument.
.IP "\fB\-\-dependencies\fP"
Also include the names of the direct dependencies for each package specified.
.IP "\fB\-\-not\-user\-visible\fP"
Make the group not visible in yum grouplist.
.IP "\fB\-\-user\-visible\fP"
Make the group visible in yum grouplist (this is the default).
.IP "\fB\-\-display\-order\fP"
Change the integer which controls the order groups are presented in, for example
in yum grouplist.
.IP "\fB\-\-load\fP"
Load the groups metadata information from the specified file, before
performing any operataions. This option can be specified multiple times.
.IP "\fB\-\-save\fP"
Save the result to this file, you can specify the name of a file you are
loading from as the data will only be when all the operations have been
performed. This option can also be specified multiple times.
.IP "\fB\-\-merge\fP"
This is the same as loading and saving a file, however the "merge" file is
loaded before any others and saved last.
.IP "\fB\-\-print\fP"
Also print the result to stdout, if saving or merging.
.IP "\fB\-\-remove\fP"
Instead of adding package, remove them. Note that the packages are removed from
all sections (default, mandatory and optional).
.IP "\fB\-\-translated\-name\fP"
This is another name for the group within the locale given. The syntax is
lang:text. Eg. en:my-group-name-in-english
.IP "\fB\-\-translated\-description\fP"
This is another description for the group within the locale given. The syntax is
lang:text. Eg. en:my-group-description-in-english.
.SH "YUM OPTIONS"
The following options are meant to be the same as those with the same name
in yum.
.IP "\fB\-c CONFIG, \-\-config=CONFIG\fP"
.IP "\fB\-\-quiet\fP"
.IP "\fB\-\-verbose\fP"
.IP "\fB\-\-enablerepo\fP"
.IP "\fB\-\-disablerepo\fP"
.IP "\fB\-\-noplugins\fP"
.IP "\fB\-C, \-\-cache\fP"
.IP "\fB\-\-tempcache\fP"
.SH "EXAMPLES"
.IP "Create a new group metadata file, with a group called yum containing all the packages that start with yum:"
\fB yum-groups-manager --name YUM --save groups.xml 'yum*'\fP
.IP "After the above command, load the groups.xml data, work with the yum group, make the group not user visible, and remove the yum-skip-broken and yum-priorities packages from it:"
\fB yum-groups-manager -n YUM --merge groups.xml --remove yum-skip-broken yum-priorities --not-user-visible\fP
.IP "After the above commands, add a description and a translated name to the yum group:"
\fB yum-groups-manager -n YUM --merge groups.xml --description 'This is a group with most of the yum packages in it' --translated-name 'en:yum packages'\fP
.SH "FILES"
\fByum-groups-manager\fP uses the yum libraries for retrieving information and
packages. If no configuration file is specified, the default yum
configuration will be used.
.PP
.nf
/etc/yum.conf
/etc/yum/repos.d/
.fi
.SH "SEE ALSO"
.nf
.I yum (8)
.I yum.conf (5)
http://linux.duke.edu/yum/
.fi
.SH "AUTHORS"
.nf
See the Authors file included with this program.
.fi
.SH "BUGS"
.nf
There are a couple of options you can't set, yet. Most notabley you cannot put
package names into the conditional section (where they are installed with
groupinstall only if another package is installed).
.fi
......@@ -16,7 +16,7 @@ from urlgrabber.progress import TextMeter
def setup_opts():
version = "0.0.1"
vers_txt = "Manage yum groups data version %s" % version
vers_txt = "Manage yum groups metadata version %s" % version
usage_txt = "%prog [pkg-wildcard]..."
parser = optparse.OptionParser(usage = usage_txt, version = vers_txt)
......@@ -29,17 +29,21 @@ def setup_opts():
help="make the package names be in the optional section")
parser.add_option("--dependencies", action="store_true",
help="add the dependencies for this package")
parser.add_option("--not-user-visible", action="store_false", default=True,
parser.add_option("--user-visible", dest="user_visible",
action="store_true", default=None,
help="make this a user visible group (default)")
parser.add_option("--not-user-visible", dest="user_visible",
action="store_false", default=None,
help="make this a non-user visible group")
parser.add_option("--description", help="description for the group")
parser.add_option("--display-order", help="sort order override")
parser.add_option("--load", action="append", default=[],
help="load groups data from file and merge")
parser.add_option("--save",
help="save groups data to file (don't print)")
help="load groups metadata from file")
parser.add_option("--save", action="append", default=[],
help="save groups metadata to file (don't print)")
parser.add_option("--merge",
help="load and save groups data to file (don't print)")
help="load and save groups metadata to file (don't print)")
parser.add_option("--print", dest="print2stdout",
action="store_true", default=None,
help="print the result to stdout")
......@@ -71,7 +75,8 @@ def setup_opts():
help="run from cache only")
parser.add_option("--tempcache", action="store_true",
help="use private cache (default when used as non-root)")
parser.add_option("-c", dest="conffile", help="config file location")
parser.add_option("-c", "--config",
dest="conffile", help="config file location")
return parser
......@@ -179,6 +184,7 @@ def main():
if opts.merge:
opts.load.insert(0, opts.merge)
opts.save.append(opts.merge)
loaded_files = False
for fname in opts.load:
......@@ -228,6 +234,8 @@ def main():
group.description = opts.description
if opts.display_order:
group.display_order = int(opts.display_order)
if opts.user_visible is not None:
group.user_visible = opts.user_visible
for tn in opts.i18nname or []:
lang, text = trans_data(yb, tn)
group.translated_name[lang] = text
......@@ -266,25 +274,16 @@ def main():
else:
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:
for fname in opts.save:
try:
fo = open(opts.merge, "wb")
fo = open(fname, "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))):
if (opts.print2stdout or (opts.print2stdout is None and not opts.save)):
print comps.xml()
if __name__ == "__main__":
......
......@@ -358,6 +358,7 @@ fi
%{_mandir}/man1/yum-builddep.1.*
%{_mandir}/man1/yum-debug-dump.1.*
%{_mandir}/man8/yum-complete-transaction.8.*
%{_mandir}/man1/yum-groups-manager.8.*
%{_mandir}/man1/yumdownloader.1.*
%files -n yum-updateonboot
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment