feat(just): add init-home recipe

This commit is contained in:
randogoth 2026-02-05 09:19:35 +02:00
parent cbb4ee8993
commit 4ec6a6b6a8

View file

@ -2,6 +2,8 @@
let let
justfileText = '' justfileText = ''
FORCE := "0"
[no-cd] [no-cd]
manage: manage:
$EDITOR ~/.config/home-manager/home.nix $EDITOR ~/.config/home-manager/home.nix
@ -22,10 +24,40 @@ let
update: update:
sudo nix flake update --flake "''${NIXOS_FLAKE:-/etc/nixos}" sudo nix flake update --flake "''${NIXOS_FLAKE:-/etc/nixos}"
just rebuild 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}" == "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 in
{ {
# Global Just recipes (system-wide). Used when `XDG_CONFIG_DIRS` includes `/etc/xdg` (default). # Global Just recipes (system-wide). Used when `XDG_CONFIG_DIRS` includes `/etc/xdg` (default).
environment.etc."xdg/just/justfile".text = justfileText; environment.etc."xdg/just/justfile".text = justfileText;
} }