6a9ef14da4a3babfda6273ee1557a8446d57bad0
[pkg-perl/meta.git] / remove-repository
1 #!/bin/bash
2
3 # when using dash: [: 42: scripts: unexpected operator
4
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+)
8
9 # TODO:
10 # - add option to add an additional message
11
12 warn() {
13         echo "$1" 1>&2
14 }
15
16 die() {
17         warn "$1"
18         exit 1
19 }
20
21 ! [ -d .git ] || die "This script is to be run in /git/pkg-perl directory on moszumanska.debian.org, not in a local clone"
22
23 MV_TO_ATTIC=
24 RESURRECT=
25
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`
35
36 PKG="$1"
37 REPO="packages/$PKG.git"
38 MR_CONFIG="/home/groups/pkg-perl/meta/.mrconfig"
39
40 [ -n "$PKG" ] || die "$(basename $0) [-a|-r] PACKAGE [ REPO ]"
41
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 }
50
51 ATTIC="attic"
52 if [ -n "$MV_TO_ATTIC" ]; then
53         echo "Package $PKG to be moved to $ATTIC."
54
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."
68
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
74
75 [packages/$PKG]
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."
87
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