docbrown/bin/setup
Daniel Uber 1253d90114
Check for the current version of foreman when deciding to install (#14682)
* Check for the current version of foreman when deciding to install

0.87.1 was current when this was added, but `gem install foreman` now
installs 0.87.2, so this check always fails (I do not have the older
version present).

I'm suspecting we either don't want to version pin this test (assume
whatever version of foreman installed is fine) or we need to use
something like the Gemfile to have dependabot keep this version info
in sync with the upstream.

All I do here is update the current release version to test against.

* Remove foreman version constraint

If any version of (very stable) foreman is installed, assume it's
recent enough to run the (also very stable) Procfile

Only install foreman gem if it's not installed. Updates are on the user.
2021-09-08 09:31:23 -05:00

41 lines
1.3 KiB
Ruby
Executable file

#!/usr/bin/env ruby
require "fileutils"
# path to your application root.
APP_ROOT = File.expand_path("..", __dir__)
def system!(*args)
system(*args) || abort("\n== Command #{args} failed ==")
end
FileUtils.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 config --local ignore_messages.rpush true"
system("bundle check") || system!("bundle install")
system! "gem list \"^foreman$\" -i --silent || gem install foreman"
# Install JavaScript dependencies if using Yarn
system("bin/yarn")
puts "\n== Copying sample files =="
unless File.exist?("config/database.yml")
FileUtils.cp "config/database.yml.sample", "config/database.yml"
end
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