home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ruby164.zip / rbemx164.zip / ruby / share / doc / eruby-0.9.4 / bin2c next >
Text File  |  2000-03-28  |  606b  |  27 lines

  1. #!/usr/bin/env ruby
  2.  
  3. unless filename = ARGV.shift
  4.   puts "usage: bin2c filename"
  5. end
  6.  
  7. basename = File.basename(filename)
  8. basename = /^[^.]*/.match(basename)[0]
  9.  
  10. open(basename + ".c", "w") do |output|
  11.   output.printf("#include \"%s.h\"\n", basename)
  12.   output.printf("int %s_size    = %s;\n", basename, File.size(filename))
  13.   output.printf("char %s_data[] = {\n", basename)
  14.   open(filename) do |input|
  15.     i = 0
  16.     input.each_byte do |c|
  17.       if i > 0
  18.     output.print(",")
  19.     output.print("\n") if i % 15 == 0
  20.       end
  21.       output.printf("0x%02x", c)
  22.       i += 1
  23.     end
  24.     output.print(" };\n")
  25.   end
  26. end
  27.