Skip to content

Instantly share code, notes, and snippets.

@michealbenedict
Created September 12, 2012 18:47
Show Gist options
  • Save michealbenedict/3709009 to your computer and use it in GitHub Desktop.
Save michealbenedict/3709009 to your computer and use it in GitHub Desktop.
Bash Profile
# Limit of files
ulimit -S -n 1024
alias l="ls -alt"
alias locate='if [ $((`date +%s`-`eval $(stat -s /var/db/locate.database); echo $st_mtime`)) -gt 3600 ]; then echo "locate: db is too old!">/dev/stderr; sudo /usr/libexec/locate.updatedb; fi; locate -i'
#PS1="[\u:\w]:\\$ "
alias gc="git commit -m $1"
alias gca="git add -A; git commit -m $1"
alias gcap=git_add_all_commit_and_push
alias gs='git status'
alias gf='git fetch'
alias gm='git merge origin'
alias gp='git push'
alias gpl='git pull'
alias gpom="git pull origin master"
function git_add_all_commit_and_push () {
git add -A;
git commit -m "$1";
git push;
}
# My awesome bash prompt
#
# Copyright (c) 2012 "Cowboy" Ben Alman
# Licensed under the MIT license.
# http://benalman.com/about/license/
#
# Example:
# [master:!?][cowboy@CowBook:~/.dotfiles]
# [11:14:45] $
#
# Read more (and see a screenshot) in the "Prompt" section of
# https://github.com/cowboy/dotfiles
# ANSI CODES - SEPARATE MULTIPLE VALUES WITH ;
#
# 0 reset 4 underline
# 1 bold 7 inverse
#
# FG BG COLOR FG BG COLOR
# 30 40 black 34 44 blue
# 31 41 red 35 45 magenta
# 32 42 green 36 46 cyan
# 33 43 yellow 37 47 white
if [[ ! "${prompt_colors[@]}" ]]; then
prompt_colors=(
"36" # information color
"37" # bracket color
"31" # error color
)
if [[ "$SSH_TTY" ]]; then
# connected via ssh
prompt_colors[0]="32"
elif [[ "$USER" == "root" ]]; then
# logged in as root
prompt_colors[0]="35"
fi
fi
function serve() {
port="${1:-8000}"
ruby -r webrick -e "s = WEBrick::HTTPServer.new(:Port => $port, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start"
}
# Inside a prompt function, run this alias to setup local $c0-$c9 color vars.
alias prompt_getcolors='prompt_colors[9]=; local i; for i in ${!prompt_colors[@]}; do local c$i="\[\e[0;${prompt_colors[$i]}m\]"; done'
# Exit code of previous command.
function prompt_exitcode() {
prompt_getcolors
[[ $1 != 0 ]] && echo " $c2$1$c9"
}
# Git status.
function prompt_git() {
prompt_getcolors
local status output flags
status="$(git status 2>/dev/null)"
[[ $? != 0 ]] && return;
output="$(echo "$status" | awk '/# Initial commit/ {print "(init)"}')"
[[ "$output" ]] || output="$(echo "$status" | awk '/# On branch/ {print $4}')"
[[ "$output" ]] || output="$(git branch | perl -ne '/^\* (.*)/ && print $1')"
flags="$(
echo "$status" | awk 'BEGIN {r=""} \
/^# Changes to be committed:$/ {r=r "+"}\
/^# Changes not staged for commit:$/ {r=r "!"}\
/^# Untracked files:$/ {r=r "?"}\
END {print r}'
)"
if [[ "$flags" ]]; then
output="$output$c1:$c0$flags"
fi
echo "$c1[$c0$output$c1]$c9"
}
# SVN info.
function prompt_svn() {
prompt_getcolors
local info="$(svn info . 2> /dev/null)"
local last current
if [[ "$info" ]]; then
last="$(echo "$info" | awk '/Last Changed Rev:/ {print $4}')"
current="$(echo "$info" | awk '/Revision:/ {print $2}')"
echo "$c1[$c0$last$c1:$c0$current$c1]$c9"
fi
}
# Maintain a per-execution call stack.
prompt_stack=()
trap 'prompt_stack=("${prompt_stack[@]}" "$BASH_COMMAND")' DEBUG
function prompt_command() {
local exit_code=$?
# If the first command in the stack is prompt_command, no command was run.
# Set exit_code to 0 and reset the stack.
[[ "${prompt_stack[0]}" == "prompt_command" ]] && exit_code=0
prompt_stack=()
# While the simple_prompt environment var is set, disable the awesome prompt.
[[ "$simple_prompt" ]] && PS1='\n$ ' && return
prompt_getcolors
# http://twitter.com/cowboy/status/150254030654939137
PS1="\n"
# svn: [repo:lastchanged]
PS1="$PS1$(prompt_svn)"
# git: [branch:flags]
PS1="$PS1$(prompt_git)"
# misc: [cmd#:hist#]
# PS1="$PS1$c1[$c0#\#$c1:$c0!\!$c1]$c9"
# path: [user@host:path]
PS1="$PS1$c1[$c0\u$c1:$c0\w$c1]$c9"
PS1="$PS1\n"
# date: [HH:MM:SS]
PS1="$PS1$c1[$c0$(date +"%H$c1:$c0%M$c1:$c0%S")$c1]$c9"
# exit code: 127
PS1="$PS1$(prompt_exitcode "$exit_code")"
PS1="$PS1 \$ "
}
PROMPT_COMMAND="prompt_command"
alias serve=serve
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment