diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/fedpkg.bash | 22 | ||||
-rwxr-xr-x | src/fedpkg.py | 21 | ||||
-rw-r--r-- | src/pyfedpkg/__init__.py | 26 |
3 files changed, 60 insertions, 9 deletions
diff --git a/src/fedpkg.bash b/src/fedpkg.bash index c6d757e..117bd23 100644 --- a/src/fedpkg.bash +++ b/src/fedpkg.bash @@ -36,8 +36,8 @@ _fedpkg() local options="--help -v -q" local options_value="--user --path" local commands="build chain-build ci clean clog clone co commit compile diff gimmespec giturl help \ - import install lint local mockbuild new new-sources patch prep pull push scratch-build sources srpm \ - switch-branch tag tag-request unused-patches update upload verrel" + import install lint local mockbuild new new-sources patch prep pull push retire scratch-build sources \ + srpm switch-branch tag tag-request unused-patches update upload verrel" # parse main options and get command @@ -147,6 +147,10 @@ _fedpkg() prep) options_arch="--arch" ;; + retire) + options="--push" + after_more=true + ;; scratch-build) options="--nowait --background" options_target="--target" @@ -156,6 +160,13 @@ _fedpkg() sources) options_dir="--outdir" ;; + srpm) + options="--md5" + ;; + switch-branch) + options="--list" + after="branch" + ;; tag) options="--clog --force --list --delete" options_string="--message" @@ -165,13 +176,6 @@ _fedpkg() tag-request) options_string="--desc --build" ;; - srpm) - options="--md5" - ;; - switch-branch) - options="--list" - after="branch" - ;; upload|new-sources) after="file" after_more=true diff --git a/src/fedpkg.py b/src/fedpkg.py index 20dc774..5f3219e 100755 --- a/src/fedpkg.py +++ b/src/fedpkg.py @@ -630,6 +630,15 @@ def push(args): log.error('Could not push: %s' % e) sys.exit(1) +def retire(args): + try: + pyfedpkg.retire(args.path, args.msg) + except pyfedpkg.FedpkgError, e: + log.error('Could not retire package: %s' % e) + sys.exit(1) + if args.push: + push() + def scratchbuild(args): # A scratch build is just a build with --scratch args.scratch = True @@ -1081,6 +1090,18 @@ packages will be built sequentially. help = 'Push changes to remote repository') parser_push.set_defaults(command = push) + # retire stuff + parser_retire = subparsers.add_parser('retire', + help = 'Retire a package') + parser_retire.add_argument('-p', '--push', + default = False, + action = 'store_true', + help = 'Push changes to remote repository') + parser_retire.add_argument('msg', + nargs = '?', + help = 'Message for retiring the package') + parser_retire.set_defaults(command = retire) + # scratch build parser_scratchbuild = subparsers.add_parser('scratch-build', help = 'Request scratch build', diff --git a/src/pyfedpkg/__init__.py b/src/pyfedpkg/__init__.py index 474053c..d2783d6 100644 --- a/src/pyfedpkg/__init__.py +++ b/src/pyfedpkg/__init__.py @@ -696,6 +696,32 @@ def push(path=None): _run_command(cmd, cwd=path) return +def retire(path, message=None): + """Delete all tracked files and commit a new dead.package file + + Use optional message in commit. + + Runs the commands and returns nothing + + """ + + cmd = ['git', 'rm', '-rf', path] + _run_command(cmd, cwd=path) + + if not message: + msg = 'Package is retired' + + fd = open(os.path.join(path, 'dead.package'), 'w') + fd.write(msg) + fd.close() + + cmd = ['git', 'add', os.path.join(path, 'dead.package')] + _run_command(cmd, cwd=path) + + commit(path, msg) + + return + def sources(path, outdir=None): """Download source files""" |