summaryrefslogtreecommitdiff
path: root/scripts/test-morph
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/test-morph')
-rwxr-xr-xscripts/test-morph24
1 files changed, 21 insertions, 3 deletions
diff --git a/scripts/test-morph b/scripts/test-morph
index 2b7fb57d..fb3e2cd4 100755
--- a/scripts/test-morph
+++ b/scripts/test-morph
@@ -27,7 +27,25 @@ set -eu
# distributed builds, which invoke morph as a sub-process.
export PATH="$SRCDIR:$PATH"
-"$SRCDIR/scripts/cmd-filter" "$SRCDIR/morph" --no-default-config \
- --tarball-server= --cache-server= \
- --config="$DATADIR/morph.conf" "$@"
+if [ "$1" = "--find-system-artifact" ]; then
+ shift
+ "$SRCDIR/morph" --no-default-config \
+ --tarball-server= --cache-server= \
+ --config="$DATADIR/morph.conf" --verbose "$@" > $DATADIR/stdout
+
+ ARTIFACT=$(grep "system \S\+-rootfs is cached at" "$DATADIR/stdout" | \
+ sed -nre "s/^.*system \S+-rootfs is cached at (\S+)$/\1/p")
+ rm "$DATADIR/stdout"
+
+ if [ ! -e "$ARTIFACT" ]; then
+ echo "Unable to find rootfs artifact: $ARTIFACT" 1>&2
+ exit 1
+ fi
+
+ echo $ARTIFACT
+else
+ "$SRCDIR/scripts/cmd-filter" "$SRCDIR/morph" --no-default-config \
+ --tarball-server= --cache-server= \
+ --config="$DATADIR/morph.conf" "$@"
+fi