mirror of
https://github.com/nix-community/home-manager.git
synced 2025-03-10 10:47:02 +00:00
Instead of having to manually stub packages that should not be downloaded we instead automatically stub all packages (except a small list of whitelisted ones). Tests can re-introduce the real package by using the `realPkgs` module argument.
40 lines
975 B
Nix
40 lines
975 B
Nix
{ pkgs, ... }:
|
|
|
|
let
|
|
dependencyGraph = {
|
|
org = "net.virtual-void";
|
|
artifact = "sbt-dependency-graph";
|
|
version = "0.10.0-RC1";
|
|
};
|
|
projectGraph = {
|
|
org = "com.dwijnand";
|
|
artifact = "sbt-project-graph";
|
|
version = "0.4.0";
|
|
};
|
|
|
|
plugins = [ dependencyGraph projectGraph ];
|
|
pluginsExtra = [ "addDependencyTreePlugin" ];
|
|
|
|
pluginsSbtPath = ".sbt/1.0/plugins/plugins.sbt";
|
|
|
|
expectedPluginsSbt = pkgs.writeText "plugins.sbt" ''
|
|
addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.10.0-RC1")
|
|
addSbtPlugin("com.dwijnand" % "sbt-project-graph" % "0.4.0")
|
|
addDependencyTreePlugin
|
|
'';
|
|
|
|
in {
|
|
config = {
|
|
programs.sbt = {
|
|
enable = true;
|
|
plugins = plugins;
|
|
pluginsExtra = pluginsExtra;
|
|
package = pkgs.writeScriptBin "sbt" "";
|
|
};
|
|
|
|
nmt.script = ''
|
|
assertFileExists "home-files/${pluginsSbtPath}"
|
|
assertFileContent "home-files/${pluginsSbtPath}" "${expectedPluginsSbt}"
|
|
'';
|
|
};
|
|
}
|