38 lines
821 B
Nix
38 lines
821 B
Nix
{writeShellApplication}:
|
|
writeShellApplication {
|
|
name = "minify";
|
|
text = ''
|
|
set -euo pipefail
|
|
function die { echo "error: $*" >&2; exit 1;}
|
|
function print_help() {
|
|
echo ' Usage: minify <flake> [OPTION]'
|
|
}
|
|
|
|
OPTIONS=()
|
|
POSITIONAL_ARGS=()
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
"help"|"--help"|"-h")
|
|
show_help
|
|
exit 1
|
|
;;
|
|
-*)
|
|
OPTIONS+=("$1")
|
|
;;
|
|
*)
|
|
POSITIONAL_ARGS+=("$1")
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
[[ ! ''${#POSITIONAL_ARGS[@]} -lt 1 ]] \
|
|
|| die "Missing argument: <flake>"
|
|
[[ ! ''${#POSITIONAL_ARGS[@]} -gt 2 ]] \
|
|
|| die "Too many arguments"
|
|
|
|
path=$(realpath "''${POSITIONAL_ARGS[0]}")
|
|
nix eval --impure --argstr path "$path" --file ${./minify.nix} "erg"
|
|
'';
|
|
}
|