#!/usr/bin/env ruby

unless filename = ARGV.shift
  puts "usage: bin2c filename"
end

basename = File.basename(filename)
basename = /^[^.]*/.match(basename)[0]

open(basename + ".c", "w") do |output|
  output.printf("#include \"%s.h\"\n", basename)
  output.printf("int %s_size    = %s;\n", basename, File.size(filename))
  output.printf("char %s_data[] = {\n", basename)
  open(filename) do |input|
    i = 0
    input.each_byte do |c|
      if i > 0
	output.print(",")
	output.print("\n") if i % 15 == 0
      end
      output.printf("0x%02x", c)
      i += 1
    end
    output.print(" };\n")
  end
end
