impress/bin/setup
Emi Matchu d90e0549ca Update devcontainer
The Ruby version got out of date at some point… here, I use `bin/rails devcontainer` as the newer, simpler base.
2025-10-30 02:16:54 +00:00

45 lines
1.3 KiB
Ruby
Executable file

#!/usr/bin/env ruby
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 Ruby dependencies =="
system("bundle check") || system!("bundle install")
# 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"
puts "\n== Importing public modeling data =="
system! "bin/rails public_data:pull"
puts "\n== Installing Yarn dependencies =="
system! "corepack enable"
system! "corepack install"
system! "yarn install"
puts "\n== Building development JS files =="
system! "yarn build:dev"
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