mirror of
https://git.alemi.dev/gitshell.git
synced 2024-11-14 19:59:18 +01:00
31 lines
676 B
Text
31 lines
676 B
Text
|
#!/bin/bash
|
||
|
if [ $# -eq 0 ]; then
|
||
|
echo "[!] no repository specified"
|
||
|
exit
|
||
|
fi
|
||
|
|
||
|
REMOTE="origin" # TODO can we get this as argument but optionally?
|
||
|
|
||
|
if [ $# -eq 1 ]; then
|
||
|
IFS='/' read -ra FRAGS <<< "$1"
|
||
|
REPOSITORY=${FRAGS[-1]}
|
||
|
REPONAME=${FRAGS[-1]}
|
||
|
else
|
||
|
REPOSITORY="$2" # with .git
|
||
|
REPONAME="$2" # without .git
|
||
|
fi
|
||
|
|
||
|
if [[ ! "$REPOSITORY" == *.git ]]; then
|
||
|
REPOSITORY="$REPOSITORY.git"
|
||
|
fi
|
||
|
|
||
|
if [[ "$REPONAME" == *.git ]]; then
|
||
|
REPONAME=$(echo "$REPONAME" | sed 's/\.git$//')
|
||
|
fi
|
||
|
|
||
|
git clone --mirror "$1" "/srv/git/$REPOSITORY" --origin "$REMOTE"
|
||
|
git config -f "/srv/git/$REPOSITORY/config" "remote.$REMOTE.direction" "down"
|
||
|
|
||
|
cd "$REPOSITORY"
|
||
|
/srv/git/.hooks/post-receive
|