Fork of Smoothie to port to mbed non-LPC targets.
Fork of Smoothie by
libs/Network/uip/webserver/makefsdata.pl@2:1df0b61d3b5a, 2014-02-28 (annotated)
- Committer:
- Michael J. Spencer
- Date:
- Fri Feb 28 18:52:52 2014 -0800
- Revision:
- 2:1df0b61d3b5a
Update to latest Smoothie.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Michael J. Spencer |
2:1df0b61d3b5a | 1 | #!/usr/bin/perl |
Michael J. Spencer |
2:1df0b61d3b5a | 2 | |
Michael J. Spencer |
2:1df0b61d3b5a | 3 | open(OUTPUT, "> httpd-fsdata2.h"); |
Michael J. Spencer |
2:1df0b61d3b5a | 4 | |
Michael J. Spencer |
2:1df0b61d3b5a | 5 | chdir("httpd-fs"); |
Michael J. Spencer |
2:1df0b61d3b5a | 6 | |
Michael J. Spencer |
2:1df0b61d3b5a | 7 | opendir(DIR, "."); |
Michael J. Spencer |
2:1df0b61d3b5a | 8 | @files = grep { !/^\./ && !/(CVS|~)/ } readdir(DIR); |
Michael J. Spencer |
2:1df0b61d3b5a | 9 | closedir(DIR); |
Michael J. Spencer |
2:1df0b61d3b5a | 10 | |
Michael J. Spencer |
2:1df0b61d3b5a | 11 | foreach $file (@files) { |
Michael J. Spencer |
2:1df0b61d3b5a | 12 | |
Michael J. Spencer |
2:1df0b61d3b5a | 13 | if(-d $file && $file !~ /^\./) { |
Michael J. Spencer |
2:1df0b61d3b5a | 14 | print "Processing directory $file\n"; |
Michael J. Spencer |
2:1df0b61d3b5a | 15 | opendir(DIR, $file); |
Michael J. Spencer |
2:1df0b61d3b5a | 16 | @newfiles = grep { !/^\./ && !/(CVS|~)/ } readdir(DIR); |
Michael J. Spencer |
2:1df0b61d3b5a | 17 | closedir(DIR); |
Michael J. Spencer |
2:1df0b61d3b5a | 18 | printf "Adding files @newfiles\n"; |
Michael J. Spencer |
2:1df0b61d3b5a | 19 | @files = (@files, map { $_ = "$file/$_" } @newfiles); |
Michael J. Spencer |
2:1df0b61d3b5a | 20 | next; |
Michael J. Spencer |
2:1df0b61d3b5a | 21 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 22 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 23 | |
Michael J. Spencer |
2:1df0b61d3b5a | 24 | foreach $file (@files) { |
Michael J. Spencer |
2:1df0b61d3b5a | 25 | if(-f $file) { |
Michael J. Spencer |
2:1df0b61d3b5a | 26 | |
Michael J. Spencer |
2:1df0b61d3b5a | 27 | print "Adding file $file\n"; |
Michael J. Spencer |
2:1df0b61d3b5a | 28 | |
Michael J. Spencer |
2:1df0b61d3b5a | 29 | open(FILE, $file) || die "Could not open file $file\n"; |
Michael J. Spencer |
2:1df0b61d3b5a | 30 | |
Michael J. Spencer |
2:1df0b61d3b5a | 31 | $file =~ s-^-/-; |
Michael J. Spencer |
2:1df0b61d3b5a | 32 | $fvar = $file; |
Michael J. Spencer |
2:1df0b61d3b5a | 33 | $fvar =~ s-/-_-g; |
Michael J. Spencer |
2:1df0b61d3b5a | 34 | $fvar =~ s-\.-_-g; |
Michael J. Spencer |
2:1df0b61d3b5a | 35 | # for AVR, add PROGMEM here |
Michael J. Spencer |
2:1df0b61d3b5a | 36 | print(OUTPUT "static const unsigned char data".$fvar."[] = {\n"); |
Michael J. Spencer |
2:1df0b61d3b5a | 37 | print(OUTPUT "\t/* $file */\n\t"); |
Michael J. Spencer |
2:1df0b61d3b5a | 38 | for($j = 0; $j < length($file); $j++) { |
Michael J. Spencer |
2:1df0b61d3b5a | 39 | printf(OUTPUT "%#02x, ", unpack("C", substr($file, $j, 1))); |
Michael J. Spencer |
2:1df0b61d3b5a | 40 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 41 | printf(OUTPUT "0,\n"); |
Michael J. Spencer |
2:1df0b61d3b5a | 42 | |
Michael J. Spencer |
2:1df0b61d3b5a | 43 | |
Michael J. Spencer |
2:1df0b61d3b5a | 44 | $i = 0; |
Michael J. Spencer |
2:1df0b61d3b5a | 45 | while(read(FILE, $data, 1)) { |
Michael J. Spencer |
2:1df0b61d3b5a | 46 | if($i == 0) { |
Michael J. Spencer |
2:1df0b61d3b5a | 47 | print(OUTPUT "\t"); |
Michael J. Spencer |
2:1df0b61d3b5a | 48 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 49 | printf(OUTPUT "%#02x, ", unpack("C", $data)); |
Michael J. Spencer |
2:1df0b61d3b5a | 50 | $i++; |
Michael J. Spencer |
2:1df0b61d3b5a | 51 | if($i == 10) { |
Michael J. Spencer |
2:1df0b61d3b5a | 52 | print(OUTPUT "\n"); |
Michael J. Spencer |
2:1df0b61d3b5a | 53 | $i = 0; |
Michael J. Spencer |
2:1df0b61d3b5a | 54 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 55 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 56 | print(OUTPUT "0};\n\n"); |
Michael J. Spencer |
2:1df0b61d3b5a | 57 | close(FILE); |
Michael J. Spencer |
2:1df0b61d3b5a | 58 | push(@fvars, $fvar); |
Michael J. Spencer |
2:1df0b61d3b5a | 59 | push(@pfiles, $file); |
Michael J. Spencer |
2:1df0b61d3b5a | 60 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 61 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 62 | |
Michael J. Spencer |
2:1df0b61d3b5a | 63 | for($i = 0; $i < @fvars; $i++) { |
Michael J. Spencer |
2:1df0b61d3b5a | 64 | $file = $pfiles[$i]; |
Michael J. Spencer |
2:1df0b61d3b5a | 65 | $fvar = $fvars[$i]; |
Michael J. Spencer |
2:1df0b61d3b5a | 66 | |
Michael J. Spencer |
2:1df0b61d3b5a | 67 | if($i == 0) { |
Michael J. Spencer |
2:1df0b61d3b5a | 68 | $prevfile = "NULL"; |
Michael J. Spencer |
2:1df0b61d3b5a | 69 | } else { |
Michael J. Spencer |
2:1df0b61d3b5a | 70 | $prevfile = "file" . $fvars[$i - 1]; |
Michael J. Spencer |
2:1df0b61d3b5a | 71 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 72 | print(OUTPUT "const struct httpd_fsdata_file file".$fvar."[] = {{$prevfile, data$fvar, "); |
Michael J. Spencer |
2:1df0b61d3b5a | 73 | print(OUTPUT "data$fvar + ". (length($file) + 1) .", "); |
Michael J. Spencer |
2:1df0b61d3b5a | 74 | print(OUTPUT "sizeof(data$fvar) - ". (length($file) + 1) ."}};\n\n"); |
Michael J. Spencer |
2:1df0b61d3b5a | 75 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 76 | |
Michael J. Spencer |
2:1df0b61d3b5a | 77 | print(OUTPUT "#define HTTPD_FS_ROOT file$fvars[$i - 1]\n\n"); |
Michael J. Spencer |
2:1df0b61d3b5a | 78 | print(OUTPUT "#define HTTPD_FS_NUMFILES $i\n"); |