Class: Commands::Prune

Inherits:
Object
  • Object
show all
Defined in:
lib/commands/prune.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/prune.rb', line 13

def options
  @options ||= {
  }
end

#register(opts, global_options) ⇒ Object



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

def register(opts, global_options)
  opts.banner = "Usage: prune"
  opts.description = "Removes branches in the local repository that no longer exist on origin."
end

#required_optionsObject

required options



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

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

#run(global_options) ⇒ Object



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

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 = Dir.pwd

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