DEV: Add an option to skip a theme update from the themes:install task. (#12905)

A theme can now specify `skip_update: true` in the yml config for
update allowing for the theme to be installed only if it does not already
exist.
This commit is contained in:
Jeff Wong 2021-04-30 06:31:41 -10:00 committed by GitHub
parent 7b5f31ff04
commit 656b0ae39e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 2 deletions

View File

@ -2,14 +2,17 @@
class ThemesInstallTask
def self.install(themes)
counts = { installed: 0, updated: 0, errors: 0 }
counts = { installed: 0, updated: 0, errors: 0, skipped: 0 }
log = []
themes.each do |name, val|
installer = new(val)
next if installer.url.nil?
if installer.theme_exists?
if installer.update
if installer.options.fetch(:skip_update, nil)
log << "#{name}: is already installed. Skipping update."
counts[:skipped] += 1
elsif installer.update
log << "#{name}: is already installed. Updating from remote."
counts[:updated] += 1
else

View File

@ -45,6 +45,7 @@ task "themes:install" => :environment do |task, args|
puts " Installed: #{counts[:installed]}"
puts " Updated: #{counts[:updated]}"
puts " Errors: #{counts[:errors]}"
puts " Skipped: #{counts[:skipped]}"
if counts[:errors] > 0
exit 1