Sha256: e2120b99182d2df4b0094c5fcbe817c5a37875c7a36fb8b60663fca8e396150f
Contents?: true
Size: 1.25 KB
Versions: 2
Compression:
Stored size: 1.25 KB
Contents
require_relative 'base' module VagrantPlugins module Berkshelf module Action class Check < Base BERKS_REQUIREMENT = "~> 3.2" def call(env) check_berks_bin!(env) berkshelf_version_check!(env) @app.call(env) end # Check that the Berkshelf `berks` bin is in the PATH. # @raise [BerkshelfNotFound] def check_berks_bin!(env) if berks_bin.nil? raise BerkshelfNotFound end end # Check that the installed version of Berkshelf is valid for this # version of Vagrant Berkshelf. # @raise [InvalidBerkshelfVersionError] def berkshelf_version_check!(env) result = berks("--version", "--format", "json") begin json = JSON.parse(result.stdout, symbolize_names: true) version = Gem::Version.new(json[:version]) unless Gem::Requirement.new(BERKS_REQUIREMENT).satisfied_by?(version) raise InvalidBerkshelfVersionError.new(berks_bin, BERKS_REQUIREMENT, version) end rescue JSON::ParserError raise InvalidBerkshelfVersionError.new(berks_bin, BERKS_REQUIREMENT, version) end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
vagrant-berkshelf-4.0.1 | lib/vagrant-berkshelf/action/check.rb |
vagrant-berkshelf-4.0.0 | lib/vagrant-berkshelf/action/check.rb |