diff options
Diffstat (limited to 'roles/jails/22_forge/files/git-shell-commands/rename')
| -rw-r--r-- | roles/jails/22_forge/files/git-shell-commands/rename | 13 |
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" |
