Hex Artifact Content
Not logged in

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>.}.