diff options
Diffstat (limited to 'nixos/modules/programs/gurobi.nix')
-rw-r--r-- | nixos/modules/programs/gurobi.nix | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/nixos/modules/programs/gurobi.nix b/nixos/modules/programs/gurobi.nix new file mode 100644 index 000000000000..7fa099b0884f --- /dev/null +++ b/nixos/modules/programs/gurobi.nix @@ -0,0 +1,43 @@ +{ config, pkgs, ... }: + +with pkgs.lib; + +let + cfg = config.programs.gurobi; +in { + options = { + programs.gurobi = { + license = mkOption { + default = null; + + description = "Path to the Gurobi license file if not using a token server"; + + type = types.nullOr types.path; + }; + + tokenServerAddress = mkOption { + default = null; + + description = "Address of the token server"; + + type = types.nullOr types.string; + }; + }; + }; + + config = mkIf (cfg.license != null || cfg.tokenServerAddress != null) { + assertions = [ { + assertion = cfg.license == null || cfg.tokenServerAddress == null; + message = "Please only set one of a gurobi license file and a gurobi token server address"; + } ]; + + environment.variables.GRB_LICENSE_FILE = if cfg.license != null + then cfg.license + else pkgs.writeTextFile { + name = "gurobi-generated-license"; + text = "TOKENSERVER=${cfg.tokenServerAddress}"; + }; + + environment.systemPackages = [ pkgs.gurobi ]; + }; +} |