# class Chef::Knife::EnvironmentCompare

### Public Instance Methods

run() click to toggle source

    # File lib/chef/knife/environment_compare.rb, line 43
    def run
      # Get the commandline environments or all if none are provided.
      environments = environment_list

      # Get a list of all cookbooks that have constraints and their environment.
      constraints = constraint_list(environments)

      # Get the total list of cookbooks that have constraints
      cookbooks = cookbook_list(constraints)

      # If we cannot find any cookbooks, we can stop here.
      if cookbooks.nil? || cookbooks.empty?
        ui.error "Cannot find any environment cookbook constraints"
        exit 1
      end

      # Get all cookbooks so we can compare them all
      cookbooks = rest.get_rest("/cookbooks?num_versions=1") if config[:all]

      # display matrix view of in the requested format.
      if config[:format] == 'summary'
        matrix = matrix_output(cookbooks, constraints)
        ui.output(matrix)
      else
        ui.output(constraints)
      end
    end