mirror of
https://github.com/discourse/discourse.git
synced 2025-01-23 06:52:59 +08:00
8c86676fcf
This is a revert of 92793c5b73
.
Following on from discussions after the previous commit, it became evident that it was only a small step towards solving the larger problem of finding site settings in a reliable fashion across multiple languages.
This is going to take more thought and discussion, and since the changes introduced in the previous commit are effectively non functional without additional work, I'm going to revert it for now.
93 lines
2.2 KiB
Ruby
93 lines
2.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
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]}"
|
|
|
|
exit 1 if counts[:not_found] + counts[:errors] > 0
|
|
end
|
|
|
|
# Outputs a list of Site Settings that may no longer be in use
|
|
desc "Find dead site settings"
|
|
task "site_settings:find_dead" => :environment do
|
|
setting_names = SiteSettingsTask.names
|
|
|
|
setting_names.each do |n|
|
|
if !SiteSetting.respond_to?(n)
|
|
# Likely won't hit here, but just in case
|
|
puts "Setting #{n} does not exist."
|
|
end
|
|
end
|
|
|
|
directories = SiteSettingsTask.directories
|
|
dead_settings = []
|
|
|
|
if !SiteSettingsTask.rg_installed?
|
|
puts "Please install ripgrep to use this command"
|
|
exit 1
|
|
end
|
|
|
|
if !ENV["ALL_THE_PARENT_DIR"]
|
|
puts "To specify a custom parent directory for all-the-themes & all-the-plugins"
|
|
puts "use the ALL_THE_PARENT_DIR ENV var."
|
|
end
|
|
puts "Checking #{setting_names.count} settings in these directories:"
|
|
puts directories
|
|
puts
|
|
|
|
setting_names.each do |setting_name|
|
|
count = SiteSettingsTask.rg_search_count("SiteSetting.#{setting_name}", directories.first)
|
|
count =
|
|
SiteSettingsTask.rg_search_count(
|
|
"siteSettings.#{setting_name}",
|
|
directories.first,
|
|
) if count.zero?
|
|
directories.each do |directory|
|
|
count = SiteSettingsTask.rg_search_count(setting_name, directory) if count.zero?
|
|
end
|
|
if count.zero?
|
|
print setting_name
|
|
dead_settings << setting_name
|
|
else
|
|
print "."
|
|
end
|
|
end
|
|
|
|
puts
|
|
|
|
if dead_settings.count > 0
|
|
puts "These settings may be unused:"
|
|
puts dead_settings
|
|
else
|
|
puts "No dead settings found."
|
|
end
|
|
end
|