refactor: separate pass (package) from pass-store (git remotes)

This commit is contained in:
mikl 2026-07-01 18:45:06 +03:00
parent eec7efabd1
commit df2d756a08
3 changed files with 39 additions and 43 deletions

View file

@ -7,6 +7,7 @@
./zsh.nix ./zsh.nix
./duti.nix ./duti.nix
./pass.nix ./pass.nix
./pass-store.nix
]; ];
home.stateVersion = "24.11"; home.stateVersion = "24.11";

38
home/pass-store.nix Normal file
View file

@ -0,0 +1,38 @@
{ config, pkgs, ... }:
{
# Setup git remotes for pass store
# This file manages the git remote configuration for ~/.password-store
# (pass itself is configured in home/pass.nix)
home.activation.passStoreRemotes = {
data = ''
set -e
if [ ! -d "$HOME/.password-store" ]; then
mkdir -p "$HOME/.password-store"
fi
cd "$HOME/.password-store"
# Init git if needed
if [ ! -d ".git" ]; then
${pkgs.git}/bin/git init -q
fi
# Add origin (forgejo) if not present
if ! ${pkgs.git}/bin/git remote get-url origin >/dev/null 2>&1; then
${pkgs.git}/bin/git remote add origin "ssh://git@git.iscg.dev:2222/mikl/password-store.git"
fi
# Add github remote if not present
if ! ${pkgs.git}/bin/git remote get-url github >/dev/null 2>&1; then
${pkgs.git}/bin/git remote add github "git@github.com:isogonalconjugate/password-store.git"
fi
# Add git.sol.moe remote if not present
if ! ${pkgs.git}/bin/git remote get-url "git.sol.moe" >/dev/null 2>&1; then
${pkgs.git}/bin/git remote add "git.sol.moe" "git@git.sol.moe:mikl/password-store.git"
fi
'';
};
}

View file

@ -19,47 +19,4 @@
defaultCacheTtl = 3600; defaultCacheTtl = 3600;
enableSshSupport = true; enableSshSupport = true;
}; };
# Activation: setup pass git origins (forgejo + github + sol.moe)
# Uses pkgs.writeShellScript to avoid home.activation.data string issues
home.activation.passOrigins = {
data = let
setupScript = pkgs.writeShellScript "pass-origins-setup" ''
set -e
# Initialize pass if not yet
if [ ! -d "$HOME/.password-store" ]; then
echo "Initializing pass store..."
mkdir -p "$HOME/.password-store"
fi
# Initialize git if not yet
if [ ! -d "$HOME/.password-store/.git" ]; then
cd "$HOME/.password-store"
${pkgs.git}/bin/git init -q
fi
cd "$HOME/.password-store"
# Add origin (forgejo) if not present
if ! ${pkgs.git}/bin/git remote get-url origin >/dev/null 2>&1; then
${pkgs.git}/bin/git remote add origin "ssh://git@git.iscg.dev:2222/mikl/password-store.git"
fi
# Add github remote if not present
if ! ${pkgs.git}/bin/git remote get-url github >/dev/null 2>&1; then
${pkgs.git}/bin/git remote add github "git@github.com:isogonalconjugate/password-store.git"
fi
# Add git.sol.moe remote if not present
if ! ${pkgs.git}/bin/git remote get-url git.sol.moe >/dev/null 2>&1; then
${pkgs.git}/bin/git remote add "git.sol.moe" "git@git.sol.moe:mikl/password-store.git"
fi
cd - >/dev/null
'';
in builtins.toFile "pass-origins.sh" ''
${setupScript}
'';
};
} }