diff options
| author | heqnx <root@heqnx.com> | 2025-05-16 02:33:53 +0300 | 
|---|---|---|
| committer | heqnx <root@heqnx.com> | 2025-05-16 02:33:53 +0300 | 
| commit | cc34ae34b753ebaa13519500fc029e4c43fa025f (patch) | |
| tree | c612d313c82e82895254acca15ca8f8218d06293 /git-shell-commands/create-mirror | |
| parent | c963ccecb4e0414bc1e384655fa3b1b813902975 (diff) | |
| download | cgit-cc34ae34b753ebaa13519500fc029e4c43fa025f.tar.gz cgit-cc34ae34b753ebaa13519500fc029e4c43fa025f.zip | |
updated with validations
Diffstat (limited to 'git-shell-commands/create-mirror')
| -rwxr-xr-x | git-shell-commands/create-mirror | 12 | 
1 files changed, 11 insertions, 1 deletions
| diff --git a/git-shell-commands/create-mirror b/git-shell-commands/create-mirror index 8d2129c..2b1b1dc 100755 --- a/git-shell-commands/create-mirror +++ b/git-shell-commands/create-mirror @@ -8,14 +8,24 @@ if test "${#}" -ne 1; then  fi  REPO="${1}" +if ! [[ "${REPO}" =~ ^https://[a-zA-Z0-9.-]+/[a-zA-Z0-9_/.-]+$ ]]; then +    printf "%s\n" "[err] invalid repository URL" +    exit 1 +fi +  REPO_NAME=$(basename "${REPO}") -REPO_DIR="/srv/git/repos/${REPO_NAME}.git" +if ! [[ "${REPO_NAME}" =~ ^[a-zA-Z0-9_-]+$ ]]; then +    printf "%s\n" "[err] repository name can only contain letters, numbers, underscores, and hyphens" +    exit 1 +fi +REPO_DIR="/srv/git/repos/${REPO_NAME}.git"  if test -d "${REPO_DIR}"; then      printf "%s\n" "[err] repository ${REPO_NAME}.git already exists at ${REPO_DIR}"      exit 1  fi +  TMP_DIR=$(mktemp -d -p /tmp)  trap 'rm -rf "$TMP_DIR"' EXIT |