From 2294af355a549070544eb49638eda6b05cd61a05 Mon Sep 17 00:00:00 2001 From: Matthias Lucas Jaros Date: Sun, 19 Oct 2025 18:19:14 +0200 Subject: Cleaned up file structure and script --- run | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'run') diff --git a/run b/run index 061b5a3..55e8b55 100755 --- a/run +++ b/run @@ -1,10 +1,16 @@ #!/usr/bin/env fish +set REPO_PERMISSIONS /etc/repo-permissions +set GIT_COMMAND_REGEX "^(git-(?:upload-pack|receive-pack|upload-archive)) '((?:\/[a-zA-Z-]+)+.git)'\$" # echo check for permissions -set -l USER (whoami) -set matcher (string match -r -g "^.*'(.*)'\$" "$argv") -cat /srv/repos/permissions | grep -q -E "^$matcher[1]:$USER" +set -l checkUser (whoami) +set -l matcher (string match -r -g $GIT_COMMAND_REGEX "$argv") +set -l gitCommand $matcher[1] +set -l repo $matcher[2] +set -l repoDir srv repos +set -l repoDir /(string join -n '/' $repoDir (string split '/' $repo)) +cat $REPO_PERMISSIONS | grep -q -E "^$repoDir:$checkUser" or exit 1; # run command -/usr/bin/sudo -u git /usr/bin/git-shell -c "$argv" +/usr/bin/sudo -u git /usr/bin/git-shell -c "$gitCommand '$repoDir'" -- cgit v1.3.1