about summary refs log tree commit diff stats
path: root/bash
diff options
context:
space:
mode:
Diffstat (limited to 'bash')
-rw-r--r--bash/aliases.bash19
-rw-r--r--bash/bashrc1
-rw-r--r--bash/functions.bash33
-rw-r--r--bash/prompt.bash80
4 files changed, 84 insertions, 49 deletions
diff --git a/bash/aliases.bash b/bash/aliases.bash index 7b5ed55..e29f62a 100644 --- a/bash/aliases.bash +++ b/bash/aliases.bash
@@ -2,15 +2,15 @@
2 2
3# sudo 3# sudo
4sudo_cmds=( 4sudo_cmds=(
5 shutdown 5 shutdown
6 reboot 6 reboot
7 halt 7 halt
8 mount 8 mount
9 umount 9 umount
10 visudo 10 visudo
11) 11)
12for cmd in "${sudo_cmds[@]}"; do 12for cmd in "${sudo_cmds[@]}"; do
13 alias $cmd="sudo $cmd" 13 alias $cmd="sudo $cmd"
14done 14done
15 15
16# LS 16# LS
@@ -20,7 +20,7 @@ alias ll='ls -l'
20alias tree='tree -F' 20alias tree='tree -F'
21 21
22# make locally 22# make locally
23alias lake='make PREFIX=~/usr' 23alias lake='make PREFIX=$HOME/usr '
24 24
25# bash meta 25# bash meta
26alias rebash='source ~/.bash_profile' 26alias rebash='source ~/.bash_profile'
@@ -31,5 +31,6 @@ alias emacs_goddamnit='pushd ~/.emacs.d;emacs --debug-init;popd'
31# other 31# other
32alias radio=radish 32alias radio=radish
33if ! command -v fd >/dev/null 2>&1; then 33if ! command -v fd >/dev/null 2>&1; then
34 alias fd=fdfind 34 alias fd=fdfind
35fi 35fi
36
diff --git a/bash/bashrc b/bash/bashrc index f9f17e7..63e56d4 100644 --- a/bash/bashrc +++ b/bash/bashrc
@@ -52,4 +52,5 @@ for f in "${BASH_SOURCE_LAST[@]}"; do
52 fi 52 fi
53done 53done
54 54
55#ddate '+%{%A, %d %B%}, %Y%N (%H)'
55true 56true
diff --git a/bash/functions.bash b/bash/functions.bash index c5bcddb..64e8001 100644 --- a/bash/functions.bash +++ b/bash/functions.bash
@@ -48,15 +48,42 @@ please() { # please [COMMAND...]
48mkcd() { 48mkcd() {
49 if [ $# -lt 1 ]; then 49 if [ $# -lt 1 ]; then
50 command cd 50 command cd
51 return 51 return "$?"
52 fi
53 if [ "x$1" = x- ]; then
54 command cd -
55 return "$?"
52 fi 56 fi
53 if ! [ -d "$1" ]; then 57 if ! [ -d "$1" ]; then
54 read -p "$1 doesn't exist. Create (Y/n)? " yn 58 read -p "$1 doesn't exist. Create (y/N)? " yn
55 case "$yn" in 59 case "$yn" in
56 n* | N*) return 1 ;; 60 n* | N*) return 1 ;;
57 *) mkdir -p "$1" ;; 61 y* | Y*) mkdir -p "$1" ;;
62 *) return 1 ;;
58 esac 63 esac
59 fi 64 fi
60 command cd "$1" 65 command cd "$1"
61} 66}
62alias cd='mkcd ' 67alias cd='mkcd '
68
69# from tomasino
70# alias julian='echo "x = $(date +%s); scale=5; x / 86400 + 2440587.5" | bc'
71julian() {
72 echo "x = $(date ${1:+-d "$*"} +%s); scale=5; x / 86400 + 2440587.5" | bc
73}
74
75# find files for pipelines
76f() {
77 find "${1:-$PWD}" -depth |
78 while read -r file; do
79 printf '%q\n' "$file"
80 done
81}
82
83words() {
84 grep "$1" /usr/share/dict/words
85}
86
87dict() {
88 curl "dict://dict.org/d:$1" | less
89}
diff --git a/bash/prompt.bash b/bash/prompt.bash index 15fdb41..06ca638 100644 --- a/bash/prompt.bash +++ b/bash/prompt.bash
@@ -1,42 +1,48 @@
1# bash prompt 1# bash prompt
2 2
3if [[ -n "$INSIDE_EMACS" ]]; then 3if [[ -n "$INSIDE_EMACS" ]]; then
4 PS1=" \n\[\e[34m\]\$ \[\e[0m\]" 4 PS1="\n\[\e[34m\]\$ \[\e[0m\]"
5else 5else
6 PS1= 6 PS1=
7 7
8 # user, host, and cwd 8 # user, host, and cwd
9 PROMPT_DIRTRIM=3 # how many dirs above current to print (rest are '...') 9 PROMPT_DIRTRIM=3 # how many dirs above current to print (rest are '...')
10 PS1+='\[\e[0;46m\]\u@\h \w' 10 PS1+='\[\e[0;46m\]\u@\h \w'
11 11
12 # git bit 12 # git bit
13 # see https://unix.stackexchange.com/questions/278206 13 # see https://unix.stackexchange.com/questions/278206
14 possible_git_prompt_locations=( 14 possible_git_prompt_locations=(
15 /usr/share/git/git-prompt.sh # Arch, etc. (default?) 15 /usr/share/git/git-prompt.sh # Arch, etc. (default?)
16 /usr/lib/git-core/git-sh-prompt # Debian, Ubuntu ... 16 /usr/lib/git-core/git-sh-prompt # Debian, Ubuntu ...
17 /usr/share/git-core/contrib/completion/git-prompt.sh # Fedora ?? 17 /usr/share/git-core/contrib/completion/git-prompt.sh # Fedora ??
18 # I have yet to find Alpine's git prompt location. 18 # I have yet to find Alpine's git prompt location.
19 ) 19 )
20 20
21 for file in "${possible_git_prompt_locations[@]}"; do 21 for file in "${possible_git_prompt_locations[@]}"; do
22 if [[ -f "$file" ]]; then 22 if [[ -f "$file" ]]; then
23 source "$file" && 23 source "$file" &&
24 PS1+='\[\e[35m\]$(__git_ps1)' 24 PS1+='\[\e[35m\]$(__git_ps1)'
25 break 25 break
26 fi 26 fi
27 done 27 done
28 28
29 # newline 29 # newline
30 PS1+='\[\e[0m\]\n' 30 PS1+='\[\e[0m\]\n'
31 31
32 # exit code (only if error) 32 # exit code (only if error)
33 __prompt_exit_code() { 33 __prompt_exit_code() {
34 local ec=$? 34 local ec=$?
35 (( $ec > 0 )) && 35 (($ec > 0)) &&
36 printf "$ec" 36 printf "$ec"
37 } 37 }
38 PS1+='\[\e[31m\]$(__prompt_exit_code)\[\e[0m\]' 38 PS1+='\[\e[31m\]$(__prompt_exit_code)\[\e[0m\]'
39 39
40 # delimiter 40 # terminal title (current directory)
41 PS1+='; ' 41 __prompt_term_title() {
42 printf '\033]0;%s\007\n' "$*"
43 }
44 PS1+='\[$(__prompt_term_title "$USER@$(hostname): $PWD")\]'
45
46 # delimiter
47 PS1+='; '
42fi 48fi