summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Ulrich Niedermann <hun@n-dimensional.de>2010-08-05 12:20:06 +0200
committerHans Ulrich Niedermann <hun@n-dimensional.de>2010-08-05 12:20:06 +0200
commit6be8b794942d174b5446e6a030bfabd3436dfeb1 (patch)
treeeef64eb30e1e22f963cd42d307a230babc79016a
parentba42541c45596435812de4bd1e9fba3a9fe9b82b (diff)
downloadfedora-packager-6be8b794942d174b5446e6a030bfabd3436dfeb1.tar.gz
fedora-packager-6be8b794942d174b5446e6a030bfabd3436dfeb1.tar.xz
fedora-packager-6be8b794942d174b5446e6a030bfabd3436dfeb1.zip
Finish initial-merge hookup as fedpkg subcommand
TODO: Remove old command code
-rwxr-xr-xsrc/fedpkg.py8
-rwxr-xr-xsrc/pyfedpkg/initial_merge.py42
2 files changed, 42 insertions, 8 deletions
diff --git a/src/fedpkg.py b/src/fedpkg.py
index b1819f6..01e4e44 100755
--- a/src/fedpkg.py
+++ b/src/fedpkg.py
@@ -12,6 +12,7 @@
import argparse
import pyfedpkg
+import pyfedpkg.initial_merge as initial_merge
import fedora_cert
import os
import sys
@@ -636,9 +637,6 @@ def verrel(args):
sys.exit(1)
print('%s-%s-%s' % (mymodule.module, mymodule.ver, mymodule.rel))
-def initial_merge(args):
- import pyfedpkg.initial_merge
- pyfedpkg.initial_merge.handle_path(args.path)
# THe main code goes here
if __name__ == '__main__':
@@ -939,9 +937,7 @@ packages will be built sequentially.
parser_verrel.set_defaults(command = verrel)
# Initial branch merges
- parser_initial_merge = subparsers.add_parser('initial-merge',
- help = 'FIXME')
- parser_initial_merge.set_defaults(command = initial_merge)
+ parser_initial_merge = initial_merge.get_parser(subparsers)
# Parse the args
args = parser.parse_args()
diff --git a/src/pyfedpkg/initial_merge.py b/src/pyfedpkg/initial_merge.py
index 8a3cf6d..5782740 100755
--- a/src/pyfedpkg/initial_merge.py
+++ b/src/pyfedpkg/initial_merge.py
@@ -16,6 +16,7 @@ via subprocess.Popen, as fedpkg has a bunch of issues with changing
CWD.
"""
+import argparse
import sys
import os
import subprocess
@@ -159,8 +160,8 @@ def handle_path(path=None):
if not path:
path = os.getcwd()
oldcwd = os.getcwd()
- os.chdir(d)
- print "########", "Entering", d, "########"
+ os.chdir(path)
+ print "########", "Entering", path, "########"
handle_curdir()
print "Leaving", os.getcwd()
os.chdir(oldcwd)
@@ -174,5 +175,42 @@ def main(args):
handle_curdir()
+class Action(argparse.Action):
+
+ def __init__(self, *args, **kwargs):
+ super(Action, self).__init__(*args, **kwargs)
+ self.default_value = ['.']
+
+ def __call__(self, parser, namespace, values, option_string=None):
+ print "initial_merge.Action(", self, \
+ ", parser=", parser, \
+ ", namespace=", namespace, \
+ ", values=", values, \
+ ", option_string=", option_string
+ if values:
+ setattr(namespace, self.dest, values)
+ else:
+ setattr(namespace, self.dest, self.default)
+
+
+def fedpkg_command(args):
+ print repr(args)
+ print args
+ print repr(args.__dict__)
+ for repo in args.repos:
+ handle_path(repo)
+
+
+def get_parser(subparsers):
+ sp = subparsers.add_parser('initial-merge',
+ help = 'Do initial-git merge joining branches with identical trees')
+ sp.add_argument('repos', metavar='repo-path',
+ nargs='*', default=['.'],
+ action=Action,
+ help = 'The directories with the repos to initial-merge')
+ sp.set_defaults(command = fedpkg_command)
+ return sp
+
+
if __name__ == '__main__':
main(sys.argv[1:])