72 lines
2.2 KiB
Makefile
Executable file
72 lines
2.2 KiB
Makefile
Executable file
_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}}
|