Files
openfoodnetwork/bin/setup

56 lines
1.8 KiB
Ruby
Executable File

#!/usr/bin/env ruby
#
# Install dependencies and migrate data during production deployments or
# when updating your development environment.
#
# Take care when changing it and consider the ofn-install repository for
# the context of deployments.
require "fileutils"
# path to your application root.
APP_ROOT = File.expand_path("..", __dir__)
BUNDLE_ENV = { "BUNDLE_SUPPRESS_INSTALL_USING_MESSAGES"=> "true" }
def system!(*args)
system(*args) || abort("\n== Command #{args} failed ==")
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 =="
# Check first (it's quicker), then install new gems if necessary
system("bundle check 2> /dev/null") || system!(BUNDLE_ENV, "bundle install")
# Install JavaScript dependencies
system!("script/nodenv-install.sh")
system!("bin/yarn")
# 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, removing old logs and tempfiles =="
system! "bin/rails db:prepare log:clear tmp:clear"
system! "rm -f tmp/capybara/screenshots/*.png"
system! "rm -f tmp/invoices/*.pdf"
system! "rm -f tmp/javascripts/*.js"
system! "rm -f tmp/karma_unit.js*"
system! "rm -f tmp/product_import-*"
puts "\n== Removing any precompiled assets that would be out of date now =="
system! "rm -rf public/assets/"
system! "rm -rf public/packs/"
system! "rm -rf public/packs-test/"
puts "\n== Restarting application server =="
# system! "bin/rails restart"
# Faster to do it manually:
system! "touch tmp/restart.txt"
end