hanami/script/setup

73 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
declare pwd=$PWD
declare cache="$pwd/vendor/cache"
print_ruby_version() {
echo "Using $(ruby -v)"
echo
}
cleanup() {
./script/teardown
}
bundle_package() {
bundle package --all
echo ""
}
install_hanami_frameworks() {
declare -a frameworks=(utils validations router helpers model view controller mailer assets webconsole)
for framework in "${frameworks[@]}"
do
local directory=($cache/$framework-*)
pushd $directory > /dev/null
find . -name \*.gem -delete
gem build hanami-$framework.gemspec > /dev/null
local pkg=(hanami-$framework-*.gem)
gem install $pkg > /dev/null
mv $pkg $cache
echo "Installed $pkg (from $directory)"
popd > /dev/null
done
echo ""
}
install_hanami() {
bundle exec rake build
local pkg=($pwd/pkg/hanami-*.gem)
gem install $pkg > /dev/null
mv $pkg $cache
echo "Installed $pkg (from $(git rev-parse HEAD))"
echo ""
}
generate_index() {
pushd $cache > /dev/null
gem generate_index
popd > /dev/null
echo ""
}
main() {
print_ruby_version &&
cleanup &&
bundle_package &&
install_hanami_frameworks &&
install_hanami &&
generate_index
}
main