summaryrefslogtreecommitdiff
path: root/Biz/Cloud/post-receive.sh
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2024-04-01 15:19:49 -0400
committerBen Sima <ben@bsima.me>2024-04-01 15:19:49 -0400
commit2d40ec3a03f4684f6fabba7dee2981c992a13785 (patch)
tree1edc1522fd5eb8e6d20b1b4dbde89f3e49ad9e51 /Biz/Cloud/post-receive.sh
parentdb373a8c727cad91d375b40a6c70b11ed73bdafb (diff)
Rename .bash files to .sh
I was already using .sh to refer to shell scripts. When I added .bash, I didn't realize that the linter was set to act on .sh files and not .bash files, so all of these bash scripts escaped the linter. This commit renames them to .sh, removes the .bash extension support from Biz.Namespace, and fixes all the reported shellcheck errors.
Diffstat (limited to 'Biz/Cloud/post-receive.sh')
-rwxr-xr-xBiz/Cloud/post-receive.sh39
1 files changed, 39 insertions, 0 deletions
diff --git a/Biz/Cloud/post-receive.sh b/Biz/Cloud/post-receive.sh
new file mode 100755
index 0000000..cedbf90
--- /dev/null
+++ b/Biz/Cloud/post-receive.sh
@@ -0,0 +1,39 @@
+#!/usr/bin/env bash
+#
+# creates an archive of a git repo on push
+#
+# unfortunately the nixos gitolite module does not copy the 'commonHooks'
+# properly, so we have to manually deploy this like so:
+#
+# scp Biz/Cloud/post-receive \
+# root@simatime.com:/srv/git/.gitolite/hooks/common/post-receive
+#
+# One time only:
+#
+# ssh root@simatime.com "sudo -u git gitolite setup -ho"
+#
+# Also on first-time setup, might need to manually check the permissions are
+# correct on $webroot/archive or wherever else.
+#
+set -euo pipefail
+while read -r _ newrev refname
+do
+ if [[ -e ./git-daemon-export-ok ]]
+ then
+ repo=$(basename "$PWD" | sed 's/.git//g')
+ branch=$(git rev-parse --symbolic --abbrev-ref "$refname")
+ webroot="/srv/www/simatime.com/"
+ outdir="$webroot/archive/$repo/$branch"
+ mkdir -p "$outdir"
+ echo " making: https://simatime.com/archive/$repo/$branch/$newrev.tar.gz"
+ git archive "$branch" --prefix "$repo-$branch/" --format tar \
+ | gzip > "$outdir/$newrev.tar.gz"
+ echo " making: https://simatime.com/archive/$repo/$branch/$newrev.sha256"
+ hash=$(nix-prefetch-url --unpack file://"$outdir"/"$newrev".tar.gz 2>/dev/null)
+ echo "$hash" > "$outdir/$newrev.sha256"
+ echo " commit: $newrev"
+ echo " sha256: $hash"
+ echo " in biz: deps update $repo --branch $branch --rev $newrev --attribute sha256=$hash"
+ chmod -R 755 "$webroot/archive"
+ fi
+done