Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Tweak to how kits index teapot caches |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | practcl |
Files: | files | file ages | folders |
SHA3-256: |
bc30af25be3e12983a27df6297aa8a6e |
User & Date: | hypnotoad 2017-12-02 01:10:52 |
Context
2017-12-06
| ||
11:50 | Tweak to gloss over corrupted .tm files when indexing packages check-in: d28e2babbf user: hypnotoad tags: practcl | |
2017-12-02
| ||
01:10 | Tweak to how kits index teapot caches check-in: bc30af25be user: hypnotoad tags: practcl | |
2017-11-30
| ||
20:14 | Updated practcl. Wrappers now make the teapot directory unique for each platform check-in: a16bf83306 user: hypnotoad tags: practcl | |
Changes
Changes to practcl.tcl.
1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 .... 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 .... 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 |
} return $result } ### # Index all paths given as though they will end up in the same # virtual file system ### proc ::practcl::pkgindex_path args { set stack {} set buffer { lappend ::PATHSTACK $dir } foreach base $args { set base [file normalize $base] set paths {} ................................................................................ set path_indexed($path) 0 } } else { puts [list WARNING: NO PATHS FOUND IN $base] } set path_indexed($base) 1 set path_indexed([file join $base boot tcl]) 1 foreach teapath [glob -nocomplain [file join $base teapot *]] { set pkg [file tail $teapath] append buffer [list set pkg $pkg] append buffer { set pkginstall [file join $::tcl_teapot $pkg] if {![file exists $pkginstall]} { installDir [file join $dir teapot $pkg] $pkginstall } } } foreach path $paths { if {$path_indexed($path)} continue set thisdir [file_relative $base $path] set idxbuf [::practcl::_pkgindex_directory $path] if {[string length $idxbuf]} { incr path_indexed($path) append buffer "set dir \[set PKGDIR \[file join \[lindex \$::PATHSTACK end\] $thisdir\]\]" \n ................................................................................ set dir [file dirname $::PKGIDXFILE] if {$::tcl_platform(platform) eq "windows"} { set ::g(HOME) [file join [file normalize $::env(LOCALAPPDATA)] tcl] } else { set ::g(HOME) [file normalize ~/tcl] } set ::tcl_teapot [file join $::g(HOME) teapot $::tcl_teapot_profile] } puts $fout {lappend ::auto_path $::tcl_teapot} puts $fout [list proc installDir [info args ::practcl::installDir] [info body ::practcl::installDir]] set EXEEXT [my define get EXEEXT] set tclkit_bare [my define get tclkit_bare] set buffer [::practcl::pkgindex_path $vfspath] puts $fout $buffer puts $fout { # Advertise statically linked packages foreach {pkg script} [array get ::kitpkg] { eval $script } } close $fout ::practcl::mkzip ${exename}${EXEEXT} $tclkit_bare $vfspath if { [my define get TEACUP_OS] ne "windows" } { file attributes ${exename}${EXEEXT} -permissions a+x } } } |
| < < < < < < < < < < > < < < > > > > > > > > > > > > > > > |
1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 .... 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 .... 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 |
} return $result } ### # Index all paths given as though they will end up in the same # virtual file system ### proc ::practcl::pkgindex_path {args} { set stack {} set buffer { lappend ::PATHSTACK $dir } foreach base $args { set base [file normalize $base] set paths {} ................................................................................ set path_indexed($path) 0 } } else { puts [list WARNING: NO PATHS FOUND IN $base] } set path_indexed($base) 1 set path_indexed([file join $base boot tcl]) 1 foreach path $paths { if {$path_indexed($path)} continue set thisdir [file_relative $base $path] set idxbuf [::practcl::_pkgindex_directory $path] if {[string length $idxbuf]} { incr path_indexed($path) append buffer "set dir \[set PKGDIR \[file join \[lindex \$::PATHSTACK end\] $thisdir\]\]" \n ................................................................................ set dir [file dirname $::PKGIDXFILE] if {$::tcl_platform(platform) eq "windows"} { set ::g(HOME) [file join [file normalize $::env(LOCALAPPDATA)] tcl] } else { set ::g(HOME) [file normalize ~/tcl] } set ::tcl_teapot [file join $::g(HOME) teapot $::tcl_teapot_profile] lappend ::auto_path $::tcl_teapot } puts $fout [list proc installDir [info args ::practcl::installDir] [info body ::practcl::installDir]] set buffer [::practcl::pkgindex_path $vfspath] puts $fout $buffer puts $fout { # Advertise statically linked packages foreach {pkg script} [array get ::kitpkg] { eval $script } } puts $fout { ### # Cache binary packages distributed as dynamic libraries in a known location ### foreach teapath [glob -nocomplain [file join $dir teapot $::tcl_teapot_profile *]] { set pkg [file tail $teapath] set pkginstall [file join $::tcl_teapot $pkg] if {![file exists $pkginstall]} { installDir $teapath $pkginstall } } } close $fout set EXEEXT [my define get EXEEXT] set tclkit_bare [my define get tclkit_bare] ::practcl::mkzip ${exename}${EXEEXT} $tclkit_bare $vfspath if { [my define get TEACUP_OS] ne "windows" } { file attributes ${exename}${EXEEXT} -permissions a+x } } } |