6
this_dir = File.dirname(__FILE__)
7
require this_dir + '/mackie.rb'
8
require this_dir + '/controls.rb'
10
read_opts = GetoptLong.new(
11
[ "--headers", '-e', GetoptLong::NO_ARGUMENT ],
13
[ "--version","-v", GetoptLong::NO_ARGUMENT ],
14
[ "--help", "-h", "-?", GetoptLong::NO_ARGUMENT ]
17
# process the parsed options
18
read_opts.each do |opt, arg|
21
$generate_headers = true
23
$generate_headers = false
28
File.open( this_dir + "/surface-cc-template.erb", "r" ) { |f| cc_template = f.read }
31
File.open( this_dir + "/surface-h-template.erb", "r" ) { |f| h_template = f.read }
33
# needs to be defined outside the loop otherwise ERB can't find it
38
Dir.glob "#{this_dir}/*csv"
43
files.each do |csv_file|
44
csv_file =~ /(\w+)-controls.csv/
45
sf = Surface.new( $1.capitalize )
48
File.open( csv_file, "r") { |f| control_data = f.read }
53
erb = ERB.new( cc_template , 0, "%<>-", "@result" )
55
File.open( "#{sf.name.downcase}_surface_generated.cc", "w" ) { |f| f.write @result }
58
erb = ERB.new( h_template , 0, "%<>-", "@result" )
60
File.open( "#{sf.name.downcase}_surface.h", "w" ) { |f| f.write @result }