mirror of
https://github.com/LnL7/nix-darwin.git
synced 2025-03-13 20:30:02 +00:00
darwin-option: improve default/example printing
This commit is contained in:
parent
eb1a841b4f
commit
a8847b28e7
1 changed files with 17 additions and 8 deletions
|
@ -4,20 +4,25 @@ set -o pipefail
|
|||
export PATH=@path@:$PATH
|
||||
|
||||
evalNix() {
|
||||
nix-instantiate --eval --strict -E "with import <darwin> {}; $@"
|
||||
nix-instantiate --eval --strict -E "with import <darwin> {}; $*"
|
||||
}
|
||||
|
||||
evalAttrs() {
|
||||
evalNix "builtins.concatStringsSep \"\n\" (builtins.attrNames $@)"
|
||||
evalNix "builtins.concatStringsSep \"\\n\" (builtins.attrNames $*)"
|
||||
}
|
||||
|
||||
evalOpt() {
|
||||
evalNix "options.$option.$@" 2>/dev/null
|
||||
evalNix "options.$option.$*" 2>/dev/null
|
||||
}
|
||||
|
||||
evalOptText() {
|
||||
eval printf "$(evalNix "options.$option.$*" 2>/dev/null)" 2>/dev/null
|
||||
echo
|
||||
}
|
||||
|
||||
showSyntax() {
|
||||
echo "$0: <option>" >&2
|
||||
eval printf $(evalAttrs "options")
|
||||
eval printf "$(evalAttrs "options")"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
@ -45,15 +50,19 @@ if [ "$(evalOpt "_type")" = '"option"' ]; then
|
|||
evalOpt "value" || echo "no value"
|
||||
echo
|
||||
echo "Default:"
|
||||
evalOpt "default" || echo "no default"
|
||||
evalOpt "default" || evalOptText "defaultText" || echo "no default"
|
||||
echo
|
||||
echo "Example:"
|
||||
evalOpt "example" || echo "no example"
|
||||
if [ "$(evalOpt "example._type")" = '"literalExample"' ]; then
|
||||
evalOptText "example.text" || echo "no example"
|
||||
else
|
||||
evalOpt "example" || echo "no example"
|
||||
fi
|
||||
echo
|
||||
echo "Description:"
|
||||
eval printf $(evalOpt "description") || echo "no description"
|
||||
evalOptText "description" || echo "no description"
|
||||
echo
|
||||
else
|
||||
eval printf $(evalAttrs "options.$option")
|
||||
eval printf "$(evalAttrs "options.$option")" 2>/dev/null
|
||||
echo
|
||||
fi
|
||||
|
|
Loading…
Add table
Reference in a new issue