infra/Justfile

73 lines
2.2 KiB
Makefile
Raw Normal View History

_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}}