Artifact d83e6610b91c9e09d98b52b3827ae1541c0f6dfd:
File
www/mkdownload.tcl
part of check-in
[7a2c37063a]
- merge trunk into creole branch
by
bob on
2009-09-22 07:49:39.
Also file
www/mkdownload.tcl
part of check-in
[db70c415ab]
- Documentation updates. Add a nice header to the "Download" page.
by
drh on
2009-09-12 17:21:12.
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 3a 20 44 <title>Fossil: D
0080: 6f 77 6e 6c 6f 61 64 73 3c 2f 74 69 74 6c 65 3e ownloads</title>
0090: 0a 3c 6c 69 6e 6b 20 72 65 6c 3d 22 73 74 79 6c .<link rel="styl
00a0: 65 73 68 65 65 74 22 20 68 72 65 66 3d 22 2f 66 esheet" href="/f
00b0: 6f 73 73 69 6c 2f 73 74 79 6c 65 2e 63 73 73 22 ossil/style.css"
00c0: 20 74 79 70 65 3d 22 74 65 78 74 2f 63 73 73 22 type="text/css"
00d0: 0a 20 20 20 20 20 20 6d 65 64 69 61 3d 22 73 63 . media="sc
00e0: 72 65 65 6e 22 3e 0a 3c 2f 68 65 61 64 3e 0a 3c reen">.</head>.<
00f0: 62 6f 64 79 3e 0a 3c 64 69 76 20 63 6c 61 73 73 body>.<div class
0100: 3d 22 68 65 61 64 65 72 22 3e 0a 20 20 3c 64 69 ="header">. <di
0110: 76 20 63 6c 61 73 73 3d 22 6c 6f 67 6f 22 3e 0a v class="logo">.
0120: 20 20 20 20 3c 69 6d 67 20 73 72 63 3d 22 2f 66 <img src="/f
0130: 6f 73 73 69 6c 2f 64 6f 63 2f 74 69 70 2f 77 77 ossil/doc/tip/ww
0140: 77 2f 66 6f 73 73 69 6c 5f 6c 6f 67 6f 5f 73 6d w/fossil_logo_sm
0150: 61 6c 6c 2e 67 69 66 22 20 61 6c 74 3d 22 6c 6f all.gif" alt="lo
0160: 67 6f 22 3e 0a 20 20 3c 2f 64 69 76 3e 0a 20 20 go">. </div>.
0170: 3c 64 69 76 20 63 6c 61 73 73 3d 22 74 69 74 6c <div class="titl
0180: 65 22 3e 46 6f 73 73 69 6c 20 44 6f 77 6e 6c 6f e">Fossil Downlo
0190: 61 64 73 3c 2f 64 69 76 3e 0a 3c 2f 64 69 76 3e ads</div>.</div>
01a0: 0a 3c 64 69 76 20 63 6c 61 73 73 3d 22 6d 61 69 .<div class="mai
01b0: 6e 6d 65 6e 75 22 3e 3c 61 20 68 72 65 66 3d 27 nmenu"><a href='
01c0: 2f 66 6f 73 73 69 6c 2f 64 6f 63 2f 74 69 70 2f /fossil/doc/tip/
01d0: 77 77 77 2f 69 6e 64 65 78 2e 77 69 6b 69 27 3e www/index.wiki'>
01e0: 48 6f 6d 65 3c 2f 61 3e 3c 61 20 68 72 65 66 3d Home</a><a href=
01f0: 27 2f 66 6f 73 73 69 6c 2f 6c 65 61 76 65 73 27 '/fossil/leaves'
0200: 3e 4c 65 61 76 65 73 3c 2f 61 3e 3c 61 20 68 72 >Leaves</a><a hr
0210: 65 66 3d 27 2f 66 6f 73 73 69 6c 2f 74 69 6d 65 ef='/fossil/time
0220: 6c 69 6e 65 27 3e 54 69 6d 65 6c 69 6e 65 3c 2f line'>Timeline</
0230: 61 3e 3c 61 20 68 72 65 66 3d 27 2f 66 6f 73 73 a><a href='/foss
0240: 69 6c 2f 62 72 6c 69 73 74 27 3e 42 72 61 6e 63 il/brlist'>Branc
0250: 68 65 73 3c 2f 61 3e 3c 61 20 68 72 65 66 3d 27 hes</a><a href='
0260: 2f 66 6f 73 73 69 6c 2f 74 61 67 6c 69 73 74 27 /fossil/taglist'
0270: 3e 54 61 67 73 3c 2f 61 3e 3c 61 20 68 72 65 66 >Tags</a><a href
0280: 3d 27 2f 66 6f 73 73 69 6c 2f 72 65 70 6f 72 74 ='/fossil/report
0290: 6c 69 73 74 27 3e 54 69 63 6b 65 74 73 3c 2f 61 list'>Tickets</a
02a0: 3e 3c 61 20 68 72 65 66 3d 27 2f 66 6f 73 73 69 ><a href='/fossi
02b0: 6c 2f 77 69 6b 69 27 3e 57 69 6b 69 3c 2f 61 3e l/wiki'>Wiki</a>
02c0: 3c 61 20 68 72 65 66 3d 27 2f 66 6f 73 73 69 6c <a href='/fossil
02d0: 2f 6c 6f 67 69 6e 27 3e 4c 6f 67 69 6e 3c 2f 61 /login'>Login</a
02e0: 3e 3c 2f 64 69 76 3e 0a 3c 64 69 76 20 63 6c 61 ></div>.<div cla
02f0: 73 73 3d 22 63 6f 6e 74 65 6e 74 22 3e 0a 3c 70 ss="content">.<p
0300: 3e 0a 0a 3c 70 3e 0a 43 6c 69 63 6b 20 6f 6e 20 >..<p>.Click on
0310: 6c 69 6e 6b 73 20 62 65 6c 6f 77 20 74 6f 20 64 links below to d
0320: 6f 77 6e 6c 6f 61 64 20 70 72 65 62 75 69 6c 74 ownload prebuilt
0330: 20 62 69 6e 61 72 69 65 73 20 61 6e 64 20 73 6f binaries and so
0340: 75 72 63 65 20 74 61 72 62 61 6c 6c 73 20 66 6f urce tarballs fo
0350: 72 20 0a 72 65 63 65 6e 74 20 76 65 72 73 69 6f r .recent versio
0360: 6e 73 20 6f 66 20 3c 61 20 68 72 65 66 3d 22 2f ns of <a href="/
0370: 66 6f 73 73 69 6c 22 3e 46 6f 73 73 69 6c 3c 2f fossil">Fossil</
0380: 61 3e 2e 0a 54 68 65 20 68 69 73 74 6f 72 69 63 a>..The historic
0390: 61 6c 20 73 6f 75 72 63 65 20 63 6f 64 65 20 69 al source code i
03a0: 73 20 61 6c 73 6f 20 61 76 61 69 6c 61 62 6c 65 s also available
03b0: 20 69 6e 20 74 68 65 0a 3c 61 20 68 72 65 66 3d in the.<a href=
03c0: 22 2f 66 6f 73 73 69 6c 2f 64 6f 63 2f 74 69 70 "/fossil/doc/tip
03d0: 2f 77 77 77 2f 73 65 6c 66 68 6f 73 74 2e 77 69 /www/selfhost.wi
03e0: 6b 69 22 3e 73 65 6c 66 2d 68 6f 73 74 69 6e 67 ki">self-hosting
03f0: 0a 46 6f 73 73 69 6c 20 72 65 70 6f 73 69 74 6f .Fossil reposito
0400: 72 69 65 73 3c 2f 61 3e 2e 0a 3c 2f 70 3e 0a 0a ries</a>..</p>..
0410: 3c 74 61 62 6c 65 20 63 65 6c 6c 70 61 64 64 69 <table cellpaddi
0420: 6e 67 3d 22 35 22 3e 0a 7d 0a 0a 70 72 6f 63 20 ng="5">.}..proc
0430: 50 72 6f 64 75 63 74 20 7b 70 61 74 74 65 72 6e Product {pattern
0440: 20 64 65 73 63 7d 20 7b 0a 20 20 73 65 74 20 66 desc} {. set f
0450: 6c 69 73 74 20 5b 67 6c 6f 62 20 2d 6e 6f 63 6f list [glob -noco
0460: 6d 70 6c 61 69 6e 20 64 6f 77 6e 6c 6f 61 64 2f mplain download/
0470: 24 70 61 74 74 65 72 6e 5d 0a 20 20 66 6f 72 65 $pattern]. fore
0480: 61 63 68 20 66 69 6c 65 20 5b 6c 73 6f 72 74 20 ach file [lsort
0490: 2d 64 69 63 74 20 24 66 6c 69 73 74 5d 20 7b 0a -dict $flist] {.
04a0: 20 20 20 20 73 65 74 20 66 69 6c 65 20 5b 66 69 set file [fi
04b0: 6c 65 20 74 61 69 6c 20 24 66 69 6c 65 5d 0a 20 le tail $file].
04c0: 20 20 20 69 66 20 7b 21 5b 72 65 67 65 78 70 20 if {![regexp
04d0: 2d 2d 20 7b 2d 28 5b 30 2d 39 5d 2b 29 5c 2e 7d -- {-([0-9]+)\.}
04e0: 20 24 66 69 6c 65 20 61 6c 6c 20 76 65 72 73 69 $file all versi
04f0: 6f 6e 5d 7d 20 63 6f 6e 74 69 6e 75 65 0a 20 20 on]} continue.
0500: 20 20 73 65 74 20 6d 74 69 6d 65 20 5b 66 69 6c set mtime [fil
0510: 65 20 6d 74 69 6d 65 20 64 6f 77 6e 6c 6f 61 64 e mtime download
0520: 2f 24 66 69 6c 65 5d 0a 20 20 20 20 73 65 74 20 /$file]. set
0530: 64 61 74 65 20 5b 63 6c 6f 63 6b 20 66 6f 72 6d date [clock form
0540: 61 74 20 24 6d 74 69 6d 65 20 2d 66 6f 72 6d 61 at $mtime -forma
0550: 74 20 7b 25 59 2d 25 6d 2d 25 64 20 25 48 3a 25 t {%Y-%m-%d %H:%
0560: 4d 3a 25 53 20 55 54 43 7d 20 2d 67 6d 74 20 31 M:%S UTC} -gmt 1
0570: 5d 0a 20 20 20 20 73 65 74 20 73 69 7a 65 20 5b ]. set size [
0580: 66 69 6c 65 20 73 69 7a 65 20 64 6f 77 6e 6c 6f file size downlo
0590: 61 64 2f 24 66 69 6c 65 5d 0a 20 20 20 20 73 65 ad/$file]. se
05a0: 74 20 75 6e 69 74 73 20 62 79 74 65 73 0a 20 20 t units bytes.
05b0: 20 20 69 66 20 7b 24 73 69 7a 65 3e 31 30 32 34 if {$size>1024
05c0: 2a 31 30 32 34 7d 20 7b 0a 20 20 20 20 20 20 73 *1024} {. s
05d0: 65 74 20 73 69 7a 65 20 5b 66 6f 72 6d 61 74 20 et size [format
05e0: 25 2e 32 66 20 5b 65 78 70 72 20 7b 24 73 69 7a %.2f [expr {$siz
05f0: 65 2f 28 31 30 32 34 2e 30 2a 31 30 32 34 2e 30 e/(1024.0*1024.0
0600: 29 7d 5d 5d 0a 20 20 20 20 20 20 73 65 74 20 75 )}]]. set u
0610: 6e 69 74 73 20 4d 69 42 0a 20 20 20 20 7d 20 65 nits MiB. } e
0620: 6c 73 65 69 66 20 7b 24 73 69 7a 65 3e 31 30 32 lseif {$size>102
0630: 34 7d 20 7b 0a 20 20 20 20 20 20 73 65 74 20 73 4} {. set s
0640: 69 7a 65 20 5b 66 6f 72 6d 61 74 20 25 2e 32 66 ize [format %.2f
0650: 20 5b 65 78 70 72 20 7b 24 73 69 7a 65 2f 28 31 [expr {$size/(1
0660: 30 32 34 2e 30 29 7d 5d 5d 0a 20 20 20 20 20 20 024.0)}]].
0670: 73 65 74 20 75 6e 69 74 73 20 4b 69 42 0a 20 20 set units KiB.
0680: 20 20 7d 0a 20 20 20 20 70 75 74 73 20 22 3c 74 }. puts "<t
0690: 72 3e 3c 74 64 20 77 69 64 74 68 3d 5c 22 31 30 r><td width=\"10
06a0: 5c 22 3e 3c 2f 74 64 3e 22 0a 20 20 20 20 70 75 \"></td>". pu
06b0: 74 73 20 22 3c 74 64 20 76 61 6c 69 67 6e 3d 5c ts "<td valign=\
06c0: 22 74 6f 70 5c 22 20 61 6c 69 67 6e 3d 5c 22 72 "top\" align=\"r
06d0: 69 67 68 74 5c 22 3e 22 0a 20 20 20 20 70 75 74 ight\">". put
06e0: 73 20 22 3c 61 20 68 72 65 66 3d 5c 22 64 6f 77 s "<a href=\"dow
06f0: 6e 6c 6f 61 64 2f 24 66 69 6c 65 5c 22 3e 24 66 nload/$file\">$f
0700: 69 6c 65 3c 2f 61 3e 3c 2f 74 64 3e 22 0a 20 20 ile</a></td>".
0710: 20 20 70 75 74 73 20 22 3c 74 64 20 77 69 64 74 puts "<td widt
0720: 68 3d 5c 22 35 5c 22 3e 3c 2f 74 64 3e 22 0a 20 h=\"5\"></td>".
0730: 20 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 56 regsub -all V
0740: 45 52 53 49 4f 4e 20 24 64 65 73 63 20 24 76 65 ERSION $desc $ve
0750: 72 73 69 6f 6e 20 64 32 0a 20 20 20 20 70 75 74 rsion d2. put
0760: 73 20 22 3c 74 64 20 76 61 6c 69 67 6e 3d 5c 22 s "<td valign=\"
0770: 74 6f 70 5c 22 3e 5b 73 74 72 69 6e 67 20 74 72 top\">[string tr
0780: 69 6d 20 24 64 32 5d 2e 3c 62 72 3e 53 69 7a 65 im $d2].<br>Size
0790: 3a 20 24 73 69 7a 65 20 24 75 6e 69 74 73 2e 3c : $size $units.<
07a0: 62 72 3e 22 0a 20 20 20 20 70 75 74 73 20 22 43 br>". puts "C
07b0: 72 65 61 74 65 64 3a 20 24 64 61 74 65 3c 2f 74 reated: $date</t
07c0: 64 3e 3c 2f 74 72 3e 22 0a 20 20 7d 0a 7d 0a 0a d></tr>". }.}..
07d0: 50 72 6f 64 75 63 74 20 66 6f 73 73 69 6c 2d 6c Product fossil-l
07e0: 69 6e 75 78 2d 78 38 36 2d 2a 2e 7a 69 70 20 7b inux-x86-*.zip {
07f0: 0a 20 20 50 72 65 62 75 69 6c 74 20 66 6f 73 73 . Prebuilt foss
0800: 69 6c 20 62 69 6e 61 72 79 20 76 65 72 73 69 6f il binary versio
0810: 6e 20 5b 56 45 52 53 49 4f 4e 5d 20 66 6f 72 20 n [VERSION] for
0820: 4c 69 6e 75 78 20 6f 6e 20 78 38 36 0a 7d 0a 50 Linux on x86.}.P
0830: 72 6f 64 75 63 74 20 66 6f 73 73 69 6c 2d 6c 69 roduct fossil-li
0840: 6e 75 78 2d 61 6d 64 36 34 2d 2a 2e 7a 69 70 20 nux-amd64-*.zip
0850: 7b 0a 20 20 50 72 65 62 75 69 6c 74 20 66 6f 73 {. Prebuilt fos
0860: 73 69 6c 20 62 69 6e 61 72 79 20 76 65 72 73 69 sil binary versi
0870: 6f 6e 20 5b 56 45 52 53 49 4f 4e 5d 20 66 6f 72 on [VERSION] for
0880: 20 4c 69 6e 75 78 20 6f 6e 20 61 6d 64 36 34 0a Linux on amd64.
0890: 7d 0a 50 72 6f 64 75 63 74 20 66 6f 73 73 69 6c }.Product fossil
08a0: 2d 6d 61 63 6f 73 78 2d 78 38 36 2d 2a 2e 7a 69 -macosx-x86-*.zi
08b0: 70 20 7b 0a 20 20 50 72 65 62 75 69 6c 74 20 66 p {. Prebuilt f
08c0: 6f 73 73 69 6c 20 62 69 6e 61 72 79 20 76 65 72 ossil binary ver
08d0: 73 69 6f 6e 20 5b 56 45 52 53 49 4f 4e 5d 20 66 sion [VERSION] f
08e0: 6f 72 20 4d 61 63 4f 53 58 20 6f 6e 20 78 38 36 or MacOSX on x86
08f0: 0a 7d 0a 50 72 6f 64 75 63 74 20 66 6f 73 73 69 .}.Product fossi
0900: 6c 2d 77 33 32 2d 2a 2e 7a 69 70 20 7b 0a 20 20 l-w32-*.zip {.
0910: 50 72 65 62 75 69 6c 74 20 66 6f 73 73 69 6c 20 Prebuilt fossil
0920: 62 69 6e 61 72 79 20 76 65 72 73 69 6f 6e 20 5b binary version [
0930: 56 45 52 53 49 4f 4e 5d 20 66 6f 72 20 77 69 6e VERSION] for win
0940: 64 6f 77 73 0a 7d 0a 50 72 6f 64 75 63 74 20 66 dows.}.Product f
0950: 6f 73 73 69 6c 2d 73 72 63 2d 2a 2e 74 61 72 2e ossil-src-*.tar.
0960: 67 7a 20 7b 0a 20 20 53 6f 75 72 63 65 20 63 6f gz {. Source co
0970: 64 65 20 74 61 72 62 61 6c 6c 20 66 6f 72 20 66 de tarball for f
0980: 6f 73 73 69 6c 20 76 65 72 73 69 6f 6e 20 5b 56 ossil version [V
0990: 45 52 53 49 4f 4e 5d 0a 7d 0a 0a 70 75 74 73 20 ERSION].}..puts
09a0: 7b 3c 2f 74 61 62 6c 65 3e 0a 3c 2f 62 6f 64 79 {</table>.</body
09b0: 3e 0a 3c 2f 68 74 6d 6c 3e 0a 7d 0a >.</html>.}.