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:
parent
7b5f31ff04
commit
656b0ae39e
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue