blob: 7b0b7b3bd4a300a0e2ffbf3f24b442fa76c50210 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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 oldrev 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 --brach $branch --rev $newrev --attribute sha256=$hash"
chmod -R 755 "$webroot/archive"
fi
done
|