diff --git a/deploy b/deploy index 16b11c22..6d473cf7 100755 --- a/deploy +++ b/deploy @@ -1,21 +1,27 @@ #!/usr/bin/env bash +set -e + DOTFILES="$(cd $(dirname "${BASH_SOURCE:-${(%):-%x}}") && pwd -P)" PREFIX="${PREFIX:-/mnt}" NIXOSPREFIX="${PREFIX}/etc/nixos" +NIXOSFLAGS="-I 'config=$DOTFILES/config' -I 'packages=$DOTFILES/packages'" HOST=${1:-${HOST:-kuro}} -set -e -if [[ ! -f "$DOTFILES/configuration.$HOST.nix" ]]; then - >&2 echo "No configuration exists for host '$HOST'" - exit 1 -elif [[ ! -f "$NIXOSPREFIX/hardware-configuration.nix" ]]; then - >&2 echo "No hardware-configuration.nix file exists in $NIXOSPREFIX" - >&2 echo "Did you forget to set up your partitions?" - exit 2 -fi +if [ $EUID -nq 0 ]; then + sudo nix-channel --update + sudo nixos-rebuild $NIXOSFLAGS switch +else + if [ ! -f "$DOTFILES/configuration.$HOST.nix" ]; then + >&2 echo "No configuration exists for host '$HOST'" + exit 1 + elif [ ! -f "$NIXOSPREFIX/hardware-configuration.nix" ]; then + >&2 echo "No hardware-configuration.nix file exists in $NIXOSPREFIX" + >&2 echo "Did you forget to set up your partitions?" + exit 2 + fi -mkdir -p "$NIXOSPREFIX" -cat << EOF > "$NIXOSPREFIX/configuration.nix" + mkdir -p "$NIXOSPREFIX" + cat << EOF > "$NIXOSPREFIX/configuration.nix" { config, ... }: { imports = [ @@ -25,12 +31,11 @@ cat << EOF > "$NIXOSPREFIX/configuration.nix" } EOF -nix-channel --add https://nixos.org/channels/nixos-19.09 nixos -nix-channel --add https://github.com/rycee/home-manager/archive/master.tar.gz home-manager -nix-channel --add https://nixos.org/channels/nixpkgs-unstable nixpkgs-unstable -nix-channel --update + nix-channel --add https://nixos.org/channels/nixos-19.09 nixos + nix-channel --add https://github.com/rycee/home-manager/archive/master.tar.gz home-manager + nix-channel --add https://nixos.org/channels/nixpkgs-unstable nixpkgs-unstable + nix-channel --update -nixos-generate-config --root "$PREFIX" -nixos-install --root "$PREFIX" \ - -I "config=$DOTFILES/config" \ - -I "packages=$DOTFILES/packages" + nixos-generate-config --root "$PREFIX" + nixos-install --root "$PREFIX" $NIXOSFLAGS +fi