From 7a0549387ba08400f77de54417c41a6d45ad1056 Mon Sep 17 00:00:00 2001 From: Klemens Nanni Date: Sun, 5 Jun 2022 21:04:07 +0200 Subject: [PATCH] nixos-rebuild: Accept only one argument Multiple arguments make no sense but they are accepted, the last one winning. Found editing a previous run from shell history and adding a command rather than replacing it; observe in verbose mode: ``` $ nixos-rebuild dry-run -v building the system configuration... Building in legacy (non-flake) mode. No --build-host given, running nix-build locally $ nix-build -A system -k -I nixpkgs=/home/kn/src/nixpkgs -v --dry-run ... ``` ``` $ nixos-rebuild dry-run build -v building Nix... $ nix-instantiate --add-root /tmp/nixos-rebuild.jgEYqZ/nix.drv --indirect -A config.nix.package.out -I nixpkgs=/home/kn/src/nixpkgs -v ... ``` nixos-rebuild(8) already bails out on zero arguments, so do the same when passing a second one. --- pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh index 795bedb99d4d..95004f447941 100755 --- a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh +++ b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh @@ -49,6 +49,8 @@ while [ "$#" -gt 0 ]; do ;; switch|boot|test|build|edit|dry-build|dry-run|dry-activate|build-vm|build-vm-with-bootloader) if [ "$i" = dry-run ]; then i=dry-build; fi + # exactly one action mandatory, bail out if multiple are given + if [ -n "$action" ]; then showSyntax; fi action="$i" ;; --install-grub)