Artifact fc69bc5ebbd48c2130023262b6f793137813bffa:
File
www/mkdownload.tcl
part of check-in
[50e953a810]
- Added the mkdownload.tcl script for generating the download.html page.
by
drh on
2008-03-17 21:14:26.
0000: 23 21 2f 75 73 72 2f 62 69 6e 2f 74 63 6c 73 68 #!/usr/bin/tclsh
0010: 0a 23 0a 23 20 52 75 6e 20 74 68 69 73 20 73 63 .#.# Run this sc
0020: 72 69 70 74 20 74 6f 20 62 75 69 6c 64 20 74 68 ript to build th
0030: 65 20 22 64 6f 77 6e 6c 6f 61 64 22 20 70 61 67 e "download" pag
0040: 65 20 6f 6e 20 73 74 61 6e 64 61 72 64 20 6f 75 e on standard ou
0050: 74 70 75 74 2e 0a 23 0a 23 0a 70 75 74 73 20 5c tput..#.#.puts \
0060: 0a 7b 3c 68 74 6d 6c 3e 0a 3c 68 65 61 64 3e 0a .{<html>.<head>.
0070: 3c 74 69 74 6c 65 3e 46 6f 73 73 69 6c 20 44 6f <title>Fossil Do
0080: 77 6e 6c 6f 61 64 3c 2f 74 69 74 6c 65 3e 0a 3c wnload</title>.<
0090: 2f 68 65 61 64 3e 0a 3c 62 6f 64 79 3e 0a 3c 68 /head>.<body>.<h
00a0: 31 3e 46 6f 73 73 69 6c 20 44 6f 77 6e 6c 6f 61 1>Fossil Downloa
00b0: 64 3c 2f 68 31 3e 0a 0a 3c 70 3e 0a 54 68 69 73 d</h1>..<p>.This
00c0: 20 70 61 67 65 20 63 6f 6e 74 61 69 6e 73 20 70 page contains p
00d0: 72 65 62 75 69 6c 74 20 62 69 6e 61 72 69 65 73 rebuilt binaries
00e0: 20 66 6f 72 20 0a 3c 61 20 68 72 65 66 3d 22 69 for .<a href="i
00f0: 6e 64 65 78 2e 68 74 6d 6c 22 3e 66 6f 73 73 69 ndex.html">fossi
0100: 6c 3c 2f 61 3e 20 66 6f 72 20 76 61 72 69 6f 75 l</a> for variou
0110: 73 20 61 72 63 68 69 74 65 63 74 75 72 65 73 2e s architectures.
0120: 0a 54 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 .The source code
0130: 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 69 6e is available in
0140: 20 74 68 65 0a 3c 61 20 68 72 65 66 3d 22 68 74 the.<a href="ht
0150: 74 70 3a 2f 2f 77 77 77 2e 66 6f 73 73 69 6c 2d tp://www.fossil-
0160: 73 63 6d 2e 6f 72 67 2f 66 6f 73 73 69 6c 2f 74 scm.org/fossil/t
0170: 69 6d 65 6c 69 6e 65 22 3e 73 65 6c 66 2d 68 6f imeline">self-ho
0180: 73 74 69 6e 67 0a 66 6f 73 73 69 6c 20 72 65 70 sting.fossil rep
0190: 6f 73 69 74 6f 72 79 3c 2f 61 3e 2e 0a 3c 2f 70 ository</a>..</p
01a0: 3e 0a 0a 3c 74 61 62 6c 65 20 63 65 6c 6c 70 61 >..<table cellpa
01b0: 64 64 69 6e 67 3d 22 35 22 3e 0a 7d 0a 0a 70 72 dding="5">.}..pr
01c0: 6f 63 20 50 72 6f 64 75 63 74 20 7b 70 61 74 74 oc Product {patt
01d0: 65 72 6e 20 64 65 73 63 7d 20 7b 0a 20 20 73 65 ern desc} {. se
01e0: 74 20 66 6c 69 73 74 20 5b 67 6c 6f 62 20 2d 6e t flist [glob -n
01f0: 6f 63 6f 6d 70 6c 61 69 6e 20 64 6f 77 6e 6c 6f ocomplain downlo
0200: 61 64 2f 24 70 61 74 74 65 72 6e 5d 0a 20 20 66 ad/$pattern]. f
0210: 6f 72 65 61 63 68 20 66 69 6c 65 20 5b 6c 73 6f oreach file [lso
0220: 72 74 20 2d 64 69 63 74 20 24 66 6c 69 73 74 5d rt -dict $flist]
0230: 20 7b 0a 20 20 20 20 73 65 74 20 66 69 6c 65 20 {. set file
0240: 5b 66 69 6c 65 20 74 61 69 6c 20 24 66 69 6c 65 [file tail $file
0250: 5d 0a 20 20 20 20 69 66 20 7b 21 5b 72 65 67 65 ]. if {![rege
0260: 78 70 20 2d 2d 20 7b 2d 28 5b 61 2d 66 30 2d 39 xp -- {-([a-f0-9
0270: 5d 7b 31 30 7d 29 5b 5e 61 2d 66 30 2d 39 5d 7d ]{10})[^a-f0-9]}
0280: 20 24 66 69 6c 65 20 61 6c 6c 20 76 65 72 73 69 $file all versi
0290: 6f 6e 5d 7d 20 63 6f 6e 74 69 6e 75 65 0a 20 20 on]} continue.
02a0: 20 20 73 65 74 20 6d 74 69 6d 65 20 5b 66 69 6c set mtime [fil
02b0: 65 20 6d 74 69 6d 65 20 64 6f 77 6e 6c 6f 61 64 e mtime download
02c0: 2f 24 66 69 6c 65 5d 0a 20 20 20 20 73 65 74 20 /$file]. set
02d0: 64 61 74 65 20 5b 63 6c 6f 63 6b 20 66 6f 72 6d date [clock form
02e0: 61 74 20 24 6d 74 69 6d 65 20 2d 66 6f 72 6d 61 at $mtime -forma
02f0: 74 20 7b 25 59 2d 25 6d 2d 25 64 20 25 48 3a 25 t {%Y-%m-%d %H:%
0300: 4d 3a 25 53 20 55 54 43 7d 20 2d 67 6d 74 20 31 M:%S UTC} -gmt 1
0310: 5d 0a 20 20 20 20 73 65 74 20 73 69 7a 65 20 5b ]. set size [
0320: 66 69 6c 65 20 73 69 7a 65 20 64 6f 77 6e 6c 6f file size downlo
0330: 61 64 2f 24 66 69 6c 65 5d 0a 20 20 20 20 73 65 ad/$file]. se
0340: 74 20 75 6e 69 74 73 20 62 79 74 65 73 0a 20 20 t units bytes.
0350: 20 20 69 66 20 7b 24 73 69 7a 65 3e 31 30 32 34 if {$size>1024
0360: 2a 31 30 32 34 7d 20 7b 0a 20 20 20 20 20 20 73 *1024} {. s
0370: 65 74 20 73 69 7a 65 20 5b 66 6f 72 6d 61 74 20 et size [format
0380: 25 2e 32 66 20 5b 65 78 70 72 20 7b 24 73 69 7a %.2f [expr {$siz
0390: 65 2f 28 31 30 32 34 2e 30 2a 31 30 32 34 2e 30 e/(1024.0*1024.0
03a0: 29 7d 5d 5d 0a 20 20 20 20 20 20 73 65 74 20 75 )}]]. set u
03b0: 6e 69 74 73 20 4d 69 42 0a 20 20 20 20 7d 20 65 nits MiB. } e
03c0: 6c 73 65 69 66 20 7b 24 73 69 7a 65 3e 31 30 32 lseif {$size>102
03d0: 34 7d 20 7b 0a 20 20 20 20 20 20 73 65 74 20 73 4} {. set s
03e0: 69 7a 65 20 5b 66 6f 72 6d 61 74 20 25 2e 32 66 ize [format %.2f
03f0: 20 5b 65 78 70 72 20 7b 24 73 69 7a 65 2f 28 31 [expr {$size/(1
0400: 30 32 34 2e 30 29 7d 5d 5d 0a 20 20 20 20 20 20 024.0)}]].
0410: 73 65 74 20 75 6e 69 74 73 20 4b 69 42 0a 20 20 set units KiB.
0420: 20 20 7d 0a 20 20 20 20 70 75 74 73 20 22 3c 74 }. puts "<t
0430: 72 3e 3c 74 64 20 77 69 64 74 68 3d 5c 22 31 30 r><td width=\"10
0440: 5c 22 3e 3c 2f 74 64 3e 22 0a 20 20 20 20 70 75 \"></td>". pu
0450: 74 73 20 22 3c 74 64 20 76 61 6c 69 67 6e 3d 5c ts "<td valign=\
0460: 22 74 6f 70 5c 22 20 61 6c 69 67 6e 3d 5c 22 72 "top\" align=\"r
0470: 69 67 68 74 5c 22 3e 22 0a 20 20 20 20 70 75 74 ight\">". put
0480: 73 20 22 3c 61 20 68 72 65 66 3d 5c 22 64 6f 77 s "<a href=\"dow
0490: 6e 6c 6f 61 64 2f 24 66 69 6c 65 5c 22 3e 24 66 nload/$file\">$f
04a0: 69 6c 65 3c 2f 61 3e 3c 2f 74 64 3e 22 0a 20 20 ile</a></td>".
04b0: 20 20 70 75 74 73 20 22 3c 74 64 20 77 69 64 74 puts "<td widt
04c0: 68 3d 5c 22 35 5c 22 3e 3c 2f 74 64 3e 22 0a 20 h=\"5\"></td>".
04d0: 20 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 56 regsub -all V
04e0: 45 52 53 49 4f 4e 20 24 64 65 73 63 20 24 76 65 ERSION $desc $ve
04f0: 72 73 69 6f 6e 20 64 32 0a 20 20 20 20 70 75 74 rsion d2. put
0500: 73 20 22 3c 74 64 20 76 61 6c 69 67 6e 3d 5c 22 s "<td valign=\"
0510: 74 6f 70 5c 22 3e 5b 73 74 72 69 6e 67 20 74 72 top\">[string tr
0520: 69 6d 20 24 64 32 5d 2e 3c 62 72 3e 53 69 7a 65 im $d2].<br>Size
0530: 3a 20 24 73 69 7a 65 20 24 75 6e 69 74 73 2e 3c : $size $units.<
0540: 62 72 3e 22 0a 20 20 20 20 70 75 74 73 20 22 43 br>". puts "C
0550: 72 65 61 74 65 64 3a 20 24 64 61 74 65 3c 2f 74 reated: $date</t
0560: 64 3e 3c 2f 74 72 3e 22 0a 20 20 7d 0a 7d 0a 0a d></tr>". }.}..
0570: 50 72 6f 64 75 63 74 20 66 6f 73 73 69 6c 2d 6c Product fossil-l
0580: 69 6e 75 78 2d 78 38 36 2d 2a 2e 67 7a 20 7b 0a inux-x86-*.gz {.
0590: 20 20 50 72 65 62 75 69 6c 74 20 66 6f 73 73 69 Prebuilt fossi
05a0: 6c 20 62 69 6e 61 72 79 20 76 65 72 73 69 6f 6e l binary version
05b0: 20 5b 56 45 52 53 49 4f 4e 5d 20 66 6f 72 20 4c [VERSION] for L
05c0: 69 6e 75 78 20 6f 6e 20 78 38 36 0a 7d 0a 50 72 inux on x86.}.Pr
05d0: 6f 64 75 63 74 20 66 6f 73 73 69 6c 2d 6d 61 78 oduct fossil-max
05e0: 6f 73 78 2d 78 38 36 2d 2a 2e 67 7a 20 7b 0a 20 osx-x86-*.gz {.
05f0: 20 50 72 65 62 75 69 6c 74 20 66 6f 73 73 69 6c Prebuilt fossil
0600: 20 62 69 6e 61 72 79 20 76 65 72 73 69 6f 6e 20 binary version
0610: 5b 56 45 52 53 49 4f 4e 5d 20 66 6f 72 20 4d 61 [VERSION] for Ma
0620: 63 4f 53 58 20 6f 6e 20 78 38 36 0a 7d 0a 50 72 cOSX on x86.}.Pr
0630: 6f 64 75 63 74 20 66 6f 73 73 69 6c 2d 77 33 32 oduct fossil-w32
0640: 2d 2a 2e 7a 69 70 20 7b 0a 20 20 50 72 65 62 75 -*.zip {. Prebu
0650: 69 6c 74 20 66 6f 73 73 69 6c 20 62 69 6e 61 72 ilt fossil binar
0660: 79 20 76 65 72 73 69 6f 6e 20 5b 56 45 52 53 49 y version [VERSI
0670: 4f 4e 5d 20 66 6f 72 20 77 69 6e 64 6f 77 73 0a ON] for windows.
0680: 7d 0a 0a 0a 70 75 74 73 20 7b 3c 2f 74 61 62 6c }...puts {</tabl
0690: 65 3e 0a 3c 2f 62 6f 64 79 3e 0a 3c 2f 68 74 6d e>.</body>.</htm
06a0: 6c 3e 0a 7d 0a l>.}.