class Hbc::CLI::Create < Hbc::CLI::Base def self.run(*args) cask_tokens = cask_tokens_from(args) raise Hbc::CaskUnspecifiedError if cask_tokens.empty? cask_token = cask_tokens.first.sub(/\.rb$/i,'') cask_path = Hbc.path(cask_token) odebug "Creating Cask #{cask_token}" if cask_path.exist? raise Hbc::CaskAlreadyCreatedError.new cask_token end File.open(cask_path, 'w') do |f| f.write template(cask_token) end exec_editor cask_path end # for mocking # todo: add an :exec parameter to SystemCommand def self.exec_editor(*args) Hbc::Utils.exec_editor(*args) end def self.template(cask_token) <<-EOS.undent cask :v1 => '#{cask_token}' do version '' sha256 '' url 'https://' name '' homepage '' license :unknown # todo: change license and remove this comment; ':unknown' is a machine-generated placeholder app '' end EOS end def self.help "creates the given Cask and opens it in an editor" end end