2018-11-03 11:45:40 +01:00
_usage :
just -l
2018-11-03 11:03:03 +01:00
_device action dir +moreargs="" :
2018-10-30 13:38:36 +01:00
#!/usr/bin/env bash
2018-11-03 11:45:40 +01:00
set -ex
sudo $( set -x; nix-build --no-link --show-trace $( dirname { { dir} } ) /default.nix -A { { action} } --argstr dir { { dir} } { { moreargs} } )
2018-10-30 13:38:36 +01:00
2018-11-03 11:45:40 +01:00
_rebuild-device dir rebuildarg="dry-activate" +moreargs="" :
2018-11-04 22:04:22 +01:00
#!/usr/bin/env bash
nix/scripts/pre-eval-fixed.sh nix/home-manager/profiles/dotfiles/vcsh{ .tmpl,} .nix
2018-11-03 11:45:40 +01:00
just -v _device rebuild { { dir} } --argstr rebuildarg { { rebuildarg} } { { moreargs} }
2018-10-30 13:38:36 +01:00
2018-11-03 11:03:03 +01:00
# Rebulid this device's NixOS
rebuild-this-device rebuildarg="dry-activate" :
2018-11-03 22:55:50 +01:00
#!/usr/bin/env bash
set -e
2018-10-30 13:38:36 +01:00
2018-11-03 22:55:50 +01:00
function parse_hm_rebuildarg( ) {
case $1 in
switch)
echo switch
; ;
*)
echo build
; ;
esac
}
2018-11-03 11:45:40 +01:00
2018-11-03 22:55:50 +01:00
export SYSREBUILD_LOG = .$( hostname -s) _sysrebuild.log
export HOMEREBUILD_LOG = .$( hostname -s) _homerebuild.log
2018-11-03 11:45:40 +01:00
2018-11-03 22:55:50 +01:00
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
2018-11-03 11:03:03 +01:00
else
2018-11-03 22:55:50 +01:00
cat ${ SYSREBUILD_LOG }
echo System rebuild failed
2018-11-03 11:03:03 +01:00
fi
if type home-manager > /dev/null 2>& 1; then
2018-11-03 22:55:50 +01:00
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
2018-11-03 11:45:40 +01:00
else
2018-11-03 22:55:50 +01:00
cat ${ HOMEREBUILD_LOG }
echo Home rebuild failed
2018-11-03 11:03:03 +01:00
fi
fi
2018-11-03 22:55:50 +01:00
# 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
set -e
export SYSREBUILD_LOG = .$( hostname -s) _sysrebuild.log
echo Updating system channels...
sudo nix-channel --update
just -v rebuild-this-device switch
2018-11-03 18:43:22 +01:00
hm-iterate-qtile :
#!/usr/bin/env bash
set -xe
2018-11-04 14:07:02 +01:00
home-manager switch || just -v rebuild-this-device switch
2018-11-03 18:43:22 +01:00
Xephyr -ac -br -resizeable :1 &
XEPHYR_PID = $!
echo ${ XEPHYR_PID }
DISPLAY = :1 $( grep qtile ~/.xsession) &
wait $!
kill ${ XEPHYR_PID }
2018-11-10 19:24:24 +01:00
# !!! DANGERIOUS !!! This wipes the disk which is configured for the given device.
disk-prepare dir :
just -v _device diskPrepare { { dir} } --argstr rebuildarg "dummy"
2018-11-03 11:03:03 +01:00
# 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 :
2018-11-04 23:56:36 +01:00
just -v _device diskMount { { dir} } --argstr rebuildarg "dummy"
2018-11-03 11:03:03 +01:00
# Unmount target disk, specified by device configuration directory
disk-umount dir :
2018-11-04 23:56:36 +01:00
just -v _device diskUmount { { dir} } --argstr rebuildarg "dummy"
2018-11-03 11:03:03 +01:00
2018-11-10 19:24:24 +01:00
# Perform an offline installation on the mounted target disk, specified by device configuration directory
2018-11-03 11:03:03 +01:00
disk-install dir :
2018-11-04 23:56:36 +01:00
just -v _device diskInstall { { dir} } --argstr rebuildarg "dummy"