homebrew-cask-versions/developer/bin/develop_brew_cask
Roland Walker e60605eb0e document and improve developer scripts
- markdown docs were intentionally held back from prior PR to avoid
  merge conflict
- add -help usage notes to all scripts
- add sanity check against user running develop_brew_cask inside
  /usr/local/Library/Taps/phinze-cask/developer/bin and better explain that
- note everywhere that "brew update" is not safe when in "development mode"
2014-01-20 09:38:17 -05:00

69 lines
1.7 KiB
Bash
Executable file

#!/bin/bash
#
# develop_brew_cask
#
set -e; # exit on any uncaught error
set +o histexpand; # don't expand history expressions
tap_subdir="Library/Taps/phinze-cask"
if [[ $1 =~ ^-+h(elp)?$ ]]; then
printf "develop_brew_cask
Symlink private repo directories into Homebrew's Cellar, so
that the 'brew cask' command will use the current development
branch in your private repo.
Saves the production Homebrew directories under new names.
You can reverse this operation with 'production_brew_cask'.
Note: it is not safe to run 'brew update' while development
mode is in effect.
"
exit
fi
script_dir="$(/usr/bin/dirname $0)"
cd "$script_dir"
git_root="$(git rev-parse --show-toplevel)"
brew_prefix="$(brew --prefix)"
cellar_dir="$brew_prefix/Cellar/brew-cask"
version_dir=$(/bin/ls "$cellar_dir/" | sort | tail -1)
tap_dir="$brew_prefix/$tap_subdir"
# sanity check
if [[ $(/usr/bin/stat -L -f '%i' "$tap_dir") -eq $(/usr/bin/stat -L -f '%i' "$git_root") ]]; then
printf "\nERROR: run this script in your private repo, not inside Homebrew.\n"
exit 1;
fi
if [ -z "$version_dir" ]; then
echo "Can't get version dir under $cellar_dir/"
exit 1;
fi
cd "$cellar_dir/$version_dir"
if [ -e "production_rubylib" ]; then
echo "brew-cask is already set up for development"
exit 1
else
mv rubylib production_rubylib
mv Casks production_Casks
ln -s "$git_root/Casks" .
ln -s "$git_root/lib" rubylib
cd "$tap_dir"
mv lib production_lib
mv Casks production_Casks
ln -s "$git_root/Casks" .
ln -s "$git_root/lib" .
echo "brew-cask is now in development mode"
echo "Note: it is not safe 'brew update' while in development mode"
fi
#