From 35bd1174f7cf31936f217dfd071962ae5c0537e4 Mon Sep 17 00:00:00 2001 From: Bo Rydberg Date: Sun, 3 Mar 2019 22:54:48 +0100 Subject: [PATCH 1/4] Issue 19716 Add MANPATH to activate(.fish) --- script/install.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/script/install.sh b/script/install.sh index 388d73e6..eb74fd53 100755 --- a/script/install.sh +++ b/script/install.sh @@ -381,7 +381,7 @@ run_command() { else log " Run \`source $ROOT/$2/activate${suffix:-}\` in your shell to use $2. -This will setup PATH, LIBRARY_PATH, LD_LIBRARY_PATH, DMD, DC, and PS1. +This will setup PATH, LIBRARY_PATH, LD_LIBRARY_PATH, MANPATH, DMD, DC, and PS1. Run \`deactivate\` later on to restore your environment." fi ;; @@ -715,11 +715,13 @@ deactivate() { export PATH="\$_OLD_D_PATH" export LIBRARY_PATH="\$_OLD_D_LIBRARY_PATH" export LD_LIBRARY_PATH="\$_OLD_D_LD_LIBRARY_PATH" + export MANPATH="\$_OLD_D_MANPATH" export PS1="\$_OLD_D_PS1" unset _OLD_D_PATH unset _OLD_D_LIBRARY_PATH unset _OLD_D_LD_LIBRARY_PATH + unset _OLD_D_MANPATH unset _OLD_D_PS1 unset DMD unset DC @@ -729,11 +731,13 @@ deactivate() { _OLD_D_PATH="\${PATH:-}" _OLD_D_LIBRARY_PATH="\${LIBRARY_PATH:-}" _OLD_D_LD_LIBRARY_PATH="\${LD_LIBRARY_PATH:-}" +_OLD_D_MANPATH="\${MANPATH:-}" _OLD_D_PS1="\${PS1:-}" export PATH="${DUB_BIN_PATH}${DUB_BIN_PATH:+:}$ROOT/$1/$binpath\${PATH:+:}\${PATH:-}" export LIBRARY_PATH="$ROOT/$1/$libpath\${LIBRARY_PATH:+:}\${LIBRARY_PATH:-}" export LD_LIBRARY_PATH="$ROOT/$1/$libpath\${LD_LIBRARY_PATH:+:}\${LD_LIBRARY_PATH:-}" +export MANPATH="$ROOT/$1/man:\${MANPATH:-}" export DMD=$dmd export DC=$dc export PS1="($1)\${PS1:-}" @@ -745,6 +749,7 @@ function deactivate set -gx PATH \$_OLD_D_PATH set -gx LIBRARY_PATH \$_OLD_D_LIBRARY_PATH set -gx LD_LIBRARY_PATH \$_OLD_D_LD_LIBRARY_PATH + set -gx MANPATH \$_OLD_D_MANPATH functions -e fish_prompt functions -c _old_d_fish_prompt fish_prompt @@ -753,6 +758,7 @@ function deactivate set -e _OLD_D_PATH set -e _OLD_D_LIBRARY_PATH set -e _OLD_D_LD_LIBRARY_PATH + set -e _OLD_D_MANPATH set -e DMD set -e DC functions -e deactivate @@ -761,11 +767,14 @@ end set -g _OLD_D_PATH \$PATH set -g _OLD_D_LIBRARY_PATH \$LIBRARY_PATH set -g _OLD_D_LD_LIBRARY_PATH \$LD_LIBRARY_PATH +set -g _OLD_D_MANPATH \$MANPATH set -g _OLD_D_PS1 \$PS1 set -gx PATH ${DUB_BIN_PATH:+\'}${DUB_BIN_PATH}${DUB_BIN_PATH:+\' }'$ROOT/$1/$binpath' \$PATH set -gx LIBRARY_PATH '$ROOT/$1/$libpath' \$LIBRARY_PATH set -gx LD_LIBRARY_PATH '$ROOT/$1/$libpath' \$LD_LIBRARY_PATH +set -q MANPATH; or set MANPATH '' +set -gx MANPATH '$ROOT/$1/man' \$MANPATH set -gx DMD $dmd set -gx DC $dc functions -c fish_prompt _old_d_fish_prompt From 41fe54fa0d75f1f0457bd688dd1bfea58ae7f6f8 Mon Sep 17 00:00:00 2001 From: Bo Rydberg Date: Mon, 4 Mar 2019 22:43:24 +0100 Subject: [PATCH 2/4] Issue 19716 Add travis test --- travis.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/travis.sh b/travis.sh index 7d49d1e2..4b578b6f 100755 --- a/travis.sh +++ b/travis.sh @@ -75,6 +75,16 @@ do command -v dub >/dev/null 2>&1 || { echo >&2 "DUB hasn't been installed."; exit 1; } deactivate + # Check man pages do not destroy system man pages availability + if man ls >/dev/null 2>&1; then man_ls_exit_status=0; else man_ls_exit_status=$?; fi + if man dmd >/dev/null 2>&1; then man_dmd_exit_status=0; else man_dmd_exit_status=$?; fi + . ~/dlang/$compiler/activate + if man ls >/dev/null 2>&1; test $? -ne $man_ls_exit_status; then false; fi + if man dmd >/dev/null 2>&1; test $? -ne 0; then false; fi + deactivate + if man ls >/dev/null 2>&1; test $? -ne $man_ls_exit_status; then false; fi + if man dmd >/dev/null 2>&1; test $? -ne $man_dmd_exit_status; then false; fi + ./script/install.sh uninstall $compiler done From 2e9229c167fc04c99010ee96908b009cacc54121 Mon Sep 17 00:00:00 2001 From: Bo Rydberg Date: Tue, 5 Mar 2019 23:10:46 +0100 Subject: [PATCH 3/4] Issue 19716 Refactor MANPATH approach --- script/install.sh | 48 +++++++++++++++++++++++++---------------------- travis.sh | 13 +++++-------- 2 files changed, 31 insertions(+), 30 deletions(-) diff --git a/script/install.sh b/script/install.sh index eb74fd53..9d95cdb1 100755 --- a/script/install.sh +++ b/script/install.sh @@ -371,6 +371,10 @@ run_command() { install_dub fi + if [[ $2 = dmd* ]]; then + manpath=man + fi + write_env_vars "$2" if [ "$(basename "$SHELL")" = fish ]; then @@ -381,7 +385,7 @@ run_command() { else log " Run \`source $ROOT/$2/activate${suffix:-}\` in your shell to use $2. -This will setup PATH, LIBRARY_PATH, LD_LIBRARY_PATH, MANPATH, DMD, DC, and PS1. +This will setup PATH, LIBRARY_PATH, LD_LIBRARY_PATH, ${manpath+MANPATH, }DMD, DC, and PS1. Run \`deactivate\` later on to restore your environment." fi ;; @@ -710,19 +714,19 @@ write_env_vars() { esac logV "Writing environment variables to $ROOT/$1/activate" - cat > "$ROOT/$1/activate" < "$ROOT/$1/activate" < "$ROOT/$1/activate.fish" < "$ROOT/$1/activate.fish" </dev/null 2>&1; then man_ls_exit_status=0; else man_ls_exit_status=$?; fi - if man dmd >/dev/null 2>&1; then man_dmd_exit_status=0; else man_dmd_exit_status=$?; fi - . ~/dlang/$compiler/activate - if man ls >/dev/null 2>&1; test $? -ne $man_ls_exit_status; then false; fi - if man dmd >/dev/null 2>&1; test $? -ne 0; then false; fi - deactivate - if man ls >/dev/null 2>&1; test $? -ne $man_ls_exit_status; then false; fi - if man dmd >/dev/null 2>&1; test $? -ne $man_dmd_exit_status; then false; fi + if [[ $compiler = dmd* ]]; then + . ~/dlang/$compiler/activate + man dmd >/dev/null 2>&1 + deactivate + fi ./script/install.sh uninstall $compiler done From 30ccce556599e2d3ed0b30566fd2d37fdc8fe5da Mon Sep 17 00:00:00 2001 From: Bo Rydberg Date: Tue, 5 Mar 2019 23:27:19 +0100 Subject: [PATCH 4/4] Issue 19716 Workaround for bad shellcheck check --- script/install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/script/install.sh b/script/install.sh index 9d95cdb1..3fa4482f 100755 --- a/script/install.sh +++ b/script/install.sh @@ -748,6 +748,7 @@ export PS1="($1)\${PS1:-}" END_ACTIVATE logV "Writing environment variables to $ROOT/$1/activate.fish" + # shellcheck disable=SC2016 cat > "$ROOT/$1/activate.fish" <