2017-05-12 16:23:41 +02:00
|
|
|
#!/usr/bin/env ruby
|
2021-02-16 16:14:43 +01:00
|
|
|
require "fileutils"
|
2017-05-12 16:23:41 +02:00
|
|
|
|
|
|
|
# path to your application root.
|
2023-03-28 15:56:40 +02:00
|
|
|
APP_ROOT = File.expand_path("..", __dir__)
|
2017-05-12 16:23:41 +02:00
|
|
|
|
|
|
|
def system!(*args)
|
|
|
|
system(*args) || abort("\n== Command #{args} failed ==")
|
|
|
|
end
|
|
|
|
|
2020-07-09 10:45:04 +02:00
|
|
|
FileUtils.chdir APP_ROOT do
|
2021-02-16 16:14:43 +01:00
|
|
|
# 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.
|
2017-05-12 16:23:41 +02:00
|
|
|
# Add necessary setup steps to this file.
|
|
|
|
|
2023-03-28 15:56:40 +02:00
|
|
|
puts "== Installing dependencies =="
|
|
|
|
system! "gem install bundler --conservative"
|
|
|
|
system("bundle check") || system!("bundle install")
|
2020-07-09 10:45:04 +02:00
|
|
|
|
|
|
|
# Install JavaScript dependencies
|
2022-02-23 13:44:29 +01:00
|
|
|
system! 'node --version'
|
2024-03-13 11:06:24 +01:00
|
|
|
system! 'bun --version'
|
|
|
|
system! 'bun install'
|
2017-05-12 16:23:41 +02:00
|
|
|
|
2024-03-13 11:06:24 +01:00
|
|
|
if ENV["UPDATE_WEBDRIVER"]
|
|
|
|
puts "\n== Updating webdrivers =="
|
|
|
|
puts "\nyou must add ~/.local/bin to your path"
|
|
|
|
system! 'bunx @puppeteer/browsers clear --path ~/.local/bin/headless_browsers'
|
|
|
|
|
|
|
|
system! 'bunx @puppeteer/browsers install chromedriver --path ~/.local/bin/headless_browsers'
|
|
|
|
system! 'bunx @puppeteer/browsers install chrome --path ~/.local/bin/headless_browsers'
|
|
|
|
puts "\n if chrome and chromedriver versions are not compatible, add the version you want in the above lines. ex : chrome@121"
|
|
|
|
|
|
|
|
system! 'rm -f ~/.local/bin/chromedriver && ln -s $(find ~/.local/bin/headless_browsers -type f -name chromedriver) ~/.local/bin/chromedriver'
|
|
|
|
system! 'rm -f ~/.local/bin/chrome && ln -s $(find ~/.local/bin/headless_browsers -type f -name chrome) ~/.local/bin/chrome'
|
|
|
|
end
|
2018-05-22 16:01:37 +02:00
|
|
|
|
2018-09-03 14:21:38 +02:00
|
|
|
puts "\n== Copying sample files =="
|
|
|
|
unless File.exist?('.env')
|
2020-07-09 10:45:04 +02:00
|
|
|
FileUtils.cp 'config/env.example', '.env'
|
2018-09-03 14:21:38 +02:00
|
|
|
end
|
2017-05-12 16:23:41 +02:00
|
|
|
|
2023-03-28 15:56:40 +02:00
|
|
|
# puts "\n== Copying sample files =="
|
|
|
|
# unless File.exist?("config/database.yml")
|
|
|
|
# FileUtils.cp "config/database.yml.sample", "config/database.yml"
|
|
|
|
# end
|
|
|
|
|
2017-05-12 16:23:41 +02:00
|
|
|
puts "\n== Preparing database =="
|
2023-03-28 15:56:40 +02:00
|
|
|
system! "bin/rails db:prepare"
|
2017-05-12 16:23:41 +02:00
|
|
|
|
|
|
|
puts "\n== Removing old logs and tempfiles =="
|
2023-03-28 15:56:40 +02:00
|
|
|
system! "bin/rails log:clear tmp:clear"
|
2017-05-12 16:23:41 +02:00
|
|
|
|
2021-02-16 16:14:43 +01:00
|
|
|
puts "\n== Restarting application server =="
|
2023-03-28 15:56:40 +02:00
|
|
|
system! "bin/rails restart"
|
2017-05-12 16:23:41 +02:00
|
|
|
end
|