aboutsummaryrefslogtreecommitdiffstats
path: root/RepSys/commands/getspec.py
diff options
context:
space:
mode:
Diffstat (limited to 'RepSys/commands/getspec.py')
-rw-r--r--RepSys/commands/getspec.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/RepSys/commands/getspec.py b/RepSys/commands/getspec.py
new file mode 100644
index 0000000..a357ef9
--- /dev/null
+++ b/RepSys/commands/getspec.py
@@ -0,0 +1,38 @@
+#!/usr/bin/python
+from RepSys import Error, disable_mirror
+from RepSys.command import *
+from RepSys.layout import package_url
+from RepSys.rpmutil import get_spec
+import getopt
+import sys
+
+HELP = """\
+Usage: repsys getspec [OPTIONS] REPPKGURL
+
+Prints the .spec file of a given package.
+
+Options:
+ -t DIR Use DIR as target for spec file (default is ".")
+ -M Do not use the mirror (use the main repository)
+ -h Show this message
+
+Examples:
+ repsys getspec pkgname
+ repsys getspec svn+ssh://svn.mandriva.com/svn/packages/cooker/pkgname
+"""
+
+def parse_options():
+ parser = OptionParser(help=HELP)
+ parser.add_option("-t", dest="targetdir", default=".")
+ parser.add_option("-M", "--no-mirror", action="callback",
+ callback=disable_mirror)
+ opts, args = parser.parse_args()
+ if len(args) != 1:
+ raise Error, "invalid arguments"
+ opts.pkgdirurl = package_url(args[0])
+ return opts
+
+def main():
+ do_command(parse_options, get_spec)
+
+# vim:et:ts=4:sw=4