From a26e70c2af4d4754b8af17f50cf41d57b5492d5d Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Sun, 31 Dec 2006 19:07:33 +0000 Subject: [PATCH] * Quick attempt at fixing stdenv-mingw. svn path=/nixpkgs/trunk/; revision=7519 --- pkgs/stdenv/mingw/builder.sh | 1 - pkgs/stdenv/mingw/simple-stdenv/builder.sh | 46 ++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/pkgs/stdenv/mingw/builder.sh b/pkgs/stdenv/mingw/builder.sh index cfafde6b00d..9cbadb5091e 100755 --- a/pkgs/stdenv/mingw/builder.sh +++ b/pkgs/stdenv/mingw/builder.sh @@ -4,7 +4,6 @@ origShell=$SHELL origGcc=$GCC source $STDENV/setup -source $SUBSTITUTE mkdir $OUT diff --git a/pkgs/stdenv/mingw/simple-stdenv/builder.sh b/pkgs/stdenv/mingw/simple-stdenv/builder.sh index 650f6fb082f..0cbc13e4fab 100644 --- a/pkgs/stdenv/mingw/simple-stdenv/builder.sh +++ b/pkgs/stdenv/mingw/simple-stdenv/builder.sh @@ -29,6 +29,52 @@ header() { stopNest() { echo "Nothing to do" } + +# !!! Awful copy&paste. +substitute() { + local input="\$1" + local output="\$2" + + local -a params=("\$@") + + local sedScript=\$NIX_BUILD_TOP/.sedargs + rm -f \$sedScript + touch \$sedScript + + local n p pattern replacement varName + + for ((n = 2; n < \${#params[*]}; n += 1)); do + p=\${params[\$n]} + + if test "\$p" = "--replace"; then + pattern=\${params[\$((n + 1))]} + replacement=\${params[\$((n + 2))]} + n=\$((n + 2)) + echo "s^\$pattern^\$replacement^g" >> \$sedScript + sedArgs=("\${sedArgs[@]}" "-e" ) + fi + + if test "\$p" = "--subst-var"; then + varName=\${params[\$((n + 1))]} + n=\$((n + 1)) + echo "s^@\${varName}@^\${!varName}^g" >> \$sedScript + fi + + if test "\$p" = "--subst-var-by"; then + varName=\${params[\$((n + 1))]} + replacement=\${params[\$((n + 2))]} + n=\$((n + 2)) + echo "s^@\${varName}@^\$replacement^g" >> \$sedScript + fi + + done + + sed -f \$sedScript < "\$input" > "\$output".tmp + if test -x "\$output"; then + chmod +x "\$output".tmp + fi + mv -f "\$output".tmp "\$output" +} EOF chmod +x $out/setup