class OctocatalogDiff::Util::PuppetVersion
This is a utility class to determine the version of Puppet.
Public Class Methods
puppet_version(puppet, options = {})
click to toggle source
Determine the version of Puppet. @param puppet [String] Path to Puppet binary @param options [Hash] Options hash as defined in OctocatalogDiff::Catalog::Computed
@return [String] Puppet version number
# File lib/octocatalog-diff/util/puppetversion.rb, line 15 def self.puppet_version(puppet, options = {}) raise ArgumentError, 'Puppet binary was not supplied' if puppet.nil? raise Errno::ENOENT, "Puppet binary #{puppet} doesn't exist" unless File.file?(puppet) sr_opts = { default_script: 'puppet/puppet.sh', override_script_path: options[:override_script_path] } script = OctocatalogDiff::Util::ScriptRunner.new(sr_opts) sr_run_opts = { :logger => options[:logger], :working_dir => File.dirname(puppet), :pass_env_vars => options[:pass_env_vars], :argv => '--version', 'OCD_PUPPET_BINARY' => puppet } output = script.run(sr_run_opts) return Regexp.last_match(1) if output =~ /^([\d\.]+)\s*$/ # :nocov: raise "Unable to determine Puppet version: #{script.output}" # :nocov: end