Files
osem/lib/tasks/setup.rake
Henne Vogelsang 00670b03f6 Introduce setup rake tasks
Put what has to be done to have a working installation into one place instead
of spreading it to multiple files.
2018-09-12 21:05:39 +02:00

49 lines
1.4 KiB
Ruby

# frozen_string_literal: true
require 'fileutils'
namespace :setup do
task :configure do
puts 'Setting up the database configuration...'
copy_example_file('config/database.yml')
copy_example_file(".env.#{Rails.env}", 'dotenv.example')
end
desc 'Bootstrap the application'
task bootstrap: [:configure, :environment] do
puts 'Creating the database...'
begin
# Only do this if the database does not exist...
Rake::Task['db:version'].invoke
# rubocop:disable Style/RescueStandardError
rescue
# rubocop:enable Style/RescueStandardError
Rake::Task['db:create'].invoke
Rake::Task['db:setup'].invoke
Rake::Task['db:seed'].invoke
end
if Rails.env.test? || Rails.env.production?
puts 'Prepare assets'
Rake::Task['assets:clobber'].invoke
Rake::Task['assets:precompile'].invoke
end
if Rails.env.development?
puts 'Removing assets'
Rake::Task['assets:clobber'].invoke
end
end
end
def copy_example_file(example_file, source_file = nil)
if File.exist?(example_file) && !ENV['FORCE_EXAMPLE_FILES']
example_file = File.join(File.expand_path(File.dirname(__FILE__) + '/../..'), example_file)
puts "WARNING: You already have the config file #{example_file}, skipping..."
else
source_file ||= "#{example_file}.example"
puts "Creating #{example_file} from #{source_file}"
FileUtils.copy_file(source_file, example_file)
end
end