| |
| |
| |
| |
| |
| |
| |
| |
|
|
| if [ -z "$__TERAX_HOOKS_LOADED" ]; then |
| __TERAX_HOOKS_LOADED=1 |
|
|
| [ -f /etc/profile ] && source /etc/profile |
| [ -f /etc/bashrc ] && source /etc/bashrc |
| if [ -f "$HOME/.bash_profile" ]; then |
| source "$HOME/.bash_profile" |
| elif [ -f "$HOME/.bash_login" ]; then |
| source "$HOME/.bash_login" |
| elif [ -f "$HOME/.profile" ]; then |
| source "$HOME/.profile" |
| fi |
| |
| |
| |
| [ -f "$HOME/.bashrc" ] && source "$HOME/.bashrc" |
|
|
| _terax_urlencode() { |
| local LC_ALL=C s="$1" i c |
| for (( i=0; i<${#s}; i++ )); do |
| c="${s:i:1}" |
| case "$c" in |
| [a-zA-Z0-9/._~-]) printf '%s' "$c" ;; |
| *) printf '%%%02X' "'$c" ;; |
| esac |
| done |
| } |
|
|
| _terax_precmd() { |
| local _terax_ret=$? |
| printf '\e]133;D;%s\e\\' "$_terax_ret" |
| printf '\e]7;file://%s%s\e\\' "${HOSTNAME:-$(uname -n 2>/dev/null)}" "$(_terax_urlencode "$PWD")" |
| if [ -z "$__TERAX_PS1_INJECTED" ]; then |
| PS1='\[\e]133;B\e\\\]'"$PS1" |
| __TERAX_PS1_INJECTED=1 |
| fi |
| printf '\e]133;A\e\\' |
| } |
|
|
| case ":${PROMPT_COMMAND:-}:" in |
| *":_terax_precmd:"*) ;; |
| *) PROMPT_COMMAND="_terax_precmd${PROMPT_COMMAND:+;$PROMPT_COMMAND}" ;; |
| esac |
|
|
| |
| |
| |
| if [ "${BASH_VERSINFO[0]:-0}" -gt 4 ] \ |
| || { [ "${BASH_VERSINFO[0]:-0}" -eq 4 ] && [ "${BASH_VERSINFO[1]:-0}" -ge 4 ]; }; then |
| PS0='\[\e]133;C\e\\\]'"${PS0:-}" |
| fi |
|
|
| |
| |
| terax_open() { |
| local file="$1" |
|
|
| if [ -z "$file" ]; then |
| printf "usage: terax_open <file>\n" >&2 |
| return 1 |
| fi |
|
|
| |
| if [[ "$file" != /* ]]; then |
| file="$PWD/$file" |
| fi |
|
|
| |
| if [ ! -f "$file" ]; then |
| printf "terax_open: not a file: %s\n" "$file" >&2 |
| return 1 |
| fi |
|
|
| |
| printf '\e]8888;file=%s\e\\' "$(_terax_urlencode "$file")" |
| } |
|
|
| |
| alias tp='terax_open' |
|
|
| _terax_precmd |
| fi |
| : |
|
|