Hex Artifact Content

Artifact 549a9875dc028f932535ac18f3ee9e40144747e6:


0000: 23 21 20 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20  #! /usr/bin/env 
0010: 74 63 6c 73 68 0a 0a 23 20 41 62 6f 72 74 20 69  tclsh..# Abort i
0020: 66 20 77 65 20 63 61 6e 74 20 72 65 61 64 20 74  f we cant read t
0030: 68 65 20 74 6d 70 66 69 6c 65 20 70 61 74 68 20  he tmpfile path 
0040: 66 72 6f 6d 20 74 68 65 20 65 6e 76 69 72 6f 6e  from the environ
0050: 6d 65 6e 74 0a 69 66 20 7b 21 5b 69 6e 66 6f 20  ment.if {![info 
0060: 65 78 69 73 74 73 20 3a 3a 65 6e 76 28 54 4d 50  exists ::env(TMP
0070: 46 49 4c 45 29 5d 7d 20 7b 0a 09 65 78 69 74 20  FILE)]} {..exit 
0080: 30 0a 7d 0a 0a 23 20 41 62 6f 72 74 20 74 68 69  0.}..# Abort thi
0090: 73 20 74 65 73 74 20 69 66 20 77 65 20 64 6f 6e  s test if we don
00a0: 27 74 20 68 61 76 65 20 76 66 73 3a 3a 7a 69 70  't have vfs::zip
00b0: 0a 69 66 20 7b 5b 63 61 74 63 68 20 7b 0a 09 70  .if {[catch {..p
00c0: 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 76  ackage require v
00d0: 66 73 3a 3a 7a 69 70 0a 7d 5d 7d 20 7b 0a 09 65  fs::zip.}]} {..e
00e0: 78 69 74 20 30 0a 7d 0a 0a 73 65 74 20 74 6d 70  xit 0.}..set tmp
00f0: 66 69 6c 65 20 24 3a 3a 65 6e 76 28 54 4d 50 46  file $::env(TMPF
0100: 49 4c 45 29 0a 0a 76 66 73 3a 3a 7a 69 70 3a 3a  ILE)..vfs::zip::
0110: 4d 6f 75 6e 74 20 24 74 6d 70 66 69 6c 65 20 24  Mount $tmpfile $
0120: 74 6d 70 66 69 6c 65 0a 0a 73 65 74 20 66 64 20  tmpfile..set fd 
0130: 5b 6f 70 65 6e 20 5b 66 69 6c 65 20 6a 6f 69 6e  [open [file join
0140: 20 24 74 6d 70 66 69 6c 65 20 64 61 74 61 5d 5d   $tmpfile data]]
0150: 0a 73 65 74 20 64 61 74 61 20 5b 72 65 61 64 20  .set data [read 
0160: 24 66 64 5d 0a 63 6c 6f 73 65 20 24 66 64 0a 0a  $fd].close $fd..
0170: 63 61 74 63 68 20 7b 0a 09 76 66 73 3a 3a 75 6e  catch {..vfs::un
0180: 6d 6f 75 6e 74 20 24 74 6d 70 66 69 6c 65 0a 7d  mount $tmpfile.}
0190: 0a 0a 63 61 74 63 68 20 7b 0a 09 66 69 6c 65 20  ..catch {..file 
01a0: 64 65 6c 65 74 65 20 2d 66 6f 72 63 65 20 2d 2d  delete -force --
01b0: 20 24 74 6d 70 66 69 6c 65 0a 7d 0a 0a 69 66 20   $tmpfile.}..if 
01c0: 7b 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 20 22  {[string match "
01d0: 48 65 6c 6c 6f 20 57 6f 72 6c 64 2a 22 20 24 64  Hello World*" $d
01e0: 61 74 61 5d 7d 20 7b 0a 09 65 78 69 74 20 30 0a  ata]} {..exit 0.
01f0: 7d 0a 0a 70 75 74 73 20 22 47 6f 74 20 5c 5b 30  }..puts "Got \[0
0200: 2e 2e 31 30 5c 5d 3a 20 20 20 20 5b 73 74 72 69  ..10\]:    [stri
0210: 6e 67 20 72 61 6e 67 65 20 24 64 61 74 61 20 30  ng range $data 0
0220: 20 31 30 5d 22 0a 70 75 74 73 20 22 45 78 70 65   10]".puts "Expe
0230: 63 74 65 64 20 28 6d 61 74 63 68 29 3a 20 48 65  cted (match): He
0240: 6c 6c 6f 20 57 6f 72 6c 64 2a 22 0a 0a 65 78 69  llo World*"..exi
0250: 74 20 31 0a                                      t 1.