f28cb287909ed5bedf36fcee31bfa263938f005f
1 #!/bin/bash
3 # when using dash: [: 42: scripts: unexpected operator
5 # Copyright: 2009, gregor herrmann <gregoa@debian.org>
6 # Copyright: 2011, Damyan Ivanov <dmn@debian.org>
7 # License: same as Perl (i.e. Artistic | GPL-1+)
9 # TODO:
10 # - add option to add an additional message
12 warn() {
13 echo "$1" 1>&2
14 }
16 die() {
17 warn "$1"
18 exit 1
19 }
21 ! [ -d .git ] || die "This script is to be run in /git/pkg-perl directory on vasks.debian.org, not in a local clone"
23 MV_TO_ATTIC=
24 RESURRECT=
26 while getopts ar f
27 do
28 case $f in
29 a) MV_TO_ATTIC=1;;
30 r) RESURRECT=1;;
31 *) die "Unsupported command line option -$f"
32 esac
33 done
34 shift `expr $OPTIND - 1`
36 PKG="$1"
37 REPO="packages/$PKG.git"
38 MR_CONFIG="/home/groups/pkg-perl/meta/.mrconfig"
40 [ -n "$PKG" ] || die "$(basename $0) [-a|-r] PACKAGE [ REPO ]"
42 commit_meta() {
43 local FILE=$1
44 local MSG=$2
45 ( cd `dirname $MR_CONFIG` \
46 && unset GIT_DIR \
47 && git commit $FILE -m "$MSG" \
48 && git push origin )
49 }
51 ATTIC="attic"
52 if [ -n "$MV_TO_ATTIC" ]; then
53 echo "Package $PKG to be moved to $ATTIC."
55 read -p "Proceed (y|N)? " PROCEED
56 case "$PROCEED" in
57 y|Y)
58 mkdir -p attic
59 mv $REPO attic/
60 sed -i "/\[packages\/$PKG\]/,/^$/ d" $MR_CONFIG
61 commit_meta .mrconfig "Moved $PKG to $ATTIC"
62 ;;
63 *)
64 ;;
65 esac
66 elif [ -n "$RESURRECT" ]; then
67 echo "Resurrecting package $PKG from $ATTIC."
69 read -p "Move back (y|N)? " BACK
70 case "$BACK" in
71 y|Y)
72 mv $ATTIC/$PKG.git $REPO
73 cat <<EOF >> $MR_CONFIG
75 [$REPO]
76 checkout = git_checkout $PKG
77 EOF
78 commit_meta .mrconfig "Restored $PKG from $ATTIC"
79 ;;
80 *)
81 ;;
82 esac
83 else
84 echo "The following repository will be IRREVERSIBLY deleted: $REPO."
85 echo "Use -a option if you want them moved into $ATTIC"
86 echo "or -r option to resurrect a package from $ATTIC."
88 read -p "Delete (y|N)? " DELETE
89 case "$DELETE" in
90 y|Y)
91 rm -rf $REPO
92 sed -i "/\[packages\/$PKG\]/,/^$/ d" $MR_CONFIG
93 commit_meta .mrconfig "Package $PKG gone forever."
94 ;;
95 *)
96 ;;
97 esac
98 fi
