<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository mpbb.

</pre>
<p><a href="https://github.com/macports/mpbb/commit/739ab9913be521ae8b4283d62f2072c197331418">https://github.com/macports/mpbb/commit/739ab9913be521ae8b4283d62f2072c197331418</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 739ab99  Handle upcoming port image changes
</span>739ab99 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 739ab9913be521ae8b4283d62f2072c197331418
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Wed Jun 26 06:49:07 2024 +1000

<span style='display:block; white-space:pre;color:#404040;'>    Handle upcoming port image changes
</span>---
 tools/gather-archives.tcl | 51 +++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 43 insertions(+), 8 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/tools/gather-archives.tcl b/tools/gather-archives.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 79b3ee3..1ccee5a 100755
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/tools/gather-archives.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/tools/gather-archives.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -58,6 +58,8 @@ if {$license_db_dir ne ""} {
</span>     init_license_db $license_db_dir
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+set tarcmd "$macports::autoconf::tar_path [macports::get_tar_flags .${macports::portarchivetype}]cvf"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> file stat $staging_dir stat_array
 set staging_device $stat_array(dev)
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -91,7 +93,28 @@ while {[gets $infd line] >= 0} {
</span>             set archive_type private
             set archive_site $archive_site_private
         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set archive_path [$e location]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set portimage_path [$e location]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Port image may sometimes be a directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[file isfile $portimage_path]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set archive_path $portimage_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set staging_operation copy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set archive_path ${portimage_path}.${macports::portarchivetype}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Check if an archive also exists
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[file isfile $archive_path]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # The archive is not the image, so it can be safely
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # deleted after staging.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set staging_operation move
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } elseif {[file isdirectory $portimage_path]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # The archive was either somehow never created, or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # has since been deleted. Recreate it if needed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set staging_operation create
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # No portimage at all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                puts "Image for [$e name] @[$e version]_[$e revision][$e variants] seems to be missing"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>         set archive_basename [file tail $archive_path]
         set archive_name_encoded [portfetch::percent_encode $archive_basename]
         if {![catch {curl getsize ${archive_site}/[$e name]/${archive_name_encoded}} size] && $size > 0} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -102,13 +125,25 @@ while {[gets $infd line] >= 0} {
</span>         puts "Staging ${archive_type} archive for upload: ${archive_basename}"
         set archive_staging_dir [file join ${staging_dir} ${archive_type} [$e name]]
         file mkdir $archive_staging_dir
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        file stat $archive_path stat_array
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {$stat_array(dev) == $staging_device} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            puts "creating hardlink to $archive_path at [file join $archive_staging_dir $archive_basename]"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            file link -hard [file join $archive_staging_dir $archive_basename] $archive_path
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            puts "copying $archive_path to $archive_staging_dir"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            file copy -force -- $archive_path $archive_staging_dir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        switch $staging_operation {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            copy {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                file stat $archive_path stat_array
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {$stat_array(dev) == $staging_device} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    puts "creating hardlink to $archive_path in $archive_staging_dir"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    file link -hard [file join $archive_staging_dir $archive_basename] $archive_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    puts "copying $archive_path to $archive_staging_dir"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    file copy -force -- $archive_path $archive_staging_dir
</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;'>+            create {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                puts "creating $archive_basename from $portimage_path"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                system -W $portimage_path "$tarcmd [file join $archive_staging_dir $archive_basename] ."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            move {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                puts "moving $archive_path to $archive_staging_dir"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                file rename -force -- $archive_path $archive_staging_dir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span>         }
     }
 }
</pre><pre style='margin:0'>

</pre>