Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue 19716 Add MANPATH to activate(.fish) #367

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 27 additions & 13 deletions script/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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, 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
;;
Expand Down Expand Up @@ -710,17 +714,19 @@ write_env_vars() {
esac

logV "Writing environment variables to $ROOT/$1/activate"
cat > "$ROOT/$1/activate" <<EOF
cat > "$ROOT/$1/activate" <<END_ACTIVATE
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why change this? EOF is kinda a standard for bash heredoc strings.

deactivate() {
export PATH="\$_OLD_D_PATH"
export LIBRARY_PATH="\$_OLD_D_LIBRARY_PATH"
export LD_LIBRARY_PATH="\$_OLD_D_LD_LIBRARY_PATH"
export PS1="\$_OLD_D_PS1"
${manpath+ 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_PS1
${manpath+ unset _OLD_D_MANPATH
} unset _OLD_D_PS1
unset DMD
unset DC
unset -f deactivate
Expand All @@ -729,50 +735,58 @@ deactivate() {
_OLD_D_PATH="\${PATH:-}"
_OLD_D_LIBRARY_PATH="\${LIBRARY_PATH:-}"
_OLD_D_LD_LIBRARY_PATH="\${LD_LIBRARY_PATH:-}"
_OLD_D_PS1="\${PS1:-}"
${manpath+_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 DMD=$dmd
${manpath+export MANPATH="$ROOT/$1/$manpath:\${MANPATH:-}"
}export DMD=$dmd
export DC=$dc
export PS1="($1)\${PS1:-}"
EOF
END_ACTIVATE

logV "Writing environment variables to $ROOT/$1/activate.fish"
cat > "$ROOT/$1/activate.fish" <<EOF
# shellcheck disable=SC2016
cat > "$ROOT/$1/activate.fish" <<END_ACTIVATEFISH
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

${manpath+ set -gx MANPATH \$_OLD_D_MANPATH
}
functions -e fish_prompt
functions -c _old_d_fish_prompt fish_prompt
functions -e _old_d_fish_prompt

set -e _OLD_D_PATH
set -e _OLD_D_LIBRARY_PATH
set -e _OLD_D_LD_LIBRARY_PATH
set -e DMD
${manpath+ set -e _OLD_D_MANPATH
} set -e DMD
set -e DC
functions -e deactivate
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_PS1 \$PS1
${manpath+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 -gx DMD $dmd
${manpath+set -q MANPATH; or set MANPATH ''
set -gx MANPATH '$ROOT/$1/$manpath' \$MANPATH
}set -gx DMD $dmd
set -gx DC $dc
functions -c fish_prompt _old_d_fish_prompt
function fish_prompt
printf '($1)%s' (_old_d_fish_prompt)
end
EOF
END_ACTIVATEFISH
}

uninstall_compiler() {
Expand Down
7 changes: 7 additions & 0 deletions travis.sh
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,13 @@ 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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You don't check this ;-)

if [[ $compiler = dmd* ]]; then
. ~/dlang/$compiler/activate
man dmd >/dev/null 2>&1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe grep for sth. like Digital Mars to ensure it worked properly?

deactivate
fi

./script/install.sh uninstall $compiler
done

Expand Down