nanuqsaurus/modules/system/justfile.nix

89 lines
2.1 KiB
Nix
Raw Normal View History

2026-02-05 07:47:09 +02:00
{ ... }:
let
justfileText = ''
[no-cd]
2026-02-11 11:02:43 +02:00
manage module="":
#!/usr/bin/env bash
set -euo pipefail
if [ -z "{{module}}" ]; then
$EDITOR ~/.config/home-manager/home.nix;
else
$EDITOR ~/.config/home-manager/modules/{{module}}.nix;
fi
2026-02-05 07:47:09 +02:00
[no-cd]
switch:
home-manager switch --flake ~/.config/home-manager#$USER
[no-cd]
rebuild:
sudo nixos-rebuild switch --flake "''${NIXOS_FLAKE:-/etc/nixos}#$HOSTNAME"
[no-cd]
clean:
nix-collect-garbage -d
[no-cd]
update target="":
#!/usr/bin/env bash
set -euo pipefail
update_system() {
sudo nix flake update --flake "''${NIXOS_FLAKE:-/etc/nixos}"
just rebuild
}
update_home() {
nix flake update --flake "''${XDG_CONFIG_HOME:-$HOME/.config}/home-manager"
just switch
}
case "{{target}}" in
system) update_system ;;
home) update_home ;;
"") update_system; update_home ;;
*)
echo "usage: just update [system|home] (empty = both)" >&2
exit 1
;;
esac
2026-02-05 09:19:35 +02:00
[no-cd]
init-home:
#!/usr/bin/env bash
set -euo pipefail
src="/etc/skel/.config/home-manager"
dst="''${XDG_CONFIG_HOME:-$HOME/.config}/home-manager"
2026-02-05 09:19:35 +02:00
mkdir -p "$dst"
chmod 700 "$dst" || true
overwrite="0"
if [[ "''${FORCE:-0}" == "1" ]]; then
2026-02-05 09:19:35 +02:00
overwrite="1"
elif [[ -e "$dst/flake.nix" || -e "$dst/home.nix" ]]; then
read -r -p "Home Manager files already exist in $dst. Overwrite? [y/N] " ans
case "''${ans:-}" in
2026-02-05 09:19:35 +02:00
y|Y|yes|YES) overwrite="1" ;;
*) overwrite="0" ;;
esac
fi
for f in flake.nix home.nix; do
if [[ "$overwrite" == "1" || ! -e "$dst/$f" ]]; then
install -m 600 "$src/$f" "$dst/$f"
echo "copied $f -> $dst/$f"
else
echo "kept $dst/$f"
fi
done
2026-02-05 07:47:09 +02:00
'';
in
{
2026-02-05 10:17:02 +02:00
# Global Just recipes
2026-02-05 10:13:27 +02:00
environment.etc."just/justfile".text = justfileText;
2026-02-05 07:47:09 +02:00
}