58ff8960cd
This is not like, perfect, since it is a manual operation, but we can automate it in the future. rclone is used, since it seems like awscli is not (obviously at least?) able to sync directories such that old things are deleted, and rclone does this thing properly. Fixes: https://git.lix.systems/lix-project/meta/issues/2 Change-Id: Ia6a46d861342a6d29b22f981ba4e35e79f79e60e
40 lines
1.4 KiB
Bash
Executable file
40 lines
1.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
cd "$(dirname -- "$0")/.."
|
|
|
|
# This script uploads the Lix manual to the Lix s3 store.
|
|
# It expects credentials to be configured like so:
|
|
#
|
|
# ~/.aws/credentials:
|
|
#
|
|
# [default]
|
|
# aws_access_key_id = SOMEACCESSKEY
|
|
# aws_secret_access_key = SOMESECRETKEY
|
|
#
|
|
# default can also be replaced by some other string if AWS_PROFILE is set in
|
|
# environment.
|
|
#
|
|
# See: https://rclone.org/s3/#authentication
|
|
#
|
|
# To obtain such a key, log into the garage host and run:
|
|
# (obtain GARAGE_RPC_SECRET into environment perhaps by systemctl cat garage)
|
|
# garage key create SOME-KEY-NAME
|
|
# garage bucket allow --read --write docs --key SOME-KEY-NAME
|
|
|
|
if [[ ! -f result-doc/share/doc/nix/manual/index.html ]]; then
|
|
echo -e "result-doc does not appear to contain a Lix manual. You can build one with:\n nix build '.#default^*'" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# --checksum: https://rclone.org/s3/#avoiding-head-requests-to-read-the-modification-time
|
|
# By default rclone uses the modification time to determine if something needs
|
|
# syncing. This is actually very bad for our use case, since we have small
|
|
# files that have meaningless (Unix epoch) local modification time data. We can
|
|
# make it go both 16x faster and more correct by using md5s instead.
|
|
rclone \
|
|
--config doc/manual/rclone.conf \
|
|
-vv \
|
|
sync \
|
|
--checksum \
|
|
result-doc/share/doc/nix/manual/ lix-docs:docs/manual/nightly/
|