#!/usr/bin/perl -w
# bin2js.pl: Convert a directory of binary files to a Javascript hash of strings
# Copyright (C) 2008 Matthew Westcott
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
# Contact details:
# Matthew Westcott, 14 Daisy Hill Drive, Adlington, Chorley, Lancs PR6 9NE UNITED KINGDOM
$dir = $ARGV[0];
print "var $dir = {};\n";
opendir(DIR, $dir) || die "can't opendir $dir: $!";
while ($file = readdir(DIR)) {
next if $file =~ /^\./;
print "${dir}['$file'] = '";
open(FILE, "<$dir/$file") || die "can't open $file: $!";
while (read(FILE, $str, 512)) {
$str =~ s/([0-9\x00-\x1f\x7f-\xff\\\'\"])/ sprintf("\\%o", ord($1)) /egs;
#$str =~ s/([^A-Za-z])/ sprintf("\\%o", ord($1)) /egs;
print $str;
}
close(FILE);
print "';\n"
};
# STDOUT << "\\#{b.to_s(8)}"
closedir(DIR);