Sha256: 8143f14ca9a48e509924124d66633bd0528b6290b608fd933094aa00dd8c6dbc

Contents?: true

Size: 1.16 KB

Versions: 2

Compression:

Stored size: 1.16 KB

Contents

require 'knife_cookbook_dependencies/dsl'

module KnifeCookbookDependencies
  class Cookbookfile
    class << self
      include DSL
      def read content
        # This will populate KnifeCookbookDependencies.shelf. TODO: consider making this
        # build and return the shelf rather than building the shelf as
        # a side effect.
        instance_eval(content)
      end

      def process_install
        # TODO: friendly error message when the file doesn't exist
        
        filename = KnifeCookbookDependencies::DEFAULT_FILENAME + ".lock"
        lockfile = false

        if File.exist?(filename)
          lockfile = true
        else
          filename = KnifeCookbookDependencies::DEFAULT_FILENAME unless File.exist?(filename)
        end

        begin
          read File.open(filename).read
        rescue Errno::ENOENT => e
          KnifeCookbookDependencies.ui.fatal ErrorMessages.missing_cookbookfile
          exit 100
        end
        KnifeCookbookDependencies.shelf.resolve_dependencies
        KnifeCookbookDependencies.shelf.populate_cookbooks_directory
        KnifeCookbookDependencies.shelf.write_lockfile unless lockfile
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
knife_cookbook_dependencies-0.0.3 lib/knife_cookbook_dependencies/cookbookfile.rb
knife_cookbook_dependencies-0.0.2 lib/knife_cookbook_dependencies/cookbookfile.rb