nanuqsaurus/modules/system/justfile.nix
2026-02-11 11:02:43 +02:00

68 lines
1.6 KiB
Nix

{ ... }:
let
justfileText = ''
[no-cd]
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
[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:
sudo nix flake update --flake "''${NIXOS_FLAKE:-/etc/nixos}"
just rebuild
[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"
mkdir -p "$dst"
chmod 700 "$dst" || true
overwrite="0"
if [[ "''${FORCE:-0}" == "1" ]]; then
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
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
'';
in
{
# Global Just recipes
environment.etc."just/justfile".text = justfileText;
}