stdenv: Don't use sed to build the setup script

This commit is contained in:
Eelco Dolstra 2014-07-01 17:39:07 +02:00
parent be3fc3ae2f
commit e3875297fa
3 changed files with 9 additions and 19 deletions

View File

@ -6,14 +6,11 @@ done
mkdir $out
echo "$preHook" > $out/setup
echo "export SHELL=$shell" > $out/setup
echo "initialPath=\"$initialPath\"" >> $out/setup
echo "$preHook" >> $out/setup
cat "$setup" >> $out/setup
sed -e "s^@initialPath@^$initialPath^g" \
-e "s^@shell@^$shell^g" \
< $out/setup > $out/setup.tmp
mv $out/setup.tmp $out/setup
# Allow the user to install stdenv using nix-env and get the packages
# in stdenv.
mkdir $out/nix-support

View File

@ -112,11 +112,6 @@ let
builder = shell;
args = ["-e" ./builder.sh];
/* TODO: special-cased @var@ substitutions are ugly.
However, using substituteAll* from setup.sh seems difficult,
as setup.sh can't be directly sourced.
Suggestion: split similar utility functions into a separate script.
*/
setup = setupScript;

View File

@ -163,7 +163,7 @@ shopt -s nullglob
# Set up the initial path.
PATH=
for i in @initialPath@; do
for i in $initialPath; do
if [ "$i" = / ]; then i=; fi
addToSearchPath PATH $i/bin
addToSearchPath PATH $i/sbin
@ -174,17 +174,15 @@ if [ "$NIX_DEBUG" = 1 ]; then
fi
# Execute the pre-hook.
export SHELL=@shell@
export CONFIG_SHELL="$SHELL"
if [ -z "$shell" ]; then export shell=@shell@; fi
runHook preHook
# Check that the pre-hook initialised SHELL.
if [ -z "$SHELL" ]; then echo "SHELL not set"; exit 1; fi
# Execute the pre-hook.
export CONFIG_SHELL="$SHELL"
if [ -z "$shell" ]; then export shell=$SHELL; fi
envHooks=()
crossEnvHooks=()