blob: b9e5559dfe80bad59fc1b4dfc92e26e060c87083 (
plain)
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
#!/bin/bash
# quit if not running interactively
[[ $- != *i* ]] && return
# --- LOCAL UTILITY FUNCTIONS
__have() { type "$1" &>/dev/null; }
__source_if() { [[ -r "$1" ]] && source "$1"; }
# --- ENVIRONMENT
export CLICOLOR=1
export EDITOR=vi
export GIT_EDITOR=vi
export VISUAL=vi
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
export TERM="xterm-256color"
export FZF_DEFAULT_COMMAND='ag --hidden -g ""'
export GOPROXY=direct
export GOPATH="$HOME/.local/go"
# --- TELEMETRY OPTOUT
export FUNCTIONS_CORE_TOOLS_TELEMETRY_OPTOUT=1
export AZURE_CORE_COLLECT_TELEMETRY=0
# --- PATHS
export PATH="$HOME/.local/go/bin:$PATH"
export PATH="$HOME/.local/bin:$PATH"
export PATH="$HOME/.local/scripts:$PATH"
export PATH="$HOME/bin:$PATH"
export PATH="/usr/local/sbin:$PATH"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_STATE_HOME="$HOME/.local/state"
# --- BASH SHELL OPTIONS
shopt -s histappend
shopt -s checkwinsize
# --- HISTORY
export HISTSIZE=10000
export HISTFILESIZE=10000
export HISTCONTROL=ignoreboth
# --- PROMPT
__virtual_env_info() {
[ $VIRTUAL_ENV ] && echo "${VIRTUAL_ENV+(${VIRTUAL_ENV##*/})}"
}
__ps1() {
local branch_color='\[\e[1;35m\]'
local branch_prompt
local branch_prompt_clr
local git_branch=$(git branch --show-current 2>/dev/null)
local sign_prompt='\$'
local sign_prompt_clr='\[\e[00m\]\$'
[[ $git_branch == master || $git_branch == main ]] && branch_color='\[\e[31m\]'
[[ -n "$git_branch" ]] && branch_prompt_clr="$branch_color($git_branch)"
[[ -n "$git_branch" ]] && branch_prompt="($git_branch)"
[[ $EUID == 0 ]] && sign_prompt='#'
[[ $EUID == 0 ]] && sign_prompt_clr='\[\e[31m\]#\[\e[00m\]'
case "$TERM" in
xterm-color|*-256color)
PS1="\\[\e[0;33m\\]$(__virtual_env_info)\\[\e[01;32m\\]\u@\h\\[\e[00m\\]:\\[\e[01;34m\\]\W $branch_prompt_clr$sign_prompt_clr ";;
*)
PS1="$(__virtual_env_info)\u@\h:\W $branch_prompt$sign_prompt ";;
esac
}
if [ -x "$(command -v oh-my-posh)" ]; then
eval "$(oh-my-posh init bash --config $XDG_CONFIG_HOME/oh-my-posh/config.yml)"
else
PROMPT_COMMAND="__ps1"
fi
# --- ALIASES
alias rm='rm -i'
alias mv='mv -i'
alias cp='cp -i'
alias ls="ls -h --color=auto"
alias ll="ls -laH --color=auto"
alias gcm="git commit -m"
alias gsa="git status -uall"
alias gap="git add -p"
alias gpf="git pull && git fetch --prune"
alias gitl="git log -n 5 --graph --decorate --oneline"
alias tree="tree -a -I 'node_modules|.git'"
__have vim && alias vi=vim && EDITOR=vim && GIT_EDITOR=vim
# __have nvim && alias vi=nvim && EDITOR=nvim && GIT_EDITOR=nvim
# --- KEYBINDINGS
bind -x '"\C-f": tmux-sessionizer'
# --- COMPLETIONS
__source_if "/etc/bash_completion"
__source_if "$HOME/.fzf.bash"
__source_if "$HOME/.git-completion.bash"
# --- PERSONALIZED CONFIGURATIONS
__source_if "$HOME/.bash_personal"
__source_if "$HOME/.bash_work"
# --- LAZY LOAD NVM (node version manager)
lazy_load_nvm() {
unset -f npm node nvm
export NVM_DIR="$HOME/.nvm"
__source_if "$NVM_DIR/nvm.sh"
__source_if "$NVM_DIR/bash_completion"
}
npm() {
lazy_load_nvm
npm $@
}
node() {
lazy_load_nvm
node $@
}
nvm() {
lazy_load_nvm
node $@
}
|