diff --git a/home/default.nix b/home/default.nix index 33915ee..3a42ef9 100644 --- a/home/default.nix +++ b/home/default.nix @@ -7,6 +7,7 @@ ./zsh.nix ./duti.nix ./pass.nix + ./pass-store.nix ]; home.stateVersion = "24.11"; diff --git a/home/pass-store.nix b/home/pass-store.nix new file mode 100644 index 0000000..d28f660 --- /dev/null +++ b/home/pass-store.nix @@ -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 + ''; + }; +} diff --git a/home/pass.nix b/home/pass.nix index 7097f58..b74fd36 100644 --- a/home/pass.nix +++ b/home/pass.nix @@ -19,47 +19,4 @@ defaultCacheTtl = 3600; 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} - ''; - }; }