#!/usr/bin/env ruby
require 'fileutils'
include FileUtils

# path to your application root.
APP_ROOT = File.expand_path('..', __dir__)

def system!(*args)
  system(*args) || abort("\n== Command #{args} failed ==")
end

chdir APP_ROOT do
  # This script is a starting point to setup your application.
  # Add necessary setup steps to this file.

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

  # Install JavaScript dependencies if using Yarn
  system('bin/yarn')

  puts "\n== Copying sample files =="
  unless File.exist?('.env')
    cp '.env.sample', '.env'
    puts "I have created the .env file for you. Please fill in the correct values inside it and run the setup again." 
    return
  end

  puts "\n== Preparing database and seeding sample data =="
  system! 'bin/rails dev:prime'

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

  puts "\n== Restarting application server =="
  system! 'bin/rails restart'

  puts "\n== Adding deployment remotes =="
  system 'git remote add review https://git.heroku.com/easy-release-review.git'
  system 'git remote add staging https://git.heroku.com/easy-release-staging.git'
  system 'git remote add demo https://git.heroku.com/easy-release-demo.git'
  system 'git remote add production https://git.heroku.com/easy-release-production.git'
end
