mirror of
https://codeberg.org/muon/home.git
synced 2026-03-09 20:03:12 +00:00
65 lines
2.2 KiB
Nix
65 lines
2.2 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
config,
|
|
...
|
|
}: let
|
|
cfg = config.mods.terminal;
|
|
|
|
test-port = "5436";
|
|
prod-port = "5437";
|
|
in {
|
|
options.mods.terminal.hr.enable = lib.mkEnableOption "Hefring (Work Tooling)";
|
|
|
|
config = lib.mkIf cfg.hr.enable {
|
|
programs.nushell = lib.mkIf cfg.nushell.enable {
|
|
extraConfig = ''
|
|
$env.PROJECT_ID = if ($env | get -o PROJECT_ID | is-empty) { "mk2-test" } else { $env.PROJECT_ID }
|
|
'' + builtins.readFile ./hr.nu;
|
|
};
|
|
|
|
programs.starship.settings.custom.project_id = {
|
|
command = "if $env.PROJECT_ID =~ 'prod' { $'(ansi yellow_bold) (ansi blue_bold)($env.PROJECT_ID)(ansi reset)' } else { $'(ansi blue_bold)($env.PROJECT_ID)(ansi reset)' }";
|
|
when = "not ($env | get -o PROJECT_ID | is-empty)";
|
|
shell = ["nu" "--no-config-file" "-c"];
|
|
format = "on $output ";
|
|
};
|
|
|
|
programs.zsh.initContent =
|
|
''
|
|
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 = let
|
|
proxy-service = name: port: {
|
|
"google-db-proxy-${name}" = {
|
|
Unit = {
|
|
Description = "Google Cloud SQL Proxy (${name})";
|
|
After = ["network.target"];
|
|
};
|
|
Service = {
|
|
Type = "simple";
|
|
Environment = [
|
|
"GOOGLE_APPLICATION_CREDENTIALS=${config.home.homeDirectory}/.config/gcloud/application_default_credentials.json"
|
|
];
|
|
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"];
|
|
};
|
|
};
|
|
};
|
|
in
|
|
proxy-service "test" test-port
|
|
// proxy-service "prod" prod-port;
|
|
};
|
|
}
|