Overview
| Comment: | Update the 'installvfs.tcl' tool to always copy to a new file before making any modifications. | 
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive | 
| Timelines: | family | ancestors | descendants | both | trunk | 
| Files: | files | file ages | folders | 
| SHA1: | d720e221c4707f1088a7327334ded30f | 
| User & Date: | mistachkin on 2015-03-31 03:32:45 | 
| Other Links: | manifest | tags | 
Context
| 2015-03-31 | ||
| 03:33 | Updated to work with compilers that add ".exe" to output files check-in: 7ca49930e2 user: rkeene tags: trunk | |
| 03:32 | Update the 'installvfs.tcl' tool to always copy to a new file before making any modifications. check-in: d720e221c4 user: mistachkin tags: trunk | |
| 03:31 | Upgrade the Thread package to version 2.7.2. check-in: d698723d21 user: mistachkin tags: trunk | |
| 2015-03-30 | ||
| 21:59 | Updated to always copy to a new file Closed-Leaf check-in: 683995c0ec user: rkeene tags: winNoRunKit | |
Changes
Modified kitsh/build.sh from [0e6a9ba02e] to [b037ed5b3c].
| ︙ | ︙ | |||
| 191 192 193 194 195 196 197 | 
	# Intall VFS onto kit
	## Determine if we have a Tclkit to do this work
	TCLKIT="${TCLKIT:-tclkit}"
	if echo 'exit 0' | "${TCLKIT}" >/dev/null 2>/dev/null; then
		## Install using existing Tclkit
		### Call installer
 | | | > | | | < | | | | | | | | | | | > > > | | 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 | 
	# Intall VFS onto kit
	## Determine if we have a Tclkit to do this work
	TCLKIT="${TCLKIT:-tclkit}"
	if echo 'exit 0' | "${TCLKIT}" >/dev/null 2>/dev/null; then
		## Install using existing Tclkit
		### Call installer
		echo "Running: \"${TCLKIT}\" installvfs.tcl \"${KITTARGET_NAME}\" starpack.vfs \"${ENABLECOMPRESSION}\" \"${KITTARGET_NAME}.new\""
		"${TCLKIT}" installvfs.tcl "${KITTARGET_NAME}" starpack.vfs "${ENABLECOMPRESSION}" "${KITTARGET_NAME}.new" || exit 1
	else
		if echo 'exit 0' | ./kit >/dev/null 2>/dev/null; then
			## Bootstrap (cannot cross-compile)
			### Call installer
			echo "set argv [list {${KITTARGET_NAME}} starpack.vfs {${ENABLECOMPRESSION}} {${KITTARGET_NAME}.new}]" > setup.tcl
			echo 'if {[catch { clock seconds }]} { proc clock args { return 0 } }' >> setup.tcl
			echo 'source installvfs.tcl' >> setup.tcl
			echo 'Running: echo | ./kit setup.tcl'
			echo | ./kit setup.tcl || exit 1
		else
			## Install using Tclsh, which may work if we're not using Metakit
			### Call installer
			echo "Running: \"${TCLSH_NATIVE}\" installvfs.tcl \"${KITTARGET_NAME}\" starpack.vfs \"${ENABLECOMPRESSION}\" \"${KITTARGET_NAME}.new\""
			"${TCLSH_NATIVE}" installvfs.tcl "${KITTARGET_NAME}" starpack.vfs "${ENABLECOMPRESSION}" "${KITTARGET_NAME}.new" || exit 1
		fi
	fi
	cat "${KITTARGET_NAME}.new" > "${KITTARGET_NAME}" || exit 1
	rm -f "${KITTARGET_NAME}.new"
	# Cleanup
	if [ "${KITTARGET}" = "kitdll" ]; then
		## Remove built interpreters if we are building KitDLL --
		## they're just tiny stubs anyway
		rm -f kit
	fi
	exit 0
) || exit 1
exit 0
 | 
Modified kitsh/buildsrc/kitsh-0.0/installvfs.tcl from [5bb6ad9ccb] to [1bbb6d2733].
| 1 2 3 | #! /usr/bin/env tclsh # Parse arguments | < | | | > | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 
#! /usr/bin/env tclsh
# Parse arguments
if {[llength $argv] != 4} {
	puts stderr "Usage: installvfs.tcl <kitfile> <vfsdir> <enable_compression> <outfile>"
	exit 1
}
set kitfile [lindex $argv 0]
set vfsdir [lindex $argv 1]
set opt_compression [lindex $argv 2]
if {$opt_compression == ""} {
	set opt_compression 1
}
set outfile [lindex $argv 3]
# Determine what storage mechanism is being used
set fd [open Makefile.common r]
set data [read $fd]
close $fd
if {[string match "*KIT_STORAGE_ZIP*" $data]} {
 | 
| ︙ | ︙ | |||
| 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | 
		}
	}
}
# Update the kit, based on what kind of kit this is
switch -- $tclKitStorage {
	"mk4" {
		if {[catch {
			# Try as if a pre-existing Tclkit, or a tclsh
			package require vfs::mk4
		}]} {
			# Try as if uninitialized Tclkit
			catch {
				load "" vfs
				load "" Mk4tcl
				source [file join $vfsdir lib/vfs/vfsUtils.tcl]
				source [file join $vfsdir lib/vfs/vfslib.tcl]
				source [file join $vfsdir lib/vfs/mk4vfs.tcl]
			}
		}
		set mk4vfs::compress $opt_compression
 | > > | > > | | 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | 
		}
	}
}
# Update the kit, based on what kind of kit this is
switch -- $tclKitStorage {
	"mk4" {
		file copy $kitfile $outfile
		if {[catch {
			# Try as if a pre-existing Tclkit, or a tclsh
			package require vfs::mk4
		}]} {
			# Try as if uninitialized Tclkit
			catch {
				load "" vfs
				load "" Mk4tcl
				source [file join $vfsdir lib/vfs/vfsUtils.tcl]
				source [file join $vfsdir lib/vfs/vfslib.tcl]
				source [file join $vfsdir lib/vfs/mk4vfs.tcl]
			}
		}
		set mk4vfs::compress $opt_compression
		set handle [vfs::mk4::Mount $outfile /kit -nocommit]
		recursive_copy $vfsdir /kit
		vfs::unmount /kit
	}
	"zip" {
		file copy $kitfile $outfile
		set kitfd [open $outfile a+]
		fconfigure $kitfd -translation binary
		cd $vfsdir
		if {$tcl_platform(platform) eq "windows"} {
			set null NUL
		} else {
			set null /dev/null
 | 
| ︙ | ︙ | |||
| 114 115 116 117 118 119 120 | 
		} err]} {
			puts stderr "Error while updating executable: $err"
			exit 1
		}
	}
	"cvfs" {
 | | | 119 120 121 122 123 124 125 126 127 128 | 
		} err]} {
			puts stderr "Error while updating executable: $err"
			exit 1
		}
	}
	"cvfs" {
		file copy $kitfile $outfile
	}
}
 |