class Autoproj::CLI::MainPlugin

Public Instance Methods

install(name) click to toggle source
# File lib/autoproj/cli/main_plugin.rb, line 37
def install(name)
    require "autoproj"

    gem_options = Hash.new
    if options[:git] && options[:path]
        raise CLIInvalidArguments, "you can provide only one of --git or --path"
    elsif options[:git]
        gem_options[:git] = options[:git]
        gem_options[:branch] = options[:branch]
    elsif options[:path]
        gem_options[:path] = options[:path]
    end

    plugins = read_plugin_list
    updated_plugins = plugins.merge(name => [options[:version], gem_options])
    write_plugin_list(updated_plugins)
    begin
        install_plugins
    rescue Exception
        write_plugin_list(plugins)
        install_plugins
        raise
    end
end
install_plugins() click to toggle source
# File lib/autoproj/cli/main_plugin.rb, line 11
def install_plugins
    ws.load_config
    ws.update_autoproj(restart_on_update: false)
end
list() click to toggle source
# File lib/autoproj/cli/main_plugin.rb, line 63
def list
    require "autoproj"
    read_plugin_list.sort_by(&:first).each do |name, (version, options)|
        args = [version, *options.map { |k, v| "#{k}: \"#{v}\"" }]
        puts "#{name}: #{args.join(', ')}"
    end
end
read_plugin_list() click to toggle source
# File lib/autoproj/cli/main_plugin.rb, line 16
def read_plugin_list
    ws.load_config
    ws.config.get("plugins", Hash.new)
end
remove(name) click to toggle source
# File lib/autoproj/cli/main_plugin.rb, line 72
def remove(name)
    require "autoproj"
    plugins = read_plugin_list
    updated_plugins = plugins.dup
    updated_plugins.delete(name)
    write_plugin_list(updated_plugins)
    install_plugins
end
write_plugin_list(plugins) click to toggle source
# File lib/autoproj/cli/main_plugin.rb, line 21
def write_plugin_list(plugins)
    ws.load_config
    ws.config.set("plugins", plugins)
    ws.save_config
end
ws() click to toggle source
# File lib/autoproj/cli/main_plugin.rb, line 7
def ws
    @ws ||= Workspace.default
end