final: prev: { ensureZfsMounts = prev.writeShellApplication { name = "zfsEnsureMounted"; runtimeInputs = with prev; [ zfs gawk coreutils ]; text = '' #!/bin/sh if [[ "$#" -eq "0" ]]; then echo "no arguments passed" exit 1 fi MOUNTED=$(zfs list -o mountpoint,mounted -H | awk '$NF == "yes" {$NF=""; print $0}' | sed 's/[[:space:]]*$//') MISSING="" for target in "$@"; do if ! echo "$MOUNTED" | grep -Fxq "$target"; then MISSING="$MISSING $target" fi done if [[ -n "$MISSING" ]]; then echo "FAILURE, missing:$MISSING" 1>&2 exit 1 fi ''; }; }