urbit/sh/test-arvo-upgrade-path

73 lines
909 B
Plaintext
Raw Normal View History

#!/usr/bin/env bash
usage() {
local error="$1"
cat >&2 <<EOF
Usage:
$0 FROM_REVISION TO_REVISION
Synopsis:
Test an Arvo OTA update on a fake ship.
Example:
$0 arvo.2019.11.6 arvo.2019.11.8
Error:
-> $error
EOF
exit 1
}
args="$@"
if [[ -z "$args" ]]; then
usage "No arguments specified."
fi
FROM=$1
TO=$2
SHIP="zod"
START=$(git rev-parse HEAD)
cleanup () {
if [ -e ./$PIER/.vere.lock ]
then kill $(< ./$PIER/.vere.lock) || true;
fi
}
trap cleanup EXIT
boot_ship() {
ship=$1
rev=$2
git checkout $rev
urbit -d -F $ship -B bin/brass.pill
}
mount_home() {
pier=$1
herb ./$pier -p hood -d "+hood/mount /=home="
}
update_arvo() {
pier=$1
rev=$2
git checkout $rev
rsync -zr --delete ./pkg/arvo/ ./$pier/home
herb ./$pier -p hood -d "+hood/commit %home"
}
boot_ship $SHIP $FROM
mount_home $SHIP
update_arvo $SHIP $TO
cleanup
git checkout $START