<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-base.
</pre>
<p><a href="https://github.com/macports/macports-base/commit/8ae0d73589330693f3b17849fdd5e65f0f56a5c1">https://github.com/macports/macports-base/commit/8ae0d73589330693f3b17849fdd5e65f0f56a5c1</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 8ae0d7358 Add extract.rename option
</span>8ae0d7358 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 8ae0d73589330693f3b17849fdd5e65f0f56a5c1
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Fri Dec 9 19:10:17 2022 +1100
<span style='display:block; white-space:pre;color:#404040;'> Add extract.rename option
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> This restores the functionality of 7921b2e on an opt-in basis and
</span><span style='display:block; white-space:pre;color:#404040;'> without the semantic differences introduced by creating a symlink.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> See: https://trac.macports.org/ticket/66415
</span>---
src/port1.0/portextract.tcl | 23 ++++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portextract.tcl b/src/port1.0/portextract.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 791f44444..11a33b34b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portextract.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portextract.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -43,7 +43,7 @@ namespace eval portextract {
</span> }
# define options
<span style='display:block; white-space:pre;background:#ffe0e0;'>-options extract.only extract.mkdir extract.asroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+options extract.only extract.mkdir extract.rename extract.asroot
</span> commands extract
# Set up defaults
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -57,6 +57,7 @@ default extract.cmd {[findBinary gzip ${portutil::autoconf::gzip_path}]}
</span> default extract.pre_args -dc
default extract.post_args {| ${portutil::autoconf::tar_command} -xf -}
default extract.mkdir no
<span style='display:block; white-space:pre;background:#e0ffe0;'>+default extract.rename no
</span>
set_ui_prefix
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -124,7 +125,7 @@ proc portextract::extract_start {args} {
</span> }
proc portextract::extract_main {args} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- global UI_PREFIX filespath worksrcpath extract.dir use_dmg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global filespath extract.dir use_dmg
</span>
if {![exists distfiles] && ![exists extract.only]} {
# nothing to do
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -132,7 +133,7 @@ proc portextract::extract_main {args} {
</span> }
foreach distfile [option extract.only] {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_info "$UI_PREFIX [format [msgcat::mc "Extracting %s"] $distfile]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_info "$::UI_PREFIX [format [msgcat::mc "Extracting %s"] $distfile]"
</span> if {[file exists $filespath/$distfile]} {
option extract.args "'$filespath/$distfile'"
} else {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -156,5 +157,21 @@ proc portextract::extract_main {args} {
</span>
chownAsRoot ${extract.dir}
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[option extract.rename]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global workpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # rename whatever directory exists in $workpath to $worksrcdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set worksubdirs [glob -nocomplain -types d -directory $workpath *]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[llength $worksubdirs] == 1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set origpath [lindex $worksubdirs 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_debug [format [msgcat::mc "extract.rename: Renaming %s -> %s"] [file tail $origpath] [option worksrcdir]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ move $origpath [option worksrcpath]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {[llength $worksubdirs] == 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return -code error "extract.rename: no directories exist in $workpath"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return -code error "extract.rename: multiple directories exist in ${workpath}: $worksubdirs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> return 0
}
</pre><pre style='margin:0'>
</pre>