#extends phd_site #implements respond #attr $Title = ".bashrc" #attr $Copyright = 2003 #attr $First = "bashrc.html" #attr $Next = "profile.html" #attr $Last = "pdbrc.py.html" #attr $alternates = (("Plain text version", "text/plain", "bashrc"),) #def body_html #raw
# bash run commands
#
# Text version here
#
# Generated by gvim :runtime syntax/2html.vim
#
#
# $HOME/.bashrc
#

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# Copied from .profile to do minor initialization for non-interactive non-login-shells
umask 077

# Fix default PATH
if [ "$PATH" = "/usr/local/bin:/usr/bin:/bin:/usr/games" ]; then
    PATH="$HOME"/bin:"$HOME"/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
fi

if [ -n "$DISPLAY" ]; then
    PATH=$PATH:/usr/games
fi

# Make `ssh host date` to display in 24-hour format
LANG=C

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return ;;
esac

# Stop if non-interactive shell
[ -z "$PS1" ] && return

. "$HOME"/.shellrc

# This is the default value set by interactive bash
# when the global value was unset. Unset it here too.
if [ "$HISTFILE" = "$HOME/.bash_history" ]; then
    history -r
    unset HISTFILE
fi

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# append to the history file, don't overwrite it
shopt -s histappend

[ "`type -t ls`" = alias ] && unalias ls
[ "`type -t ll`" = alias ] && unalias ll

back() { cd - "$@"; }
functions() { typeset -f "$@"; }
j() { jobs; }

if [ -r "$HOME"/admin/prog/bash_prompt ]; then
    . "$HOME"/admin/prog/bash_prompt
    set_prompt
    unset set_prompt
else
    PS1="${debian_chroot:+($debian_chroot)}\u@\h:\W \$SHLVL\\$ "
fi

if [ -z "$BASH_COMPLETION_COMPAT_DIR" ]; then
    if [ -d /usr/share/bash-completion -a -r /usr/share/bash-completion/bash_completion ]; then
        _BASH_COMPLETIONS_DIR=/usr/share/bash-completion/completions
        . /usr/share/bash-completion/bash_completion
    elif [ -r /etc/bash_completion ]; then
        _BASH_COMPLETIONS_DIR=/etc/bash_completion.d
        . /etc/bash_completion
    elif [ -d /etc/bash_completion.d ] &&
            [ -n "`ls -A /etc/bash_completion.d`" ]; then
        _BASH_COMPLETIONS_DIR=/etc/bash_completion.d
        for _compf in /etc/bash_completion.d/*; do
            . $_compf
        done
    elif [ -d /usr/local/etc/bash_completion.d ] &&
            [ -n "`ls -A /usr/local/etc/bash_completion.d`" ]; then
        _BASH_COMPLETIONS_DIR=/usr/local/etc/bash_completion.d
        for _compf in /usr/local/etc/bash_completion.d/*; do
            . $_compf
        done
    else
        echo "Unknown OS type, cannot source bash_completion" >&2
    fi
fi

has_completion() {
    [ -n "$_BASH_COMPLETIONS_DIR" -a -d "$_BASH_COMPLETIONS_DIR" -a -r "$_BASH_COMPLETIONS_DIR/$1" ] ||
    complete -p $1 >/dev/null 2>&1
}

for cmd in builtin cgmem_nice command dbus-launch exec \
        killall man nice nohup pidof pidOf KillAll pgrep pkill psg pswg \
        run-hosts su sudo time whence whereis which xargs; do
    has_completion $cmd || complete -o default -A command $cmd
done

for cmd in dig host mtr nslookup nc netcat nmap p ping ping6 \
        ssh2 s2 socat telnet t tt \
        tcptraceroute tcptraceroute6 tracert tracert6 traceroute traceroute6 \
        whois wd wget wget-download wget-m wget-wrapper ww; do
    has_completion $cmd || complete -A hostname $cmd
done

for cmd in distribute ftp lftp r rsync \
        s scp ssh smbclient tcpdump tshark wireshark; do
    has_completion $cmd || complete -o default -A hostname $cmd
done

for cmd in bg fg jobs; do
    has_completion $cmd || complete -A job $cmd
done

complete -A job j wait

for cmd in unset; do
    has_completion $cmd || complete -A function -A variable $cmd
done

delegate_completion() {
    local prog programs
    prog=$1
    has_completion $prog || return 0
    shift
    programs="$@"
    eval "_${prog}_completion_loader() {
        _completion_loader $prog
        if [ x"$DELEGATE_NOSPACE" = x1 ]; then
            complete -o nospace -F _$prog $programs
        else
            complete -F _$prog $programs
        fi
        unset _${prog}_completion_loader
        return 124
    }"
    complete -F _${prog}_completion_loader $programs
}

delegate_completion make m
delegate_completion ping p
DELEGATE_NOSPACE=1 delegate_completion rsync r rsync_cgmn rsync_cgmn_recode rsync_cgmn_recode2
delegate_completion ssh s
delegate_completion wget wget-m wget-wrapper ww

if [ -d "$HOME"/.bash_completion.d ] &&
        [ -n "`ls -A $HOME/.bash_completion.d`" ]; then
    for _compf in "$HOME"/.bash_completion.d/*; do
        . $_compf
    done
fi

unset _BASH_COMPLETIONS_DIR has_completion delegate_completion

if [ -d "$HOME/lib/config" ]; then
    complete -W "`cd \"$HOME/lib/config\" && echo *`" include
fi
complete -W "`echo $BROWSER | sed 's/:/ /g'`" start-browser


if [ -n "$VIRTUAL_ENV" ] && ! type deactivate >/dev/null 2>&1; then
    . "$VIRTUAL_ENV/bin/activate"
fi

# Clean up python virtual environment on exit
# See https://virtualenvwrapper.readthedocs.io/en/latest/tips.html#clean-up-environments-on-exit

trap '[ "$VIRTUAL_ENV" ] && deactivate' EXIT

. virtualenvwrapper_lazy.sh 2>/dev/null


if test -d "$HOME"/.pyenv
then
    PYENV_ROOT="$HOME"/.pyenv
    export PYENV_ROOT
    PATH="$PYENV_ROOT/bin:$PATH"
    if which pyenv >/dev/null 2>&1; then
#        eval "`pyenv init --path`"
        eval "`pyenv init -`"
        eval "`pyenv virtualenv-init -`"
    fi
fi


if test -x /usr/bin/screen >/dev/null 2>&1; then
    screen_newwin() {
        history -a
        screen "$@"
    }
fi

if [ "$SHLVL" -eq 1 -a "`type -t X`" = function ] && which startx >/dev/null 2>&1; then
    # From https://stackoverflow.com/a/18839557

    copy_function() {
        test -n "$(declare -f "$1")" || return
        eval "${_/$1/$2}"
    }

    rename_function() {
        copy_function "$@" || return
        unset -f "$1"
    }

    rename_function X _non_bash_X

    X() { history -a; _non_bash_X; history -r; }
fi
#end raw #end def $phd_site.respond(self)