* More wrapper generation features. The Firefox wrapper generator is

now just 3 lines.

svn path=/nixpkgs/trunk/; revision=2243
This commit is contained in:
Eelco Dolstra 2005-02-16 11:38:52 +00:00
parent 3bf404a3f2
commit eeff1fcdd1
2 changed files with 38 additions and 29 deletions

View File

@ -1,33 +1,6 @@
. $stdenv/setup
. $makeWrapper
shopt -s nullglob
pluginPath=
extraLibPath=
for p in $plugins; do
if test -e $p; then
pluginPath=$pluginPath${pluginPath:+:}$p
if test -e $p/extra-library-path; then
extraLibPath=$extraLibPath${extraLibPath:+:}$(cat $p/extra-library-path)
fi
fi
done
makeWrapper "$firefox/bin/firefox" "$out/bin/firefox" \
--suffix MOZ_PLUGIN_PATH ':' "$pluginPath" \
--suffix LD_LIBRARY_PATH ':' "$extraLibPath"
# --add-to-env MOZ_PLUGIN_PATH ':' --each lib/mozilla/plugins "$plugins" \
# --add-to-env MOZ_PLUGIN_PATH ':' --each 'jre/plugin/*/mozilla' "$plugins" \
# --add-to-env LD_LIBRARY_PATH --contents lib/mozilla/plugins/extra-library-path "$plugins" \
# --add-to-env LD_LIBRARY_PATH --contents 'jre/plugin/*/mozilla/extra-library-path' "$plugins"
#cat > $out/bin/firefox <<EOF
##! $SHELL
#export LD_LIBRARY_PATH=$extraLibPath
#export MOZ_PLUGIN_PATH=$pluginPath
#exec $firefox/bin/firefox "\$@"
#EOF
#chmod +x $out/bin/firefox
--suffix-each MOZ_PLUGIN_PATH ':' "$plugins" \
--suffix-contents LD_LIBRARY_PATH ':' "$(filterExisting $(addSuffix /extra-library-path $plugins))"

View File

@ -19,9 +19,45 @@ makeWrapper() {
echo "export $varName=\$$varName\${$varName:+$separator}$value" >> $wrapper
fi
fi
if test "$p" = "--suffix-each"; then
varName=${params[$((n + 1))]}
separator=${params[$((n + 2))]}
values=${params[$((n + 3))]}
n=$((n + 3))
for value in $values; do
echo "export $varName=\$$varName\${$varName:+$separator}$value" >> $wrapper
done
fi
if test "$p" = "--suffix-contents"; then
varName=${params[$((n + 1))]}
separator=${params[$((n + 2))]}
fileNames=${params[$((n + 3))]}
n=$((n + 3))
for fileName in $fileNames; do
echo "export $varName=\$$varName\${$varName:+$separator}$(cat $fileName)" >> $wrapper
done
fi
done
echo "exec \"$original\" \"\$@\"" >> $wrapper
chmod +x $wrapper
}
addSuffix() {
suffix=$1
shift
for name in "$@"; do
echo "$name$suffix"
done
}
filterExisting() {
for fn in "$@"; do
if test -e "$fn"; then
echo "$fn"
fi
done
}