diff --git a/nix-darwin/flake.nix b/nix-darwin/flake.nix index 0da9b836..dbc52dec 100644 --- a/nix-darwin/flake.nix +++ b/nix-darwin/flake.nix @@ -85,8 +85,10 @@ enabledHomeUsers = [ activePrimaryUser ]; - sharedHomeModules = [./home/common.nix]; - ivanHomeModules = [./home/ivan.nix]; + sharedHomeModules = [ + ./home/common.nix + ./home/git-sync.nix + ]; homeForUser = user: "/Users/${user}"; configuration = { pkgs, @@ -374,9 +376,7 @@ inherit inputs libDir; }; sharedModules = sharedHomeModules; - users = lib.genAttrs enabledHomeUsers (_: { - imports = ivanHomeModules; - }); + users = lib.genAttrs enabledHomeUsers (_: {}); }; }; in { diff --git a/nix-darwin/home/git-sync.nix b/nix-darwin/home/git-sync.nix new file mode 100644 index 00000000..2d51a70b --- /dev/null +++ b/nix-darwin/home/git-sync.nix @@ -0,0 +1,37 @@ +{ + config, + lib, + pkgs, + ... +}: let + gitSyncPackage = + if pkgs ? "git-sync-rs" + then pkgs."git-sync-rs" + else pkgs.git-sync; + orgPath = "${config.home.homeDirectory}/org"; + passwordStorePath = "${config.home.homeDirectory}/.password-store"; +in { + services.git-sync = { + enable = true; + package = gitSyncPackage; + repositories = { + org = { + path = orgPath; + uri = "git@github.com:colonelpanic8/org.git"; + interval = 180; + }; + password-store = { + path = passwordStorePath; + uri = "git@github.com:colonelpanic8/.password-store.git"; + }; + }; + }; + + # git-sync-rs does not infer the repository from launchd's WorkingDirectory. + launchd.agents = { + git-sync-org.config.ProgramArguments = + lib.mkForce ["${gitSyncPackage}/bin/git-sync" "-d" orgPath]; + git-sync-password-store.config.ProgramArguments = + lib.mkForce ["${gitSyncPackage}/bin/git-sync" "-d" passwordStorePath]; + }; +} diff --git a/nix-darwin/home/ivan.nix b/nix-darwin/home/ivan.nix deleted file mode 100644 index ef6805e4..00000000 --- a/nix-darwin/home/ivan.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ - config, - pkgs, - ... -}: { - services.git-sync = { - enable = true; - package = - if pkgs ? "git-sync-rs" - then pkgs."git-sync-rs" - else pkgs.git-sync; - repositories = { - org = { - path = "${config.home.homeDirectory}/org"; - uri = "git@github.com:colonelpanic8/org.git"; - interval = 180; - }; - password-store = { - path = "${config.home.homeDirectory}/.password-store"; - uri = "git@github.com:IvanMalison/.password-store.git"; - }; - }; - }; -}