2020-11-04 22:15:50 +03:00
|
|
|
{ lib, stdenvNoCC, cacert }:
|
2020-10-27 15:55:49 +03:00
|
|
|
|
|
|
|
{ urbit, herb, arvo ? null, pill, ship }:
|
|
|
|
|
|
|
|
stdenvNoCC.mkDerivation {
|
|
|
|
name = "fake-${ship}";
|
|
|
|
|
|
|
|
buildInputs = [ cacert urbit herb ];
|
|
|
|
|
|
|
|
phases = [ "buildPhase" "installPhase " ];
|
|
|
|
|
|
|
|
buildPhase = ''
|
|
|
|
if ! [ -f "$SSL_CERT_FILE" ]; then
|
|
|
|
header "$SSL_CERT_FILE doesn't exist"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
ARVO=${if arvo == null then "" else arvo}
|
|
|
|
PILL=${pill}
|
|
|
|
SHIP=${ship}
|
|
|
|
|
2020-10-30 12:51:56 +03:00
|
|
|
set -xeuo pipefail
|
|
|
|
|
2020-10-27 15:55:49 +03:00
|
|
|
if [ -z "$ARVO" ]; then
|
2020-11-04 22:15:50 +03:00
|
|
|
urbit ${
|
|
|
|
lib.concatStringsSep " " urbit.meta.arguments
|
|
|
|
} -d -F "$SHIP" -B "$PILL" ./pier
|
2020-10-27 15:55:49 +03:00
|
|
|
else
|
2020-11-04 22:15:50 +03:00
|
|
|
urbit ${
|
|
|
|
lib.concatStringsSep " " urbit.meta.arguments
|
|
|
|
} -d -F "$SHIP" -A "$ARVO" -B "$PILL" ./pier
|
2020-10-27 15:55:49 +03:00
|
|
|
fi
|
|
|
|
|
|
|
|
cleanup () {
|
|
|
|
if [ -f ./pier/.vere.lock ]; then
|
|
|
|
kill $(< ./pier/.vere.lock) || true
|
|
|
|
fi
|
|
|
|
|
|
|
|
set +x
|
|
|
|
}
|
|
|
|
|
|
|
|
trap cleanup EXIT
|
|
|
|
|
|
|
|
check () {
|
|
|
|
[ 3 -eq "$(herb ./pier -d 3)" ]
|
|
|
|
}
|
|
|
|
|
|
|
|
if check && sleep 10 && check; then
|
|
|
|
header "boot success"
|
|
|
|
herb ./pier -p hood -d '+hood/exit'
|
|
|
|
else
|
|
|
|
header "boot failure"
|
|
|
|
kill $(< ./pier/.vere.lock) || true
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
'';
|
|
|
|
|
|
|
|
installPhase = ''
|
|
|
|
mv ./pier $out
|
|
|
|
'';
|
|
|
|
}
|