From b93096780562ec3b8538be9ac0ab77b58eaaf8c8 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed, 16 Feb 2005 11:13:18 +0000 Subject: [PATCH] * A utility function for the automatic generation of wrapper scripts. svn path=/nixpkgs/trunk/; revision=2241 --- .../browsers/firefox-wrapper/builder.sh | 26 ++++++++++++------- .../browsers/firefox-wrapper/default.nix | 1 + .../make-wrapper/make-wrapper.sh | 26 +++++++++++++++++++ 3 files changed, 44 insertions(+), 9 deletions(-) create mode 100644 pkgs/build-support/make-wrapper/make-wrapper.sh diff --git a/pkgs/applications/networking/browsers/firefox-wrapper/builder.sh b/pkgs/applications/networking/browsers/firefox-wrapper/builder.sh index d8b97aa97681..50b14bf9b6b7 100644 --- a/pkgs/applications/networking/browsers/firefox-wrapper/builder.sh +++ b/pkgs/applications/networking/browsers/firefox-wrapper/builder.sh @@ -1,9 +1,8 @@ . $stdenv/setup +. $makeWrapper shopt -s nullglob -mkdir -p $out/bin - pluginPath= extraLibPath= for i in $plugins; do @@ -17,11 +16,20 @@ for i in $plugins; do done done -cat > $out/bin/firefox <<EOF -#! $SHELL -export LD_LIBRARY_PATH=$extraLibPath -export MOZ_PLUGIN_PATH=$pluginPath -exec $firefox/bin/firefox "\$@" -EOF +makeWrapper "$firefox/bin/firefox" "$out/bin/firefox" \ + --suffix MOZ_PLUGIN_PATH ':' $pluginPath \ + --suffix LD_LIBRARY_PATH ':' $extraLibPath -chmod +x $out/bin/firefox +# --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 diff --git a/pkgs/applications/networking/browsers/firefox-wrapper/default.nix b/pkgs/applications/networking/browsers/firefox-wrapper/default.nix index 2e3c81d9e417..eb6c6f3bde3c 100644 --- a/pkgs/applications/networking/browsers/firefox-wrapper/default.nix +++ b/pkgs/applications/networking/browsers/firefox-wrapper/default.nix @@ -4,6 +4,7 @@ stdenv.mkDerivation { name = firefox.name; builder = ./builder.sh; + makeWrapper = ../../../../build-support/make-wrapper/make-wrapper.sh; inherit firefox plugins; } diff --git a/pkgs/build-support/make-wrapper/make-wrapper.sh b/pkgs/build-support/make-wrapper/make-wrapper.sh new file mode 100644 index 000000000000..be066e1c579c --- /dev/null +++ b/pkgs/build-support/make-wrapper/make-wrapper.sh @@ -0,0 +1,26 @@ +makeWrapper() { + original=$1 + wrapper=$2 + + ensureDir "$(dirname $wrapper)" + + echo "#! $SHELL -e" > $wrapper + + params=("$@") + for ((n = 2; n < ${#params[*]}; n += 1)); do + p=${params[$n]} + + if test "$p" = "--suffix"; then + echo FOOBAR + varName=${params[$((n + 1))]} + separator=${params[$((n + 2))]} + value=${params[$((n + 3))]} + n=$((n + 3)) + echo "export $varName=\$$varName\${$varName:+$separator}$value" >> $wrapper + fi + done + + echo "exec \"$original\" \"\$@\"" >> $wrapper + + chmod +x $wrapper +}