Class: Commands::Status

Inherits:
Object
  • Object
show all
Defined in:
lib/commands/status.rb

Instance Method Summary collapse

Instance Method Details

#optionsObject

holds the options that were passed you can set any initial defaults here



13
14
15
16
# File 'lib/commands/status.rb', line 13

def options
  @options ||= {
  }
end

#register(opts, global_options) ⇒ Object



24
25
26
27
28
# File 'lib/commands/status.rb', line 24

def register(opts, global_options)
  opts.banner = "Usage: status"
  opts.description = "Shows the git status of all repos in the config."

end

#required_optionsObject

required options



19
20
21
22
# File 'lib/commands/status.rb', line 19

def required_options
  @required_options ||= Set.new [
  ]
end

#run(global_options) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/commands/status.rb', line 30

def run(global_options)

  # see if we can open the config file - we append the .config suffix
  # the file is expected to be in JSON format

  # determine config_name by extracting parent of our directory
  info = EbmSharedLib.get_config_from_top_dir

  # Back up to version parent dir.  This directory contains the top level repos.
#      top_dir = File.expand_path("#{Dir.pwd}/..")
  top_dir = Dir.pwd

  repos = info[:repos]
  repos.each do |repo|
    repo_name = EbmSharedLib.get_repo_name(repo[:git_path])
    repo_path = "#{top_dir}/#{repo_name}"
    puts("\n#{repo_name} status:\n");
    cmd = "git status"
    if EbmSharedLib::CL.do_cmd_result(cmd, repo_path) != 0
      raise "Git status failed for #{repo_name}.  Make sure you run the command from within a top level repo directory."
    end
  end

end