class GiteePack::Worker

Public Class Methods

new(base, head, options = {}) click to toggle source
# File lib/gitee_pack/worker.rb, line 3
def initialize(base, head, options = {})
  @options = Parser.new.execute(options[:ARGV])
  @base    = base
  @head    = head
  @diff    = Diff.new(@base, @head)
  @errors  = []
end

Public Instance Methods

execute() click to toggle source
# File lib/gitee_pack/worker.rb, line 11
def execute
  Folder.mkdir_upgrade
  Filer.cp_diff_files(@diff.cp_files)

  compile_webpack_files_and_cp
  compile_asset_files_and_cp
  compile_gems_and_cp

  Filer.g_diff_file(@diff.diff_files_with_status)
  Filer.g_delete_file(@diff.delete_files)
  Filer.g_commit_file(["old: #{@base}", "new: #{@head}"])
  Filer.cp_update_file

  puts_empty_folders
  puts_deleted_files

  verify_upgrade_package

  Filer.g_log_file GiteePack.logger.history
end

Private Instance Methods

compile_asset_files_and_cp() click to toggle source
# File lib/gitee_pack/worker.rb, line 46
def compile_asset_files_and_cp
  if process_asset?
    Precompile.with_asset
    unless Status.success?($?)
      Filer.g_log_file GiteePack.logger.history
      exit Status::ERR_COMPILE_ASSET
    end

    Filer.cp_asset_files
  end
end
compile_gems_and_cp() click to toggle source
# File lib/gitee_pack/worker.rb, line 58
def compile_gems_and_cp
  if process_gem?
    Precompile.with_gem
    unless Status.success?($?)
      Filer.g_log_file GiteePack.logger.history
      exit Status::ERR_COMPILE_GEM
    end

    Filer.cp_gems
  end
end
compile_webpack_files_and_cp() click to toggle source
# File lib/gitee_pack/worker.rb, line 34
def compile_webpack_files_and_cp
  if process_webpack?
    Precompile.with_webpack
    unless Status.success?($?)
      Filer.g_log_file GiteePack.logger.history
      exit Status::ERR_COMPILE_WEBPACK
    end

    Filer.cp_webpack_files
  end
end
process_asset?() click to toggle source
# File lib/gitee_pack/worker.rb, line 126
def process_asset?
  !@options[:skip_asset_compile] && @diff.has_asset_file?
end
process_gem?() click to toggle source
# File lib/gitee_pack/worker.rb, line 130
def process_gem?
  !@options[:skip_gem_compile] && @diff.has_gem_file?
end
process_webpack?() click to toggle source
# File lib/gitee_pack/worker.rb, line 122
def process_webpack?
  !@options[:skip_webpack_compile] && @diff.has_webpack_file?
end
puts_deleted_files() click to toggle source
# File lib/gitee_pack/worker.rb, line 138
def puts_deleted_files
  unless @diff.delete_files.empty?
    GiteePack.logger.warn "\nDelete Files:"
    GiteePack.logger.warn "#{@diff.delete_files.join("\n")}"
  end
end
puts_empty_folders() click to toggle source
# File lib/gitee_pack/worker.rb, line 145
def puts_empty_folders
  unless @diff.empty_folders.empty?
    GiteePack.logger.warn "\nEmpty Folders:"
    GiteePack.logger.warn "#{@diff.empty_folders.join("\n")}"
  end
end
set_errors(result, message) click to toggle source
# File lib/gitee_pack/worker.rb, line 134
def set_errors(result, message)
  @errors << { result: result, message: message }
end
verify_digest_with_assets_dir() click to toggle source
# File lib/gitee_pack/worker.rb, line 100
def verify_digest_with_assets_dir
  if process_asset?
    from = File.join(Folder.upgrade_files_dir, Folder.assets_dir)
    to = Folder.assets_dir
    verify_files from, to
  end
end
verify_digest_with_cp_files() click to toggle source
# File lib/gitee_pack/worker.rb, line 84
def verify_digest_with_cp_files
  @diff.cp_files.each do |file|
    from = File.join(Folder.upgrade_files_dir, file)
    to = file
    verify_files from, to
  end
end
verify_digest_with_gems_dir() click to toggle source
# File lib/gitee_pack/worker.rb, line 108
def verify_digest_with_gems_dir
  if process_gem?
    from = File.join(Folder.upgrade_files_dir, Folder.bundle_cache_dir)
    to = Folder.bundle_cache_dir
    verify_files from, to
  end
end
verify_digest_with_webpacks_dir() click to toggle source
# File lib/gitee_pack/worker.rb, line 92
def verify_digest_with_webpacks_dir
  if process_webpack?
    from = File.join(Folder.upgrade_files_dir, Folder.webpacks_dir)
    to = Folder.webpacks_dir
    verify_files from, to
  end
end
verify_files(from, to) click to toggle source
# File lib/gitee_pack/worker.rb, line 116
def verify_files(from, to)
  result, message = Verifier.new.execute(from, to)
  GiteePack.logger.debug message
  set_errors(result, message) unless result
end
verify_upgrade_package() click to toggle source
# File lib/gitee_pack/worker.rb, line 70
def verify_upgrade_package
  GiteePack.logger.info '[Verifying] package is verifying, please wait ...'

  verify_digest_with_cp_files
  verify_digest_with_webpacks_dir
  verify_digest_with_assets_dir
  verify_digest_with_gems_dir

  unless @errors.empty?
    Filer.g_log_file GiteePack.logger.history
    exit Status::ERR_VERIFY_PACKAGE
  end
end