#!/usr/bin/env fish argparse --move-unknown "r/remote&" "l/local&" "b/build-host=&" "e/elevation-strategy=&" -- $argv set --local target $argv[1] set --local actions $argv[2] switch set --local user_regex '(?[[:graph:]]+)' set --local host_regex '(?[[:alnum:]\-]*)' set --local fqdn_regex "(?$host_regex(?:\.[[:alnum:]\-.]+)?)" string match --quiet --regex --groups-only "(?:$user_regex@)?$fqdn_regex" $target set --local action $actions[1] set --local build_host $_flag_build_host $target set --local elevation_strategy $_flag_elevation_strategy ( if test "$user" = "root" echo none else echo passwordless end ) if set --query _flag_remote echo "warn: flag --remote is the default and can be removed" >&2 end if set --query _flag_build_host; or not set --query _flag_local set --function build_host_arg --build-host $build_host[1] end nh os $action \ --file . nixosConfigurations.{$host} \ $build_host_arg \ --use-substitutes \ --target-host {$target} \ --show-trace \ --elevation-strategy $elevation_strategy[1] \ $argv_opts