| 
					
				 | 
			
			
				@@ -0,0 +1,240 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#!/bin/bash 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# a quick and dirty meta pkg installer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+############################################################################### 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+set -e 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#TODO: output help if used wrong 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#TODO: provide completion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#TODO: bubble up errors from pkgs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+GIMME_URL="http://git.kylepdavis.com/kylepdavis/gimme.git" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+alias getme=gimme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+alias giveme=gimme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+has() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	which "$1" >/dev/null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+pkgtool() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if [[ "$OS" = "Darwin" ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		brew "$@" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sudo apt-get -y "$@" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_gimmepkg() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pkgtool install "$@" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_GIMMES= 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+__gimme() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	local PKG="$1" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	! [[ "$_GIMMES" == *" $PKG "* ]]  ||  return 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	_GIMMES+=" $PKG " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	case "$PKG" in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dotfiles) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		#TODO: get and install these 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		#TODO: difficulty: should be able to setup dotfiles + bash + base tools all in one command ;-) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		#TODO: protip:   curl -sLo- $URL  |  bash    # ftw 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		echo ... //TODO: $PKG ... 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	gcc) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if [[ "$OS" = "Darwin" ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			"xcode-select" --install 2>&1 | grep -q "already installed" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			_gimmepkg build-essential 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			_gimme curl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	bash_profile) _gimme liquidprompt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		[[ -f "$HOME/.bash_profile" ]]  ||  ln -sv "$HOME/.profile" "$HOME/.bash_profile" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		[[ -f "$HOME/.bashrc" ]]        ||  ln -sv "$HOME/.profile" "$HOME/.bashrc" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	liquidprompt) _gimme bash_profile git 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		[[ -d "$HOME/liquidprompt" ]]  ||  git clone "https://github.com/nojhan/liquidprompt.git" "$HOME/liquidprompt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	git) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		has git  ||  _gimmepkg git 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if ! [[ -f "$HOME/.gitconfig" ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			git config --global color.ui true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if [[ "$OS" = "Darwin" ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				git config --global credential.helper "osxkeychain" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				git config --global credential.helper "cache --timeout=3600" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	git-extras) _gimme git 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		has git-alias  ||  (cd /tmp && git clone --depth 1 https://github.com/tj/git-extras.git && cd git-extras && sudo make install) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if ! [[ "$(git alias)" ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			git alias br branch 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			git alias ci commit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			git alias co checkout 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			git alias di diff 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			git alias st status 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	python) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if [[ "$OS" = "Darwin" ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			mkdir -p "$PYTHONPATH" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		has python  ||  _gimmepkg python 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pylint|pep8) _gimme python 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if ! has "$PKG"; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if [[ "$OS" = "Darwin" ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				easy_install -d "$PYTHONPATH" "$PKG" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				ln -sv "$PYTHONPATH/$PKG" "$(brew --prefix)/bin/$PKG" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				easy_install "$PKG" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	node) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if [[ "$OS" = "Darwin" ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			has node  ||  _gimmepkg node 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		else #TODO: might get old version here ... 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			_gimme nodejs npm 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	jshint|js-beautify|json) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if [[ "$OS" = "Darwin" ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			has "$PKG"  ||  npm install -g "$PKG" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			has "$PKG"  ||  sudo npm install -g "$PKG" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	mongodb) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		has "mongod"  ||  _gimmepkg mongodb 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	redis) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if ! has "redis-server"; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if [[ "$OS" = "Darwin" ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				_gimmepkg redis 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				_gimmepkg redis-server 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	go) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		_gimme curl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		#TODO: setup go vs golang dirs? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if ! which "$PKG" >/dev/null; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if [[ "$OS" = "Darwin" ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				_gimmepkg go --cross-compile-common 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				_gimmepkg golang 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	difftool) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		_gimme colordiff 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	mergetool) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if [[ "$OS" = "Darwin" ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			true #TODO: usually use opendiff but SourceTree installer would be nice 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			_gimme meld 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	tools) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		_gimme bash_profile liquidprompt git tmux tree vim 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dev+generic) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		_gimme gcc mergetool 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dev+js) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		_gimme node jshint js-beautify json 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dev+sh) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		_gimme shellcheck 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dev+py) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		_gimme python pylint pep8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dev+db) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		_gimme mongodb redis postgresql 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dev+go) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		_gimme go 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	dev) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		_gimme dev+generic dev+js dev+sh dev+py dev+db dev+go 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	stuff) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		_gimme tools dev 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	homebrew) _gimme gcc git 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		[[ -d "$HOME/homebrew" ]]   ||  (mkdir "$HOME/homebrew" 2>/dev/null  &&  curl -L "https://github.com/Homebrew/homebrew/tarball/master" | tar xz --strip 1 -C "$HOME/homebrew"  &&  brew update) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		[[ "$BREW_PREFIX" ]]  ||  BREW_PREFIX=$(brew --prefix) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		has brew-cask  ||  brew install caskroom/cask/brew-cask 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pkgtool) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if [[ "$OS" = "Darwin" ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			_gimme homebrew 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			has apt-get  ||  return 123 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pkgtool_metadata) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		pkgtool update 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	gimme) _gimme git 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if [[ "$BASH_SOURCE" ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			echo "TODO: make this update gimme" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			echo "Installing 'gimme' to \$HOME/bin/" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			GIMME_DIR="$HOME/.gimme" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if ! [[ -d "$GIMME_DIR" ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				mkdir -p "$GIMME_DIR" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				git clone "$GIMME_URL" "$GIMME_DIR" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				mkdir -p "$HOME/bin" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				ln -sfv "$GIMME_DIR/gimme.sh" "$HOME/bin/gimme" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				pushd "$GIMME_DIR" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				git pull 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				popd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	*) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		_gimme pkgtool 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		#TODO: _gimme pkgtool_metadata 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		has "$PKG"  ||  _gimmepkg "$PKG" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	esac 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	echo "Got $PKG" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_gimme() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	local PKG 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	for PKG in "$@"; do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if ! __gimme "$PKG"; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			echo "ERROR: Unable to fulfill gimme for $PKG!" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return 123 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	done 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+gimme() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	_GIMMES= 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	#set -x 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	_gimme "$@" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	#set +x 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+GIMME_GIMMES=$(type __gimme | grep ')$' | tr -d ')|*') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+_gimme_complete() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	COMPREPLY=( $(compgen -W "$GIMME_GIMMES" -- "${COMP_WORDS[COMP_CWORD]}") ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+complete -F _gimme_complete gimme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if [[ ! "$BASH_SOURCE" && "$#" = 0 ]]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	gimme gimme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	exit 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+gimme "$@" 
			 |