Hex Artifact Content

Artifact f1002c2aafa61b85845a00d17cd7db9cf62d2ba0:


0000: 49 2e 20 43 4c 49 45 4e 54 0a 3d 3d 3d 3d 3d 3d  I. CLIENT.======
0010: 3d 3d 3d 0a 54 68 69 73 20 69 73 20 61 20 76 65  ===.This is a ve
0020: 72 79 20 62 61 73 69 63 20 69 6d 70 6c 65 6d 65  ry basic impleme
0030: 6e 74 61 74 69 6f 6e 20 6f 66 20 61 20 54 65 61  ntation of a Tea
0040: 70 6f 74 20 63 6c 69 65 6e 74 2e 20 20 49 74 20  pot client.  It 
0050: 77 69 6c 6c 20 66 65 74 63 68 20 61 6c 6c 0a 72  will fetch all.r
0060: 65 71 75 65 73 74 65 64 20 70 61 63 6b 61 67 65  equested package
0070: 73 20 61 6e 64 20 74 68 65 69 72 20 64 65 70 65  s and their depe
0080: 6e 64 65 6e 63 69 65 73 20 66 72 6f 6d 20 61 20  ndencies from a 
0090: 72 65 6d 6f 74 65 20 54 45 41 50 4f 54 20 73 65  remote TEAPOT se
00a0: 72 76 65 72 2e 0a 0a 31 2e 20 49 6e 73 74 61 6c  rver...1. Instal
00b0: 6c 69 6e 67 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ling.-----------
00c0: 2d 2d 0a 54 68 65 20 73 75 70 70 6c 69 65 64 20  --.The supplied 
00d0: 4d 61 6b 65 66 69 6c 65 20 6f 6e 6c 79 20 69 6e  Makefile only in
00e0: 73 74 61 6c 6c 73 20 74 68 65 20 63 6c 69 65 6e  stalls the clien
00f0: 74 20 6c 69 62 72 61 72 79 2e 20 20 41 20 73 61  t library.  A sa
0100: 6d 70 6c 65 20 63 6c 69 65 6e 74 20 74 68 61 74  mple client that
0110: 0a 6d 61 6b 65 73 20 75 73 65 20 6f 66 20 74 68  .makes use of th
0120: 69 73 20 6c 69 62 72 61 72 79 20 69 73 20 69 6e  is library is in
0130: 63 6c 75 64 65 64 2e 20 20 54 68 65 20 73 61 6d  cluded.  The sam
0140: 70 6c 65 20 6c 69 62 72 61 72 79 20 69 73 20 63  ple library is c
0150: 61 6c 6c 65 64 0a 22 74 65 61 70 6f 74 2d 63 6c  alled."teapot-cl
0160: 69 65 6e 74 2e 74 63 6c 22 2e 0a 0a 09 61 2e 20  ient.tcl"....a. 
0170: 54 6f 20 69 6e 73 74 61 6c 6c 20 77 69 74 68 20  To install with 
0180: 61 6c 6c 20 74 68 65 20 64 65 66 61 75 6c 74 20  all the default 
0190: 6f 70 74 69 6f 6e 73 20 61 6e 64 20 61 75 74 6f  options and auto
01a0: 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2c 0a   configuration,.
01b0: 09 20 20 20 65 78 65 63 75 74 65 3a 0a 09 09 23  .   execute:...#
01c0: 20 6d 61 6b 65 20 69 6e 73 74 61 6c 6c 0a 09 62   make install..b
01d0: 2e 20 49 66 20 79 6f 75 20 77 69 73 68 20 74 6f  . If you wish to
01e0: 20 69 6e 73 74 61 6c 6c 20 74 68 65 20 70 61 63   install the pac
01f0: 6b 61 67 65 20 69 6e 74 6f 20 61 20 70 61 72 74  kage into a part
0200: 69 63 75 6c 61 72 20 64 69 72 65 63 74 6f 72 79  icular directory
0210: 2c 0a 09 20 20 20 65 78 65 63 75 74 65 3a 0a 09  ,..   execute:..
0220: 09 23 20 6d 61 6b 65 20 69 6e 73 74 61 6c 6c 20  .# make install 
0230: 54 43 4c 44 49 52 3d 79 6f 75 72 5f 70 61 72 74  TCLDIR=your_part
0240: 69 63 75 6c 61 72 5f 64 69 72 65 63 74 6f 72 79  icular_directory
0250: 0a 09 20 20 20 28 6e 6f 74 65 20 74 68 61 74 20  ..   (note that 
0260: 69 74 20 77 69 6c 6c 20 63 72 65 61 74 65 20 61  it will create a
0270: 20 22 74 65 61 70 6f 74 63 6c 69 65 6e 74 30 2e   "teapotclient0.
0280: 31 22 20 64 69 72 65 63 74 6f 72 79 20 61 6e 64  1" directory and
0290: 0a 09 20 20 20 20 62 75 74 20 6e 6f 20 22 6c 69  ..    but no "li
02a0: 62 22 20 6f 72 20 73 69 6d 69 6c 61 72 20 64 69  b" or similar di
02b0: 72 65 63 74 6f 72 79 29 0a 09 63 2e 20 49 66 20  rectory)..c. If 
02c0: 79 6f 75 20 77 69 73 68 20 74 6f 20 69 6e 73 74  you wish to inst
02d0: 61 6c 6c 20 69 6e 74 6f 20 61 6e 20 61 6c 74 65  all into an alte
02e0: 72 6e 61 74 65 20 72 6f 6f 74 20 64 69 72 65 63  rnate root direc
02f0: 74 6f 72 79 20 28 69 2e 65 2e 2c 20 66 6f 72 0a  tory (i.e., for.
0300: 09 20 20 20 70 61 63 6b 61 67 69 6e 67 29 2c 20  .   packaging), 
0310: 65 78 65 63 75 74 65 3a 0a 09 09 23 20 6d 61 6b  execute:...# mak
0320: 65 20 69 6e 73 74 61 6c 6c 20 44 45 53 54 44 49  e install DESTDI
0330: 52 3d 79 6f 75 72 5f 6e 65 77 5f 72 6f 6f 74 64  R=your_new_rootd
0340: 69 72 0a 09 20 20 20 54 68 69 73 20 77 69 6c 6c  ir..   This will
0350: 20 73 65 61 72 63 68 20 66 6f 72 20 61 20 22 74   search for a "t
0360: 63 6c 43 6f 6e 66 69 67 2e 73 68 22 20 69 6e 20  clConfig.sh" in 
0370: 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 20  the destination 
0380: 64 69 72 65 63 74 6f 72 79 2e 0a 09 64 2e 20 49  directory...d. I
0390: 66 20 79 6f 75 20 77 69 73 68 20 74 6f 20 69 6e  f you wish to in
03a0: 73 74 61 6c 6c 20 69 6e 74 6f 20 61 6e 20 61 6c  stall into an al
03b0: 74 65 72 6e 61 74 65 20 70 72 65 66 69 78 20 28  ternate prefix (
03c0: 64 65 66 61 75 6c 74 20 69 73 0a 09 20 20 20 22  default is..   "
03d0: 2f 75 73 72 2f 6c 6f 63 61 6c 22 29 2c 20 65 78  /usr/local"), ex
03e0: 65 63 75 74 65 3a 0a 09 09 23 20 6d 61 6b 65 20  ecute:...# make 
03f0: 69 6e 73 74 61 6c 6c 20 50 52 45 46 49 58 3d 79  install PREFIX=y
0400: 6f 75 72 5f 6e 65 77 5f 70 72 65 66 69 78 0a 09  our_new_prefix..
0410: 20 20 20 28 6e 6f 74 65 20 74 68 61 74 20 74 68     (note that th
0420: 69 73 20 6f 6e 6c 79 20 61 66 66 65 63 74 73 20  is only affects 
0430: 74 68 65 20 73 65 61 72 63 68 20 70 61 74 68 20  the search path 
0440: 61 6e 64 20 77 68 65 72 65 20 74 68 65 0a 09 20  and where the.. 
0450: 20 20 22 74 65 61 70 6f 74 2d 63 6c 69 65 6e 74    "teapot-client
0460: 22 20 73 63 72 69 70 74 20 69 73 20 69 6e 73 74  " script is inst
0470: 61 6c 6c 65 64 2c 20 6e 6f 74 20 77 68 65 72 65  alled, not where
0480: 20 74 68 65 20 70 61 63 6b 61 67 65 20 67 6f 65   the package goe
0490: 73 0a 09 20 20 20 64 69 72 65 63 74 6c 79 29 0a  s..   directly).
04a0: 0a 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 69  .Note that the i
04b0: 6e 73 74 61 6c 6c 20 64 69 72 65 63 74 6f 72 79  nstall directory
04c0: 20 69 73 20 6e 6f 74 20 65 6e 63 6f 64 65 64 20   is not encoded 
04d0: 69 6e 20 74 68 65 20 73 63 72 69 70 74 20 69 6e  in the script in
04e0: 20 61 6e 79 20 77 61 79 20 73 6f 20 69 74 0a 63   any way so it.c
04f0: 61 6e 20 62 65 20 73 61 66 65 6c 79 20 6d 6f 76  an be safely mov
0500: 65 64 20 61 66 74 65 72 20 69 6e 73 74 61 6c 6c  ed after install
0510: 61 74 69 6f 6e 2e 0a 0a 32 2e 20 55 73 69 6e 67  ation...2. Using
0520: 0a 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 61 2e 20 74 65  .--------..a. te
0530: 61 70 6f 74 63 6c 69 65 6e 74 3a 0a 0a 09 69 2e  apotclient:...i.
0540: 20 67 65 74 5f 65 78 74 65 6e 73 69 6f 6e 73 0a   get_extensions.
0550: 09 09 53 59 4e 4f 50 53 49 53 0a 09 09 70 61 63  ..SYNOPSIS...pac
0560: 6b 61 67 65 20 72 65 71 75 69 72 65 20 74 65 61  kage require tea
0570: 70 6f 74 63 6c 69 65 6e 74 0a 0a 09 09 3a 3a 74  potclient....::t
0580: 65 61 70 6f 74 63 6c 69 65 6e 74 3a 3a 67 65 74  eapotclient::get
0590: 5f 65 78 74 65 6e 73 69 6f 6e 73 20 3c 6c 69 73  _extensions <lis
05a0: 74 5f 6f 66 5f 74 65 61 70 6f 74 5f 73 65 72 76  t_of_teapot_serv
05b0: 65 72 73 3e 20 5c 0a 09 09 20 20 3f 3c 6f 73 5f  ers> \...  ?<os_
05c0: 67 6c 6f 62 5f 70 61 74 74 65 72 6e 3e 3f 20 3f  glob_pattern>? ?
05d0: 3c 63 70 75 5f 67 6c 6f 62 5f 70 61 74 74 65 72  <cpu_glob_patter
05e0: 6e 3e 3f 0a 0a 09 09 44 45 53 43 52 49 50 54 49  n>?....DESCRIPTI
05f0: 4f 4e 0a 09 09 67 65 74 5f 65 78 74 65 6e 73 69  ON...get_extensi
0600: 6f 6e 73 20 67 65 74 73 20 74 68 65 20 65 78 74  ons gets the ext
0610: 65 6e 73 69 6f 6e 73 20 74 68 61 74 20 61 72 65  ensions that are
0620: 20 61 76 61 69 6c 61 62 6c 65 20 66 72 6f 6d 20   available from 
0630: 61 0a 09 09 6c 69 73 74 20 6f 66 20 54 45 41 50  a...list of TEAP
0640: 4f 54 20 73 65 72 76 65 72 73 2c 20 66 6f 72 20  OT servers, for 
0650: 61 20 70 61 72 74 69 63 75 6c 61 72 20 6f 70 65  a particular ope
0660: 72 61 74 69 6e 67 20 73 79 73 74 65 6d 0a 09 09  rating system...
0670: 61 6e 64 20 43 50 55 20 74 75 70 6c 65 20 28 77  and CPU tuple (w
0680: 68 69 63 68 20 63 61 6e 20 62 65 20 67 6c 6f 62  hich can be glob
0690: 20 70 61 74 74 65 72 6e 73 29 2e 0a 0a 09 09 54   patterns).....T
06a0: 68 65 20 64 65 66 61 75 6c 74 20 4f 53 20 61 6e  he default OS an
06b0: 64 20 43 50 55 20 70 61 74 74 65 72 6e 73 20 61  d CPU patterns a
06c0: 72 65 20 62 6f 74 68 20 22 2a 22 20 77 68 69 63  re both "*" whic
06d0: 68 20 77 69 6c 6c 20 6d 61 74 63 68 0a 09 09 61  h will match...a
06e0: 6c 6c 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73  ll operating sys
06f0: 74 65 6d 20 61 6e 64 20 63 70 75 73 2e 0a 0a 09  tem and cpus....
0700: 09 52 45 54 55 52 4e 20 56 41 4c 55 45 0a 09 09  .RETURN VALUE...
0710: 54 68 65 20 72 65 74 75 72 6e 65 64 20 76 61 6c  The returned val
0720: 75 65 20 69 73 20 61 20 6c 69 73 74 20 69 6e 20  ue is a list in 
0730: 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 3a 0a 09  the format of:..
0740: 09 7b 45 78 74 65 6e 73 69 6f 6e 5f 31 7d 20 7b  .{Extension_1} {
0750: 45 78 74 65 6e 73 69 6f 6e 49 6e 66 6f 5f 31 7d  ExtensionInfo_1}
0760: 20 7b 45 78 74 65 6e 73 69 6f 6e 5f 32 7d 20 7b   {Extension_2} {
0770: 45 78 74 65 6e 73 69 6f 6e 49 6e 66 6f 5f 32 7d  ExtensionInfo_2}
0780: 20 2e 2e 2e 0a 0a 09 09 57 68 65 72 65 20 45 78   .......Where Ex
0790: 74 65 6e 73 69 6f 6e 49 6e 66 6f 5f 4e 20 69 73  tensionInfo_N is
07a0: 20 61 20 6c 69 73 74 20 69 6e 20 74 68 65 20 66   a list in the f
07b0: 6f 72 6d 61 74 20 6f 66 3a 0a 09 09 45 78 74 65  ormat of:...Exte
07c0: 6e 73 69 6f 6e 56 65 72 73 69 6f 6e 20 45 78 74  nsionVersion Ext
07d0: 65 6e 73 69 6f 6e 50 6c 61 74 66 6f 72 6d 49 6e  ensionPlatformIn
07e0: 66 6f 0a 0a 09 69 69 2e 20 64 6f 77 6e 6c 6f 61  fo...ii. downloa
07f0: 64 5f 65 78 74 65 6e 73 69 6f 6e 73 0a 09 09 53  d_extensions...S
0800: 59 4e 4f 50 53 49 53 0a 09 09 70 61 63 6b 61 67  YNOPSIS...packag
0810: 65 20 72 65 71 75 69 72 65 20 74 65 61 70 6f 74  e require teapot
0820: 63 6c 69 65 6e 74 0a 0a 09 09 3a 3a 74 65 61 70  client....::teap
0830: 6f 74 63 6c 69 65 6e 74 3a 3a 64 6f 77 6e 6c 6f  otclient::downlo
0840: 61 64 5f 65 78 74 65 6e 73 69 6f 6e 73 20 3c 72  ad_extensions <r
0850: 6f 6f 74 64 69 72 3e 20 5c 0a 09 09 20 20 3c 6c  ootdir> \...  <l
0860: 69 73 74 5f 6f 66 5f 74 65 61 70 6f 74 5f 73 65  ist_of_teapot_se
0870: 72 76 65 72 73 3e 20 3c 6c 69 73 74 5f 6f 66 5f  rvers> <list_of_
0880: 65 78 74 65 6e 73 69 6f 6e 73 3e 20 5c 0a 09 09  extensions> \...
0890: 20 20 3c 6f 73 5f 67 6c 6f 62 5f 70 61 74 74 65    <os_glob_patte
08a0: 72 6e 3e 20 3c 63 70 75 5f 67 6c 6f 62 5f 70 61  rn> <cpu_glob_pa
08b0: 74 74 65 72 6e 3e 20 5c 0a 09 09 20 20 3f 3c 6c  ttern> \...  ?<l
08c0: 69 73 74 5f 6f 66 5f 65 78 74 65 6e 73 69 6f 6e  ist_of_extension
08d0: 73 5f 74 6f 5f 65 78 63 6c 75 64 65 3e 3f 0a 0a  s_to_exclude>?..
08e0: 09 09 44 45 53 43 52 49 50 54 49 4f 4e 0a 09 09  ..DESCRIPTION...
08f0: 64 6f 77 6e 6c 6f 61 64 5f 65 78 74 65 6e 73 69  download_extensi
0900: 6f 6e 73 20 77 69 6c 6c 20 64 6f 77 6e 6c 6f 61  ons will downloa
0910: 64 20 74 68 65 20 6c 69 73 74 20 6f 66 20 65 78  d the list of ex
0920: 74 65 6e 73 69 6f 6e 73 20 66 6f 72 20 61 0a 09  tensions for a..
0930: 09 67 69 76 65 6e 20 6f 70 65 72 61 74 69 6e 67  .given operating
0940: 20 73 79 73 74 65 6d 20 61 6e 64 20 43 50 55 20   system and CPU 
0950: 74 75 70 6c 65 2c 20 61 6e 64 20 64 6f 77 6e 6c  tuple, and downl
0960: 6f 61 64 20 74 68 65 69 72 0a 09 09 64 65 70 65  oad their...depe
0970: 6e 64 65 6e 63 69 65 73 20 72 65 63 75 72 73 69  ndencies recursi
0980: 76 65 6c 79 2e 20 20 49 74 20 77 69 6c 6c 20 70  vely.  It will p
0990: 6c 61 63 65 20 65 61 63 68 20 64 6f 77 6e 6c 6f  lace each downlo
09a0: 61 64 65 64 0a 09 09 65 78 74 65 6e 73 69 6f 6e  aded...extension
09b0: 73 20 69 6e 20 69 74 73 20 6f 77 6e 20 73 75 62  s in its own sub
09c0: 64 69 72 65 63 74 6f 72 79 20 62 65 6e 65 61 74  directory beneat
09d0: 68 20 74 68 65 20 73 70 65 63 69 66 69 65 64 0a  h the specified.
09e0: 09 09 22 72 6f 6f 74 64 69 72 22 2e 0a 0a 09 09  .."rootdir".....
09f0: 54 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69  The latest versi
0a00: 6f 6e 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72  on available for
0a10: 20 74 68 65 20 67 69 76 65 6e 20 4f 53 20 61 6e   the given OS an
0a20: 64 20 43 50 55 20 74 75 70 6c 65 20 6f 66 0a 09  d CPU tuple of..
0a30: 09 65 61 63 68 20 65 78 74 65 6e 73 69 6f 6e 20  .each extension 
0a40: 77 69 6c 6c 20 62 65 20 64 6f 77 6e 6c 6f 61 64  will be download
0a50: 65 64 2e 0a 0a 09 09 59 6f 75 20 6d 61 79 20 6f  ed.....You may o
0a60: 70 74 69 6f 6e 61 6c 6c 79 20 73 70 65 63 69 66  ptionally specif
0a70: 79 20 61 20 6c 69 73 74 20 6f 66 20 65 78 74 65  y a list of exte
0a80: 6e 73 69 6f 6e 73 20 74 68 61 74 20 79 6f 75 20  nsions that you 
0a90: 64 6f 20 6e 6f 74 0a 09 09 77 69 73 68 20 74 6f  do not...wish to
0aa0: 20 62 65 20 64 6f 77 6e 6c 6f 61 64 65 64 2e 0a   be downloaded..
0ab0: 0a 09 09 52 45 54 55 52 4e 20 56 41 4c 55 45 0a  ...RETURN VALUE.
0ac0: 09 09 54 68 65 20 72 65 74 75 72 6e 20 76 61 6c  ..The return val
0ad0: 75 65 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20  ue is a list of 
0ae0: 65 78 74 65 6e 73 69 6f 6e 73 20 61 63 74 75 61  extensions actua
0af0: 6c 6c 79 20 64 6f 77 6e 6c 6f 61 64 65 64 2e 0a  lly downloaded..
0b00: 09 09 54 68 69 73 20 6d 61 79 20 63 6f 6e 74 61  ..This may conta
0b10: 69 6e 20 69 74 65 6d 73 20 74 68 61 74 20 77 65  in items that we
0b20: 72 65 20 6e 6f 74 20 72 65 71 75 65 73 74 65 64  re not requested
0b30: 20 28 69 66 20 74 68 65 79 20 77 65 72 65 0a 09   (if they were..
0b40: 09 6e 65 65 64 65 64 20 74 6f 20 73 61 74 69 73  .needed to satis
0b50: 66 79 20 61 20 64 65 70 65 6e 64 65 6e 63 79 29  fy a dependency)
0b60: 2c 20 61 6e 64 20 6d 61 79 20 6e 6f 74 20 63 6f  , and may not co
0b70: 6e 74 61 69 6e 20 61 6c 6c 20 69 74 65 6d 73 0a  ntain all items.
0b80: 09 09 74 68 61 74 20 77 65 72 65 20 72 65 71 75  ..that were requ
0b90: 65 73 74 65 64 20 28 69 66 20 74 68 65 79 20 77  ested (if they w
0ba0: 65 72 65 20 75 6e 61 76 61 69 6c 61 62 6c 65 29  ere unavailable)
0bb0: 2e 0a 0a 09 09 54 68 65 20 6c 69 73 74 20 69 73  .....The list is
0bc0: 20 69 6e 20 74 68 65 20 66 6f 72 6d 61 74 3a 0a   in the format:.
0bd0: 09 09 7b 45 78 74 65 6e 73 69 6f 6e 5f 31 7d 20  ..{Extension_1} 
0be0: 7b 45 78 74 65 6e 73 69 6f 6e 49 6e 66 6f 5f 31  {ExtensionInfo_1
0bf0: 7d 20 7b 45 78 74 65 6e 73 69 6f 6e 5f 32 7d 20  } {Extension_2} 
0c00: 7b 45 78 74 65 6e 73 69 6f 6e 49 6e 66 6f 5f 32  {ExtensionInfo_2
0c10: 7d 20 2e 2e 2e 0a 0a 09 09 57 68 65 72 65 20 45  } .......Where E
0c20: 78 74 65 6e 73 69 6f 6e 49 6e 66 6f 5f 4e 20 69  xtensionInfo_N i
0c30: 73 20 61 20 6c 69 73 74 20 69 6e 20 74 68 65 20  s a list in the 
0c40: 66 6f 72 6d 61 74 20 6f 66 3a 0a 09 09 45 78 74  format of:...Ext
0c50: 65 6e 73 69 6f 6e 56 65 72 73 69 6f 6e 20 45 78  ensionVersion Ex
0c60: 74 65 6e 73 69 6f 6e 50 6c 61 74 66 6f 72 6d 49  tensionPlatformI
0c70: 6e 66 6f 20 45 78 74 65 6e 73 69 6f 6e 53 65 72  nfo ExtensionSer
0c80: 76 65 72 0a 0a 09 69 69 69 2e 20 73 65 74 63 61  ver...iii. setca
0c90: 63 68 65 64 69 72 0a 09 09 53 59 4e 4f 50 53 49  chedir...SYNOPSI
0ca0: 53 0a 09 09 70 61 63 6b 61 67 65 20 72 65 71 75  S...package requ
0cb0: 69 72 65 20 74 65 61 70 6f 74 63 6c 69 65 6e 74  ire teapotclient
0cc0: 0a 0a 09 09 3a 3a 74 65 61 70 6f 74 63 6c 69 65  ....::teapotclie
0cd0: 6e 74 3a 3a 73 65 74 63 61 63 68 65 64 69 72 20  nt::setcachedir 
0ce0: 3c 64 69 72 65 63 74 6f 72 79 3e 0a 0a 09 09 44  <directory>....D
0cf0: 45 53 43 52 49 50 54 49 4f 4e 0a 09 09 54 68 65  ESCRIPTION...The
0d00: 20 64 6f 77 6e 6c 6f 61 64 5f 65 78 74 65 6e 73   download_extens
0d10: 69 6f 6e 73 20 61 6e 64 20 67 65 74 5f 65 78 74  ions and get_ext
0d20: 65 6e 73 69 6f 6e 73 20 63 6f 6d 6d 61 6e 64 73  ensions commands
0d30: 20 75 73 65 20 61 0a 09 09 6c 6f 63 61 6c 20 64   use a...local d
0d40: 69 73 6b 20 63 61 63 68 65 20 74 6f 20 69 6d 70  isk cache to imp
0d50: 72 6f 76 65 20 70 65 72 66 6f 72 6d 61 6e 63 65  rove performance
0d60: 2e 20 20 54 68 65 20 64 65 66 61 75 6c 74 0a 09  .  The default..
0d70: 09 63 61 63 68 65 20 64 69 72 65 63 74 6f 72 79  .cache directory
0d80: 20 69 73 20 61 20 64 69 72 65 63 74 6f 72 79 20   is a directory 
0d90: 69 6e 20 74 68 65 20 75 73 65 72 27 73 20 68 6f  in the user's ho
0da0: 6d 65 20 64 69 72 65 63 74 6f 72 79 2c 20 6f 72  me directory, or
0db0: 0a 09 09 61 20 74 65 6d 70 6f 72 61 72 79 20 64  ...a temporary d
0dc0: 69 72 65 63 74 6f 72 79 20 69 66 20 61 20 68 6f  irectory if a ho
0dd0: 6d 65 20 64 69 72 65 63 74 6f 72 79 20 69 73 20  me directory is 
0de0: 6e 6f 74 20 66 6f 75 6e 64 2e 0a 0a 09 09 73 65  not found.....se
0df0: 74 63 61 63 68 65 64 69 72 20 73 70 65 63 69 66  tcachedir specif
0e00: 69 65 73 20 61 6e 20 61 6c 74 65 72 6e 61 74 65  ies an alternate
0e10: 20 6c 6f 63 61 74 69 6f 6e 20 74 6f 20 73 74 6f   location to sto
0e20: 72 65 20 74 68 65 20 63 61 63 68 65 2e 0a 0a 09  re the cache....
0e30: 09 73 65 74 63 61 63 68 65 64 69 72 20 73 68 6f  .setcachedir sho
0e40: 75 6c 64 20 62 65 20 63 61 6c 6c 65 64 20 62 65  uld be called be
0e50: 66 6f 72 65 20 61 6e 79 20 6f 74 68 65 72 20 63  fore any other c
0e60: 6f 6d 6d 61 6e 64 73 20 69 66 20 69 74 20 69 73  ommands if it is
0e70: 0a 09 09 69 6e 74 65 6e 64 65 64 20 74 6f 20 62  ...intended to b
0e80: 65 20 75 73 65 64 2e 0a 09 0a 0a 09 09 52 45 54  e used.......RET
0e90: 55 52 4e 20 56 41 4c 55 45 0a 09 09 55 6e 73 70  URN VALUE...Unsp
0ea0: 65 63 69 66 69 65 64 2e 0a 0a 09 69 76 2e 20 45  ecified....iv. E
0eb0: 78 61 6d 70 6c 65 20 31 3a 0a 09 09 70 61 63 6b  xample 1:...pack
0ec0: 61 67 65 20 72 65 71 75 69 72 65 20 74 65 61 70  age require teap
0ed0: 6f 74 63 6c 69 65 6e 74 0a 0a 09 09 70 75 74 73  otclient....puts
0ee0: 20 22 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20   "The following 
0ef0: 65 78 74 65 6e 73 69 6f 6e 73 20 61 72 65 20 61  extensions are a
0f00: 76 61 69 6c 61 62 6c 65 3a 22 0a 09 09 66 6f 72  vailable:"...for
0f10: 65 61 63 68 20 7b 65 78 74 65 6e 73 69 6f 6e 20  each {extension 
0f20: 65 78 74 65 6e 73 69 6f 6e 69 6e 66 6f 7d 20 5b  extensioninfo} [
0f30: 3a 3a 74 65 61 70 6f 74 63 6c 69 65 6e 74 3a 3a  ::teapotclient::
0f40: 67 65 74 5f 65 78 74 65 6e 73 69 6f 6e 73 20 5c  get_extensions \
0f50: 0a 09 09 20 20 20 20 20 20 20 20 20 20 20 20 20  ...             
0f60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0f70: 20 20 20 20 20 20 5b 6c 69 73 74 20 74 65 61 70        [list teap
0f80: 6f 74 2e 61 63 74 69 76 65 73 74 61 74 65 2e 63  ot.activestate.c
0f90: 6f 6d 5d 20 5c 0a 09 09 20 20 20 20 20 20 20 20  om] \...        
0fa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0fb0: 20 20 20 20 20 20 20 20 20 20 20 7b 2a 7d 20 7b             {*} {
0fc0: 2a 7d 5d 20 7b 0a 09 09 09 70 75 74 73 20 22 20  *}] {....puts " 
0fd0: 20 24 65 78 74 65 6e 73 69 6f 6e 20 5b 6a 6f 69   $extension [joi
0fe0: 6e 20 24 65 78 74 65 6e 73 69 6f 6e 69 6e 66 6f  n $extensioninfo
0ff0: 20 7b 2c 20 7d 5d 22 0a 09 09 7d 0a 0a 09 20 76   {, }]"...}... v
1000: 2e 20 45 78 61 6d 70 6c 65 20 32 3a 0a 09 09 70  . Example 2:...p
1010: 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 74  ackage require t
1020: 65 61 70 6f 74 63 6c 69 65 6e 74 0a 0a 09 09 73  eapotclient....s
1030: 65 74 20 6f 73 20 24 74 63 6c 5f 70 6c 61 74 66  et os $tcl_platf
1040: 6f 72 6d 28 6f 73 29 0a 09 09 69 66 20 7b 24 74  orm(os)...if {$t
1050: 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c 61 74  cl_platform(plat
1060: 66 6f 72 6d 29 20 3d 3d 20 22 77 69 6e 64 6f 77  form) == "window
1070: 73 22 7d 20 7b 0a 09 09 09 73 65 74 20 6f 73 20  s"} {....set os 
1080: 24 74 63 6c 5f 70 6c 61 74 66 6f 72 6d 28 70 6c  $tcl_platform(pl
1090: 61 74 66 6f 72 6d 29 0a 09 09 7d 0a 0a 09 09 70  atform)...}....p
10a0: 75 74 73 20 22 44 6f 77 6e 6c 6f 61 64 69 6e 67  uts "Downloading
10b0: 20 6d 64 35 20 61 6e 64 20 73 68 61 31 20 70 61   md5 and sha1 pa
10c0: 63 6b 61 67 65 73 20 66 6f 72 20 74 68 65 20 63  ckages for the c
10d0: 75 72 72 65 6e 74 20 73 79 73 74 65 6d 22 0a 09  urrent system"..
10e0: 09 3a 3a 74 65 61 70 6f 74 63 6c 69 65 6e 74 3a  .::teapotclient:
10f0: 3a 64 6f 77 6e 6c 6f 61 64 5f 65 78 74 65 6e 73  :download_extens
1100: 69 6f 6e 73 20 22 2e 22 20 5c 0a 09 09 20 20 5b  ions "." \...  [
1110: 6c 69 73 74 20 74 65 61 70 6f 74 2e 61 63 74 69  list teapot.acti
1120: 76 65 73 74 61 74 65 2e 63 6f 6d 5d 20 5b 6c 69  vestate.com] [li
1130: 73 74 20 6d 64 35 20 73 68 61 31 5d 20 24 6f 73  st md5 sha1] $os
1140: 20 5c 0a 09 09 20 20 24 74 63 6c 5f 70 6c 61 74   \...  $tcl_plat
1150: 66 6f 72 6d 28 6d 61 63 68 69 6e 65 29 0a 0a 09  form(machine)...
1160: 09 0a 62 2e 20 74 65 61 70 6f 74 2d 63 6c 69 65  ..b. teapot-clie
1170: 6e 74 20 2f 20 74 65 61 70 6f 74 2d 63 6c 69 65  nt / teapot-clie
1180: 6e 74 2e 74 63 6c 3a 0a 09 69 2e 20 74 65 61 70  nt.tcl:..i. teap
1190: 6f 74 2d 63 6c 69 65 6e 74 20 67 65 74 20 3c 64  ot-client get <d
11a0: 69 72 3e 20 3c 6f 73 3e 20 3c 63 70 75 3e 20 3c  ir> <os> <cpu> <
11b0: 70 61 63 6b 61 67 65 73 2e 2e 2e 3e 0a 09 09 44  packages...>...D
11c0: 6f 77 6e 6c 6f 61 64 73 20 61 6c 6c 20 74 68 65  ownloads all the
11d0: 20 72 65 71 75 65 73 74 65 64 20 65 78 74 65 6e   requested exten
11e0: 73 69 6f 6e 73 2f 70 61 63 6b 61 67 65 73 20 66  sions/packages f
11f0: 6f 72 20 74 68 65 20 4f 53 2b 43 50 55 0a 09 09  or the OS+CPU...
1200: 70 61 69 72 20 69 6e 74 6f 20 74 68 65 20 22 6c  pair into the "l
1210: 69 62 22 20 64 69 72 65 63 74 6f 72 79 20 6f 66  ib" directory of
1220: 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 73   the directory s
1230: 70 65 63 69 66 69 65 64 2e 0a 0a 09 69 69 2e 20  pecified....ii. 
1240: 74 65 61 70 6f 74 2d 63 6c 69 65 6e 74 20 6c 69  teapot-client li
1250: 73 74 20 3f 3c 6f 73 3e 3f 20 3f 3c 63 70 75 3e  st ?<os>? ?<cpu>
1260: 3f 0a 09 09 4c 69 73 74 73 20 61 6c 6c 20 61 76  ?...Lists all av
1270: 61 69 6c 61 62 6c 65 20 65 78 74 65 6e 73 69 6f  ailable extensio
1280: 6e 73 20 61 6e 64 20 74 68 65 69 72 20 6d 6f 73  ns and their mos
1290: 74 20 72 65 63 65 6e 74 20 76 65 72 73 69 6f 6e  t recent version
12a0: 73 2c 0a 09 09 6f 70 74 69 6f 6e 61 6c 6c 79 20  s,...optionally 
12b0: 72 65 73 74 72 69 63 74 65 64 20 74 6f 20 61 6e  restricted to an
12c0: 20 4f 53 2b 43 50 55 20 70 61 69 72 2e 0a 0a 49   OS+CPU pair...I
12d0: 49 2e 20 53 45 52 56 45 52 0a 3d 3d 3d 3d 3d 3d  I. SERVER.======
12e0: 3d 3d 3d 3d 0a 54 68 69 73 20 69 73 20 6e 6f 74  ====.This is not
12f0: 20 79 65 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64   yet implemented
1300: 2e 0a                                            ..