]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/makefsdata
a953cdd763532bdf0bb7226f8b434f2bbb85e84a
[freertos] / FreeRTOS / Demo / RX600_RX63N-RSK_Renesas / RTOSDemo / webserver / makefsdata
1 #!/usr/bin/perl\r
2 \r
3 open(OUTPUT, "> httpd-fsdata.c");\r
4 \r
5 chdir("httpd-fs");\r
6 \r
7 opendir(DIR, ".");\r
8 @files =  grep { !/^\./ && !/(CVS|~)/ } readdir(DIR);\r
9 closedir(DIR);\r
10 \r
11 foreach $file (@files) {  \r
12    \r
13     if(-d $file && $file !~ /^\./) {\r
14         print "Processing directory $file\n";\r
15         opendir(DIR, $file);\r
16         @newfiles =  grep { !/^\./ && !/(CVS|~)/ } readdir(DIR);\r
17         closedir(DIR);\r
18         printf "Adding files @newfiles\n";\r
19         @files = (@files, map { $_ = "$file/$_" } @newfiles);\r
20         next;\r
21     }\r
22 }\r
23 \r
24 foreach $file (@files) {\r
25     if(-f $file) {\r
26         \r
27         print "Adding file $file\n";\r
28         \r
29         open(FILE, $file) || die "Could not open file $file\n";\r
30         binmode FILE;\r
31 \r
32         $file =~ s-^-/-;\r
33         $fvar = $file;\r
34         $fvar =~ s-/-_-g;\r
35         $fvar =~ s-\.-_-g;\r
36         # for AVR, add PROGMEM here\r
37         print(OUTPUT "static const char data".$fvar."[] = {\n");\r
38         print(OUTPUT "\t/* $file */\n\t");\r
39         for($j = 0; $j < length($file); $j++) {\r
40             printf(OUTPUT "%#02x, ", unpack("C", substr($file, $j, 1)));\r
41         }\r
42         printf(OUTPUT "0,\n");\r
43         \r
44         \r
45         $i = 0;        \r
46         while(read(FILE, $data, 1)) {\r
47             if($i == 0) {\r
48                 print(OUTPUT "\t");\r
49             }\r
50             printf(OUTPUT "%#02x, ", unpack("C", $data));\r
51             $i++;\r
52             if($i == 10) {\r
53                 print(OUTPUT "\n");\r
54                 $i = 0;\r
55             }\r
56         }\r
57         print(OUTPUT "0};\n\n");\r
58         close(FILE);\r
59         push(@fvars, $fvar);\r
60         push(@pfiles, $file);\r
61     }\r
62 }\r
63 \r
64 for($i = 0; $i < @fvars; $i++) {\r
65     $file = $pfiles[$i];\r
66     $fvar = $fvars[$i];\r
67 \r
68     if($i == 0) {\r
69         $prevfile = "NULL";\r
70     } else {\r
71         $prevfile = "file" . $fvars[$i - 1];\r
72     }\r
73     print(OUTPUT "const struct httpd_fsdata_file file".$fvar."[] = {{$prevfile, data$fvar, ");\r
74     print(OUTPUT "data$fvar + ". (length($file) + 1) .", ");\r
75     print(OUTPUT "sizeof(data$fvar) - ". (length($file) + 1) ."}};\n\n");\r
76 }\r
77 \r
78 print(OUTPUT "#define HTTPD_FS_ROOT file$fvars[$i - 1]\n\n");\r
79 print(OUTPUT "#define HTTPD_FS_NUMFILES $i\n");\r