Sha256: a391ecf61c5a815d923c2b75ec1d39af22772b9393d63df86901be94b52d71a9

Contents?: true

Size: 1.42 KB

Versions: 59

Compression:

Stored size: 1.42 KB

Contents

class Hiera

  # Matches a key that is quoted using a matching pair of either single or double quotes.
  QUOTED_KEY = /^(?:"([^"]+)"|'([^']+)')$/
  QUOTES = /[",]/

  module Util
    module_function

    def posix?
      require 'etc'
      Etc.getpwuid(0) != nil
    end

    def microsoft_windows?
      !!file_alt_separator
    end

    def config_dir
      if microsoft_windows?
         File.join(common_appdata, 'PuppetLabs', 'puppet', 'etc')
      else
        '/etc/puppetlabs/puppet'
      end
    end

    def code_dir
      if microsoft_windows?
        File.join(common_appdata, 'PuppetLabs', 'code')
      else
        '/etc/puppetlabs/code'
      end
    end

    def var_dir
      File.join(code_dir, 'environments' , '%{environment}' , 'hieradata')
    end

    def file_alt_separator
      File::ALT_SEPARATOR
    end

    def common_appdata
      @common_appdata ||= Hiera::Util::Win32.get_common_appdata()
    end

    def split_key(key)
      segments = key.split(/(?:"([^"]+)"|'([^']+)'|([^'".]+))/)
      if segments.empty?
        # Only happens if the original key was an empty string
        ''
      elsif segments.shift == ''
        count = segments.size
        raise yield('Syntax error') unless count > 0

        segments.keep_if { |seg| seg != '.' }
        raise yield('Syntax error') unless segments.size * 2 == count + 1
        segments
      else
        raise yield('Syntax error')
      end
    end
  end
end

Version data entries

59 entries across 59 versions & 2 rubygems

Version Path
hiera-3.12.0 lib/hiera/util.rb
hiera-3.11.0 lib/hiera/util.rb
hiera-3.10.0 lib/hiera/util.rb
hiera-3.9.0 lib/hiera/util.rb
hiera-3.8.0 lib/hiera/util.rb
hiera-3.7.0 lib/hiera/util.rb
hiera-3.6.0 lib/hiera/util.rb
hiera-3.4.6 lib/hiera/util.rb
hiera-3.5.0 lib/hiera/util.rb
bolt-0.24.0 vendored/hiera/lib/hiera/util.rb
bolt-0.23.0 vendored/hiera/lib/hiera/util.rb
hiera-3.4.5 lib/hiera/util.rb
bolt-0.22.0 vendored/hiera/lib/hiera/util.rb
bolt-0.21.8 vendored/hiera/lib/hiera/util.rb
hiera-3.4.4 lib/hiera/util.rb
bolt-0.21.7 vendored/hiera/lib/hiera/util.rb
bolt-0.21.6 vendored/hiera/lib/hiera/util.rb
bolt-0.21.5 vendored/hiera/lib/hiera/util.rb
bolt-0.21.4 vendored/hiera/lib/hiera/util.rb
bolt-0.21.3 vendored/hiera/lib/hiera/util.rb