31 lines
941 B
Nix
31 lines
941 B
Nix
|
{pkgs, lib, config, writeTextDir, ...}: with lib; {
|
||
|
options.programs.parallel = {
|
||
|
enable = mkEnableOption "parallel";
|
||
|
package = mkPackageOption pkgs "parallel" { };
|
||
|
willCite = mkOption {
|
||
|
default = false;
|
||
|
defaultText = literalExpression "false";
|
||
|
example = literalExpression "true";
|
||
|
description = "Indicate that you will cite parallel if you use it in an academic paper";
|
||
|
type = types.bool;
|
||
|
};
|
||
|
};
|
||
|
config = mkIf config.programs.parallel.enable {
|
||
|
home.packages = [
|
||
|
(
|
||
|
pkgs.symlinkJoin {
|
||
|
name = "parallel";
|
||
|
paths = [ config.programs.parallel.package ];
|
||
|
buildInputs = [ pkgs.makeWrapper ];
|
||
|
parallelHome = if config.programs.parallel.willCite
|
||
|
then pkgs.writeTextDir "will-cite" ""
|
||
|
else pkgs.runCommand "parallel-home-nocite" {} "mkdir $out";
|
||
|
postBuild = ''
|
||
|
wrapProgram $out/bin/parallel \
|
||
|
--set-default PARALLEL_HOME $parallelHome
|
||
|
'';
|
||
|
}
|
||
|
)
|
||
|
];
|
||
|
};
|
||
|
}
|