From d00f8fb1791e6f412d4a8898b53cdbe3cac20daa Mon Sep 17 00:00:00 2001 From: "quentin@aristote.fr" Date: Sun, 25 Jan 2026 20:19:01 +0100 Subject: git: add shell-commands --- .../git/shell-commands/repo/src/create_command.sh | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 config/services/git/shell-commands/repo/src/create_command.sh (limited to 'config/services/git/shell-commands/repo/src/create_command.sh') diff --git a/config/services/git/shell-commands/repo/src/create_command.sh b/config/services/git/shell-commands/repo/src/create_command.sh new file mode 100644 index 0000000..ab8bf3f --- /dev/null +++ b/config/services/git/shell-commands/repo/src/create_command.sh @@ -0,0 +1,25 @@ +repo=$(realpath --canonicalize-missing /srv/git/"${args[repo]}") + +if [[ ! "$repo" == /srv/git/* ]] +then + red "Forbidden path." + exit 2 +fi + +subpath=/srv/git +IFS='/' read -ra dirs <<< "${repo#/srv/git/}" +for dir in "${dirs[@]}"; do + subpath="$subpath/$dir" + if [[ ! -d "$subpath" ]] + then + break + fi +done + +mkdir --parents "$repo" +chmod u=rwX,g=,o= --recursive "$subpath" +git init --bare "$repo" + +args[path]="$repo" +args[--tree]=1 +repo_show_command -- cgit v1.2.3