diff --git a/Makefile b/Makefile index 7173fcd07e..7469f3c3aa 100644 --- a/Makefile +++ b/Makefile @@ -21,6 +21,7 @@ test: pills: sh/update-solid-pill sh/update-brass-pill + sh/update-ivory-pill clean: rm -rf ./out ./work diff --git a/nix/ops/default.nix b/nix/ops/default.nix index 7412ecb58d..0a56254637 100644 --- a/nix/ops/default.nix +++ b/nix/ops/default.nix @@ -48,4 +48,9 @@ rec { pier = zod; }; + ivory = import ./ivory { + inherit arvo pkgs tlon deps debug; + pier = zod; + }; + } diff --git a/nix/ops/ivory/builder.sh b/nix/ops/ivory/builder.sh new file mode 100755 index 0000000000..1e929a84fd --- /dev/null +++ b/nix/ops/ivory/builder.sh @@ -0,0 +1,22 @@ +source $stdenv/setup + +set -ex + +cp -r $PIER ./pier +chmod -R u+rw ./pier + +$URBIT -d ./pier + +cleanup () { + if [ -e ./pier/.vere.lock ] + then kill $(< ./pier/.vere.lock) || true; + fi +} + +trap cleanup EXIT + +herb ./pier -P ivory.pill -d '+ivory' + +mv ivory.pill $out + +set +x diff --git a/nix/ops/ivory/default.nix b/nix/ops/ivory/default.nix new file mode 100644 index 0000000000..059bc2902f --- /dev/null +++ b/nix/ops/ivory/default.nix @@ -0,0 +1,19 @@ +{ pkgs, tlon, deps, pier, arvo, debug }: + +let + + urbitExe = if debug + then "${tlon.urbit-debug}/bin/urbit-debug -g" + else "${tlon.urbit}/bin/urbit"; + +in + +pkgs.stdenv.mkDerivation rec { + name = "ivory"; + builder = ./builder.sh; + buildInputs = [ tlon.herb pkgs.coreutils ]; + + URBIT = urbitExe; + PIER = pier; + ARVO = arvo; +} diff --git a/sh/update-ivory-pill b/sh/update-ivory-pill new file mode 100755 index 0000000000..826797a0ef --- /dev/null +++ b/sh/update-ivory-pill @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -ex + +pkg=$(nix-build nix/ops -A ivory --no-out-link) +cp $pkg bin/ivory.pill