From 220685dd9ae5ca704959bee0b08449f876aefbb8 Mon Sep 17 00:00:00 2001 From: Stefan Junker Date: Sat, 3 Nov 2018 22:55:50 +0100 Subject: [PATCH] Justfile: move rebuild functionality into rebuild --- Justfile | 59 ++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 38 insertions(+), 21 deletions(-) diff --git a/Justfile b/Justfile index 6caf3fe..0b68157 100755 --- a/Justfile +++ b/Justfile @@ -12,7 +12,40 @@ _rebuild-device dir rebuildarg="dry-activate" +moreargs="": # Rebulid this device's NixOS rebuild-this-device rebuildarg="dry-activate": - just -v _rebuild-device nix/os/devices/$(hostname -s) {{rebuildarg}} + #!/usr/bin/env bash + set -e + + function parse_hm_rebuildarg() { + case $1 in + switch) + echo switch + ;; + *) + echo build + ;; + esac + } + + export SYSREBUILD_LOG=.$(hostname -s)_sysrebuild.log + export HOMEREBUILD_LOG=.$(hostname -s)_homerebuild.log + + echo Rebuilding system in {{rebuildarg}}-mode... + if just -v _rebuild-device nix/os/devices/$(hostname -s) {{rebuildarg}} > ${SYSREBUILD_LOG} 2>&1 ; then + echo System rebuild successful + else + cat ${SYSREBUILD_LOG} + echo System rebuild failed + fi + + if type home-manager > /dev/null 2>&1; then + echo Rebuilding home in $(parse_hm_rebuildarg {{rebuildarg}})-mode... + if home-manager -v $(parse_hm_rebuildarg {{rebuildarg}}) > ${HOMEREBUILD_LOG} 2>&1 ; then + echo Home rebuild successful + else + cat ${HOMEREBUILD_LOG} + echo Home rebuild failed + fi + fi # This could be used to inject another channel # --argstr moreargs "\'-I nixos-unstable=https://nixos.org/channels/nixos-unstable/nixexprs.tar.xz\'" @@ -21,28 +54,12 @@ rebuild-this-device rebuildarg="dry-activate": # Update nix-channels and switch to updated NixOS and home environments update-this-device: #!/usr/bin/env bash - export SYSUPDATE_LOG=.$(hostname -s)_sysupdate.log - export HOMEUPDATE_LOG=.$(hostname -s)_homeupdate.log + set -e + export SYSREBUILD_LOG=.$(hostname -s)_sysrebuild.log echo Updating system channels... - sudo nix-channel --update > ${SYSUPDATE_LOG} 2>&1 - echo Updating system... - if just -v rebuild-this-device switch >> ${SYSUPDATE_LOG} 2>&1 ; then - echo System update successful - else - cat ${SYSUPDATE_LOG} - echo System update failed - fi - - if type home-manager > /dev/null 2>&1; then - echo Updating home... - if home-manager -v switch > ${HOMEUPDATE_LOG} 2>&1 ; then - echo Home update successful - else - cat ${HOMEUPDATE_LOG} - echo Home update failed - fi - fi + sudo nix-channel --update + just -v rebuild-this-device switch hm-iterate-qtile: #!/usr/bin/env bash