1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | # https://github.com/txgvnn/dots/
# $cat this-file >> ~/.bashrc
##PS1
color='32'
if [ "$(id -u)" -eq 0 ]; then
color='31'
fi
if ! declare -f "__git_ps1" >/dev/null; then
function __git_ps1(){ echo "";}
fi
export GIT_PS1_SHOWDIRTYSTATE=true
PS1="\$(__service_ps)\n\[\e[0;${color}m\]\342\224\214\[\e[1;30m\](\[\e[0;${color}m\]\u\[\e[0;36m\]@\h\[\e[1;30m\])\$(if [[ \$? == 0 ]]; then echo \"\[\e[1;32m\]\342\224\200\"; else echo \"\[\e[1;31m\]\342\224\200\"; fi)\[\e[0m\]\[\e[1;30m\](\[\e[0;34m\]\w\[\e[1;30m\])\342\224\200(\[\e[0;33m\]\t\[\e[1;30m\]\[\e[1;30m\])\$(__git_ps1)\n\[\e[0;${color}m\]\342\224\224>\[\e[0m\]"
function __service_ps(){
local ret=$?
# torsock on
if env | grep torsocks -q ; then
printf "\342\224\200\e[1;30m(\e[1;30mtor\e[1;30m)\e[0m"
fi
return $ret
}
function ps1(){
if [[ $PS1 != *"$1"* ]]; then
PS1="\342\224\200\[\e[1;30m\](\[\e[0;35m\]"$1"\[\e[1;30m\])\[\e[0m\]"$PS1
fi
}
declare -f "cdenv" > /dev/null || function cdenv(){
if [ -z "$1" ]; then
cd || exit 1
else
cd "$1"
fi
# .bin
if [ -e .bin ]; then
if [[ $PATH != *"$(pwd)/.bin"* ]]; then
ps1 ".bin"
export PATH=$(pwd)/.bin:$PATH
fi
if [ -e .bin/env ]; then
. .bin/env
fi
fi
# Makefile
if [ -e Makefile ]; then
ps1 "make"
else
PS1=$(echo $PS1 | sed 's/\\342\\224\\200\\\[\\e\[1;30m\\\](\\\[\\e\[0;35m\\\]make\\\[\\e\[1;30m\\\])//g')
fi
# virtualenv
if [ -e bin ]; then
if [[ $PATH != *"$(pwd)/bin"* ]]; then
ps1 bin
export PATH=$(pwd)/bin:$PATH
fi
if [ -e bin/activate ]; then
. bin/activate
fi
fi
# vagrant
if [ -e Vagrantfile ]; then
if [[ $PS1 != *"vagrant"* ]]; then
ps1 vagrant
fi
else
PS1=$(echo $PS1 | sed 's/\\342\\224\\200\\\[\\e\[1;30m\\\](\\\[\\e\[0;35m\\\]vagrant\\\[\\e\[1;30m\\\])//g')
fi
}
function cdtmp(){
cd "$(mktemp -d -t ${USER}_$(date +%F_%H-%I)_XXX)" || exit 1
}
function lstmp(){
ls /tmp/"$USER"*
}
function mkcd(){
if [ $# -ne 1 ]; then
echo "Usage: mkcd DIR"
fi
mkdir "$1" && cd "$1"
}
# SSH and screen
function sshscreen(){
ssh "$@" -v -t 'if screen -ls | grep gtx -q ; then screen -x gtx ;else screen -S gtx ;fi'
}
# SSH and screen
function sshtmux(){
ssh "$@" -v -t 'if tmux ls | grep gtx -q ; then tmux at -t gtx ;else tmux new -s gtx ;fi'
}
# Alias
alias cd="cdenv"
alias em="emacs -nw"
# Export
export HISTTIMEFORMAT="%F %T "
## Check pseudoterminal or not?
export TERM=xterm-256color
if [[ $(tty) != */dev/pts/* ]]; then
export TERM=linux
fi
|
x