diff --git a/modules/home/terminal/hr/default.nix b/modules/home/terminal/hr/default.nix index c395ee4..e5ac06f 100644 --- a/modules/home/terminal/hr/default.nix +++ b/modules/home/terminal/hr/default.nix @@ -6,7 +6,8 @@ }: let cfg = config.mods.terminal; - hr = pkgs.writeShellScriptBin "hr" (builtins.readFile ./hr.sh); + test-port = "5436"; + prod-port = "5437"; in { options.mods.terminal.hr.enable = lib.mkEnableOption "Hefring (Work Tooling)"; @@ -17,45 +18,38 @@ in { format = "on $output "; }; - programs.zsh.initExtra = '' - export MK2_TEST_SQL_INSTANCE_USER=gijs - export MK2_TEST_SQL_INSTANCE_PASSWORD="$(cat ${config.sops.secrets.google-db-test.path})" - export MK2_TEST_SQL_INSTANCE_PORT=5436 - export MK2_TEST_SQL_INSTANCE_HOST=localhost - export MK2_PROD_SQL_INSTANCE_USER=gijs - export MK2_PROD_SQL_INSTANCE_PASSWORD="$(cat ${config.sops.secrets.google-db-prod.path})" - export MK2_PROD_SQL_INSTANCE_HOST=localhost - export MK2_PROD_SQL_INSTANCE_PORT=5437 - '' + builtins.readFile ./hr.sh; + programs.zsh.initExtra = + '' + export MK2_TEST_SQL_INSTANCE_USER=gijs + export MK2_TEST_SQL_INSTANCE_PASSWORD="$(cat ${config.sops.secrets.google-db-test.path})" + export MK2_TEST_SQL_INSTANCE_PORT=${test-port} + export MK2_TEST_SQL_INSTANCE_HOST=localhost + export MK2_PROD_SQL_INSTANCE_USER=gijs + export MK2_PROD_SQL_INSTANCE_PASSWORD="$(cat ${config.sops.secrets.google-db-prod.path})" + export MK2_PROD_SQL_INSTANCE_HOST=localhost + export MK2_PROD_SQL_INSTANCE_PORT=${prod-port} + '' + + builtins.readFile ./hr.sh; - systemd.user.services = { - google-db-proxy-test = { - Unit = { - Description = "Google Cloud SQL Proxy (Test)"; - After = ["network.target"]; - }; - Service = { - ExecStart = "${pkgs.google-cloud-sql-proxy}/bin/cloud-sql-proxy mk2-test:europe-west1:mk2-test-sql-instance -p 5436"; - Restart = "always"; - }; - Install = { - WantedBy = ["default.target"]; + systemd.user.services = let + proxy-service = name: port: { + "google-db-proxy-${name}" = { + Unit = { + Description = "Google Cloud SQL Proxy (${name})"; + After = ["network.target"]; + }; +Service = { + Type = "simple"; + ExecStart = "${pkgs.google-cloud-sql-proxy}/bin/cloud-sql-proxy mk2-${name}:europe-west1:mk2-${name}-sql-instance -p ${port}"; + Restart = "always"; + }; + Install = { + WantedBy = ["default.target"]; + }; }; }; - - google-db-proxy-prod = { - Unit = { - Description = "Google Cloud SQL Proxy (Prod)"; - After = ["network.target"]; - }; - Service = { - ExecStart = "${pkgs.google-cloud-sql-proxy}/bin/cloud-sql-proxy mk2-prod:europe-west1:mk2-prod-sql-instance -p 5437"; - Restart = "always"; - }; - Install = { - WantedBy = ["default.target"]; - }; - }; - }; + in + proxy-service "test" test-port + // proxy-service "prod" prod-port; }; }