diff options
author | Hans Ulrich Niedermann <hun@n-dimensional.de> | 2010-08-05 12:20:06 +0200 |
---|---|---|
committer | Hans Ulrich Niedermann <hun@n-dimensional.de> | 2010-08-05 12:20:06 +0200 |
commit | 6be8b794942d174b5446e6a030bfabd3436dfeb1 (patch) | |
tree | eef64eb30e1e22f963cd42d307a230babc79016a | |
parent | ba42541c45596435812de4bd1e9fba3a9fe9b82b (diff) | |
download | fedora-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-x | src/fedpkg.py | 8 | ||||
-rwxr-xr-x | src/pyfedpkg/initial_merge.py | 42 |
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:]) |