File tree Expand file tree Collapse file tree 1 file changed +14
-8
lines changed
lib/puppet/functions/stdlib Expand file tree Collapse file tree 1 file changed +14
-8
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
- begin
24
+ if File . exist? hocon_string
25
+ require 'hocon'
26
+ Hocon . load ( hocon_string )
27
+ else
28
+ require 'hocon/config_factory'
23
29
data = Hocon ::ConfigFactory . parse_string ( hocon_string )
24
30
data . resolve . root . unwrapped
25
- rescue Hocon ::ConfigError ::ConfigParseError => e
26
- Puppet . debug ( "Parsing hocon failed with error: #{ e . message } " )
27
- raise e if default == :no_default_provided
28
-
29
- default
30
31
end
32
+ rescue Hocon ::ConfigError ::ConfigParseError => e
33
+ Puppet . debug ( "Parsing hocon failed with error: #{ e . message } " )
34
+ raise e if default == :no_default_provided
35
+
36
+ default
31
37
end
32
38
end
You can’t perform that action at this time.
0 commit comments