| 1 | #!/usr/bin/env ruby |
| 2 | require "fileutils" |
| 3 | |
| 4 | APP_ROOT = File.expand_path("..", __dir__) |
| 5 | |
| 6 | def system!(*args) |
| 7 | system(*args, exception: true) |
| 8 | end |
| 9 | |
| 10 | FileUtils.chdir APP_ROOT do |
| 11 | # This script is a way to set up or update your development environment automatically. |
| 12 | # This script is idempotent, so that you can run it at any time and get an expectable outcome. |
| 13 | # Add necessary setup steps to this file. |
| 14 | |
| 15 | puts "== Installing dependencies ==" |
| 16 | system("bundle check") || system!("bundle install") |
| 17 | |
| 18 | # puts "\n== Copying sample files ==" |
| 19 | # unless File.exist?("config/database.yml") |
| 20 | # FileUtils.cp "config/database.yml.sample", "config/database.yml" |
| 21 | # end |
| 22 | |
| 23 | puts "\n== Preparing database ==" |
| 24 | system! "bin/rails db:prepare" |
| 25 | system! "bin/rails db:reset" if ARGV.include?("--reset") |
| 26 | |
| 27 | puts "\n== Removing old logs and tempfiles ==" |
| 28 | system! "bin/rails log:clear tmp:clear" |
| 29 | |
| 30 | unless ARGV.include?("--skip-server") |
| 31 | puts "\n== Starting development server ==" |
| 32 | STDOUT.flush # flush the output before exec(2) so that it displays |
| 33 | exec "bin/dev" |
| 34 | end |
| 35 | end |