module Hiera::Util

Public Instance Methods

common_appdata() click to toggle source
# File lib/hiera/util.rb, line 47
def common_appdata
  Dir::COMMON_APPDATA
end
config_dir() click to toggle source
# File lib/hiera/util.rb, line 27
def config_dir
  if microsoft_windows?
     File.join(common_appdata, 'PuppetLabs', 'code')
  else
    '/etc/puppetlabs/code'
  end
end
file_alt_separator() click to toggle source
# File lib/hiera/util.rb, line 43
def file_alt_separator
  File::ALT_SEPARATOR
end
microsoft_windows?() click to toggle source
# File lib/hiera/util.rb, line 15
def microsoft_windows?
  return false unless file_alt_separator

  begin
    require 'win32/dir'
    true
  rescue LoadError => err
    warn "Cannot run on Microsoft Windows without the win32-dir gem: #{err}"
    false
  end
end
posix?() click to toggle source
# File lib/hiera/util.rb, line 10
def posix?
  require 'etc'
  Etc.getpwuid(0) != nil
end
split_key(key) { |'Syntax error'| ... } click to toggle source
# File lib/hiera/util.rb, line 51
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
var_dir() click to toggle source
# File lib/hiera/util.rb, line 35
def var_dir
  if microsoft_windows?
    File.join(common_appdata, 'PuppetLabs', 'code', 'environments' , '%{environment}' , 'hieradata')
  else
    '/etc/puppetlabs/code/environments/%{environment}/hieradata'
  end
end