geo.erb 841 B

123456789101112131415161718192021222324252627282930313233
  1. # MANAGED BY PUPPET
  2. <%
  3. # sorting ip addresses in ascending order is more efficient for nginx - so we need
  4. # to convert them to numbers first via IPAddr
  5. require 'ipaddr'
  6. -%>
  7. geo <%= @address ? "#{@address} " : '' %>$<%= @name %> {
  8. <% if @ranges -%>
  9. ranges;
  10. <% end -%>
  11. <% if @default -%>
  12. default <%= @default %>;
  13. <% end -%>
  14. <% if @delete -%>
  15. delete <%= @delete %>;
  16. <% end -%>
  17. <% if @proxies -%>
  18. <%- if @proxy_recursive -%>
  19. proxy_recursive;
  20. <%- end -%>
  21. <%- [@proxies].flatten.each do |proxy| -%>
  22. proxy <%= proxy %>;
  23. <%- end -%>
  24. <% end -%>
  25. <% if @networks -%>
  26. <%- field_width = @networks.inject(0) { |l,(k,v)| k.size > l ? k.size : l } -%>
  27. <%- @networks.sort_by{|k,v| IPAddr.new(k.split('-').first).to_i }.each do |key,value| -%>
  28. <%= sprintf("%-*s", field_width, key) %> <%= value %>;
  29. <%- end -%>
  30. <% end -%>
  31. }