diff options
author | Frederic Lepied <flepied@mandriva.com> | 2005-12-07 10:43:34 +0000 |
---|---|---|
committer | Frederic Lepied <flepied@mandriva.com> | 2005-12-07 10:43:34 +0000 |
commit | ae13c833c5a6d06e7b575c40d8c0112ffb8f9b4e (patch) | |
tree | 72b1d9e07def1f4861ff14c780b2561da3b6d18b /create-srpm | |
parent | 35e60e09f413fdbe45bf79622744c5d653921bc1 (diff) | |
download | mgarepo-ae13c833c5a6d06e7b575c40d8c0112ffb8f9b4e.tar mgarepo-ae13c833c5a6d06e7b575c40d8c0112ffb8f9b4e.tar.gz mgarepo-ae13c833c5a6d06e7b575c40d8c0112ffb8f9b4e.tar.bz2 mgarepo-ae13c833c5a6d06e7b575c40d8c0112ffb8f9b4e.tar.xz mgarepo-ae13c833c5a6d06e7b575c40d8c0112ffb8f9b4e.zip |
initial revision
Diffstat (limited to 'create-srpm')
-rwxr-xr-x | create-srpm | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/create-srpm b/create-srpm new file mode 100755 index 0000000..cdf8e26 --- /dev/null +++ b/create-srpm @@ -0,0 +1,71 @@ +#!/usr/bin/python + +from RepSys import Error, config +from RepSys.rpmutil import get_srpm +from RepSys.cgiutil import get_targets +import sys +import os +import pwd + +class CmdError(Error): pass + +class CmdIface: + def author_email(self, author): + return config.get("users", author) + + def submit_package(self, packageurl, packagerev, targetname): + pw = pwd.getpwuid(os.getuid()) + username = pw[0] + packager = config.get("users", username) or pw[4] + if not packager: + raise CmdError, "your email was not found" + elif not packagerev: + raise CmdError, "no revision provided" + elif not targetname: + raise CmdError, "no target provided" + else: + targetname = targetname.lower() + for target in get_targets(): + if target.name.lower() == targetname: + break + else: + raise CmdError, "target not found" + try: + tmp = int(packagerev) + except ValueError: + raise CmdError, "invalid revision provided" + for allowed in target.allowed: + if packageurl.startswith(allowed): + break + else: + raise CmdError, "%s is not allowed for this target" \ + % packageurl + get_srpm(packageurl, + revision=packagerev, + targetdirs=target.target, + packager=packager, + revname=1, + svnlog=1, + scripts=target.scripts) + return 1 + + def submit_targets(self): + return [x.name for x in get_targets()] + + +def main(): + + iface = CmdIface() + + print sys.argv + + if len(sys.argv) == 3: + rev = None + target = sys.argv[2] + else: + rev = sys.argv[2] + target = sys.argv[3] + + iface.submit_package(sys.argv[1], rev, target) + +main() |