Created
November 24, 2019 05:27
-
-
Save mhulse/6c4eff377a0608cf5f1e49000566db0c to your computer and use it in GitHub Desktop.
Dot files stuffs, putting here as I’m trying to switch to oh-my-zsh (https://github.com/mhulse/dotfizzles)
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
#!/usr/bin/env bash | |
SOURCE="${BASH_SOURCE[0]}" | |
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink | |
DIR="$(cd -P "$(dirname "$SOURCE")" >/dev/null 2>&1 && pwd)" | |
SOURCE="$(readlink "$SOURCE")" | |
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located | |
done | |
DOTFIZZLES="$(cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd)" | |
export DOTFIZZLES | |
# shellcheck source=/Users/mhulse/dotfizzles/src/defaults.bash | |
source "$DOTFIZZLES/defaults.bash" | |
# shellcheck source=/Users/mhulse/dotfizzles/src/aliases.bash | |
source "$DOTFIZZLES/aliases.bash" | |
# shellcheck source=/Users/mhulse/dotfizzles/src/functions.bash | |
source "$DOTFIZZLES/functions.bash" | |
# shellcheck source=/Users/mhulse/dotfizzles/src/common.bash | |
source "$DOTFIZZLES/common.bash" | |
# shellcheck source=/Users/mhulse/dotfizzles/src/history.bash | |
source "$DOTFIZZLES/history.bash" | |
# shellcheck source=/Users/mhulse/dotfizzles/src/completers.bash | |
source "$DOTFIZZLES/completers.bash" | |
# shellcheck source=/Users/mhulse/dotfizzles/src/prompts.bash | |
source "$DOTFIZZLES/prompts.bash" | |
# Create a `.bash_pending` file for testing new stuff: | |
# shellcheck source=/Users/mhulse/.bash_pending | |
[[ -f "$HOME/.bash_pending" ]] \ | |
&& source "$HOME/.bash_pending" |
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
# http://git-scm.com/book/en/Customizing-Git-Git-Configuration | |
# https://github.com/tiimgreen/github-cheat-sheet#git-configurations | |
# http://haacked.com/archive/2014/07/28/github-flow-aliases/ | |
# Docs can be accessed via: `$ man git-<command>` (e.g. `$ man git-push`) | |
# There are 3 levels of git config: | |
# 1) Project | |
# Only available for the current project and stored in `.git/config` in the project’s directory: | |
# $ git config user.name "John Doe" | |
# 2) Global | |
# Available for all projects for the current user and stored in `~/.gitconfig`: | |
# $ git config --global user.name "John Doe" | |
# 3) System | |
# Available for all the users/projects and stored in `/etc/gitconfig`: | |
# $ git config --system user.name "John Doe" | |
[alias] | |
a = add | |
aa = add --all | |
aliases = config --get-regexp alias | |
amend = commit --all --amend | |
bclean = "!f() { git branch --merged ${1-master} | grep -v " ${1-master}$" | xargs -r git branch -d; }; f" | |
bdone = "!f() { git checkout ${1-master} && git up && git bclean ${1-master}; }; f" | |
br = branch | |
branches = branch -a | |
brm = branch --move # <new-branch-name> | |
c = commit | |
cam = !git add --all && git commit --message | |
cge = config --global --edit | |
cg = config --global # <option> <value> | |
cm = commit --message | |
co = checkout | |
cob = checkout -b # <new-branch-name> | |
col = checkout - | |
com = checkout master | |
comf = checkout origin/master # <file-path> OR <file-name> | |
df = diff | |
fps = !git fetch && git pull && git status | |
g = grep -I | |
lg = log --patch | |
lol = log --graph --oneline --date-order --decorate --color --all -n 250 | |
# Focus on the most important information in this colorful, graphical display: | |
loq = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit -- | |
pb = publish-branch | |
pf = push --force | |
pn = push --set-upstream origin head | |
# Delete any local branches which have been deleted from the remote: | |
prune = fetch --prune | |
rb = rbranch | |
rbm = rebase master | |
rbmi = rebase --interactive master | |
rc = rank-contributors | |
remotes = remote --verbose | |
rv = review | |
s = status | |
# Stash new files you haven’t caught with a `git add` yet: | |
sa = stash save --include-untracked | |
save = !git add --all && git commit -m 'SAVEPOINT' | |
sm = show-merges | |
st = status --short --branch | |
tags = tag --list | |
# Set things up the way they were before the last commit: | |
undo = reset --mixed head~1 | |
up = !git pull --rebase --prune $@ && git submodule update --init --recursive | |
wip = !git add --update && git commit --message="WIP" | |
wipe = !git add --all && git commit --quiet --message='WIPE SAVEPOINT' && git reset head~1 --hard | |
[core] | |
autocrlf = false | |
# Custom global `.gitignore` file: | |
excludesfile = ~/.gitignore | |
# Treat spaces before tabs, lines that are indented with 8 or more spaces, and all kinds of trailing whitespace as an error: | |
whitespace = space-before-tab,indent-with-non-tab,trailing-space | |
# Watch for case changes: | |
ignorecase = false | |
[push] | |
# Make it easier to push your local branch to a branch named the same thing in your target: remote. | |
default = simple | |
# Always send your local tags up along with a git push: | |
followTags = true | |
[merge] | |
conflictstyle = diff3 | |
# Ensures that you get an error unless every merge is fast-forward: | |
ff = only | |
log = true | |
[rerere] | |
enabled = 1 | |
[branch] | |
autosetuprebase = always | |
[color] | |
# Use colors in Git commands that are capable of colored output when | |
# outputting to the terminal: | |
ui = auto | |
[color "branch"] | |
current = yellow reverse | |
local = yellow | |
remote = green | |
[color "diff"] | |
meta = yellow bold | |
frag = magenta bold | |
old = red bold | |
new = green bold | |
[color "status"] | |
added = yellow | |
changed = green | |
untracked = cyan | |
[help] | |
autocorrect = 1 | |
[filter "lfs"] | |
clean = git-lfs clean -- %f | |
smudge = git-lfs smudge -- %f | |
process = git-lfs filter-process | |
required = true | |
[status] | |
# Shows all of the files underneath a new directory during a git status: | |
showUntrackedFiles = all | |
[transfer] | |
# Do some extra checks when receiving or sending changes (this can make transfers a bit slower): | |
fsckobjects = 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
#!/usr/bin/env bash | |
"\e[1~": beginning-of-line | |
"\e[4~": end-of-line | |
# this makes the "delete" key work rather than | |
# just entering a ~ | |
"\e[3~": delete-char | |
# these allow you to use ctrl+left/right arrow keys | |
# to jump the cursor over words | |
"\e[5C": forward-word | |
"\e[5D": backward-word | |
# these allow you to start typing a command and | |
# use the up/down arrow to auto complete from | |
# commands in your history. | |
# Here "\e" indicates the escape character. The first two sequences are | |
# normally generated by the up and down arrows, respectively. The second two | |
# are generated by the arrows when the terminal is in an alternate input mode. | |
"\e[A": history-search-backward | |
"\e[B": history-search-forward | |
"\eOA": history-search-backward | |
"\eOB": history-search-forward | |
"\e[1~": beginning-of-line | |
"\e[4~": end-of-line | |
"\e[5~": beginning-of-history | |
"\e[6~": end-of-history | |
"\e\e[C": forward-word | |
"\e\e[D": backward-word | |
"\e[2~": quoted-insert | |
# Use Unicode & do NOT use the "8bit hack" to input/output non-ASCII characters | |
# See http://code.google.com/p/iterm2/wiki/Keybindings | |
set input-meta on | |
set output-meta on | |
set convert-meta off | |
# Turn on case insensitivity for tab-completion | |
# Ex.: type "doc<tab>" to search for "Documents" | |
set completion-ignore-case on | |
set expand-tilde on | |
set show-all-if-ambiguous on | |
set visible-stats on | |
set editing-mode nano | |
# Bind the Tab key to cycle completions one at a time instead of listing them all | |
# and requiring you to type characters until there’s only one match. | |
TAB: menu-complete | |
# Binding Shift-Tab to go backward: | |
"\e[Z": "\e-1\C-i" | |
# Option-z to run cd - followed by ls, returning you to the previous directory | |
# in your stack and doing a file listing. | |
"\ez": 'cd -\015ls\015' | |
# Set mark-symlinked-directories as -- by default -- bash doesn't put a / after | |
# symlinks when doing autocomplete. This fixes that. | |
set mark-symlinked-directories on | |
set prefer-visible-bell on | |
# Assign ^W (Ctrl-w) to be unix-filename-rubout instead of the default unix-word-rubout. | |
# This makes it so when you have your cursor (|) positioned here foo/bar/test.txt| | |
# and hit C-w, it just deletes up to the first / character. This makes fixing | |
# things a bit easier. It also works within a path. | |
"\C-w": unix-filename-rubout | |
"": unix-filename-rubout | |
# Bind a key to glob-expand-word which will take a bash glob -- say * -- and | |
# replace the glob with all the files that match that glob. | |
"\C-x*": glob-expand-word |
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
#!/usr/bin/env bash | |
# Quicker navigation: | |
alias ..="cd .." | |
alias ...="cd ../.." | |
alias ....="cd ../../.." | |
alias .....="cd ../../../.." | |
# List Atom packages: | |
alias atompkgs="apm list --installed --bare" | |
# Start blender from command line, used for debugging: | |
alias blender="/Applications/blender.app/Contents/MacOS/blender" | |
# Path to the Chrome executable (>=v59/macOS); | |
alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome" | |
# Removes a bunch of crap from your finder: | |
alias cleanup="find . -name '*.DS_Store' -type f -ls -delete && find . -name 'Thumbs.db' -type f -ls -delete" | |
# List VS Code packages: | |
alias codepkgs="code --list-extensions | sed 's/^.*\.//'" | |
# Show where you copy: | |
alias cp="cp -v" | |
# Print date/time (e.g. `2019-10-03 11:32:27`) | |
alias dt='date "+%F %T"' | |
# Flush out the DNS cache: | |
alias flushdns="dscacheutil -flushcache" | |
# Git: | |
alias g="git" | |
alias ga="git a" | |
alias gaa="git aa" | |
alias gcm="git cm" | |
alias gcam="git cam" | |
alias gco="git co" | |
alias gcob="git cob" | |
alias gcol="git col" | |
alias gcom="git com" | |
alias gs="git s" | |
alias gst="git st" | |
alias pull="git pull" | |
alias push="git push" | |
alias pushf="git pf" | |
alias pushn="git pn" | |
alias save="git save" | |
# Open current directory in Finder.app: | |
alias o="open ." | |
# Open current directory in Finder.app and VS Code: | |
alias oo="open . && code ." | |
# Color grep: | |
alias grep="grep --color=auto" | |
# Opens up the IOS Simulator without launching xcode: | |
alias iossimulator="(cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/ && open -a iPhone\ Simulator.app)" | |
# Get info on connections for en0: | |
alias ipinfo0="ipconfig getpacket en0" | |
# Get info on connections for en1: | |
alias ipinfo1="ipconfig getpacket en1" | |
# Restart dock: | |
alias killdock="killall -KILL Dock" | |
# Remove “duplicates” from the “Open With” Right-Click Menu in Mac OS X: | |
alias killdups='/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain user;killall Finder;echo "Open With has been rebuilt, Finder will relaunch"' | |
# All files, in long format: | |
alias l="ls -lFG" | |
# All files, including dotfiles, in long format: | |
alias la="ls -laFG" | |
# Last command: | |
alias lc="!!" | |
# Last command as `sudo`: | |
alias lcs="sudo !!" | |
# Hides `.` and `..`, shows hidden items and ending slashes for | |
# directories, and sorts in reverse chronological order: | |
alias ll="ls -lAtrFhG" | |
# Your local ip address: | |
alias localip="ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'" | |
# Use unit suffixes: | |
alias ls="command ls -Gh" | |
# Only show directories: | |
alias lsd='ls -lFG | grep "^d"' | |
# Only show dot files: | |
alias lsh="ls -ld .??*" | |
# Display open sockets: | |
alias lsock="sudo /usr/sbin/lsof -i -P" | |
# Display only open TCP sockets: | |
alias lsockt="sudo /usr/sbin/lsof -nP | grep TCP" | |
# Display only open UDP sockets: | |
alias lsocku="sudo /usr/sbin/lsof -nP | grep UDP" | |
# Sort files by size: | |
alias lss="ls -s | sort -n" | |
# Create intermediate directories as required: | |
alias mkdir="mkdir -p" | |
# Public facing ip address: | |
alias myip="curl ip.appspot.com" | |
# Show all open TCP/IP sockets: | |
alias netcons="lsof -i" | |
# All listening connections: | |
alias openports="sudo lsof -i | grep LISTEN" | |
# Copy the PWD to the Clipboard | |
alias pwdc="pwd | tr -d '\n' | pbcopy && pwd" | |
# Default pip: | |
alias pip=pip3 | |
# Default Python: | |
alias python=python3 | |
# Quickly search for file: | |
alias qfind="find . -name " | |
# Quick Look! | |
# $ cd /Library/Desktop\ Pictures | |
# $ qlf "Jaguar Aqua Graphite.jpg" | |
alias qlf='qlmanage -p "$@" >& /dev/null' | |
# Copy `src` to `dest` using `rcopy src dest` and delete files no longer | |
# present in the source: | |
alias rcopy="rsync -az --stats --progress --delete" | |
# Say something with speech synthesis: | |
alias say="espeak" | |
# All ipfw rules inc/ blocked IPs: | |
alias showblocked="sudo ipfw list" | |
# Show beginning and end of provided file (`skim foo.txt`): | |
alias skim="(head -5; tail -5) <" | |
# Enable forwarding of the authentication agent connection: | |
alias ssh="ssh -A" | |
# Upper/lower case input string: | |
alias tolower="pbpaste | tr "[:upper:]" "[:lower:]" | pbcopy" | |
alias toupper="pbpaste | tr "[:lower:]" "[:upper:]" | pbcopy" | |
# Apache Tomcat start: | |
# $ tomcat | |
# $ tomcat start | |
# Tomcat stop: | |
# $ tomcat stop | |
alias tomcat=catalina | |
# Trim whitespace (`tws file.txt`): | |
alias tws="sed -i 's/[ \t]*$//' " | |
# Grepping for pesky unicode characters: | |
alias unigrep='grep -P "[^\x00-\x7F]"' | |
# Weather from current location: | |
alias weather="curl -s 'http://rss.accuweather.com/rss/liveweather_rss.asp?metric=1&locCode=en|us|brooklyn-ny|11215' | sed -n '/Currently:/ s/.*: \(.*\): \([0-9]*\)\([CF]\).*/\2°\3, \1/p'" | |
# XAMPP shortcuts: | |
alias xampp="sudo /Applications/XAMPP/xamppfiles/xampp restart" | |
alias xampp_stop="sudo /Applications/XAMPP/xamppfiles/xampp stop" | |
alias xampp_start="sudo /Applications/XAMPP/xamppfiles/xampp start" | |
alias xo='function __xo() { xampp && open "http://"$1; }; __xo' |
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
#!/usr/bin/env bash | |
# Enable colorized output for `ls` command: | |
export CLICOLOR=1 | |
export LSCOLORS=GxFxCxDxBxegedabagaced | |
# Default editor: | |
export EDITOR=vim | |
# For Homebrew: | |
export PATH="/usr/local/sbin:$PATH" | |
# Custom scripts: | |
[[ -d "$HOME/scripts" ]] \ | |
&& export PATH=$HOME/scripts:$PATH | |
# Postgres.app | |
# http://postgresapp.com/ | |
# Instead of doing this at the prompt: | |
# $ '/Applications/Postgres.app/Contents/Versions/9.6/bin'/psql -p5432 | |
# You can now do this: | |
# $ psql | |
[[ -d "/Applications/Postgres.app" ]] \ | |
&& export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin | |
# Ruby: rbenv (alternative to RVM) | |
# Remove RVM before installing: `$ rvm implode` | |
# Install using: `brew install rbenv` | |
# List available versions: `rbenv install -l` | |
# Install a version: `rbenv install 2.6.5` | |
# Select that version using: `rbenv global 2.6.5` | |
# Check your installation using: `ruby -v` | |
# Use Bundler to manage your gems! | |
if [ -d "$HOME/.rbenv/bin" ] ; then | |
export PATH="$HOME/.rbenv/bin":$PATH | |
eval "$(rbenv init -)" | |
fi | |
# Golang: | |
if [ -d "$HOME/go/bin" ] ; then | |
export PATH=${PATH}:$HOME/go/bin | |
fi | |
# Java | |
# You may need to run: | |
# $ java --request | |
# and click “More Info…” to visit the Java Developer Kit download website. | |
export JRE_HOME=$(/usr/libexec/java_home) | |
export JAVA_HOME=$(/usr/libexec/java_home) | |
# Apache Tomcat | |
# http://tomcat.apache.org/ | |
export CATALINA_HOME='/Applications/tomcat' # Symlinked to latest Tomcat version. | |
# Check the window size after each command and, if necessary, update the | |
# values of LINES and COLUMNS: | |
shopt -s checkwinsize | |
# Turn on recursive globbing (bash 4.x): | |
shopt -s globstar | |
# SDKMAN! | |
export SDKMAN_DIR="$HOME/.sdkman" | |
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] \ | |
&& source "$HOME/.sdkman/bin/sdkman-init.sh" | |
# Node Version Manager (nvm): | |
export NVM_DIR="$HOME/.nvm" | |
NVM_HOMEBREW="/usr/local/opt/nvm/nvm.sh" | |
[ -s "$NVM_HOMEBREW" ] && \. "$NVM_HOMEBREW" | |
# Node.js/Node Package Manager (npm): | |
[ -x "$(command -v npm)" ] \ | |
&& export NODE_PATH=$NODE_PATH:`npm root -g` |
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
#!/usr/bin/env bash | |
# Autocomplete for Homebrew: | |
if [ -f $(brew --prefix)/etc/bash_completion ]; then | |
. $(brew --prefix)/etc/bash_completion | |
fi | |
# Autocomplete for Node: | |
if [[ -e ~/.node-completion ]]; then | |
shopt -s progcomp | |
for f in $(command ls ~/.node-completion); do | |
f="$HOME/.node-completion/$f" | |
test -f "$f" && . "$f" | |
done | |
fi | |
# Autocomplete for npm: | |
if [[ `which npm` ]]; then | |
eval "$(npm completion 2>/dev/null)" | |
fi | |
# Autocomplete for pip: | |
if [[ `which pip` ]]; then | |
eval "`pip completion --bash`" | |
fi | |
# Autocomplete for Grunt: | |
if [[ `which grunt` ]]; then | |
eval "$(grunt --completion=bash)" | |
fi |
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
#!/usr/bin/env bash | |
# Disables shadow on screenshots: | |
defaults write com.apple.screencapture disable-shadow -bool 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
#!/usr/bin/env bash | |
# Quick and dirty calculator. Goes right to ruby and lets you print out | |
# the results of math operations, or other ruby expressions. | |
function calc() { | |
ruby -e "puts $*" | |
} | |
# Reloads session: | |
function reload() { | |
source "$HOME/.bash_profile" | |
# for f in "$HOME/.bash/"*; do | |
# source "$f" | |
# done | |
} | |
# https://unix.stackexchange.com/q/269077/67282 | |
# fromhex A52A2A | |
# fromhex "#A52A2A" | |
# BLUE_VIOLET=$(fromhex "#8A2BE2") | |
function fromhex() { | |
hex=$1 | |
if [[ $hex == "#"* ]]; then | |
hex=$(echo $1 | awk '{print substr($0,2)}') | |
fi | |
r=$(printf '0x%0.2s' "$hex") | |
g=$(printf '0x%0.2s' ${hex#??}) | |
b=$(printf '0x%0.2s' ${hex#????}) | |
echo -e `printf "%03d" "$(((r<75?0:(r-35)/40)*6*6+(g<75?0:(g-35)/40)*6+(b<75?0:(b-35)/40)+16))"` | |
} | |
function myip() { | |
# GNU vs BSD hostname: | |
(hostname -i &> /dev/null) | |
if [ $? -eq 0 ]; then | |
echo `hostname -i` | |
else | |
# Default to eth0 IP, for MAC: | |
echo `ipconfig getifaddr en0` | |
fi | |
} | |
# Google the parameter: | |
function google() { | |
links http://google.com/search?q=$(echo "$@" | sed s/\ /+/g) | |
} | |
# Awesome! cd AND la. (I never use 'cd' anymore): | |
function cl() { | |
cd "$@" && la | |
} | |
# Repeat a command N times. | |
# You can do something like: "repeat 3 echo 'hi'" | |
function repeat() { | |
local i max | |
max=$1 | |
shift | |
for ((i=1; i <= max ; i++)); do | |
eval "$@" | |
done | |
} | |
# Git branch details: | |
function parse_git_dirty() { | |
[[ $(git status 2> /dev/null | tail -n1) != *"working directory clean"* ]] && echo "*" | |
} | |
function parse_git_branch() { | |
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/\1$(parse_git_dirty)/" | |
} | |
# Find symlinks recursive: | |
function findlinks() { | |
find "$@" -type l -exec ls -l {} \; | |
} | |
# Extract based upon file ext: | |
function ex() { | |
if [ -f $1 ]; then | |
case $1 in | |
*.tar.bz2) tar xvjf $1 ;; | |
*.tar.gz) tar xvzf $1 ;; | |
*.bz2) bunzip2 $1 ;; | |
*.rar) unrar x $1 ;; | |
*.gz) gunzip $1 ;; | |
*.tar) tar xvf $1 ;; | |
*.tbz2) tar xvjf $1 ;; | |
*.tgz) tar xvzf $1 ;; | |
*.zip) unzip $1 ;; | |
*.Z) uncompress $1 ;; | |
*.7z) 7z x $1 ;; | |
*) echo "'$1' cannot be extracted via >extract<" ;; | |
esac | |
else | |
echo "'$1' is not a valid file" | |
fi | |
} | |
# Compress with tar + bzip2: | |
function bz2() { | |
tar cvpjf $1.tar.bz2 $1 | |
} | |
function man() { | |
/usr/bin/man "$@" || (help "$@" 2> /dev/null && help "$@" | less) | |
} | |
# Use DNS to query wikipedia (wiki QUERY): | |
function wiki() { | |
dig +short txt $1.wp.dg.cx | |
} | |
# Remove line n from a file (removeline N FILE): | |
function removeline() { | |
sed -i $1d $2 | |
} | |
# Get the country of a specific IP address using ip2location (ip2loc IP): | |
function ip2loc() { | |
wget -qO - www.ip2location.com/$1 | grep "<span id=\"dgLookup__ctl2_lblICountry\">" | sed 's/<[^>]*>//g; s/^[\t]*//; s/"/"/g; s/</</g; s/>/>/g; s/&/\&/g' | |
} | |
# Find file under the current directory: | |
function ff() { | |
/usr/bin/find . -name "$@" | |
} | |
# Find file whose name starts with a given string: | |
function ffs() { | |
/usr/bin/find . -name "$@"'*' | |
} | |
# Find file whose name ends with a given string: | |
function ffe() { | |
/usr/bin/find . -name '*'"$@" | |
} | |
# Search for a file using MacOS Spotlight’s metadata: | |
function spotlight() { | |
mdfind "kMDItemDisplayName == '$@'wc" | |
} | |
# Display useful host related informaton: | |
function ii() { | |
echo -e "\nYou are logged on ${RED}$HOST" | |
echo -e "\nAdditionnal information:$NC " ; uname -a | |
echo -e "\n${RED}Users logged on:$NC " ; w -h | |
echo -e "\n${RED}Current date :$NC " ; date | |
echo -e "\n${RED}Machine stats :$NC " ; uptime | |
echo -e "\n${RED}Current network location :$NC " ; scselect | |
echo -e "\n${RED}Public facing IP Address :$NC " ;myip | |
#echo -e "\n${RED}DNS Configuration:$NC " ; scutil --dns | |
echo | |
} | |
# Grabs headers from web page: | |
function httpheaders() { | |
/usr/bin/curl -I -L "$@" | |
} | |
# Download a web page and show info on what took time: | |
function httpdebug() { | |
/usr/bin/curl "$@" -o /dev/null -w "dns: %{time_namelookup} connect: %{time_connect} pretransfer: %{time_pretransfer} starttransfer: %{time_starttransfer} total: %{time_total}\n" | |
} | |
# `cd` into the last focused Finder window: | |
function cdfinder(){ | |
cd "$(osascript -e 'tell application "Finder"' \ | |
-e 'set myname to POSIX path of (target of window 1 as alias)' \ | |
-e 'end tell' 2>/dev/null)" | |
} | |
# Generates a random password: | |
function randpassw() { | |
if [ -z $1 ]; then | |
MAXSIZE=10 | |
else | |
MAXSIZE=$1 | |
fi | |
array1=( | |
q w e r t y u i o p a s d f g h j k l z x c v b n m Q W E R T Y U I O P A S D | |
F G H J K L Z X C V B N M 1 2 3 4 5 6 7 8 9 0 | |
\! \@ \$ \% \^ \& \* \! \@ \$ \% \^ \& \* \@ \$ \% \^ \& \* | |
) | |
MODNUM=${#array1[*]} | |
pwd_len=0 | |
while [ $pwd_len -lt $MAXSIZE ] | |
do | |
index=$(($RANDOM%$MODNUM)) | |
echo -n "${array1[$index]}" | |
((pwd_len++)) | |
done | |
echo | |
} | |
# Image width: | |
function width() { | |
echo $(sips -g pixelWidth $1 | grep -oE "[[:digit:]]{1,}$") | |
} | |
# Image height: | |
function height() { | |
echo $(sips -g pixelHeight $1 | grep -oE "[[:digit:]]{1,}$") | |
} | |
# All the dig info, because I can never remember it: | |
function digga() { | |
dig +nocmd $1 any +multiline +noall +answer | |
} | |
# Copy w/progress: | |
function cp_p() { | |
rsync -WavP --human-readable --progress $1 $2 | |
} | |
# Pretty print JSON: | |
function cjson() { | |
local url=$(echo $1) | |
if [[ "http" == $url[0,4] ]] ; then | |
curl --silent $url | python -mjson.tool | pygmentize -O style=monokai -f console256 -g | |
else | |
cat $url | python -mjson.tool | pygmentize -O style=monokai -f console256 -g | |
fi | |
} | |
# Shortcut function to control Apache Tomcat Catalina script: | |
function catalina() { | |
# Long-hand version: | |
# Start: | |
# $CATALINA_HOME/bin/startup.sh | |
# ... or: | |
# $CATALINA_HOME/bin/catalina.sh start | |
# Stop: | |
# $CATALINA_HOME/bin/shutdown.sh | |
# ... or: | |
# $CATALINA_HOME/bin/catalina.sh stop | |
# See .bash_aliases for related alias. | |
$CATALINA_HOME/bin/catalina.sh ${1:-start}; | |
} | |
# Freshen up your HomeBrew! | |
# $ frewshbrew [cask] | |
function freshbrew() { | |
brew doctor | |
brew update | |
brew upgrade | |
if [[ "$1" = "cask" ]]; then | |
brew cask outdated | xargs brew cask reinstall | |
fi | |
brew cleanup | |
brew doctor | |
} | |
# Freshen up your Ruby: | |
function freshruby() { | |
if which rvm >/dev/null; then | |
# Update rvm: | |
# rvm get stable | |
# Update rvm Ruby: | |
# rvm install ruby --latest && rvm use current | |
# Upgrade RubyGems: | |
gem update --system | |
# Update rvm gems: | |
gem update | |
else | |
echo "rvm not installed" | |
fi | |
} | |
# Get application’s bundle identifier from its root path: | |
function bid() { | |
mdls "$1" | grep kMDItemCF | cut -d '"' -f2 | |
} | |
# Toggle invisible files in the Finder (e.g. `$ toggle`): | |
function toggle() { | |
local current=$(defaults read com.apple.finder AppleShowAllFiles) | |
case "$current" in | |
1|TRUE|True|true|YES|Yes|yes) | |
defaults write com.apple.finder AppleShowAllFiles -boolean false | |
echo "Hidden files invisible!" | |
;; | |
*) | |
defaults write com.apple.finder AppleShowAllFiles -boolean true | |
echo "Hidden files visible!" | |
;; | |
esac | |
killall Finder /System/Library/CoreServices/Finder.app | |
echo "You can also use CMD + SHIFT + . (introduced in macOS Sierra)" | |
} |
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
#!/usr/bin/env bash | |
# http://unix.stackexchange.com/questions/1288/preserve-bash-history-in-multiple-terminal-windows | |
# http://superuser.com/questions/137438/how-to-unlimited-bash-shell-history | |
# https://www.kernel.org/doc/man-pages/online/pages/man3/strftime.3.html | |
export HISTCONTROL=ignoredups:erasedups # no duplicate entries | |
export HISTSIZE=100000 # big big history | |
export HISTFILESIZE=100000 # big big history | |
export HISTTIMEFORMAT="%a %h %d - %r " # timestamps | |
shopt -s histappend # append to history, don't overwrite it | |
# Save and reload the history after each command finishes | |
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND" | |
# NOTE: The below bindings can be found in the `/.inputrc` file. | |
# If you don’t feel like utilizing both files for your particular setup, but | |
# want fuzzy history search goodness, then just copy and paste the code in this | |
# file (uncomment the below lines) into your chosen `profile` and you’ll be set. | |
# | |
# bind '"\e[A": history-search-backward' | |
# bind '"\e[B": history-search-forward' |
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
#!/usr/bin/env bash | |
# Reset colors: | |
RESET=$(tput sgr0) | |
# Erase to end of line: | |
ERASE=$(tput el || tput ce) | |
#------------------------------------------------------------------------------- | |
function background() { | |
local colors | |
local color | |
colors=(92 93 57 21 27 33 39 45 51 50 49 48 47 46 82 118 154 190 226 220 214 208 202 196) | |
color=$((RANDOM % colors)) | |
tput setab "$color" | |
} | |
#------------------------------------------------------------------------------- | |
# https://github.com/mhulse/dotfizzles/issues/213 | |
source "/usr/local/opt/git/etc/bash_completion.d/git-prompt.sh" | |
# Unstaged (*) and staged (+) changes will be shown next to the branch name. | |
GIT_PS1_SHOWDIRTYSTATE=1 | |
# If something is stashed, then a '$' will be shown next to the branch name. | |
GIT_PS1_SHOWSTASHSTATE=1 | |
# If there're untracked files, then a '%' will be shown next to the branch name. | |
GIT_PS1_SHOWUNTRACKEDFILES=1 | |
# See the difference between HEAD and its upstream. | |
# A "<" indicates you are behind, ">" indicates you are ahead, "<>" indicates | |
# you have diverged and "=" indicates that there is no difference. | |
GIT_PS1_SHOWUPSTREAM=("auto" "verbose" "name") | |
# See more information about the identity of commits. | |
GIT_PS1_DESCRIBE_STYLE="default" | |
# Colored hint about the current dirty state. | |
GIT_PS1_SHOWCOLORHINTS=1 | |
#------------------------------------------------------------------------------- | |
printf "%s" \ | |
"$RESET" \ | |
"$(background)" \ | |
"\w" \ | |
"$(__git_ps1)" \ | |
"$ERASE" \ | |
"$RESET" \ | |
"\n" \ | |
"▌" |
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
#!/usr/bin/env bash | |
function prompt_command() { | |
PS1=$("$DOTFIZZLES/prompt_command") | |
export PS1 | |
} | |
export PROMPT_DIRTRIM=2 | |
export PROMPT_COMMAND=prompt_command |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment