Sha256: 214bafe167cd16a038c934f04f220327cd7bc732954909dffb729d42021c25be

Contents?: true

Size: 1.91 KB

Versions: 6

Compression:

Stored size: 1.91 KB

Contents

require "autoproj"
require "autoproj/cli/base"
module Autoproj
    module CLI
        class Manifest < Base
            def validate_options(args, options)
                [args, options]
            end

            def run(name, options = Hash.new)
                ws.load_config
                if name.empty?
                    Autoproj.message "current manifest is #{ws.manifest_file_path}"
                elsif name.size == 1
                    name = name.first
                    if File.file?(full_path = File.expand_path(name))
                        if File.dirname(full_path) != ws.config_dir
                            raise CLIInvalidArguments, "#{full_path} is not part of #{ws.config_dir}"
                        end
                    else
                        full_path = File.join(ws.config_dir, name)
                    end

                    unless File.file?(full_path)
                        alternative_full_path = File.join(ws.config_dir, "manifest.#{name}")
                        unless File.file?(alternative_full_path)
                            raise CLIInvalidArguments, "neither #{full_path} nor #{alternative_full_path} exist"
                        end

                        full_path = alternative_full_path
                    end
                    begin
                        Autoproj::Manifest.new(ws).load(full_path)
                    rescue Exception
                        Autoproj.error "failed to load #{full_path}"
                        raise
                    end
                    ws.config.set "manifest_name", File.basename(full_path)
                    ws.save_config
                    Autoproj.message "set manifest to #{full_path}"
                else
                    raise CLIInvalidArguments, "expected zero or one argument, but got #{name.size}"
                end
            end

            def notify_env_sh_updated
            end
        end
    end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
autoproj-2.17.0 lib/autoproj/cli/manifest.rb
autoproj-2.16.0 lib/autoproj/cli/manifest.rb
autoproj-2.15.3 lib/autoproj/cli/manifest.rb
autoproj-2.15.2 lib/autoproj/cli/manifest.rb
autoproj-2.15.1 lib/autoproj/cli/manifest.rb
autoproj-2.15.0 lib/autoproj/cli/manifest.rb