{ user, home }: { config, inputs, pkgs, lib, ... }: let hmConfig = config.home-manager.users.${user}; in { environment.persistence."/persist/cache" = { "${home}/.local/share/go" = { }; "${home}/.local/share/gradle" = { }; }; home-manager.users.${user} = { sops = { secrets = { "artifactory/cdp/user".sopsFile = "${inputs.secrets}/domains/sas/secrets.yaml"; "artifactory/cdp/password".sopsFile = "${inputs.secrets}/domains/sas/secrets.yaml"; "viya/orders-api/key".sopsFile = "${inputs.secrets}/domains/sas/secrets.yaml"; "viya/orders-api/secret".sopsFile = "${inputs.secrets}/domains/sas/secrets.yaml"; }; templates."gradle.properties" = { content = '' cdpUser=${hmConfig.sops.placeholder."artifactory/cdp/user"} cdpPassword=${hmConfig.sops.placeholder."artifactory/cdp/password"} ''; path = "${home}/.local/share/gradle/gradle.properties"; }; }; programs = { go = { enable = true; goPath = ".local/share/go"; }; gradle = { enable = true; home = ".local/share/gradle"; }; java = { enable = true; package = pkgs.jdk17; }; }; home = { packages = with pkgs; [ gcc gopls go-tools delve golangci-lint golangci-lint-langserver ] ++ lib.lists.optionals config.sas.build.private [ viya4-orders-cli sagew sonder klog ]; sessionVariables = { GOPROXY = "goproxy.unx.sas.com"; GONOSUMDB = "*.sas.com,sassoftware.io"; }; }; xdg.configFile."viya4-orders-cli/config.yaml" = lib.mkIf config.sas.build.private { source = (pkgs.formats.yaml { }).generate "config.yaml" { clientCredentialsIdFile = hmConfig.sops.secrets."viya/orders-api/key".path; clientCredentialsSecretFile = hmConfig.sops.secrets."viya/orders-api/secret".path; }; }; }; }