Skip to content

Commit 99e9f77

Browse files
committed
feat(build): #232 make parallel utils
- Create a makeDerivationParallel utility
1 parent 30d5a44 commit 99e9f77

File tree

6 files changed

+34
-7
lines changed

6 files changed

+34
-7
lines changed

src/args/default.nix

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,11 @@ let
2323
inherit inputs;
2424
makeContainerImage = import ./make-container-image/default.nix args;
2525
makeDerivation = import ./make-derivation/default.nix args;
26+
makeDerivationParallel = import ./make-derivation-parallel/default.nix args;
2627
makeNodeEnvironment = import ./make-node-environment/default.nix args;
27-
makeParallel = import ./make-parallel/default.nix args;
2828
makePythonEnvironment = import ./make-python-environment/default.nix args;
2929
makeScript = import ./make-script/default.nix args;
30+
makeScriptParallel = import ./make-script-parallel/default.nix args;
3031
makeSearchPaths = import ./make-search-paths/default.nix args;
3132
inherit makesVersion;
3233
makeTemplate = import ./make-template/default.nix args;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{ makeDerivation
2+
, ...
3+
}:
4+
{ dependencies
5+
, name
6+
}:
7+
makeDerivation {
8+
env = {
9+
envDependencies = dependencies;
10+
};
11+
builder = "echo $envDependencies > $out";
12+
name = "make-derivation-parallel-for-${name}";
13+
}

src/args/make-parallel/default.nix renamed to src/args/make-script-parallel/default.nix

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ makeScript {
1313
__argParallelArgs__ = asBashArray extraArgs;
1414
};
1515
entrypoint = ./entrypoint.sh;
16-
name = "make-parallel-for-${name}";
16+
name = "make-script-parallel-for-${name}";
1717
searchPaths = {
1818
bin = [
1919
__nixpkgs__.parallel
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# shellcheck shell=bash
2+
3+
function main {
4+
local commands=__argCommands__
5+
local parallel_args=__argParallelArgs__
6+
local commands_file
7+
8+
commands_file="$(mktemp)" \
9+
&& for command in "${commands[@]}"; do
10+
echo "${command}" >> "${commands_file}"
11+
done \
12+
&& parallel "${parallel_args[@]}" < "${commands_file}"
13+
}
14+
15+
main "${@}"

src/evaluator/modules/outputs/builtins/lint-python/default.nix

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{ __nixpkgs__
22
, makeDerivation
3+
, makeDerivationParallel
34
, makePythonEnvironment
45
, path
56
, ...
@@ -57,11 +58,8 @@ let
5758
in
5859
(modules ++ [{
5960
name = "/lintPython/dirOfModules/${name}";
60-
value = makeDerivation {
61-
env = {
62-
envModules = lib.attrsets.catAttrs "value" modules;
63-
};
64-
builder = "echo $envModules > $out";
61+
value = makeDerivationParallel {
62+
dependencies = lib.attrsets.catAttrs "value" modules;
6563
name = "lint-python-dir-of-modules-for-${name}";
6664
};
6765
}]);

0 commit comments

Comments
 (0)