Skip to content

Instantly share code, notes, and snippets.

@lynxman
Created June 16, 2015 17:26
Show Gist options
  • Save lynxman/91548f1c7304e86e638d to your computer and use it in GitHub Desktop.
Save lynxman/91548f1c7304e86e638d to your computer and use it in GitHub Desktop.
BREW_PACKAGES="caskroom/cask/brew-cask python bazaar ruby cowsay htop-osx iftop links mercurial nmap par2 pstree qemu git subversion tmux unrar wget ngrep netcat mtr mkvtoolnix ffmpeg x264 swig zeromq ansible saltstack encfs packer ec2-ami-tools ec2-api-tools s3cmd pssh mpssh ctags boot2docker docker readline ttytter youtube-dl maven maven-shell nzbget p7zip pigz fswatch watch gcutil phantomjs highlight scala go irssi node etcdctl multitail gist hub http://download.panamax.io/installer/brew/panamax.rb gnupg keybase"
CASK_PACKAGES="vagrant virtualbox sublercli java silverlight flash macvim handbrake istumbler lyx openoffice wireshark xquartz osxfuse vlc"
PIP_PACKAGES="ipython httpie cfupload virtualenvwrapper pylint arrow boto"
GEM_PACKAGES="psych puppet facter chef ohai capistrano rumm puppet-lint foodcritic test-kitchen rspec rubocop irbtools chefspec serverspec kitchen-vagrant bundle berkshelf librarian librarian-chef librarian-puppet cucumber-puppet cucumber-chef puppetlabs_spec_helper chef-metal knife-openstack rspec-puppet gherkin cucumber gem-man templater hiera CFPropertyList beaker beaker-rspec hiera-eyaml"
GOPKGS="github.com/nsf/gocode github.com/nsf/gocode golang.org/x/tools/cmd/goimports github.com/rogpeppe/godef golang.org/x/tools/cmd/oracle golang.org/x/tools/cmd/gorename github.com/golang/lint/golint github.com/kisielk/errcheck github.com/jstemmer/gotags"
EXT_CODES=""
#!/usr/bin/env bash
echo -e "\033[38;5;208m>>>>>>>> `date` - Updating home repository\033[0;00m"
hg pull ; hg up
# Load package names
source ~/scripts/packages
# Vim repository
echo -e "\033[38;5;208m>>>>>>>> `date` - Updating vim repository\033[0;00m"
pushd ~/.vim
git pull
popd
# Brew packages first
echo -e "\033[38;5;208m>>>>>>>> `date` - Updating Homebrew\033[0;00m"
brew update
brew upgrade --all
echo -e "\033[38;5;208m>>>>>>>> `date` - Installing any missing Homebrew packages\033[0;00m"
for BREW_PACKAGE in $BREW_PACKAGES
do
if [ $(brew list | grep -iw ^$(echo $BREW_PACKAGE | sed 's/.rb//' | awk -F"/" '{print $NF}')$ | wc -l | sed 's/^ *//') = "0" ]
then
brew install $BREW_PACKAGE
fi
done
echo -e "\033[38;5;208m>>>>>>>> `date` - Updating Homebrew Cask\033[0;00m"
brew cask update
~/scripts/caskupgrade.rb
echo -e "\033[38;5;208m>>>>>>>> `date` - Installing any missing Homebrew Cask packages\033[0;00m"
for CASK_PACKAGE in $CASK_PACKAGES
do
if [ $(brew cask list | grep -iw ^$(echo $CASK_PACKAGE | sed 's/.rb//' | awk -F"/" '{print $NF}')$ | wc -l | sed 's/^ *//') = "0" ]
then
brew cask install $CASK_PACKAGE
fi
done
# Clean brew
echo -e "\033[38;5;208m>>>>>>>> `date` - Cleaning Homebrew\033[0;00m"
brew cleanup && brew cask cleanup
# Pip packages
echo -e "\033[38;5;208m>>>>>>>> `date` - Updating Pip Packages\033[0;00m"
for PIP_PACKAGE in $PIP_PACKAGES
do
pip install --upgrade $PIP_PACKAGE
done
echo -e "\033[38;5;208m>>>>>>>> `date` - Installing any missing Pip packages\033[0;00m"
for PIP_PACKAGE in $PIP_PACKAGES
do
if [ $(pip list | grep -iw ^$(echo $PIP_PACKAGE | sed 's/.git$//' | awk -F"/" '{print $NF}') | wc -l) = "0" ]
then
pip install $PIP_PACKAGE
fi
done
# Gem packages
echo -e "\033[38;5;208m>>>>>>>> `date` - Updating Gem Packages\033[0;00m"
if [ $(gem list | grep rubygems-update | wc -l) = "0" ]
then
gem install rubygems-update
fi
gem update --system
gem update
echo -e "\033[38;5;208m>>>>>>>> `date` - Installing any missing Gem packages\033[0;00m"
for GEM_PACKAGE_RAW in $GEM_PACKAGES
do
unset GEM_VERSION
GEM_PACKAGE=`echo $GEM_PACKAGE_RAW | awk -F":" '{print $1}'`
GEM_VERSION=`echo $GEM_PACKAGE_RAW | awk -F":" '{print $2}'`
if [ -z $GEM_VERSION ]
then
GEM_APPEND=""
else
GEM_APPEND="-v $GEM_VERSION"
fi
if [ $(gem list | grep -iw $GEM_PACKAGE | wc -l) = "0" ]
then
gem install $GEM_PACKAGE $GEM_APPEND
fi
done
echo -e "\033[38;5;208m>>>>>>>> `date` - Cleaning up old Gem packages\033[0;00m"
for GEM_PACKAGE_CLEANUP in $(gem list | awk '{print $1}')
do
unset GEM_VERSION
gem cleanup -q $GEM_PACKAGE_CLEANUP
done
# External Code
echo -e "\033[38;5;208m>>>>>>>> `date` - Installing any missing Go packages\033[0;00m"
for GOPKG in $GOPKGS
do
go get $GOPKG
done
# External Code
echo -e "\033[38;5;208m>>>>>>>> `date` - Installing any missing external repos\033[0;00m"
for EXT_CODE in $EXT_CODES
do
EXTCODEREPO=`echo $EXT_CODE | awk -F"|" '{print $1}'`
EXTCODEDIR=`echo $EXT_CODE | awk -F"|" '{print $2}'`
if [ ! -d "${HOME}/${EXTCODEDIR}" ]
then
git clone $EXTCODEREPO ${HOME}/${EXTCODEDIR}
else
pushd ${HOME}/${EXTCODEDIR}
git pull
popd
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment