Sha256: e5c65b0ac48233f14e059f466a41803a3c7ce9ddb41e5e721b9a287595212130

Contents?: true

Size: 793 Bytes

Versions: 1

Compression:

Stored size: 793 Bytes

Contents

require 'knife-solo/knife_solo_error'

module KnifeSolo
  module KitchenCommand
    class OutOfKitchenError < KnifeSoloError
      def message
        "This command must be run inside a Chef solo kitchen."
      end
    end

    def self.required_directories
      %w(nodes roles cookbooks data_bags site-cookbooks)
    end

    def self.required_files
      %w(solo.rb)
    end

    def self.all_requirements
      required_files + required_directories
    end

    def run
      raise OutOfKitchenError.new unless required_files_present?
    end

    def required_files_present?
      KitchenCommand.all_requirements.inject(true) do |m, f|
        check = File.exists?(f)
        Chef::Log.warn "#{f} is a required file/directory" unless check
        m && check
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
knife-solo-0.0.12 lib/knife-solo/kitchen_command.rb