#!/usr/bin/env ruby

def system!(*args) system(*args, exception: true) end

puts "== Installing dependencies =="
system("gem install bundler --conservative")
system("bundle check") || system!("bundle install")

puts "\n== Starting MySQL =="
system "[ -d ~/Work/basecamp/docker-dev ] && git -C ~/Work/basecamp/docker-dev pull || gh repo clone basecamp/docker-dev ~/Work/basecamp/docker-dev"
system! "~/Work/basecamp/docker-dev/setup mysql80"

puts "\n== Preparing database =="
if ARGV.include?("--reset")
  system! "bin/rails db:drop db:create db:schema:load db:prepare"
  system! "bin/rails db:fixtures:load" # load signal id fixtures before running fizzy seeds
  system! "bin/rails db:seed"
else
  system! "bin/rails db:prepare"
end

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