class ElectricMonk::CLI

Attributes

config[R]
reporter[R]

Public Class Methods

new(config_path:, reporter: Reporter.instance) click to toggle source
# File lib/electric_monk.rb, line 11
def initialize(config_path:, reporter: Reporter.instance)
  @reporter = reporter
  @config = Config.new(config_path)
end

Public Instance Methods

run() click to toggle source
# File lib/electric_monk.rb, line 16
def run
  config.projects.each do |project|
    reporter.start(project.name)

    unless project.exists?
      reporter.update_progress("Cloning #{project.name}")
      project.clone_project
    end

    if project.valid?
      reporter.fail(project.failures)
    else
      reporter.succeed(project.name)
    end
  end

  reporter.start("Untracked projects")
  if untracked_projects.empty?
    reporter.succeed("No untracked projects")
  else
    reporter.fail "#{untracked_projects.size} untracked projects: #{untracked_projects.join(', ')}"
  end

  reporter.report
end
untracked_projects() click to toggle source
# File lib/electric_monk.rb, line 42
def untracked_projects
  @untracked_projects ||= Dir.entries(config.root) - config.projects.map(&:name) - [".", ".."]
end