#!/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.”