From 252adda53c507abbbe5d8e9f125fc174e84a2c02 Mon Sep 17 00:00:00 2001 From: Lexi Winter Date: Sat, 7 Jun 2025 11:19:02 +0100 Subject: support generating the Unbound config --- bin/process | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100755 bin/process (limited to 'bin/process') diff --git a/bin/process b/bin/process new file mode 100755 index 0000000..e95dbb9 --- /dev/null +++ b/bin/process @@ -0,0 +1,53 @@ +#! /usr/bin/env ruby + +require 'erb' +require 'optparse' + +# Hash to store our -D variables +template_vars = {} + +# Parse command line options +OptionParser.new do |opts| + opts.banner = "Usage: #{$0} [options] " + + opts.on('-DVAR=VALUE', 'Define template variable') do |definition| + var, value = definition.split('=', 2) + if var && value + template_vars[var] = value + else + puts "Invalid -D format: #{definition}" + exit 1 + end + end + + opts.on('-h', '--help', 'Show this help') do + puts opts + exit + end +end.parse! + +# Check we have the right number of remaining args +if ARGV.length != 2 + puts "Usage: #{$0} [options] " + puts "Use -h for help" + exit 1 +end + +input_file = ARGV[0] +output_file = ARGV[1] + +# Read the template +template = File.read(input_file) + +# Create a binding with our variables +binding_context = binding +template_vars.each do |var, value| + binding_context.local_variable_set(var.to_sym, value) +end + +# Process with ERB +erb = ERB.new(template) +result = erb.result(binding_context) + +# Write output +File.write(output_file, result) -- cgit v1.2.3