forked from fastruby/setup
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Juan Manuel Garcia Olivares
authored and
Juan Manuel Garcia Olivares
committed
Oct 18, 2016
1 parent
c7e8dba
commit 5c38123
Showing
8 changed files
with
1,053 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
#!/usr/bin/env bash | ||
|
||
# Easier navigation: .., ..., ...., ....., ~ and - | ||
alias ..="cd .." | ||
alias ...="cd ../.." | ||
alias ....="cd ../../.." | ||
alias .....="cd ../../../.." | ||
alias ~="cd ~" # `cd` is probably faster to type though | ||
alias -- -="cd -" | ||
|
||
# Shortcuts | ||
alias d="cd ~/Documents/Dropbox" | ||
alias dl="cd ~/Downloads" | ||
alias dt="cd ~/Desktop" | ||
alias p="cd ~/projects" | ||
alias g="git" | ||
|
||
alias i="itermocil" | ||
alias ls="ls -lash" | ||
alias g="gulp" | ||
alias gw="gulp watch" | ||
alias gs="gulp serve" | ||
|
||
alias rubies="rvm list rubies" | ||
alias gemsets="rvm gemset list" | ||
alias gemset="rvm gemset use" | ||
|
||
|
||
alias rg='rails generate' | ||
alias rgm='rails generate migration' | ||
alias rs='rails server' | ||
alias rdm='rake db:migrate' | ||
alias rdr='rake db:rollback' | ||
alias rdc='rake db:create' | ||
alias rds='rake db:seed' | ||
alias rdd='rake db:drop' | ||
alias rdrs='rake db:reset' | ||
alias dbr='rake db:drop; rake db:create; rake db:migrate; rake db:seed' | ||
alias rr='rake routes' | ||
alias rrg='rake routes | grep' | ||
alias devlog='tail -f log/development.log' | ||
alias prodlog='tail -f log/production.log' | ||
alias testlog='tail -f log/test.log' | ||
alias -g RED='RAILS_ENV=development' | ||
alias -g REP='RAILS_ENV=production' | ||
alias -g RET='RAILS_ENV=test' | ||
alias beg='bundle exec guard' | ||
|
||
# Detect which `ls` flavor is in use | ||
if ls --color > /dev/null 2>&1; then # GNU `ls` | ||
colorflag="--color" | ||
export LS_COLORS='no=00:fi=00:di=01;31:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:' | ||
else # macOS `ls` | ||
colorflag="-G" | ||
export LSCOLORS='BxBxhxDxfxhxhxhxhxcxcx' | ||
fi | ||
|
||
# List all files colorized in long format | ||
alias l="ls -lF ${colorflag}" | ||
|
||
# List all files colorized in long format, including dot files | ||
alias la="ls -laF ${colorflag}" | ||
|
||
# List only directories | ||
alias lsd="ls -lF ${colorflag} | grep --color=never '^d'" | ||
|
||
# Always use color output for `ls` | ||
alias ls="command ls ${colorflag}" | ||
|
||
# Always enable colored `grep` output | ||
# Note: `GREP_OPTIONS="--color=auto"` is deprecated, hence the alias usage. | ||
alias grep='grep --color=auto' | ||
alias fgrep='fgrep --color=auto' | ||
alias egrep='egrep --color=auto' | ||
|
||
|
||
# Stopwatch | ||
alias timer='echo "Timer started. Stop with Ctrl-D." && date && time cat && date' | ||
|
||
# Get macOS Software Updates, and update installed Ruby gems, Homebrew, npm, and their installed packages | ||
alias update='sudo softwareupdate -i -a; brew update; brew upgrade; brew cleanup; npm install npm -g; npm update -g; sudo gem update --system; sudo gem update; sudo gem cleanup' | ||
|
||
# IP addresses | ||
alias ip="dig +short myip.opendns.com @resolver1.opendns.com" | ||
alias localip="ipconfig getifaddr en0" | ||
alias ips="ifconfig -a | grep -o 'inet6\? \(addr:\)\?\s\?\(\(\([0-9]\+\.\)\{3\}[0-9]\+\)\|[a-fA-F0-9:]\+\)' | awk '{ sub(/inet6? (addr:)? ?/, \"\"); print }'" | ||
|
||
# Flush Directory Service cache | ||
alias flush="dscacheutil -flushcache && killall -HUP mDNSResponder" | ||
|
||
# View HTTP traffic | ||
alias sniff="sudo ngrep -d 'en1' -t '^(GET|POST) ' 'tcp and port 80'" | ||
alias httpdump="sudo tcpdump -i en1 -n -s 0 -w - | grep -a -o -E \"Host\: .*|GET \/.*\"" | ||
|
||
# Recursively delete `.DS_Store` files | ||
alias cleanup="find . -type f -name '*.DS_Store' -ls -delete" | ||
|
||
# Empty the Trash on all mounted volumes and the main HDD. | ||
# Also, clear Apple’s System Logs to improve shell startup speed. | ||
# Finally, clear download history from quarantine. https://mths.be/bum | ||
alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv ~/.Trash; sudo rm -rfv /private/var/log/asl/*.asl; sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV* 'delete from LSQuarantineEvent'" | ||
|
||
# Lock the screen (when going AFK) | ||
alias afk="/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
root = true | ||
|
||
[*] | ||
charset = utf-8 | ||
indent_style = space | ||
end_of_line = lf | ||
insert_final_newline = true | ||
trim_trailing_whitespace = true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
#!/usr/bin/env bash | ||
|
||
# Create a new directory and enter it | ||
function mkd() { | ||
mkdir -p "$@" && cd "$_"; | ||
} | ||
|
||
# Create a .tar.gz archive, using `zopfli`, `pigz` or `gzip` for compression | ||
function targz() { | ||
local tmpFile="${@%/}.tar"; | ||
tar -cvf "${tmpFile}" --exclude=".DS_Store" "${@}" || return 1; | ||
|
||
size=$( | ||
stat -f"%z" "${tmpFile}" 2> /dev/null; # macOS `stat` | ||
stat -c"%s" "${tmpFile}" 2> /dev/null; # GNU `stat` | ||
); | ||
|
||
local cmd=""; | ||
if (( size < 52428800 )) && hash zopfli 2> /dev/null; then | ||
# the .tar file is smaller than 50 MB and Zopfli is available; use it | ||
cmd="zopfli"; | ||
else | ||
if hash pigz 2> /dev/null; then | ||
cmd="pigz"; | ||
else | ||
cmd="gzip"; | ||
fi; | ||
fi; | ||
|
||
echo "Compressing .tar ($((size / 1000)) kB) using \`${cmd}\`…"; | ||
"${cmd}" -v "${tmpFile}" || return 1; | ||
[ -f "${tmpFile}" ] && rm "${tmpFile}"; | ||
|
||
zippedSize=$( | ||
stat -f"%z" "${tmpFile}.gz" 2> /dev/null; # macOS `stat` | ||
stat -c"%s" "${tmpFile}.gz" 2> /dev/null; # GNU `stat` | ||
); | ||
|
||
echo "${tmpFile}.gz ($((zippedSize / 1000)) kB) created successfully."; | ||
} | ||
|
||
# Determine size of a file or total size of a directory | ||
function fs() { | ||
if du -b /dev/null > /dev/null 2>&1; then | ||
local arg=-sbh; | ||
else | ||
local arg=-sh; | ||
fi | ||
if [[ -n "$@" ]]; then | ||
du $arg -- "$@"; | ||
else | ||
du $arg .[^.]* ./*; | ||
fi; | ||
} | ||
|
||
# Use Git’s colored diff when available | ||
hash git &>/dev/null; | ||
if [ $? -eq 0 ]; then | ||
function diff() { | ||
git diff --no-index --color-words "$@"; | ||
} | ||
fi; | ||
|
||
|
||
# Start a PHP server from a directory, optionally specifying the port | ||
# (Requires PHP 5.4.0+.) | ||
function phpserver() { | ||
local port="${1:-4000}"; | ||
local ip=$(ipconfig getifaddr en1); | ||
sleep 1 && open "http://${ip}:${port}/" & | ||
php -S "${ip}:${port}"; | ||
} | ||
|
||
|
||
# `s` with no arguments opens the current directory in Sublime Text, otherwise | ||
# opens the given location | ||
function s() { | ||
if [ $# -eq 0 ]; then | ||
subl .; | ||
else | ||
subl "$@"; | ||
fi; | ||
} | ||
|
||
# `a` with no arguments opens the current directory in Atom Editor, otherwise | ||
# opens the given location | ||
function a() { | ||
if [ $# -eq 0 ]; then | ||
atom .; | ||
else | ||
atom "$@"; | ||
fi; | ||
} | ||
|
||
# `o` with no arguments opens the current directory, otherwise opens the given | ||
# location | ||
function o() { | ||
if [ $# -eq 0 ]; then | ||
open .; | ||
else | ||
open "$@"; | ||
fi; | ||
} | ||
|
||
# `tre` is a shorthand for `tree` with hidden files and color enabled, ignoring | ||
# the `.git` directory, listing directories first. The output gets piped into | ||
# `less` with options to preserve color and line numbers, unless the output is | ||
# small enough for one screen. | ||
function tre() { | ||
tree -aC -I '.git|node_modules|bower_components' --dirsfirst "$@" | less -FRNX; | ||
} |
Oops, something went wrong.