PortValhalla/scripts/lib/eval-flake.fish

39 lines
1,011 B
Fish
Executable file

#!/bin/env fish
function evalFlake --argument-names config property
set -l argv $argv[3..]
set -l flakePath "$(realpath (status dirname))/../.."
argparse --ignore-unknown "apply=" "fallback=" json -- $argv
if [ -z "$_flag_json" ]
set -a argv --raw
else
set -a argv --json
end
if [ -z "$_flag_apply" ]
set _flag_apply "_: _"
end
if [ -n "$VALHALLA_FLAKE_ROOT" ]
set flakePath "$VALHALLA_FLAKE_ROOT"
end
if [ -n "$config" ]
set config ".$config"
set _flag_apply "_: ($_flag_apply) ((import $(realpath --relative-to (pwd) "$(status dirname)/../../lib/eval-attribute.nix")) _)"
end
PROPERTY="$property" \
nix eval --impure --extra-experimental-features "nix-command flakes" \
--apply "$_flag_apply" \
"$flakePath#valhalla$config" \
$argv
or begin
if [ -n "$_flag_fallback" ]
echo "$_flag_fallback"
else
false
end
end
end