#!/usr/bin/env bash
set -e
case “$DB” in postgres|postgresql)
RAILSDB="postgresql" ;;
mysql)
RAILSDB="mysql" ;;
sqlite|'')
RAILSDB="sqlite3" ;;
*)
echo "Invalid DB specified: $DB" exit 1 ;;
esac
if [ ! -z $SOLIDUS_BRANCH ] then
BRANCH=$SOLIDUS_BRANCH
else
BRANCH="master"
fi
extension_name=“<%= file_name %>”
# Stay away from the bundler env of the containing extension. function unbundled {
ruby -rbundler -e'b = proc {system *ARGV}; Bundler.respond_to?(:with_unbundled_env) ? Bundler.with_unbundled_env(&b) : Bundler.with_clean_env(&b)' -- $@
}
rm -rf ./sandbox unbundled bundle exec rails new sandbox –database=“$RAILSDB” \
--skip-bundle \ --skip-git \ --skip-keeps \ --skip-rc \ --skip-spring \ --skip-test \ --skip-javascript
if [ ! -d “sandbox” ]; then
echo 'sandbox rails application failed' exit 1
fi
cd ./sandbox cat <<RUBY >> Gemfile gem 'solidus', github: 'solidusio/solidus', branch: '$BRANCH' gem 'solidus_auth_devise', '>= 2.1.0' gem 'rails-i18n' gem 'solidus_i18n'
gem '$extension_name', path: '..'
group :test, :development do
platforms :mri do gem 'pry-byebug' end
end RUBY
unbundled bundle install –gemfile Gemfile
unbundled bundle exec rake db:drop db:create
unbundled bundle exec rails generate solidus:install \
--auto-accept \ --user_class=Spree::User \ --enforce_available_locales=true \ --with-authentication=false \ --payment-method=none \ $@
unbundled bundle exec rails generate solidus:auth:install unbundled bundle exec rails generate ${extension_name}:install
echo echo “🚀 Sandbox app successfully created for $extension_name!” echo “🚀 Using $RAILSDB and Solidus $BRANCH” echo “🚀 Use 'export DB=' to control the DB adapter” echo “🚀 Use 'export SOLIDUS_BRANCH=<BRANCH-NAME>' to control the Solidus version” echo “🚀 This app is intended for test purposes.”