_usage: just -l _device action dir +moreargs="": #!/usr/bin/env bash set -ex sudo $(set -x; nix-build --no-link --show-trace $(dirname {{dir}})/default.nix -A {{action}} --argstr dir {{dir}} {{moreargs}}) _rebuild-device dir rebuildarg="dry-activate" +moreargs="": just -v _device rebuild {{dir}} --argstr rebuildarg {{rebuildarg}} {{moreargs}} # Rebulid this device's NixOS rebuild-this-device rebuildarg="dry-activate": just -v _rebuild-device nix/os/devices/$(hostname -s) {{rebuildarg}} # This could be used to inject another channel # --argstr moreargs "\'-I nixos-unstable=https://nixos.org/channels/nixos-unstable/nixexprs.tar.xz\'" # 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 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 hm-iterate-qtile: #!/usr/bin/env bash set -xe home-manager switch Xephyr -ac -br -resizeable :1 & XEPHYR_PID=$! echo ${XEPHYR_PID} DISPLAY=:1 $(grep qtile ~/.xsession) & wait $! kill ${XEPHYR_PID} # Sorry, this is a manual step for now. Please see nix/os/modules/encryptedDisk.nix for the layout disk-prepare: echo NOT IMPLEMENTED # Mount the target disk specified by device configuration directory. The 'dir' argument points to a device configuration, e.g. 'nix/os/devices/steveej-live-mmc-SL32G_0x259093f6' disk-mount dir: just -v _device diskMount {{dir}} # Unmount target disk, specified by device configuration directory disk-umount dir: just -v _device diskUmount {{dir}} # Perform an offline installation on the mounted the target disk, specified by device configuration directory disk-install dir: just -v _device diskInstall {{dir}}