Skip to content

Instantly share code, notes, and snippets.

@shiva
shiva / countdown.sh
Created August 29, 2011 02:55
prints a number at the same location in a line until 0 (countdown)
#!/bin/sh -x
# -x prints every command before it executes it
# prints 3, 2, 1, 0 in the same location
echo -n " "
let i=3
while [ ${i} -ge 0 ]
do
printf "\b${i}"
let i-=1
@shiva
shiva / typedef-struct-example
Created September 5, 2011 23:01
Example - using a typedef and C structs
typedef struct list_node_s {
void *node;
int key;
} list_node_t;
list_node_t n;
@shiva
shiva / ssh-config-multi-service
Created August 21, 2012 00:56
Using SSH keys with multiple services
Host *.github.com
IdentityFile ~/.ssh/id_rsa-github
User shiva
Host *.work
IdentityFile ~/.ssh/id_rsa.work
User shiva
@shiva
shiva / Makefile-AutoHelp
Last active November 1, 2015 23:38 — forked from prwhite/Makefile
Add a help target to a Makefile that will allow all targets to be self documenting
# Add the following 'help' target to your Makefile
# And add help text after each target name starting with '\#\#'
help: ## Show help
@IFS=$$'\n' ; \
help_lines=(`fgrep -h "##" $(MAKEFILE_LIST) | fgrep -v fgrep | sed -e 's/\\$$//' | sed -e 's/##/:/'`); \
printf "%-10s %s\n" "target" "help" ; \
printf "%-10s %s\n" "------" "----" ; \
for help_line in $${help_lines[@]}; do \
IFS=$$':' ; \
@shiva
shiva / gist:5888496
Created June 28, 2013 22:03
Compiling VIM from source, with python and ruby interpreter support
sudo apt-get install libx11-dev libxt-dev python python2.7-dev
hg clone https://vim.googlecode.com/hg/ vim_source && cd vim_source && \
./configure --disable-nls --enable-multibyte --with-tlib=ncurses \
--enable-pythoninterp --enable-rubyinterp --with-features=huge && \
make -j 3 && sudo make install
@shiva
shiva / .Xresources
Created May 16, 2016 05:58 — forked from liangzan/.Xresources
Xresources for configuring urxvt
! urxvt
URxvt*buffered: true
URxvt*cursorBlink: true
URxvt*underlineColor: yellow
URxvt*font: xft:inconsolata:size=10:antialias=true
URxvt*depth: 32
URxvt*borderless: 1
URxvt*scrollBar: false
URxvt*loginShell: true
Urxvt*secondaryScroll: true # Enable Shift-PageUp/Down in screen
@shiva
shiva / vimrc
Last active November 3, 2016 00:04
vimrc at work
" Forget being compatible with good ol' vi
set nocompatible " be iMproved, required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" let Vundle manage Vundle, required
@shiva
shiva / rfind-git-status.sh
Last active December 29, 2016 21:30
List the status of all the git repos found at any depth in the current repo
$ for d in `find . -name ".git"`; do \
echo "processing $d ..."; \
git --git-dir=$d --work-tree=$d/.. status; \
done
@shiva
shiva / aliases-for-dev.sh
Last active December 30, 2016 06:05
Useful Aliases
alias gen-cscope='find . -iname '\''*.c'\'' -o -iname '\''*.cpp'\'' -o -iname '\''*.cc'\'' -o -iname '\''*.h'\'' -o -iname '\''*.hpp'\'' > cscope.files && cscope -b -i cscope.files -f cscope.out'
alias gen-tags='ctags -R --c++-kinds=+p --fields=+iaS --extra=+q'
@shiva
shiva / whitespace-aliases.sh
Last active December 30, 2016 06:06
Remove trailing whitespaces in all of the files modified in the last git commit
alias remove-whitespace='sed -e '\''s/[[:blank:]]\+$//'\'' -i'
alias remove-ws-in-last-commit= 'for f in `git show --name-only --pretty=""`; do echo $f; remove-whitespace $f; done'