Sha256: e2b81316d7c49836d8020c54f0264e74ce6ecb37ad1e22cdc6fdcab137a70ecd

Contents?: true

Size: 1.84 KB

Versions: 5

Compression:

Stored size: 1.84 KB

Contents

module Berkshelf
  module Vagrant
    # @author Jamie Winsor <jamie@vialstudios.com>
    #
    # A module of common helper functions that can be mixed into Berkshelf::Vagrant actions
    module EnvHelpers
      # A file to persist vagrant-berkshelf specific information in between
      # Vagrant runs.
      #
      # @return [String]
      def cache_file(env)
        File.join('.vagrant', 'machines', env[:machine].name.to_s, 'berkshelf')
      end

      # Filter all of the provisioners of the given vagrant environment with the given name
      #
      # @param [Symbol] name
      #   name of provisioner to filter
      # @param [Vagrant::Environment, Hash] env
      #   environment to inspect
      #
      # @return [Array]
      def provisioners(name, env)
        env[:machine].config.vm.provisioners.select { |prov| prov.name == name }
      end

      # Determine if the given vagrant environment contains a chef_solo provisioner
      #
      # @param [Vagrant::Environment] env
      #
      # @return [Boolean]
      def chef_solo?(env)
        provisioners(:chef_solo, env).any?
      end

      # Determine if the given vagrant environment contains a chef_client provisioner
      #
      # @param [Vagrant::Environment] env
      #
      # @return [Boolean]
      def chef_client?(env)
        provisioners(:chef_client, env).any?
      end

      # Determine if the Berkshelf plugin should be run for the given environment
      #
      # @param [Vagrant::Environment] env
      #
      # @return [Boolean]
      def berkshelf_enabled?(env)
        env[:global_config].berkshelf.enabled
      end

      # Determine if --no-provision was specified
      #
      # @param [Vagrant::Environment] env
      #
      # @return [Boolean]
      def provision_disabled?(env)
        env.has_key?(:provision_enabled) && !env[:provision_enabled]
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
vagrant-berkshelf-1.3.7 lib/berkshelf/vagrant/env_helpers.rb
vagrant-berkshelf-1.3.6 lib/berkshelf/vagrant/env_helpers.rb
vagrant-berkshelf-1.3.5 lib/berkshelf/vagrant/env_helpers.rb
vagrant-berkshelf-1.3.4 lib/berkshelf/vagrant/env_helpers.rb
vagrant-berkshelf-1.3.3 lib/berkshelf/vagrant/env_helpers.rb