rclone/fstest/testserver/init.d/TestSia
Florian Klink aed77a8fb2 tree-wide: replace /bin/bash with /usr/bin/env bash
The latter is more portable, while the former only works on systems
where /bin/bash exists (or is symlinked appropriately).
2024-06-11 12:47:47 +01:00

55 lines
1.4 KiB
Bash
Executable file

#!/usr/bin/env bash
set -e
NAME=Sia
# shellcheck disable=SC1090
. "$(dirname "$0")"/docker.bash
# wait until Sia test network is up,
# the Sia renter forms contracts on the blockchain
# and the renter is upload ready
wait_for_sia() {
until curl -A Sia-Agent -s "$1" | grep -q '"ready":true'
do
sleep 5
done
}
export -f wait_for_sia
start() {
# use non-production sia port in test
SIA_CONN="127.0.0.1:39980"
# nebulouslabs/siaantfarm is stale, use up-to-date image
ANTFARM_IMAGE=ivandeex/sia-antfarm:latest
# pull latest antfarm image (dont use local image)
docker pull --quiet $ANTFARM_IMAGE
# start latest antfarm with default config
docker run --rm --detach --name "$NAME" \
--publish "${SIA_CONN}:9980" \
$ANTFARM_IMAGE
# wait until the test network is upload ready
timeout 300 bash -c "wait_for_sia ${SIA_CONN}/renter/uploadready"
# confirm backend type in the generated rclone.conf
echo "type=sia"
# override keys in the Sia section of generated rclone.conf
echo "api_url=http://${SIA_CONN}/"
# hint test harness where to probe for connection
echo "_connect=${SIA_CONN}"
}
stop() {
if status ; then
docker logs "$NAME" >> sia-test.log 2>&1
docker kill "$NAME"
echo "${NAME} stopped"
fi
}
# shellcheck disable=SC1090
. "$(dirname "$0")"/run.bash