Hex Artifact Content

Artifact ff8c61f8faaac3aeedc7ea9353fd8be75f21ab9e:


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 73 65 74 20 74 6d 70 66 69 6c 65  0.}..set tmpfile
0090: 20 24 3a 3a 65 6e 76 28 54 4d 50 46 49 4c 45 29   $::env(TMPFILE)
00a0: 0a 0a 76 66 73 3a 3a 7a 69 70 3a 3a 4d 6f 75 6e  ..vfs::zip::Moun
00b0: 74 20 24 74 6d 70 66 69 6c 65 20 24 74 6d 70 66  t $tmpfile $tmpf
00c0: 69 6c 65 0a 0a 73 65 74 20 66 64 20 5b 6f 70 65  ile..set fd [ope
00d0: 6e 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 74 6d  n [file join $tm
00e0: 70 66 69 6c 65 20 6d 61 69 6e 2e 74 63 6c 5d 5d  pfile main.tcl]]
00f0: 0a 73 65 74 20 64 61 74 61 20 5b 72 65 61 64 20  .set data [read 
0100: 24 66 64 5d 0a 63 6c 6f 73 65 20 24 66 64 0a 0a  $fd].close $fd..
0110: 63 61 74 63 68 20 7b 0a 09 76 66 73 3a 3a 75 6e  catch {..vfs::un
0120: 6d 6f 75 6e 74 20 24 74 6d 70 66 69 6c 65 0a 7d  mount $tmpfile.}
0130: 0a 0a 63 61 74 63 68 20 7b 0a 09 66 69 6c 65 20  ..catch {..file 
0140: 64 65 6c 65 74 65 20 2d 66 6f 72 63 65 20 2d 2d  delete -force --
0150: 20 24 74 6d 70 66 69 6c 65 0a 7d 0a 0a 69 66 20   $tmpfile.}..if 
0160: 7b 5b 73 74 72 69 6e 67 20 6d 61 74 63 68 20 22  {[string match "
0170: 2a 48 65 6c 6c 6f 20 57 6f 72 6c 64 2a 22 20 24  *Hello World*" $
0180: 64 61 74 61 5d 7d 20 7b 0a 09 65 78 69 74 20 30  data]} {..exit 0
0190: 0a 7d 0a 0a 70 75 74 73 20 22 47 6f 74 3a 20 20  .}..puts "Got:  
01a0: 20 20 20 20 20 20 20 20 20 20 20 20 24 64 61 74              $dat
01b0: 61 22 0a 70 75 74 73 20 22 45 78 70 65 63 74 65  a".puts "Expecte
01c0: 64 20 28 6d 61 74 63 68 29 3a 20 2a 48 65 6c 6c  d (match): *Hell
01d0: 6f 20 57 6f 72 6c 64 2a 22 0a 0a 65 78 69 74 20  o World*"..exit 
01e0: 31 0a                                            1.