brew/Library/Homebrew/cask/lib/hbc/cli/internal_appcast_checkpoint.rb

46 lines
1.1 KiB
Ruby
Raw Normal View History

module Hbc
class CLI
class InternalAppcastCheckpoint < InternalUseBase
def self.run(*args)
cask_tokens = cask_tokens_from(args)
raise CaskUnspecifiedError if cask_tokens.empty?
appcask_checkpoint(cask_tokens)
end
def self.appcask_checkpoint(cask_tokens)
count = 0
cask_tokens.each do |cask_token|
cask = Hbc.load(cask_token)
if cask.appcast.nil?
opoo "Cask '#{cask}' is missing an `appcast` stanza."
else
result = cask.appcast.calculate_checkpoint
checkpoint = result[:checkpoint]
if checkpoint.nil?
onoe "Could not retrieve `appcast` checkpoint for cask '#{cask}': #{result[:command_result].stderr}"
else
puts cask_tokens.count > 1 ? "#{checkpoint} #{cask}": checkpoint
count += 1
end
end
end
count == cask_tokens.count
end
def self.help
"calculates a given Cask's appcast checkpoint"
end
def self.needs_init?
true
end
end
end
end