1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2025-02-02 14:25:04 +01:00

sbt: allow irregular plugins to be configured

Sometimes plugins doesn't follow the form

```
addSbtPlugin("${plugin.org}" % "${plugin.artifact}" % "${plugin.version}")
```

for instance

```
addDependencyTreePlugin
```

This commit allow free form plugin dependency.
This commit is contained in:
Jérôme Prudent 2025-01-18 09:22:15 +01:00 committed by GitHub
parent 495de1e197
commit 1e36429705
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 20 additions and 2 deletions

View file

@ -130,6 +130,20 @@ in {
'';
};
pluginsExtra = mkOption {
type = types.listOf (types.str);
default = [ ];
example = literalExpression ''
[
"addDependencyTreePlugin"
]
'';
description = ''
A list of extra commands to put in plugins conf file.
Use it in last resort when you can't use the `plugins` option.
'';
};
credentials = mkOption {
type = types.listOf (sbtTypes.credential);
default = [ ];
@ -183,9 +197,10 @@ in {
config = mkIf cfg.enable (mkMerge [
{ home.packages = [ cfg.package ]; }
(mkIf (cfg.plugins != [ ]) {
(mkIf (cfg.plugins != [ ] || cfg.pluginsExtra != [ ]) {
home.file."${cfg.baseUserConfigPath}/1.0/plugins/plugins.sbt".text =
concatStrings (map renderPlugin cfg.plugins);
concatStrings (map renderPlugin cfg.plugins)
+ concatStringsSep "\n" cfg.pluginsExtra + "\n";
})
(mkIf (cfg.credentials != [ ]) {

View file

@ -15,12 +15,14 @@ let
};
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 {
@ -28,6 +30,7 @@ in {
programs.sbt = {
enable = true;
plugins = plugins;
pluginsExtra = pluginsExtra;
package = pkgs.writeScriptBin "sbt" "";
};