mirror of
https://github.com/donl/homebrew-cask-versions.git
synced 2026-07-16 22:06:43 -06:00
97 lines
2.5 KiB
Bash
Executable file
97 lines
2.5 KiB
Bash
Executable file
#!/bin/bash
|
|
#
|
|
# develop_brew_cask
|
|
#
|
|
|
|
set -e; # exit on any uncaught error
|
|
set +o histexpand; # don't expand history expressions
|
|
shopt -s nocasematch; # case-insensitive regular expressions
|
|
|
|
cd_to_project_root () {
|
|
local script_dir="$(/usr/bin/dirname $0)"
|
|
cd "$script_dir"
|
|
local git_root="$(git rev-parse --show-toplevel)"
|
|
if [[ -z "$git_root" ]]; then
|
|
printf "Could not find git project root"
|
|
exit 1;
|
|
fi
|
|
cd "$git_root"
|
|
}
|
|
|
|
cd_to_version_dir () {
|
|
local cellar_dir="$1"
|
|
local version_dir="$2"
|
|
if [ -z "$version_dir" ]; then
|
|
printf "Can't get version dir under $cellar_dir/\n";
|
|
exit 1;
|
|
fi
|
|
cd "$cellar_dir/$version_dir"
|
|
}
|
|
|
|
create_dev_links () {
|
|
local git_root="$1"
|
|
local tap_dir="$2"
|
|
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" .
|
|
}
|
|
|
|
_develop_brew_cask () {
|
|
|
|
# configurable
|
|
local tap_subdir="Library/Taps/phinze-cask"
|
|
|
|
# initialization
|
|
cd_to_project_root;
|
|
local git_root=`pwd`
|
|
local brew_prefix="$(brew --prefix)"
|
|
local cellar_dir="$brew_prefix/Cellar/brew-cask"
|
|
local version_dir=$(/bin/ls "$cellar_dir/" | sort | tail -1)
|
|
local 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
|
|
|
|
# action
|
|
cd_to_version_dir "$cellar_dir" "$version_dir";
|
|
if [ -e "production_rubylib" ]; then
|
|
printf "brew-cask is already set up for development\n";
|
|
exit 1
|
|
else
|
|
create_dev_links "$git_root" "$tap_dir";
|
|
printf "brew-cask is now in development mode\n"
|
|
printf "Note: it is not safe to run 'brew update' while in development mode\n"
|
|
fi
|
|
|
|
}
|
|
|
|
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
|
|
|
|
_develop_brew_cask "$@";
|
|
|
|
#
|