require “fileutils”

APP_ROOT = File.expand_path(“..”, __dir__)

def system!(*args)

system(*args, exception: true)

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 any time and get an expectable outcome.
# Add necessary setup steps to this file.

puts "== Installing dependencies =="
system("bundle check") || system!("bundle install")

<% if using_node? -%>

# Install JavaScript dependencies
system("yarn install --check-files")

<% elsif using_bun? -%>

# Install JavaScript dependencies
system!("bun install")

<% end -%> <% unless options.skip_active_record? -%>

# puts "\n== Copying sample files =="
# unless File.exist?("config/database.yml")
#   FileUtils.cp "config/database.yml.sample", "config/database.yml"
# end

puts "\n== Preparing database =="
system! "bin/rails db:prepare"
system! "bin/rails db:reset" if ARGV.include?("--reset")

<% end -%>

puts "\n== Removing old logs and tempfiles =="
system! "bin/rails log:clear tmp:clear"

unless ARGV.include?("--skip-server")
  puts "\n== Starting development server =="
  STDOUT.flush # flush the output before exec(2) so that it displays
  exec "bin/dev"
end

end