File tree 1 file changed +12
-4
lines changed
lib/puppet/functions/stdlib
1 file changed +12
-4
lines changed Original file line number Diff line number Diff line change 4
4
# This function accepts HOCON as a string and converts it into the correct
5
5
# Puppet structure
6
6
#
7
+ # @param hocon_string can be an actual string of data or a path to a Hocon config file
8
+ #
9
+ # @param default content that will be returned in case the string isn't parseable
10
+ #
7
11
# @example How to parse hocon
8
12
# $data = stdlib::parsehocon("{any valid hocon: string}")
9
13
#
17
21
end
18
22
19
23
def parsehocon ( hocon_string , default = :no_default_provided )
20
- require 'hocon/config_factory'
21
-
22
24
begin
23
- data = Hocon ::ConfigFactory . parse_string ( hocon_string )
24
- data . resolve . root . unwrapped
25
+ if File . exist? hocon_string
26
+ require 'hocon'
27
+ Hocon . load ( hocon_string )
28
+ else
29
+ require 'hocon/config_factory'
30
+ data = Hocon ::ConfigFactory . parse_string ( hocon_string )
31
+ data . resolve . root . unwrapped
32
+ end
25
33
rescue Hocon ::ConfigError ::ConfigParseError => e
26
34
Puppet . debug ( "Parsing hocon failed with error: #{ e . message } " )
27
35
raise e if default == :no_default_provided
You can’t perform that action at this time.
0 commit comments