mirror of
https://github.com/GrapheneOS/matrix.grapheneos.org.git
synced 2025-02-23 16:19:53 -05:00

This was lost as part of preserving existing file timestamps instead of using the timestamps from generated files.
55 lines
2.2 KiB
Bash
Executable File
55 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -o errexit -o nounset -o pipefail
|
|
|
|
shopt -s extglob
|
|
|
|
touch lock
|
|
exec {fd}< lock
|
|
if ! flock -n $fd; then
|
|
echo already processing/deploying static files >&2
|
|
exit 1
|
|
fi
|
|
|
|
./process-static $fd
|
|
|
|
remote=root@matrix.grapheneos.org
|
|
|
|
# use last modified timestamps from matrix.grapheneos.org
|
|
rsync -rptcv --chmod=D755,F644 --delete --fsync --preallocate $remote:/srv/element.grapheneos.org/ static-deploy
|
|
rsync -rpcv --chmod=D755,F644 --delete --fsync --preallocate static-tmp/ static-deploy
|
|
for f in static-deploy/**.*(br|gz); do
|
|
touch -r "${f%.*}" "$f"
|
|
done
|
|
|
|
active=$(ssh $remote readlink /srv/element.grapheneos.org)
|
|
|
|
if [[ $active = /srv/element.grapheneos.org_a ]]; then
|
|
target=/srv/element.grapheneos.org_b
|
|
else
|
|
target=/srv/element.grapheneos.org_a
|
|
fi
|
|
|
|
echo active is $active
|
|
echo target is $target
|
|
echo
|
|
|
|
ssh $remote "rm -rf $target && cp -a $active $target"
|
|
rsync -rpcv --chmod=D755,F644 --delete --fsync --preallocate static-deploy/ $remote:$target
|
|
ssh $remote "ln -snf $target /srv/element.grapheneos.org && sync /srv/element.grapheneos.org"
|
|
|
|
echo "root $target;" > nginx-tmp/root_element.grapheneos.org.conf
|
|
rsync -rpcv --chmod=D755,F644 --delete --fsync --preallocate nginx-tmp/{nginx.conf,mime.types,root_element.grapheneos.org.conf,snippets} $remote:/etc/nginx/
|
|
ssh $remote nginx -s reload
|
|
|
|
echo
|
|
echo active is now $target
|
|
|
|
rsync -pcv --chmod=755 --fsync --preallocate remote-backup $remote:/usr/local/bin/
|
|
rsync -pcv --chmod=644 --fsync --preallocate systemd/system/remote-backup.timer $remote:/etc/systemd/system/remote-backup.timer
|
|
rsync -pcv --chmod=644 --fsync --preallocate systemd/system/remote-backup.service $remote:/etc/systemd/system/remote-backup.service
|
|
rsync -pcv --chmod=644 --fsync --preallocate systemd/system/mjolnir.service $remote:/etc/systemd/system/mjolnir.service
|
|
rsync -rpcv --chmod=D755,F644 --delete --fsync --preallocate systemd/system/matterbridge.service.d $remote:/etc/systemd/system/
|
|
rsync -pcv --chmod=644 --fsync --preallocate backup-public-key.txt cloud-archive-password.txt $remote:
|
|
rsync -pcv --chmod=600 --chown postgres:postgres --fsync --preallocate postgres/data/{pg_hba,pg_ident,postgresql}.conf $remote:/var/lib/postgres/data/
|