feat(just): add init-home recipe
This commit is contained in:
parent
cbb4ee8993
commit
4ec6a6b6a8
1 changed files with 33 additions and 1 deletions
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
let
|
||||
justfileText = ''
|
||||
FORCE := "0"
|
||||
|
||||
[no-cd]
|
||||
manage:
|
||||
$EDITOR ~/.config/home-manager/home.nix
|
||||
|
|
@ -22,10 +24,40 @@ let
|
|||
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}" == "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 (system-wide). Used when `XDG_CONFIG_DIRS` includes `/etc/xdg` (default).
|
||||
environment.etc."xdg/just/justfile".text = justfileText;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue