https://github.com/wikimedia/operations-puppet
Raw File
Tip revision: d8ebb9cefcd013d193082b5af7ebd94452bc4939 authored by Andrew Otto on 17 May 2017, 09:32:27 UTC
Add kafka_version parameter, s/java_packaage/java_home/ in confluent::kafka::client
Tip revision: d8ebb9c
expanderb.rb
#!/usr/bin/env ruby
#
# This script let you expand an ERB template from the command line
# while optionally passing variables that will be expanded in the
# template.
#
# Joint copyright:
# Copyright 2012, Antoine "hashar" Musso
# Copyright 2012, Wikimedia Foundation

# Command line option parsing library
require 'optparse'
require 'erb'
require 'ostruct'

# Filename of the ERB template we are going to expand
$filename = nil

# Parsing the options
optparse = OptionParser.new do |opts|

  opts.banner = "Usage: expanderb.rb -f FILENAME [key=val [key2=val]]"

  opts.on( '-f', '--filename FILENAME', 'ERB filename to expand') do |f|
    $filename = f
  end

  opts.on_tail( '-h', '--help', 'Show this message' ) do
    puts opts
    exit
  end
end

# Parse command line options.
begin
  # -f is mandatory
  optparse.parse!
  if $filename.nil?
     puts "You must specify an ERB filename."
    puts optparse
    exit
  end
rescue
  # Catch all
  puts $!.to_s
  puts optparse
  exit
end

template_values = {}
ARGV.each do |val|
  key, value = val.split( '=' )
  template_values[key] = value
end
p template_values



def render_erb(template, locals)
  # Make sure we can render templates with -%> closing tags.
  # Note that this does not actually remove newlines after -%>, it just
  # avoids a syntax error.
  ERB.new(template, nil, '%<>-').result(OpenStruct.new(locals).instance_eval { binding })
end

# Parse template
begin
  puts render_erb(File.read($filename), template_values)
rescue
  p "Something went wrong, usually because you are missing a variable."
  p $!.to_s
end
back to top