| 
				
			 | 
			
			
				@@ -13,6 +13,14 @@ test -f /usr/share/git-core/contrib/completion/git-prompt.sh \ 
			 | 
		
	
		
			
			| 
				13
			 | 
			
				13
			 | 
			
			
				 ### '''' ### 
			 | 
		
	
		
			
			| 
				14
			 | 
			
				14
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				15
			 | 
			
				15
			 | 
			
			
				 git() { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				16
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				17
			 | 
			
			
				+    # /usr/bin/git wrapper just to disable dangerous commands 
			 | 
		
	
		
			
			| 
				
			 | 
			
				18
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				19
			 | 
			
			
				+    # In particular, `git-am` is a a close typo of my favorite 
			 | 
		
	
		
			
			| 
				
			 | 
			
				20
			 | 
			
			
				+    # aliases `ap` (`git-add --patch`) and `cm` (`git-commit`) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				21
			 | 
			
			
				+    # but it's dangerous to call by accident as it destroys 
			 | 
		
	
		
			
			| 
				
			 | 
			
				22
			 | 
			
			
				+    # workdir changes. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				23
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				16
			 | 
			
				24
			 | 
			
			
				     if grep -Fwqse "$1" "$GIT_DISABLED_COMMANDS"; then 
			 | 
		
	
		
			
			| 
				17
			 | 
			
				25
			 | 
			
			
				         echo "You don't want this." >&2 
			 | 
		
	
		
			
			| 
				18
			 | 
			
				26
			 | 
			
			
				         return 1 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -22,29 +30,55 @@ git() { 
			 | 
		
	
		
			
			| 
				22
			 | 
			
				30
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				23
			 | 
			
				31
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				24
			 | 
			
				32
			 | 
			
			
				 grepr() { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				33
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				34
			 | 
			
			
				+    # Grep recursively, keeping numbers and ignoring common dirs 
			 | 
		
	
		
			
			| 
				
			 | 
			
				35
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				36
			 | 
			
			
				+    # Number one tool for refactoring! 
			 | 
		
	
		
			
			| 
				
			 | 
			
				37
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				25
			 | 
			
				38
			 | 
			
			
				     local p=$1; shift 
			 | 
		
	
		
			
			| 
				26
			 | 
			
				39
			 | 
			
			
				     grep --color -n --exclude-dir=".git" -e "$p" -r "$@" 
			 | 
		
	
		
			
			| 
				27
			 | 
			
				40
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				28
			 | 
			
				41
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				29
			 | 
			
				42
			 | 
			
			
				 greph() { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				43
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				44
			 | 
			
			
				+    # Grep through bash history 
			 | 
		
	
		
			
			| 
				
			 | 
			
				45
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				30
			 | 
			
				46
			 | 
			
			
				     history | sed 's/^  *//; s/  / /' | cut -d' ' -f2- | grep "$@" 
			 | 
		
	
		
			
			| 
				31
			 | 
			
				47
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				32
			 | 
			
				48
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				33
			 | 
			
				49
			 | 
			
			
				 gitcd() { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				50
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				51
			 | 
			
			
				+    # Deep in git repo, cd to the git root 
			 | 
		
	
		
			
			| 
				
			 | 
			
				52
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				34
			 | 
			
				53
			 | 
			
			
				     cd "$(git rev-parse --show-toplevel)" 
			 | 
		
	
		
			
			| 
				35
			 | 
			
				54
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				36
			 | 
			
				55
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				37
			 | 
			
				56
			 | 
			
			
				 clsz() { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				57
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				58
			 | 
			
			
				+    # Clear screen and move the prompt to bottom 
			 | 
		
	
		
			
			| 
				
			 | 
			
				59
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				38
			 | 
			
				60
			 | 
			
			
				     tput clear; tput cup "$(tput lines)" 0 
			 | 
		
	
		
			
			| 
				39
			 | 
			
				61
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				40
			 | 
			
				62
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				41
			 | 
			
				63
			 | 
			
			
				 bcdiff() { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				64
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				65
			 | 
			
			
				+    # Call bcompare only if objects actually differ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				66
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				42
			 | 
			
				67
			 | 
			
			
				     test $# -eq 2 && diff "$@" >/dev/null && return 
			 | 
		
	
		
			
			| 
				43
			 | 
			
				68
			 | 
			
			
				     bcompare "$@" & 
			 | 
		
	
		
			
			| 
				44
			 | 
			
				69
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				45
			 | 
			
				70
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				46
			 | 
			
				71
			 | 
			
			
				 vims() { 
			 | 
		
	
		
			
			| 
				47
			 | 
			
				
			 | 
			
			
				-    # 2015-07-10 06:10:48.603953758 +0200 ~/TODO.todo 
			 | 
		
	
		
			
			| 
				
			 | 
			
				72
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				73
			 | 
			
			
				+    # Show "abandoned" Vim .swp files in a nice table 
			 | 
		
	
		
			
			| 
				
			 | 
			
				74
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				75
			 | 
			
			
				+    # Call this after crash or poweroff to get back and recover 
			 | 
		
	
		
			
			| 
				
			 | 
			
				76
			 | 
			
			
				+    # files open before the fact.  Example: 
			 | 
		
	
		
			
			| 
				
			 | 
			
				77
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				78
			 | 
			
			
				+    #     2015-07-10 06:10:48.603953758 +0200 ~/TODO.todo 
			 | 
		
	
		
			
			| 
				
			 | 
			
				79
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				80
			 | 
			
			
				+    # Depends on .swp settings defined in my mydots repo. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				81
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				48
			 | 
			
				82
			 | 
			
			
				     local swap="$HOME/.local/share/vim/swap" 
			 | 
		
	
		
			
			| 
				49
			 | 
			
				83
			 | 
			
			
				     find "$swap" -type f -print0 \ 
			 | 
		
	
		
			
			| 
				50
			 | 
			
				84
			 | 
			
			
				       | xargs -0 -r stat -c "%y %n" \ 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -60,9 +94,13 @@ vims() { 
			 | 
		
	
		
			
			| 
				60
			 | 
			
				94
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				61
			 | 
			
				95
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				62
			 | 
			
				96
			 | 
			
			
				 xod() { 
			 | 
		
	
		
			
			| 
				63
			 | 
			
				
			 | 
			
			
				-    # dump xo in a file named $1 somewhere in /tmp; echo the path 
			 | 
		
	
		
			
			| 
				
			 | 
			
				97
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				98
			 | 
			
			
				+    # Like mktemp but get the content from clipboard 
			 | 
		
	
		
			
			| 
				
			 | 
			
				99
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				100
			 | 
			
			
				+    # Dump xo in a file named $1 somewhere in /tmp; echo the path 
			 | 
		
	
		
			
			| 
				64
			 | 
			
				101
			 | 
			
			
				     # usage: scp $(xod useful_name.txt) eg:some/shared/place 
			 | 
		
	
		
			
			| 
				65
			 | 
			
				102
			 | 
			
			
				     # instead of xo>useful_name.txt; scp useful_name.txt eg:some/shared/place; rm useful_name.txt 
			 | 
		
	
		
			
			| 
				
			 | 
			
				103
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				66
			 | 
			
				104
			 | 
			
			
				     local name="${1:-clipboard_dump.txt}" 
			 | 
		
	
		
			
			| 
				67
			 | 
			
				105
			 | 
			
			
				     local tmp=$(mktemp -d -t "xod.XXXXXXXX") 
			 | 
		
	
		
			
			| 
				68
			 | 
			
				106
			 | 
			
			
				     xclip -o > "$tmp/$name" 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -70,7 +108,9 @@ xod() { 
			 | 
		
	
		
			
			| 
				70
			 | 
			
				108
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				71
			 | 
			
				109
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				72
			 | 
			
				110
			 | 
			
			
				 xood() { 
			 | 
		
	
		
			
			| 
				73
			 | 
			
				
			 | 
			
			
				-    # just like xod() but using xoo 
			 | 
		
	
		
			
			| 
				
			 | 
			
				111
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				112
			 | 
			
			
				+    # Just like xod() but using xoo (i.e. 'clipboard' clipboard) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				113
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				74
			 | 
			
				114
			 | 
			
			
				     local name="${1:-clipboard_dump.txt}" 
			 | 
		
	
		
			
			| 
				75
			 | 
			
				115
			 | 
			
			
				     local tmp=$(mktemp -d -t "xood.XXXXXXXX") 
			 | 
		
	
		
			
			| 
				76
			 | 
			
				116
			 | 
			
			
				     xclip -selection clipboard -o > "$tmp/$name" 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -78,6 +118,9 @@ xood() { 
			 | 
		
	
		
			
			| 
				78
			 | 
			
				118
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				79
			 | 
			
				119
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				80
			 | 
			
				120
			 | 
			
			
				 yum_hasbin() { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				121
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				122
			 | 
			
			
				+    # Ask yum who has bin $1 (and make the output actually readable) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				123
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				81
			 | 
			
				124
			 | 
			
			
				     local bname 
			 | 
		
	
		
			
			| 
				82
			 | 
			
				125
			 | 
			
			
				     for bname in "$@"; 
			 | 
		
	
		
			
			| 
				83
			 | 
			
				126
			 | 
			
			
				     do 
			 |