File: haproxy_options_sorting.epp

package info (click to toggle)
puppet-module-puppetlabs-haproxy 8.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 816 kB
  • sloc: ruby: 3,979; sh: 14; makefile: 4
file content (30 lines) | stat: -rw-r--r-- 1,329 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<% if String(type($options, 'generalized')).index('Hash') == 0 and $option_order.empty { -%>
  <%- $sorted_options = sort($options.keys).map |$key| {[$key, $options[$key]] } -%>
  <%- $sorted_options.each |$values| { -%>
    <%- if String(type($values[1], 'generalized')).index('Array') == 0 { -%>
      <%- $values[1].filter |$value| { $value != undef }.each |$val| { -%>
  <%= $values[0] %> <%= $val %>
      <%- } -%>
    <%- } else { -%>
  <%= $values[0] %> <%= $values[1] %>
    <%- } -%>
  <%- } -%>
<% } elsif String(type($options, 'generalized')).index('Hash') == 0 and $option_order.empty == false { -%>
  <%- $sorted_options = sort($options.keys) |$a, $b| {
    case [$option_order[$a], $option_order[$b]] {
      [Undef, Undef]: { compare($a, $b) }
      [Undef, Numeric]: { compare(0, $option_order[$b]) }
      [Numeric, Undef]: { compare($option_order[$a], 0) }
      default: { compare($option_order[$a], $option_order[$b]) }
    }
  }.map |$key| {[$key, $options[$key]] } -%>
  <%- $sorted_options.each |$values| { -%>
    <%- if String(type($values[1], 'generalized')).index('Array') == 0 { -%>
      <%- $values[1].filter |$value| { $value != undef }.each |$val| { -%>
  <%= $values[0] %> <%= $val %>
      <%- } -%>
    <%- } else { -%>
  <%= $values[0] %> <%= $values[1] %>
    <%- } -%>
  <%- } -%>
<% } -%>