]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/uip/makefsdata
f5f75f1742ece632bc73ed3e7de9f14d02a96259
[freertos] / FreeRTOS / Demo / uIP_Demo_Rowley_ARM7 / uip / makefsdata
1 #!/usr/bin/perl\r
2 \r
3 open(OUTPUT, "> fsdata.c");\r
4 \r
5 chdir("fs");\r
6 open(FILES, "find . -type f |");\r
7 \r
8 while($file = <FILES>) {\r
9 \r
10     # Do not include files in CVS directories nor backup files.\r
11     if($file =~ /(CVS|~)/) {\r
12         next;\r
13     }\r
14     \r
15     chop($file);\r
16     \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
20     } else {\r
21       print(HEADER "HTTP/1.0 200 OK\r\n");\r
22     }\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
32     } else {\r
33         print(HEADER "Content-type: text/plain\r\n");\r
34     }\r
35     print(HEADER "\r\n");\r
36     close(HEADER);\r
37 \r
38     unless($file =~ /\.plain$/ || $file =~ /cgi/) {\r
39         system("cat /tmp/header $file > /tmp/file");\r
40     } else {\r
41         system("cp $file /tmp/file");\r
42     }\r
43     \r
44     open(FILE, "/tmp/file");\r
45     unlink("/tmp/file");\r
46     unlink("/tmp/header");\r
47 \r
48     $file =~ s/\.//;\r
49     $fvar = $file;\r
50     $fvar =~ s-/-_-g;\r
51     $fvar =~ s-\.-_-g;\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
56     }\r
57     printf(OUTPUT "0,\n");\r
58     \r
59     \r
60     $i = 0;        \r
61     while(read(FILE, $data, 1)) {\r
62         if($i == 0) {\r
63             print(OUTPUT "\t");\r
64         }\r
65         printf(OUTPUT "%#02x, ", unpack("C", $data));\r
66         $i++;\r
67         if($i == 10) {\r
68             print(OUTPUT "\n");\r
69             $i = 0;\r
70         }\r
71     }\r
72     print(OUTPUT "};\n\n");\r
73     close(FILE);\r
74     push(@fvars, $fvar);\r
75     push(@files, $file);\r
76 }\r
77 \r
78 for($i = 0; $i < @fvars; $i++) {\r
79     $file = $files[$i];\r
80     $fvar = $fvars[$i];\r
81 \r
82     if($i == 0) {\r
83         $prevfile = "NULL";\r
84     } else {\r
85         $prevfile = "file" . $fvars[$i - 1];\r
86     }\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
90 }\r
91 \r
92 print(OUTPUT "#define FS_ROOT file$fvars[$i - 1]\n\n");\r
93 print(OUTPUT "#define FS_NUMFILES $i");\r