-
-
Save ldeck/7741937 to your computer and use it in GitHub Desktop.
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
#!/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