Browse Source
The bin-folder launch shim sourced main.tcl from ../src/_build/<kit>.vfs trees - the pre-G-155 kit-assembly workdir. Since the src/_bake rename those paths resolve only to the stale leftover _build trees, so the shim would silently launch outdated payloads. Nothing references or deploys it (no punk_wrap.toml scriptset, no bin/punk.tcl copy; bin/punk.ps1 is an unrelated multishell polyglot), and its fauxlink fallback comments predate current vfs practice. Removed at user direction rather than retargeted to src/_bake. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.commaster
1 changed files with 0 additions and 100 deletions
@ -1,100 +0,0 @@
|
||||
#puts stdout "launching punk" |
||||
set dirname [file dirname [file normalize [info script]]] |
||||
if {[file tail $dirname] eq "bin"} { |
||||
lassign [split [info tclversion] .] tclmajorv tclminorv |
||||
#we shouldn't try to call into the ../src/vfs/* folders - as they are 'partials' |
||||
#instead we call into one of the ../src/_build/exename.vfs folders |
||||
|
||||
if {"windows" eq $::tcl_platform(platform)} { |
||||
set ext ".exe" |
||||
} else { |
||||
set ext "" |
||||
} |
||||
switch -- $tclmajorv { |
||||
8 { |
||||
set vfsfolder [file normalize [file join $dirname "../src/_build/punk86${ext}.vfs"]] |
||||
} |
||||
9 { |
||||
set vfsfolder [file normalize [file join $dirname "../src/_build/punk902z${ext}.vfs"]] |
||||
} |
||||
default { |
||||
error "no vfs available for tcl major version $tclmajorv" |
||||
} |
||||
} |
||||
set launchpath [file join $vfsfolder main.tcl] |
||||
if {[file exists [file join $dirname $launchpath]]} { |
||||
#tclsh [file join $dirname $launchpath] {*}$::argv |
||||
namespace eval ::punkboot { |
||||
#this drop-box style interaction is not pretty.. |
||||
#variable vfs_entry_point |
||||
#set vfs_entry_point $launchpath ;#tell a cooperating main.tcl what's going on |
||||
variable internal_paths |
||||
#set internal_paths [list [info library] $vfscommonfolder $vfsfolder] |
||||
set internal_paths [list [file dirname [file dirname [info nameofexecutable]]]] |
||||
} |
||||
source [file join $dirname $launchpath] |
||||
} else { |
||||
#todo - tidy up - we don't use fauxlinks in src/vfs/xxx.vfs anymore |
||||
# - but we may want to fauxlink the active exe vfs above? REVIEW |
||||
set failed 1 |
||||
set tried_list [list $launchpath] |
||||
set fauxlinks [glob -nocomplain -dir $vfsfolder -type f main.tcl#*.fxlnk main.tcl#*.fauxlink] |
||||
#puts stderr "globbed in $vfsfolder result: $fauxlinks" |
||||
if {[llength $fauxlinks] >= 1} { |
||||
set vfscommonfolder [file join [file dirname $vfsfolder] _vfscommon.vfs] |
||||
#review - we don't know what other vfs folder might make up the unbuild vfs |
||||
#_vfscommon.vfs is standard - REVIEW |
||||
foreach vfs [list $vfscommonfolder $vfsfolder] { |
||||
if {[file exists $vfs/modules]} { |
||||
tcl::tm::add $vfs/modules |
||||
} |
||||
if {[file exists $vfs/modules_tcl${tclmajorv}]} { |
||||
tcl::tm::add $vfs/modules_tcl${tclmajorv} |
||||
} |
||||
if {[file exists $vfs/lib]} { |
||||
lappend ::auto_path $vfs/lib |
||||
} |
||||
} |
||||
if {![catch {package require fauxlink} errM]} { |
||||
set maintcl_fauxlink [lindex $fauxlinks 0] |
||||
set fdict [fauxlink::resolve $maintcl_fauxlink] |
||||
set tags [dict get $fdict tags] |
||||
#puts stdout "trying fauxlink: $fdict" |
||||
if {[dict get $fdict name] eq "main.tcl" && "punk::boot,merge_over" in "$tags"} { |
||||
set target [dict get $fdict targetpath] |
||||
if {[file pathtype $target] eq "relative"} { |
||||
set targetfile [file join $vfsfolder $target] |
||||
} else { |
||||
set targetfile $target |
||||
} |
||||
set targetfile [file normalize $targetfile] |
||||
puts stdout "trying fauxlinked file: $targetfile" |
||||
if {[file exists $targetfile]} { |
||||
namespace eval ::punkboot { |
||||
#this drop-box style interaction is not pretty.. |
||||
variable vfs_entry_point |
||||
set vfs_entry_point $launchpath ;#tell a cooperating main.tcl what's going on |
||||
variable internal_paths |
||||
set internal_paths [list $vfscommonfolder $vfsfolder] |
||||
} |
||||
set failed 0 |
||||
source $targetfile |
||||
} else { |
||||
puts "fauxlink target: $targetfile doesn't seem to exist" |
||||
} |
||||
} |
||||
} else { |
||||
puts stderr "Couldn't load fauxlink package. Tried tm paths [list $vfscommonfolder/modules $vfsfolder/modules]" |
||||
} |
||||
} else { |
||||
puts stderr "Couldn't find a fauxlink file as a fallback" |
||||
} |
||||
if {$failed} { |
||||
puts stderr "Unable to locate punk${tclmajorv} entry-point main.tcl tried:[join $tried_list \n]" |
||||
} |
||||
} |
||||
} else { |
||||
puts stderr "punk launch script must be located in the punk bin folder" |
||||
} |
||||
#puts stdout "-done-" |
||||
|
||||
Loading…
Reference in new issue