summaryrefslogtreecommitdiff
path: root/jails/gubbhub/gubbshell/delete-repo
diff options
context:
space:
mode:
authorAlbert Cervin <albert@acervin.com>2023-03-19 17:18:01 +0100
committerAlbert Cervin <albert@acervin.com>2023-03-19 17:18:01 +0100
commitc6f2fd36e0a8188e1f6b2a15b292e3d0a5610ac4 (patch)
treed1c21cf0d9a2529154b33438bd91821268be5eb4 /jails/gubbhub/gubbshell/delete-repo
downloaddatagubbe-setup-main.tar.gz
datagubbe-setup-main.tar.xz
datagubbe-setup-main.zip
🎉 Initial commit of infraHEADmain
Diffstat (limited to 'jails/gubbhub/gubbshell/delete-repo')
-rw-r--r--jails/gubbhub/gubbshell/delete-repo33
1 files changed, 33 insertions, 0 deletions
diff --git a/jails/gubbhub/gubbshell/delete-repo b/jails/gubbhub/gubbshell/delete-repo
new file mode 100644
index 0000000..ee8b2c6
--- /dev/null
+++ b/jails/gubbhub/gubbshell/delete-repo
@@ -0,0 +1,33 @@
+#! /usr/bin/env sh
+
+set -euo pipefail
+
+if ! id -nG | grep -qwF "gitadm"; then
+ echo $'\e[31myou are not an admin\e[0m'
+ exit 13
+fi
+
+if [ $# -lt 1 ]; then
+ echo $'\e[31mrepository name is required\e[0m'
+ exit 1
+fi
+
+name="$1"
+path="$(echo "$1" | sed 's/ /-/' | tr '[:upper:]' '[:lower:]').git"
+
+read -p $'\e[33mare you sure you want to delete the repo '"\"$name\" at \"$path\""$'\e[0m \e[1m[no]\e[0m: ' confirm
+
+delete="false"
+case "$(echo "$confirm" | tr '[:upper:]' '[:lower:]')" in
+ y|yes|ye) delete="true" ;;
+esac
+
+if [ "$delete" = "true" ]; then
+ echo -n "deleting repository \"$name\"..."
+ rm -rf "$path"
+ echo "done!"
+fi
+
+# delete the dir if empty
+dir=$(dirname "$path")
+find "$dir" -maxdepth 0 -type d -delete