3 open(OUTPUT, "> fsdata.c");
\r
6 open(FILES, "find . -type f |");
\r
8 while($file = <FILES>) {
\r
10 # Do not include files in CVS directories nor backup files.
\r
11 if($file =~ /(CVS|~)/) {
\r
17 open(HEADER, "> /tmp/header") || die $!;
\r
18 if($file =~ /404.html/) {
\r
19 print(HEADER "HTTP/1.0 404 File not found\r\n");
\r
21 print(HEADER "HTTP/1.0 200 OK\r\n");
\r
23 print(HEADER "Server: uIP/0.9 (http://dunkels.com/adam/uip/)\r\n");
\r
24 if($file =~ /\.html$/) {
\r
25 print(HEADER "Content-type: text/html\r\n");
\r
26 } elsif($file =~ /\.gif$/) {
\r
27 print(HEADER "Content-type: image/gif\r\n");
\r
28 } elsif($file =~ /\.png$/) {
\r
29 print(HEADER "Content-type: image/png\r\n");
\r
30 } elsif($file =~ /\.jpg$/) {
\r
31 print(HEADER "Content-type: image/jpeg\r\n");
\r
33 print(HEADER "Content-type: text/plain\r\n");
\r
35 print(HEADER "\r\n");
\r
38 unless($file =~ /\.plain$/ || $file =~ /cgi/) {
\r
39 system("cat /tmp/header $file > /tmp/file");
\r
41 system("cp $file /tmp/file");
\r
44 open(FILE, "/tmp/file");
\r
45 unlink("/tmp/file");
\r
46 unlink("/tmp/header");
\r
52 print(OUTPUT "static const char data".$fvar."[] = {\n");
\r
53 print(OUTPUT "\t/* $file */\n\t");
\r
54 for($j = 0; $j < length($file); $j++) {
\r
55 printf(OUTPUT "%#02x, ", unpack("C", substr($file, $j, 1)));
\r
57 printf(OUTPUT "0,\n");
\r
61 while(read(FILE, $data, 1)) {
\r
65 printf(OUTPUT "%#02x, ", unpack("C", $data));
\r
72 print(OUTPUT "};\n\n");
\r
74 push(@fvars, $fvar);
\r
75 push(@files, $file);
\r
78 for($i = 0; $i < @fvars; $i++) {
\r
85 $prevfile = "file" . $fvars[$i - 1];
\r
87 print(OUTPUT "const struct fsdata_file file".$fvar."[] = {{$prevfile, data$fvar, ");
\r
88 print(OUTPUT "data$fvar + ". (length($file) + 1) .", ");
\r
89 print(OUTPUT "sizeof(data$fvar) - ". (length($file) + 1) ."}};\n\n");
\r
92 print(OUTPUT "#define FS_ROOT file$fvars[$i - 1]\n\n");
\r
93 print(OUTPUT "#define FS_NUMFILES $i");
\r