49 lines
1.7 KiB
Makefile
Executable file
49 lines
1.7 KiB
Makefile
Executable file
_device action dir +moreargs="":
|
|
#!/usr/bin/env bash
|
|
set -e
|
|
sudo $(nix-build --no-link --show-trace $(dirname {{dir}})/default.nix -A {{action}} --argstr dir {{dir}} {{moreargs}} )
|
|
|
|
|
|
_rebuild-device dir rebuildarg="dry-activate":
|
|
just -v _device rebuild {{dir}} --argstr rebuildarg {{rebuildarg}}
|
|
|
|
# Rebulid this device's NixOS
|
|
rebuild-this-device rebuildarg="dry-activate":
|
|
just -v _rebuild-device nix/os/devices/$(hostname -s) {{rebuildarg}}
|
|
|
|
# Update nix-channels and switch to updated NixOS and home environments
|
|
update-this-device:
|
|
#!/usr/bin/env bash
|
|
echo Updating system channels...
|
|
sudo nix-channel --update > .$(hostname -s)_sysupdate.log 2>&1
|
|
echo Updating system...
|
|
if just -v rebuild-this-device >> .$(hostname -s)_sysupdate.log 2>&1 ; then
|
|
echo System update successful
|
|
else
|
|
System update failed
|
|
fi
|
|
|
|
if type home-manager > /dev/null 2>&1; then
|
|
echo Updating home...
|
|
if home-manager -v switch > .$(hostname -s)_homeupdate.log 2>&1 ; then
|
|
echo Home update successful
|
|
else
|
|
echo Home update failed
|
|
fi
|
|
fi
|
|
|
|
# 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}}
|