aboutsummaryrefslogtreecommitdiffstats
path: root/roles/jails/22_forge/files/git-shell-commands/rename
diff options
context:
space:
mode:
authorJan Sydänviita <jan@sydanviita.fi>2026-08-20 18:39:12 +0300
committerJan Sydänviita <jan@sydanviita.fi>2026-08-20 18:51:22 +0300
commit76f5c19d272b7f73198751a65d8ca6a5a4864bb1 (patch)
treefb8071125b587d60a7577c0660fc63a233a8fd2d /roles/jails/22_forge/files/git-shell-commands/rename
parent55a67ef35de8b425b83372667de223c46f3307ea (diff)
Add multi user support to forge
Diffstat (limited to 'roles/jails/22_forge/files/git-shell-commands/rename')
-rw-r--r--roles/jails/22_forge/files/git-shell-commands/rename13
1 files changed, 13 insertions, 0 deletions
diff --git a/roles/jails/22_forge/files/git-shell-commands/rename b/roles/jails/22_forge/files/git-shell-commands/rename
index 2d1f73e..8586991 100644
--- a/roles/jails/22_forge/files/git-shell-commands/rename
+++ b/roles/jails/22_forge/files/git-shell-commands/rename
@@ -11,5 +11,18 @@ if [ -d "$2.git" ]; then
echo "Repository $2 already exists"
exit 1
fi
+
+OLD_GROUP="r_$(echo "$1" | sed 's/^\.//' | sha1 -q | cut -c1-14)"
+NEW_GROUP="r_$(echo "$2" | sed 's/^\.//' | sha1 -q | cut -c1-14)"
+
mv "$1.git" "$2.git"
+
+# Rename group
+pw groupmod "$OLD_GROUP" -l "$NEW_GROUP" 2>/dev/null || {
+ pw groupadd "$NEW_GROUP" 2>/dev/null || true
+ pw groupmod "$NEW_GROUP" -m "$USER" 2>/dev/null || true
+ pw groupdel "$OLD_GROUP" 2>/dev/null || true
+}
+
+chown -R "$USER:$NEW_GROUP" "$2.git"
echo "Renamed $1 to $2"