mirror of
https://github.com/nix-community/home-manager
synced 2024-12-18 15:59:48 +01:00
599e22b1c7
sbt allows overriding the default repositories to use to resolve dependencies. This is often used with proxies and/or private repositories to host internal packages. This change adds a `repositories` attribute to `sbt` to allow specifying the values that will go in `~/.sbt/repositories` file. To support the above change we also deprecate the `baseConfigPath` option in favour of `baseUserConfigPath` which points one level higher by default. This allows not using relative paths to refer to the top-level configuration directory. Also adds tests for the new option and the deprecation of the previous one.
38 lines
1.1 KiB
Nix
38 lines
1.1 KiB
Nix
{ pkgs, ... }:
|
|
|
|
let
|
|
repositories = [
|
|
"local"
|
|
{ my-maven-proxy = "http://repo.mavenproxy.io/a/b/c/d"; }
|
|
"maven-local"
|
|
{
|
|
my-ivy-proxy =
|
|
"http://repo.company.com/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]";
|
|
}
|
|
"maven-central"
|
|
];
|
|
|
|
expectedRepositories = builtins.toFile "repositories" ''
|
|
[repositories]
|
|
local
|
|
my-maven-proxy: http://repo.mavenproxy.io/a/b/c/d
|
|
maven-local
|
|
my-ivy-proxy: http://repo.company.com/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
|
|
maven-central
|
|
'';
|
|
|
|
repositoriesSbtPath = ".sbt/repositories";
|
|
in {
|
|
config = {
|
|
programs.sbt = {
|
|
enable = true;
|
|
repositories = repositories;
|
|
package = pkgs.writeScriptBin "sbt" "";
|
|
};
|
|
|
|
nmt.script = ''
|
|
assertFileExists "home-files/${repositoriesSbtPath}"
|
|
assertFileContent "home-files/${repositoriesSbtPath}" "${expectedRepositories}"
|
|
'';
|
|
};
|
|
}
|