blob: 179fbd05634e76fced56028eacbd86815c3ca0e0 (
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 Omni/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 omni: deps update $repo --branch $branch --rev $newrev --attribute sha256=$hash"
chmod -R 755 "$webroot/archive"
fi
done
|