summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/fedpkg.bash22
-rwxr-xr-xsrc/fedpkg.py21
-rw-r--r--src/pyfedpkg/__init__.py26
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"""