diff options
author | ben <ben@nagy.contact> | 2025-05-03 15:09:20 -0700 |
---|---|---|
committer | ben <ben@nagy.contact> | 2025-05-03 15:09:20 -0700 |
commit | 564229f11b6a6b86a37379a8c6855f5033ce58a2 (patch) | |
tree | 91266a1d94bc8e5d1441d2a9c2f842601ffd57bd | |
parent | 19d17fd83dcfc0052c39fb8f06c34879473faadc (diff) |
remote git scriptsmain
-rw-r--r-- | scripts/util/new-repo.sh | 17 | ||||
-rw-r--r-- | scripts/util/post-receive.sh | 15 |
2 files changed, 32 insertions, 0 deletions
diff --git a/scripts/util/new-repo.sh b/scripts/util/new-repo.sh new file mode 100644 index 0000000..81841b4 --- /dev/null +++ b/scripts/util/new-repo.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +# this is run on remote + +if [ $# -ne 1 ]; then + echo "\nUsage: $0 'new-repo-name'\n" + exit 1 +fi + +echo "\nCreating new bare repository $PWD/$1" + +mkdir "$1" && git init --bare "$1" +chmod -R u+rw "$1"/ +chown -R git:git "$1" + +echo "Adding post-receive hooks\n" +cp /home/git/post-receive.sh "$1"/hooks/post-receive diff --git a/scripts/util/post-receive.sh b/scripts/util/post-receive.sh new file mode 100644 index 0000000..699cce6 --- /dev/null +++ b/scripts/util/post-receive.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# this should be on remote server + +CONF_FILE="/home/git/public_repos.conf" +REPO_NAME=$(basename $(pwd) .git) +PUBLIC_DIR="/var/www/git/$REPO_NAME" + +if grep -qx "$REPO_NAME" "$CONF_FILE"; then + echo "Syncing $REPO_NAME to public directory..." + rsync -a --delete --exclude '.git' /home/git/$REPO_NAME/ "$PUBLIC_DIR/" + echo "Public sync complete." +else + echo "$REPO_NAME is not marked as public. No action taken." +fi |