mirror of
https://github.com/discourse/discourse.git
synced 2024-11-27 10:15:49 +08:00
ddbed82bca
If the site_settings import has any errors or settings that are not found, this will cause the task to exit with a non-zero exit code. This is useful when using this task as part of automated configuration deployment, where you may not want to continue with the process if a setting fails to import.
37 lines
734 B
Ruby
37 lines
734 B
Ruby
require 'yaml'
|
|
|
|
desc "Exports site settings"
|
|
task "site_settings:export" => :environment do
|
|
h = SiteSettingsTask.export_to_hash
|
|
puts h.to_yaml
|
|
end
|
|
|
|
desc "Imports site settings"
|
|
task "site_settings:import" => :environment do
|
|
yml = (STDIN.tty?) ? '' : STDIN.read
|
|
if yml == ''
|
|
puts
|
|
puts "Please specify a settings yml file"
|
|
puts "Example: rake site_settings:import < settings.yml"
|
|
exit 1
|
|
end
|
|
|
|
puts
|
|
puts "starting import..."
|
|
puts
|
|
|
|
log, counts = SiteSettingsTask.import(yml)
|
|
|
|
puts log
|
|
|
|
puts
|
|
puts "Results:"
|
|
puts " Updated: #{counts[:updated]}"
|
|
puts " Not Found: #{counts[:not_found]}"
|
|
puts " Errors: #{counts[:errors]}"
|
|
|
|
if counts[:not_found] + counts[:errors] > 0
|
|
exit 1
|
|
end
|
|
end
|