class Releasecop::Cli
Public Class Methods
exit_on_failure?()
click to toggle source
# File lib/releasecop/cli.rb, line 5 def self.exit_on_failure? true end
Public Instance Methods
check(project = nil)
click to toggle source
# File lib/releasecop/cli.rb, line 21 def check(project = nil) raise Thor::Error, "Must specify a PROJECT or --all" if project.nil? && !options[:all] initialize_manifest! unless File.exist?(Releasecop::MANIFEST_PATH) selected = options[:all] ? manifest['projects'] : manifest['projects'].select{|k,v| k == project } raise Thor::Error, "No projects found." if selected.empty? checkers = selected.map { |name, envs| Releasecop::Checker.new(name, envs) } for checker in checkers checker.check checker.puts_message(options[:verbose]) end unreleased = checkers.map(&:unreleased).inject(&:+) $stderr.puts "#{selected.size} project(s) checked. #{unreleased} environment(s) out-of-date." exit 1 if unreleased > 0 end
edit()
click to toggle source
# File lib/releasecop/cli.rb, line 10 def edit editor = ENV['EDITOR'] raise Thor::Error, "To open manifest, first set $EDITOR" if editor.nil? || editor.empty? command = Shellwords.split(editor) + [Releasecop::MANIFEST_PATH] initialize_manifest! unless File.exist?(Releasecop::MANIFEST_PATH) system(*command) end
version()
click to toggle source
# File lib/releasecop/cli.rb, line 41 def version puts Releasecop::VERSION end
Private Instance Methods
initialize_dir!()
click to toggle source
# File lib/releasecop/cli.rb, line 51 def initialize_dir! FileUtils.mkdir_p(Releasecop::CONFIG_DIR) end
initialize_manifest!()
click to toggle source
# File lib/releasecop/cli.rb, line 55 def initialize_manifest! initialize_dir! File.open(Releasecop::MANIFEST_PATH, 'w') { |f| f.write(Releasecop::DEFAULT_MANIFEST) } end
manifest()
click to toggle source
# File lib/releasecop/cli.rb, line 47 def manifest JSON.parse(File.read(Releasecop::MANIFEST_PATH)) end