aboutsummaryrefslogtreecommitdiffstats
path: root/MgaRepo/commands
diff options
context:
space:
mode:
Diffstat (limited to 'MgaRepo/commands')
-rw-r--r--MgaRepo/commands/authoremail.py1
-rw-r--r--MgaRepo/commands/buildrpm.py43
-rw-r--r--MgaRepo/commands/changed.py1
-rw-r--r--MgaRepo/commands/ci.py1
-rw-r--r--MgaRepo/commands/clone.py53
-rw-r--r--MgaRepo/commands/co.py1
-rw-r--r--MgaRepo/commands/create.py1
-rw-r--r--MgaRepo/commands/editlog.py1
-rw-r--r--MgaRepo/commands/getspec.py1
-rw-r--r--MgaRepo/commands/getsrpm.py4
-rw-r--r--MgaRepo/commands/github.py56
-rw-r--r--MgaRepo/commands/log.py13
-rw-r--r--MgaRepo/commands/maintdb.py4
-rw-r--r--MgaRepo/commands/markrelease.py1
-rw-r--r--MgaRepo/commands/obsolete.py1
-rw-r--r--MgaRepo/commands/patchspec.py1
-rw-r--r--MgaRepo/commands/putsrpm.py1
-rw-r--r--MgaRepo/commands/rpmlog.py11
-rw-r--r--MgaRepo/commands/submit.py11
-rw-r--r--MgaRepo/commands/switch.py1
-rw-r--r--MgaRepo/commands/sync.py1
21 files changed, 30 insertions, 178 deletions
diff --git a/MgaRepo/commands/authoremail.py b/MgaRepo/commands/authoremail.py
index 27ffaf5..fcb8a86 100644
--- a/MgaRepo/commands/authoremail.py
+++ b/MgaRepo/commands/authoremail.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
from MgaRepo import Error, config
from MgaRepo.command import *
import sys
diff --git a/MgaRepo/commands/buildrpm.py b/MgaRepo/commands/buildrpm.py
deleted file mode 100644
index a9230e4..0000000
--- a/MgaRepo/commands/buildrpm.py
+++ /dev/null
@@ -1,43 +0,0 @@
-from MgaRepo.command import do_command
-from MgaRepo.rpmutil import build_rpm
-from optparse import *
-
-HELP = """\
-Usage: mgarepo buildrpm [OPTIONS]
-
-Builds the binary RPM(s) (.rpm) file(s) of a given package.
-
-Options:
- -bX Build stage option, where X is stage, default is -bb
- -I Don't automatically try install missing build dependencies
- -L Disable rpmlint check of packages built
- -P USER Define the RPM packager information to USER
- -d Use DNF
- -q Quiet build output
- -s Jump to specific build stage (--short-circuit)
- -l Use subversion log to build rpm %changelog
- -F Do not use full name & email for packagers in %changelog
- -- Options and arguments following will be passed to rpmbuild
-
-"""
-
-def parse_options():
- parser = OptionParser(HELP)
- parser.add_option("-b", dest="build_cmd", default="a")
- parser.add_option("-I", dest="installdeps", action="store_false", default=True)
- parser.add_option("-L", dest="rpmlint", action="store_false", default=True)
- parser.add_option("-P", dest="packager", default="")
- parser.add_option("-d", "--dnf", dest="use_dnf", action="store_true", default=False)
- parser.add_option("-q", "--quiet", dest="verbose", action="store_false", default=True)
- parser.add_option("-s", "--short-circuit", dest="short_circuit", action="store_true", default=False)
- parser.add_option("-l", dest="svnlog", action="store_true", default=False)
- parser.add_option("-F", dest="fullnames", default=True,
- action="store_false")
- opts, args = parser.parse_args()
- opts.rpmargs = parser.rargs
- return opts
-
-def main():
- do_command(parse_options, build_rpm)
-
-# vim:et:ts=4:sw=4
diff --git a/MgaRepo/commands/changed.py b/MgaRepo/commands/changed.py
index 493e9af..4ac16bc 100644
--- a/MgaRepo/commands/changed.py
+++ b/MgaRepo/commands/changed.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
from MgaRepo import Error, disable_mirror
from MgaRepo.command import *
from MgaRepo.layout import package_url
diff --git a/MgaRepo/commands/ci.py b/MgaRepo/commands/ci.py
index 24e7923..e64ac4e 100644
--- a/MgaRepo/commands/ci.py
+++ b/MgaRepo/commands/ci.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
from MgaRepo.command import *
from MgaRepo.rpmutil import commit
diff --git a/MgaRepo/commands/clone.py b/MgaRepo/commands/clone.py
deleted file mode 100644
index 88279db..0000000
--- a/MgaRepo/commands/clone.py
+++ /dev/null
@@ -1,53 +0,0 @@
-from MgaRepo import Error
-from MgaRepo.command import *
-from MgaRepo.rpmutil import clone
-import getopt
-import sys
-
-HELP = """\
-Usage: mgarepo co [OPTIONS] URL [LOCALPATH]
-
-Clone the package source from the Mageia repository.
-
-If the 'mirror' option is enabled, the package is obtained from the mirror
-repository.
-
-You can specify the distro branch to checkout from by using distro/pkgname.
-
-Options:
- -d The distribution branch to checkout from
- -b The package branch
- -M Do not use the mirror (use the main repository)
- -h Show this message
- -F Do not convert svn usernames to full name & email
-
-Examples:
- mgarepo co pkgname
- mgarepo co -d 1 pkgname
- mgarepo co 1/pkgame
- mgarepo co http://repos/svn/cnc/snapshot/foo
- mgarepo co http://repos/svn/cnc/snapshot/foo foo-pkg
-"""
-
-def parse_options():
- parser = OptionParser(help=HELP)
- parser.add_option("--distribution", "-d", dest="distro", default=None)
- parser.add_option("--branch", "-b", dest="branch", default=None)
- parser.add_option("-F", dest="fullnames", default=True,
- action="store_false")
- opts, args = parser.parse_args()
- if len(args) not in (1, 2):
- raise Error("invalid arguments")
- # here we don't use package_url in order to notify the user we are
- # using the mirror
- opts.pkgdirurl = args[0]
- if len(args) == 2:
- opts.path = args[1]
- else:
- opts.path = None
- return opts
-
-def main():
- do_command(parse_options, clone)
-
-# vim:et:ts=4:sw=4
diff --git a/MgaRepo/commands/co.py b/MgaRepo/commands/co.py
index b257f21..a6911cc 100644
--- a/MgaRepo/commands/co.py
+++ b/MgaRepo/commands/co.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
from MgaRepo import Error, disable_mirror
from MgaRepo.command import *
from MgaRepo.rpmutil import checkout
diff --git a/MgaRepo/commands/create.py b/MgaRepo/commands/create.py
index a947fed..e9a89e8 100644
--- a/MgaRepo/commands/create.py
+++ b/MgaRepo/commands/create.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
from MgaRepo import Error
from MgaRepo.command import *
from MgaRepo.layout import package_url
diff --git a/MgaRepo/commands/editlog.py b/MgaRepo/commands/editlog.py
index 9e82a38..163651d 100644
--- a/MgaRepo/commands/editlog.py
+++ b/MgaRepo/commands/editlog.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
from MgaRepo import Error
from MgaRepo.command import *
from MgaRepo.layout import package_url
diff --git a/MgaRepo/commands/getspec.py b/MgaRepo/commands/getspec.py
index 884e919..e1ba4c4 100644
--- a/MgaRepo/commands/getspec.py
+++ b/MgaRepo/commands/getspec.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
from MgaRepo import Error, disable_mirror
from MgaRepo.command import *
from MgaRepo.layout import package_url
diff --git a/MgaRepo/commands/getsrpm.py b/MgaRepo/commands/getsrpm.py
index caadfeb..82bd626 100644
--- a/MgaRepo/commands/getsrpm.py
+++ b/MgaRepo/commands/getsrpm.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
#
# This program will extract given version/revision of the named package
# from the Conectiva Linux repository system.
@@ -29,7 +30,6 @@ Options:
-n Rename the package to include the revision number
-l Use subversion log to build rpm %changelog
-T FILE Template to be used to generate the %changelog
- -F Do not use full name & email for packagers in %changelog
-M Do not use the mirror (use the main repository)
-h Show this message
--strict Check if the given revision contains changes in REPPKGURL
@@ -76,8 +76,6 @@ def parse_options():
parser.add_option("-n", dest="revname", action="store_true")
parser.add_option("-l", dest="svnlog", action="store_true")
parser.add_option("-T", dest="template", type="string", default=None)
- parser.add_option("-F", dest="fullnames", default=True,
- action="store_false")
parser.add_option("-M", "--no-mirror", action="callback",
callback=disable_mirror)
parser.add_option("--strict", dest="strict", default=False,
diff --git a/MgaRepo/commands/github.py b/MgaRepo/commands/github.py
deleted file mode 100644
index 7d787e4..0000000
--- a/MgaRepo/commands/github.py
+++ /dev/null
@@ -1,56 +0,0 @@
-from MgaRepo import Error
-from MgaRepo.command import *
-from MgaRepo.GitHub import GitHub
-import getopt
-import sys
-
-HELP = """\
-Usage: mgarepo github [OPTIONS] URL
-
-Import a git-svn cloned repository to github
-
-Options:
- -h Show this message
-
-Examples:
- mgarepo github import existingpkg
- mgarepo github import svn://svn.mageia.org/svn/packages/cauldron/existingpkg
-"""
-def github_clone(pkg, **kwargs):
- github = GitHub()
- github.clone_repository(pkg)
-
-def github_import(target=".", **kwargs):
- github = GitHub()
- github.import_package(target)
-
-def github_delete(pkg, **kwargs):
- github = GitHub()
- github.delete_repository(pkg)
-
-def parse_options():
- parser = OptionParser(help=HELP)
- opts, args = parser.parse_args()
- if len(args) < 1:
- raise Error("invalid arguments")
- opts.func = globals().get("github_"+args[0], None)
- if args[0] == "import":
- if len(args) > 1:
- opts.target = args[1]
- elif args[0] == "delete" or args[0] == "clone":
- opts.pkg = args[1]
- else:
- raise Error("invalid arguments: %s" % str(args))
- return opts
-
-def dispatch_cmd(*args, **kwargs):
- func = kwargs.pop("func", None)
- if func:
- func(**kwargs)
- else:
- raise Error("invalid command: %s %s" % (sys.argv[0], sys.argv[1]))
-
-def main():
- do_command(parse_options, dispatch_cmd)
-
-# vim:et:ts=4:sw=4
diff --git a/MgaRepo/commands/log.py b/MgaRepo/commands/log.py
index 6d742de..2181125 100644
--- a/MgaRepo/commands/log.py
+++ b/MgaRepo/commands/log.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
from MgaRepo import config, mirror, disable_mirror
from MgaRepo.command import *
from MgaRepo.layout import package_url, checkout_url
@@ -5,8 +6,6 @@ from MgaRepo.rpmutil import sync
from MgaRepo.util import execcmd
import sys
import os
-import subprocess
-import shlex
HELP = """\
Usage: mgarepo log [OPTIONS] [PACKAGE]
@@ -58,13 +57,9 @@ def svn_log(pkgdirurl, verbose=False, limit=None, revision=None, releases=None):
args.append("-r")
args.append(revision)
if os.isatty(sys.stdin.fileno()):
- pager = shlex.split(os.environ.get("PAGER", "less"))
- p = subprocess.Popen(args, stdout=subprocess.PIPE)
- p2 = subprocess.Popen(pager, stdin=p.stdout)
- p2.wait()
- p.wait()
- else:
- execcmd(args, show=True)
+ args.append("| less")
+ rawcmd = " ".join(args)
+ execcmd(rawcmd, show=True)
def main():
do_command(parse_options, svn_log)
diff --git a/MgaRepo/commands/maintdb.py b/MgaRepo/commands/maintdb.py
index 0bd4d56..9a97be8 100644
--- a/MgaRepo/commands/maintdb.py
+++ b/MgaRepo/commands/maintdb.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
from MgaRepo import Error, config
from MgaRepo.command import *
from MgaRepo.util import execcmd, get_helper
@@ -32,7 +33,8 @@ def parse_options():
def maintdb(maintdb_args):
host = config.get("maintdb", "host", "maintdb.mageia.org")
maintdb_helper = get_helper("maintdb")
- command = ["ssh", host, maintdb_helper] + maintdb_args
+ cmd_args = ' '.join(maintdb_args)
+ command = "ssh %s %s %s" % (host, maintdb_helper, cmd_args)
execcmd(command, show=True)
sys.exit(0)
diff --git a/MgaRepo/commands/markrelease.py b/MgaRepo/commands/markrelease.py
index 6fb5bbf..534d87f 100644
--- a/MgaRepo/commands/markrelease.py
+++ b/MgaRepo/commands/markrelease.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
#
# This program will append a release to the Conectiva Linux package
# repository system. It's meant to be a startup system to include
diff --git a/MgaRepo/commands/obsolete.py b/MgaRepo/commands/obsolete.py
index 9477721..04d8240 100644
--- a/MgaRepo/commands/obsolete.py
+++ b/MgaRepo/commands/obsolete.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
#
# This program will try to patch a spec file from a given package url.
#
diff --git a/MgaRepo/commands/patchspec.py b/MgaRepo/commands/patchspec.py
index 2fd8da4..dfe54dc 100644
--- a/MgaRepo/commands/patchspec.py
+++ b/MgaRepo/commands/patchspec.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
#
# This program will try to patch a spec file from a given package url.
#
diff --git a/MgaRepo/commands/putsrpm.py b/MgaRepo/commands/putsrpm.py
index aa4043c..242423b 100644
--- a/MgaRepo/commands/putsrpm.py
+++ b/MgaRepo/commands/putsrpm.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
from MgaRepo import Error
from MgaRepo.command import *
from MgaRepo.layout import package_url
diff --git a/MgaRepo/commands/rpmlog.py b/MgaRepo/commands/rpmlog.py
index 693fe8b..88dfc4b 100644
--- a/MgaRepo/commands/rpmlog.py
+++ b/MgaRepo/commands/rpmlog.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
#
# This program will convert the output of "svn log" to be suitable
# for usage in an rpm %changelog session.
@@ -24,7 +25,6 @@ Options:
-p Append changelog found in .spec file
-s Sort changelog entries, even from the old log
-M Do not use the mirror (use the main repository)
- -F Do not use full name & email for packagers where available
-h Show this message
Examples:
@@ -45,15 +45,13 @@ def parse_options():
action="store_true")
parser.add_option("-M", "--no-mirror", action="callback",
callback=disable_mirror)
- parser.add_option("-F", dest="fullnames", default=True,
- action="store_false")
opts, args = parser.parse_args()
if len(args) != 1:
raise Error("invalid arguments")
opts.pkgdirurl = layout.package_url(args[0])
return opts
-def rpmlog(pkgdirurl, revision, size, template, oldlog, usespec, sort, fullnames):
+def rpmlog(pkgdirurl, revision, size, template, oldlog, usespec, sort):
another = None
if usespec:
svn = SVN()
@@ -61,10 +59,7 @@ def rpmlog(pkgdirurl, revision, size, template, oldlog, usespec, sort, fullnames
rawspec = svn.cat(specurl, rev=revision)
spec, another = split_spec_changelog(StringIO(rawspec))
newlog = get_changelog(pkgdirurl, another=another, rev=revision,
- size=size, sort=sort, template=template, oldlog=oldlog, fullnames=fullnames)
- # make sure stdout support unicode, otherwise it'll croak when encountered
- if not "UTF-8" in sys.stdout.encoding:
- sys.stdout = open(sys.stdout.fileno(), mode="w", encoding="UTF-8")
+ size=size, sort=sort, template=template, oldlog=oldlog)
sys.stdout.writelines(newlog)
def main():
diff --git a/MgaRepo/commands/submit.py b/MgaRepo/commands/submit.py
index 665b98a..9f05dca 100644
--- a/MgaRepo/commands/submit.py
+++ b/MgaRepo/commands/submit.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
from MgaRepo import Error, config, layout, mirror
from MgaRepo.svn import SVN
from MgaRepo.command import *
@@ -159,10 +160,9 @@ def list_targets(option, opt, val, parser):
raise Error("no submit host defined in mgarepo.conf")
createsrpm = get_helper("create-srpm")
#TODO make it configurable
- args = ["ssh", host, createsrpm, "--list"]
- execcmd(args, show=true)
- sys.exit(0) # it is invoked via optparse callback, thus we need to
- # force ending the script
+ command = "ssh %s %s --list" % (host, createsrpm)
+ execcmd(command, show=True)
+ sys.exit(0)
def submit(urls, target, define=[], submithost=None, atonce=False, sid=None):
if submithost is None:
@@ -197,7 +197,8 @@ def submit(urls, target, define=[], submithost=None, atonce=False, sid=None):
else:
cmdsargs.extend((baseargs + [url]) for url in urls)
for cmdargs in cmdsargs:
- status, output = execcmd(cmdargs)
+ command = subprocess.list2cmdline(cmdargs)
+ status, output = execcmd(command)
if status == 0:
print("Package submitted!")
else:
diff --git a/MgaRepo/commands/switch.py b/MgaRepo/commands/switch.py
index 8a33969..ccca76e 100644
--- a/MgaRepo/commands/switch.py
+++ b/MgaRepo/commands/switch.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
from MgaRepo.command import *
from MgaRepo.rpmutil import switch
diff --git a/MgaRepo/commands/sync.py b/MgaRepo/commands/sync.py
index a56a36e..54f5635 100644
--- a/MgaRepo/commands/sync.py
+++ b/MgaRepo/commands/sync.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python
from MgaRepo.command import *
from MgaRepo.rpmutil import sync