class Autoproj::CLI::Update::AskUpdateFilter

Public Class Methods

new(prompt, parallel: 1, only_local: false) click to toggle source
# File lib/autoproj/cli/update.rb, line 201
def initialize(prompt, parallel: 1, only_local: false)
    @prompt = prompt
    @only_local = only_local
    @executor = Concurrent::FixedThreadPool.new(parallel, max_length: 0)

    @parallel = parallel
    @futures = {}
    @lookahead_queue = []
end

Public Instance Methods

call(pkg) click to toggle source
# File lib/autoproj/cli/update.rb, line 211
def call(pkg)
    unless (status = @futures.delete(pkg).value)
        raise v.reason
    end

    clean = !status.unexpected &&
            (status.sync || (status.local && !status.remote))
    if clean
        msg = Autobuild.color("already up-to-date", :green)
        pkg.autobuild.message "#{msg} %s"
        return false
    end

    Autobuild.progress_display_synchronize do
        status.msg.each { |m| puts m }
        @prompt.yes?("Update #{pkg.name} ?")
    end
end
lookahead(pkg) click to toggle source
# File lib/autoproj/cli/update.rb, line 230
def lookahead(pkg)
    @futures[pkg] = Concurrent::Promises.future_on(@executor) do
        Status.status_of_package(
            pkg, snapshot: false, only_local: @only_local
        )
    end
end