From 71c68087e87b2dd57211eef2ee7d8df3becfe7fc Mon Sep 17 00:00:00 2001 From: Daiderd Jordan <daiderd@gmail.com> Date: Wed, 5 Jun 2019 21:35:58 +0200 Subject: [PATCH] darwin-rebuild: fix quoting --- pkgs/nix-tools/darwin-rebuild.sh | 41 +++++++++++++++----------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/pkgs/nix-tools/darwin-rebuild.sh b/pkgs/nix-tools/darwin-rebuild.sh index e41adc5a..af00e869 100644 --- a/pkgs/nix-tools/darwin-rebuild.sh +++ b/pkgs/nix-tools/darwin-rebuild.sh @@ -23,13 +23,13 @@ profile=@profile@ action= while [ "$#" -gt 0 ]; do - i="$1"; shift 1 - case "$i" in + i=$1; shift 1 + case $i in --help) showSyntax ;; edit|switch|build|changelog|check) - action="$i" + action=$i ;; --show-trace|--no-build-hook|--dry-run|--keep-going|-k|--keep-failed|-K|--verbose|-v|-vv|-vvv|-vvvv|-vvvvv|--fallback|-Q) extraBuildFlags+=("$i") @@ -42,7 +42,7 @@ while [ "$#" -gt 0 ]; do echo "$0: ‘$i’ requires an argument" exit 1 fi - j="$1"; shift 1 + j=$1; shift 1 extraBuildFlags+=("$i" "$j") ;; --arg|--argstr|--option) @@ -50,8 +50,9 @@ while [ "$#" -gt 0 ]; do echo "$0: ‘$i’ requires two arguments" exit 1 fi - j="$1"; shift 1 - k="$1"; shift 1 + j=$1 + k=$2 + shift 2 extraBuildFlags+=("$i" "$j" "$k") ;; --list-generations) @@ -68,7 +69,7 @@ while [ "$#" -gt 0 ]; do echo "$0: ‘$i’ requires an argument" exit 1 fi - j="$1"; shift 1 + j=$1; shift 1 extraProfileFlags=("$i" "$j") ;; --profile-name|-p) @@ -97,19 +98,19 @@ fi if [ "$action" = edit ]; then darwinConfig=$(nix-instantiate --find-file darwin-config) - exec ${EDITOR:-nano} "$darwinConfig" + exec "${EDITOR:-nano}" "$darwinConfig" fi if ! [ "$action" = list -o "$action" = rollback ]; then echo "building the system configuration..." >&2 - systemConfig="$(nix-build '<darwin>' ${extraBuildFlags[@]} -A system)" + systemConfig="$(nix-build '<darwin>' "${extraBuildFlags[@]}" -A system)" fi if [ "$action" = list -o "$action" = rollback ]; then if [ "$USER" != root -a ! -w $(dirname "$profile") ]; then - sudo nix-env -p $profile ${extraProfileFlags[@]} + sudo nix-env -p "$profile" "${extraProfileFlags[@]}" else - nix-env -p $profile ${extraProfileFlags[@]} + nix-env -p "$profile" "${extraProfileFlags[@]}" fi systemConfig="$(cat $profile/systemConfig)" @@ -117,25 +118,21 @@ fi if [ -z "$systemConfig" ]; then exit 0; fi -if [ -n "$rollbackFlags" ]; then - echo $systemConfig -fi - if [ "$action" = switch ]; then if [ "$USER" != root -a ! -w $(dirname "$profile") ]; then - sudo nix-env -p $profile --set $systemConfig + sudo nix-env -p "$profile" --set "$systemConfig" else - nix-env -p $profile --set $systemConfig + nix-env -p "$profile" --set "$systemConfig" fi fi if [ "$action" = switch -o "$action" = rollback ]; then - $systemConfig/activate-user + "$systemConfig/activate-user" if [ "$USER" != root ]; then - sudo $systemConfig/activate + sudo "$systemConfig/activate" else - $systemConfig/activate + "$systemConfig/activate" fi fi @@ -143,11 +140,11 @@ if [ "$action" = changelog ]; then echo >&2 echo "[1;1mCHANGELOG[0m" >&2 echo >&2 - head -n 32 $systemConfig/darwin-changes + head -n 32 "$systemConfig/darwin-changes" echo >&2 fi if [ "$action" = check ]; then export checkActivation=1 - $systemConfig/activate-user + "$systemConfig/activate-user" fi