85 lines
2.0 KiB
Nix
85 lines
2.0 KiB
Nix
{ 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;
|
|
};
|
|
};
|
|
};
|
|
}
|