flakfiy some Justfile recipes and experiment with wayland based custom desktop
This commit is contained in:
parent
06a47c0d23
commit
476e10780b
18 changed files with 739 additions and 149 deletions
83
Justfile
83
Justfile
|
@ -1,18 +1,12 @@
|
|||
_DEFAULT_VERSION_TMPL:
|
||||
echo "{{invocation_directory()}}/nix/variables/versions.tmpl.nix"
|
||||
|
||||
_DEFAULT_VERSION:
|
||||
echo "{{invocation_directory()}}/nix/variables/versions.nix"
|
||||
|
||||
_usage:
|
||||
just -l
|
||||
|
||||
# Re-render the default versions
|
||||
update-default-versions:
|
||||
#!/usr/bin/env bash
|
||||
template="$(just _DEFAULT_VERSION_TMPL)"
|
||||
outfile="$(just _DEFAULT_VERSION)"
|
||||
esh -o ${outfile} ${template}
|
||||
nix flake update
|
||||
|
||||
_get_nix_path versionsPath:
|
||||
echo $(set -x; nix-build --no-link --show-trace {{invocation_directory()}}/nix/default.nix -A channelSources --argstr versionsPath {{versionsPath}})
|
||||
|
@ -34,55 +28,14 @@ _render_templates:
|
|||
# nix/scripts/pre-eval-fixed.sh nix/home-manager/profiles/dotfiles/vcsh{.tmpl,}.nix
|
||||
fi
|
||||
|
||||
_rebuild-device dir rebuildarg="dry-activate" +moreargs="": _render_templates
|
||||
#!/usr/bin/env bash
|
||||
set -ex
|
||||
just -v _device rebuild {{dir}} --argstr rebuildarg {{rebuildarg}} {{moreargs}}
|
||||
|
||||
rebuild-remote-device device target rebuildarg="dry-activate" :
|
||||
#!/usr/bin/env bash
|
||||
set -ex
|
||||
just -v _rebuild-device nix/os/devices/{{device}} {{rebuildarg}} --argstr moreargs "'--target-host\ {{target}}'"
|
||||
|
||||
# Rebuild this device's NixOS
|
||||
rebuild-this-device rebuildarg="dry-activate":
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
function parse_hm_rebuildarg() {
|
||||
case $1 in
|
||||
switch)
|
||||
echo switch
|
||||
;;
|
||||
*)
|
||||
echo build
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
export SYSREBUILD_LOG=.$(hostname -s)_sysrebuild.log
|
||||
export HOMEREBUILD_LOG=.$(hostname -s)_homerebuild.log
|
||||
|
||||
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
|
||||
else
|
||||
cat ${SYSREBUILD_LOG}
|
||||
echo ERROR: system rebuild failed
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if type home-manager > /dev/null 2>&1; then
|
||||
echo Rebuilding home in $(parse_hm_rebuildarg {{rebuildarg}})-mode...
|
||||
source $(just -v _get_nix_path {{invocation_directory()}}/nix/os/devices/$(hostname -s)/versions.nix)
|
||||
if home-manager -v $(parse_hm_rebuildarg {{rebuildarg}}) > ${HOMEREBUILD_LOG} 2>&1 ; then
|
||||
echo Home rebuild successful
|
||||
else
|
||||
cat ${HOMEREBUILD_LOG}
|
||||
echo ERROR: home rebuild failed
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
rebuild-this-device +rebuildargs="dry-activate":
|
||||
nix run .#colmena -- apply --on $(hostname -s) {{rebuildargs}}
|
||||
|
||||
# Re-render the versions of a remote device and rebuild its environment
|
||||
update-remote-device devicename target rebuildmode='switch':
|
||||
|
@ -119,31 +72,15 @@ update-this-device rebuild-mode='switch':
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
template=nix/os/devices/$(hostname -s)/versions.tmpl.nix
|
||||
outfile=nix/os/devices/$(hostname -s)/versions.nix
|
||||
(
|
||||
set -xe
|
||||
cd nix/os/devices/$(hostname -s)
|
||||
nix flake update
|
||||
)
|
||||
|
||||
if ! test -e ${template}; then
|
||||
template="$(just _DEFAULT_VERSION_TMPL)"
|
||||
fi
|
||||
just -v rebuild-this-device {{rebuild-mode}}
|
||||
|
||||
esh -o ${outfile} ${template}
|
||||
if ! test "$(git diff ${outfile})"; then
|
||||
echo Already on latest versions
|
||||
exit 0
|
||||
fi
|
||||
|
||||
export SYSREBUILD_LOG=.$(hostname -s)_sysrebuild.log
|
||||
just -v rebuild-this-device dry-activate || {
|
||||
echo ERROR: Update failed, reverting ${outfile}...
|
||||
exit 1
|
||||
}
|
||||
|
||||
just -v rebuild-this-device {{rebuild-mode}} || {
|
||||
echo ERROR: Rebuilding in {{rebuild-mode}}-mode failed
|
||||
exit 1
|
||||
}
|
||||
|
||||
git commit -v ${outfile} -m "nix/os/devices/$(hostname -s): bump versions"
|
||||
git commit -v nix/os/devices/$(hostname -s)/flake.{nix,lock} -m "nix/os/devices/$(hostname -s): bump versions"
|
||||
|
||||
# Rebuild an offline system
|
||||
rebuild-disk device:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue