class Builtins::Up

Public Class Methods

description() click to toggle source
# File lib/builtins/up.rb, line 13
def description
        "attempts to meet dependencies listed in ops.yml"
end

Public Instance Methods

run() click to toggle source
# File lib/builtins/up.rb, line 18
def run
        # TODO: return a success/failure status to the caller
        meet_dependencies
end

Private Instance Methods

dependency_handler() click to toggle source
# File lib/builtins/up.rb, line 25
def dependency_handler
        Helpers::DependencyHandler.new(deps_to_meet)
end
deps_to_meet() click to toggle source
# File lib/builtins/up.rb, line 53
def deps_to_meet
        return @config["dependencies"] if @args.empty?

        return @config["dependencies"].select { |dep, names| @args.include?(dep) }
end
meet_dependencies() click to toggle source
# File lib/builtins/up.rb, line 29
def meet_dependencies
        dependency_handler.dependencies.each do |dependency|
                # don't even output anything for dependencies that shouldn't be considered on this machine
                next unless dependency&.should_meet?

                Output.status("[#{dependency.type}] #{dependency.name}")

                meet_dependency(dependency)
        end
end
meet_dependency(dependency) click to toggle source
# File lib/builtins/up.rb, line 40
def meet_dependency(dependency)
        # TODO: make this simpler, and factor in `should_meet?` above, too
        dependency.meet if !dependency.met? || dependency.always_act?

        if dependency.success?
                Output.okay
        else
                Output.failed
                Output.error("Error meeting #{dependency.type} dependency '#{dependency.name}':")
                Output.out(dependency.output)
        end
end