docbrown/bin/setup
Molly Struve 1be8c72206
[deploy] Refactor:Remove ENVied Gem, Use dotenv Instead for Test and Development (#9621)
* Refactor:Remove ENVied Gem in Favor of Default application.yml

* Copy sample_application.yml for Travis

* Create .env_sample file, Warn of missing ENV variables, ignore .env file

* Use dotenv For ENV variables and create Rake Task to Populate

* Update docs to copy .env_sample file

* make application config a bit more resilient

* update more documentation and only initialize dotenv in dev and test

* Update doc code snippet types and refactor rake task and app config

* remove push defaults

* Make initializers more resilient, remove unused ENV from travis

* Exit new rake task if application.yml does not exist, include dotenv in docs
2020-08-12 11:01:38 -04:00

48 lines
1.5 KiB
Ruby
Executable file

#!/usr/bin/env ruby
require "fileutils"
include FileUtils
# path to your application root.
APP_ROOT = File.expand_path("..", __dir__)
def system!(*args)
system(*args) || abort("\n== Command #{args} failed ==")
end
chdir APP_ROOT do
# This script is a way to set up or update your development environment automatically.
# This script is idempotent, so that you can run it at anytime and get an expectable outcome.
# Add necessary setup steps to this file.
puts "== Installing dependencies =="
system! "gem install bundler --conservative"
system! "bundle config --local cache_all true"
system! "bundle config --local cache_all_platforms true"
system("bundle check") || system!("bundle install")
system! "gem list \"^foreman$\" -v 0.87.1 -i --silent || gem install foreman"
# Install JavaScript dependencies if using Yarn
system("bin/yarn")
# TEMPORARY @sre will remove before Sept 1, 2020
puts "\n== Create .env File from application.yml =="
system!("bin/rails create_dot_env_file")
puts "\n== Copying sample files =="
unless File.exist?("config/database.yml")
cp "config/database.yml.sample", "config/database.yml"
end
puts "\n== Preparing Test Elasticsearch =="
system! 'RAILS_ENV="test" bin/rails search:setup'
puts "\n== Initializing the application =="
system! "bin/rails app_initializer:setup forem:setup"
puts "\n== Removing old logs and tempfiles =="
system! "bin/rails log:clear tmp:clear"
puts "\n== Restarting application server =="
system! "bin/rails restart"
end