mirror of
https://github.com/LnL7/nix-darwin.git
synced 2025-03-28 02:37:09 +00:00
add basic darwin-option command
This commit is contained in:
parent
d54484505f
commit
942d662d1e
2 changed files with 78 additions and 32 deletions
|
@ -5,8 +5,54 @@ export PATH=@path@:$PATH
|
|||
|
||||
|
||||
showSyntax() {
|
||||
echo "$0: not implemented" >&2
|
||||
exit 1
|
||||
echo "$0: not implemented" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
showSyntax
|
||||
evalNix() {
|
||||
nix-instantiate --eval --strict -E "with import <darwin> {}; $@"
|
||||
}
|
||||
|
||||
evalAttrs() {
|
||||
evalNix "builtins.concatStringsSep \"\n\" (builtins.attrNames $@)"
|
||||
}
|
||||
|
||||
evalOpt() {
|
||||
evalNix "options.$option.$@" || true
|
||||
}
|
||||
|
||||
# Parse the command line.
|
||||
origArgs=("$@")
|
||||
option=
|
||||
|
||||
while [ "$#" -gt 0 ]; do
|
||||
i="$1"; shift 1
|
||||
case "$i" in
|
||||
--help)
|
||||
showSyntax
|
||||
;;
|
||||
*)
|
||||
option="$i"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$option" ]; then showSyntax; fi
|
||||
|
||||
if [ "$(evalOpt "_type" 2> /dev/null)" = '"option"' ]; then
|
||||
echo "Value:"
|
||||
evalOpt "value"
|
||||
echo
|
||||
echo "Default:"
|
||||
evalOpt "default"
|
||||
echo
|
||||
echo "Example:"
|
||||
evalOpt "example"
|
||||
echo
|
||||
echo "Description:"
|
||||
eval printf $(evalOpt "description")
|
||||
echo
|
||||
else
|
||||
eval printf $(evalAttrs "options.$option")
|
||||
echo
|
||||
fi
|
||||
|
|
|
@ -5,8 +5,8 @@ export PATH=@path@:$PATH
|
|||
|
||||
|
||||
showSyntax() {
|
||||
exec man darwin-rebuild
|
||||
exit 1
|
||||
exec man darwin-rebuild
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Parse the command line.
|
||||
|
@ -14,47 +14,47 @@ origArgs=("$@")
|
|||
action=
|
||||
|
||||
while [ "$#" -gt 0 ]; do
|
||||
i="$1"; shift 1
|
||||
case "$i" in
|
||||
--help)
|
||||
showSyntax
|
||||
;;
|
||||
switch|build)
|
||||
action="$i"
|
||||
;;
|
||||
*)
|
||||
echo "$0: unknown option \`$i'"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
i="$1"; shift 1
|
||||
case "$i" in
|
||||
--help)
|
||||
showSyntax
|
||||
;;
|
||||
switch|build)
|
||||
action="$i"
|
||||
;;
|
||||
*)
|
||||
echo "$0: unknown option \`$i'"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$action" ]; then showSyntax; fi
|
||||
|
||||
echo "building the system configuration..." >&2
|
||||
if [ "$action" = switch -o "$action" = build ]; then
|
||||
systemConfig="$(nix-build '<darwin>' --no-out-link -A system)"
|
||||
systemConfig="$(nix-build '<darwin>' --no-out-link -A system)"
|
||||
fi
|
||||
|
||||
if [ "$action" = build ]; then
|
||||
echo $systemConfig
|
||||
echo $systemConfig
|
||||
fi
|
||||
|
||||
|
||||
if [ "$action" = switch ]; then
|
||||
profileDir=$(dirname @profile@)
|
||||
profileDir=$(dirname @profile@)
|
||||
|
||||
if [ "$USER" != root -a ! -w $profileDir ]; then
|
||||
sudo nix-env -p @profile@ --set $systemConfig
|
||||
else
|
||||
nix-env -p @profile@ --set $systemConfig
|
||||
fi
|
||||
if [ "$USER" != root -a ! -w $profileDir ]; then
|
||||
sudo nix-env -p @profile@ --set $systemConfig
|
||||
else
|
||||
nix-env -p @profile@ --set $systemConfig
|
||||
fi
|
||||
|
||||
if [ "$USER" != root ]; then
|
||||
sudo $systemConfig/activate
|
||||
else
|
||||
$systemConfig/activate
|
||||
fi
|
||||
if [ "$USER" != root ]; then
|
||||
sudo $systemConfig/activate
|
||||
else
|
||||
$systemConfig/activate
|
||||
fi
|
||||
|
||||
$systemConfig/activate-user
|
||||
$systemConfig/activate-user
|
||||
fi
|
||||
|
|
Loading…
Add table
Reference in a new issue