Puppet Function: evaluate_version

Defined in:
lib/puppet/parser/functions/evaluate_version.rb
Function type:
Ruby 3.x API

Overview

evaluate_version()Any

Returns:

  • (Any)


4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/puppet/parser/functions/evaluate_version.rb', line 4

newfunction(:evaluate_version, :type => :rvalue) do |args|
  raise(Puppet::ParseError, 'evaluate_version(): too few arguments') if args.empty?

  version = args[0]
  return get_latest_version if version == 'latest'
  return get_lts_version if version == 'lts'

  if version =~ /^(?:(v)?)[0-9]+\.[0-9]+\.[0-9]+/
    # if the version is matched, but contains no `v` as prefix, it will
    # be added automatically
    return 'v' + version if version =~ /^[^v](.*)/

    # no v prefix needed
    return version
  end

  return get_version_from_branch version if version =~ /^(?:(v)?)[0-9]+\.([0-9]+|x)$/

  raise Puppet::ParseError, 'evaluate_version(): version must be `lts`, `latest` or look like `x.x.x`'
end