bin/sandbox
#!/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
extension_name="solidus_social"
# 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 '$extension_name', path: '..'
gem 'solidus_auth_devise', '>= 2.1.0'
gem 'rails-i18n'
gem 'solidus_i18n'
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 spree:install \
--auto-accept \
--user_class=Spree::User \
--enforce_available_locales=true \
$@
unbundled bundle exec rails generate solidus:auth:install
echo
echo "🚀 Sandbox app successfully created for $extension_name!"
echo "🚀 This app is intended for test purposes."