buildRustCrate: move the color loggign & remove some runtime checks

The expression is already long and confusing enough without the color
stuff sprinkled in. Moving it to a dedicated file makes sense.

I switched a bit of the color support code to pure Nix since there
wasn't much point in doing that in bash while we can just do it in Nix.
wip/yesman
Andreas Rammhold 5 years ago
parent 0aac0e8d2c
commit 50b2ef28f7
No known key found for this signature in database
GPG Key ID: E432E410B5E48C86
  1. 10
      pkgs/build-support/rust/build-rust-crate/build-crate.nix
  2. 52
      pkgs/build-support/rust/build-rust-crate/default.nix
  3. 33
      pkgs/build-support/rust/build-rust-crate/log.nix

@ -15,16 +15,6 @@
rustcMeta = "-C metadata=${metadata} -C extra-filename=-${metadata}"; rustcMeta = "-C metadata=${metadata} -C extra-filename=-${metadata}";
in '' in ''
runHook preBuild runHook preBuild
norm=""
bold=""
green=""
boldgreen=""
if [[ "${colors}" == "always" ]]; then
norm="$(printf '\033[0m')" #returns to "normal"
bold="$(printf '\033[0;1m')" #set bold
green="$(printf '\033[0;32m')" #set green
boldgreen="$(printf '\033[0;1;32m')" #set bold, and set green.
fi
${echo_build_heading colors} ${echo_build_heading colors}
${noisily colors verbose} ${noisily colors verbose}

@ -14,7 +14,7 @@ let
else stdenv.hostPlatform.parsed.kernel.name; else stdenv.hostPlatform.parsed.kernel.name;
makeDeps = dependencies: crateRenames: makeDeps = dependencies: crateRenames:
(lib.concatMapStringsSep " " (dep: lib.concatMapStringsSep " " (dep:
let let
extern = lib.replaceStrings ["-"] ["_"] dep.libName; extern = lib.replaceStrings ["-"] ["_"] dep.libName;
name = if lib.hasAttr dep.crateName crateRenames then name = if lib.hasAttr dep.crateName crateRenames then
@ -25,42 +25,20 @@ let
" --extern ${name}=${dep.lib}/lib/lib${extern}-${dep.metadata}.rlib" " --extern ${name}=${dep.lib}/lib/lib${extern}-${dep.metadata}.rlib"
else else
" --extern ${name}=${dep.lib}/lib/lib${extern}-${dep.metadata}${stdenv.hostPlatform.extensions.sharedLibrary}") " --extern ${name}=${dep.lib}/lib/lib${extern}-${dep.metadata}${stdenv.hostPlatform.extensions.sharedLibrary}")
) dependencies); ) dependencies;
echo_build_heading = colors: ''
echo_build_heading() { inherit (import ./log.nix { inherit lib; }) noisily echo_build_heading;
start=""
end="" configureCrate = import ./configure-crate.nix {
if [[ "${colors}" == "always" ]]; then inherit lib stdenv echo_build_heading noisily makeDeps;
start="$(printf '\033[0;1;32m')" #set bold, and set green. };
end="$(printf '\033[0m')" #returns to "normal"
fi buildCrate = import ./build-crate.nix {
if (( $# == 1 )); then inherit lib stdenv echo_build_heading noisily makeDeps rust;
echo "$start""Building $1""$end" };
else
echo "$start""Building $1 ($2)""$end" installCrate = import ./install-crate.nix;
fi
}
'';
noisily = colors: verbose: ''
noisily() {
start=""
end=""
if [[ "${colors}" == "always" ]]; then
start="$(printf '\033[0;1;32m')" #set bold, and set green.
end="$(printf '\033[0m')" #returns to "normal"
fi
${lib.optionalString verbose ''
echo -n "$start"Running "$end"
echo $@
''}
$@
}
'';
configureCrate = import ./configure-crate.nix { inherit lib stdenv echo_build_heading noisily makeDeps; };
buildCrate = import ./build-crate.nix { inherit lib stdenv echo_build_heading noisily makeDeps rust; };
installCrate = import ./install-crate.nix;
in in
crate_: lib.makeOverridable ({ rust, release, verbose, features, buildInputs, crateOverrides, crate_: lib.makeOverridable ({ rust, release, verbose, features, buildInputs, crateOverrides,

@ -0,0 +1,33 @@
{ lib }:
{
echo_build_heading = colors: ''
echo_build_heading() {
start=""
end=""
${lib.optionalString (colors == "always") ''
start="$(printf '\033[0;1;32m')" #set bold, and set green.
end="$(printf '\033[0m')" #returns to "normal"
''}
if (( $# == 1 )); then
echo "$start""Building $1""$end"
else
echo "$start""Building $1 ($2)""$end"
fi
}
'';
noisily = colors: verbose: ''
noisily() {
start=""
end=""
${lib.optionalString (colors == "always") ''
start="$(printf '\033[0;1;32m')" #set bold, and set green.
end="$(printf '\033[0m')" #returns to "normal"
''}
${lib.optionalString verbose ''
echo -n "$start"Running "$end"
echo $@
''}
$@
}
'';
}
Loading…
Cancel
Save