Created
November 24, 2019 05:27
Revisions
-
mhulse created this gist
Nov 24, 2019 .There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,36 @@ #!/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 hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,118 @@ # 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 hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,76 @@ #!/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 hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,182 @@ #!/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 hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,74 @@ #!/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 hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,30 @@ #!/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 hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,4 @@ #!/usr/bin/env bash # Disables shadow on screenshots: defaults write com.apple.screencapture disable-shadow -bool true This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,290 @@ #!/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 hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,21 @@ #!/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 hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,53 @@ #!/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 hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,11 @@ #!/usr/bin/env bash function prompt_command() { PS1=$("$DOTFIZZLES/prompt_command") export PS1 } export PROMPT_DIRTRIM=2 export PROMPT_COMMAND=prompt_command