Skip to content

Instantly share code, notes, and snippets.

@ldeck
Forked from MattiSG/brewv
Last active December 29, 2015 23:19
Show Gist options
  • Save ldeck/7741937 to your computer and use it in GitHub Desktop.
Save ldeck/7741937 to your computer and use it in GitHub Desktop.
#!/bin/bash
#
# Installs the previous version of a Homebrew formula
#
# Usage: brewv formula_name desired_version
if [ $# -ne 2 ]
then
echo "Usage: $0 <formula_name> <desired_version>";
exit 0;
fi
#
# Based on http://stackoverflow.com/questions/3987683/homebrew-install-specific-version-of-formula#9832084
#
# Author: Matti Schneider <hi@mattischneider.fr> (http://mattischneider.fr)
#
versions=$(brew versions $1)
result=$(echo "$versions" | grep -m 1 $2) #-m 1 to stop as soon as possible
if [[ $? = 0 ]]
then
commit=$(echo $result | cut -d ' ' -f 4)
formula=$(echo $result | cut -d ' ' -f 5)
cd /usr/local
if [[ -e $formula ]]
then brew unlink $1 # will fail if not already installed, hence the check above
fi
git checkout $commit $formula &&
brew install $1 &&
git reset HEAD $formula &&
git checkout -- $formula
cd - > /dev/null
echo "$1 $2 installed."
echo "You can now switch versions with 'brew switch $1 <version>'"
else
echo "$versions"
echo
echo "No version matching '$2' for '$1'"
echo "Available versions have been printed above"
exit 1
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment