<pre style='margin:0'>
Kurt Hindenburg (kurthindenburg) pushed a commit to branch master
in repository macports-base.

</pre>
<p><a href="https://github.com/macports/macports-base/commit/d08d261f93844cea87f602e1f295e8a0ddc83bde">https://github.com/macports/macports-base/commit/d08d261f93844cea87f602e1f295e8a0ddc83bde</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 d08d261  reclaim: separate removing build and ccache locations (#178)
</span>d08d261 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit d08d261f93844cea87f602e1f295e8a0ddc83bde
</span>Author: Kurt Hindenburg <kurt.hindenburg@gmail.com>
AuthorDate: Sat May 30 10:54:56 2020 -0400

<span style='display:block; white-space:pre;color:#404040;'>    reclaim: separate removing build and ccache locations (#178)
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Do not actually remove the build and ccache locations, only the files
</span><span style='display:block; white-space:pre;color:#404040;'>    and folders underneath.
</span><span style='display:block; white-space:pre;color:#404040;'>    A followup to the discussions in (#175)
</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/60126
</span>---
 src/macports1.0/reclaim.tcl | 70 ++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 60 insertions(+), 10 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports1.0/reclaim.tcl b/src/macports1.0/reclaim.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 7bb8a34..f06566c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/reclaim.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/reclaim.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -77,6 +77,7 @@ namespace eval reclaim {
</span>         uninstall_inactive
         remove_distfiles
         remove_builds
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        remove_ccache
</span> 
         if {![macports::global_option_isset ports_dryrun]} {
             set last_run_contents [read_last_run_file]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -106,28 +107,77 @@ namespace eval reclaim {
</span>     }
 
     proc remove_builds {} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Delete portdbpath/build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Delete portdbpath/build directories
</span>         global macports::portdbpath
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        # The root build folder location
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # The root build directory location
</span>         set root_build      [file join ${macports::portdbpath} build]
 
         ui_msg "$macports::ui_prefix Build location: ${root_build}"
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[macports::global_option_isset ports_dryrun]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_msg "Deleting... (dry run)"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_info [msgcat::mc "Skipping deletion of all build directories under %s (dry run)" $root_build]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return
</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;'>+        set builddirs [glob -nocomplain -directory $root_build *]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[llength $builddirs] == 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_info [msgcat::mc "No build directories to delete"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>         set retval 0
         if {[info exists macports::ui_options(questions_yesno)]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            set retval [$macports::ui_options(questions_yesno) "" "" "" "y" 0 "Would you like to delete the entire build directory (including the default ccache location)?"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set retval [$macports::ui_options(questions_yesno) "" "" "" "y" 0 "Would you like to delete all the build directories?"]
</span>         }
 
         if {${retval} == 0} {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_info [msgcat::mc "Deleting all build directories under %s" $root_build]
</span>             try -pass_signal {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                if {[macports::global_option_isset ports_dryrun]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    ui_msg "Deleting... (dry run)"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    ui_info [msgcat::mc "Skipping deletion of %s (dry run)" $root_build]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    ui_info [msgcat::mc "Deleting %s" $root_build]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    file delete -force $root_build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                file delete -force -- {*}$builddirs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } catch {{*} eCode eMessage} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ui_debug "$::errorInfo"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ui_error "$eMessage"
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    proc remove_ccache {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Delete everything under ccache directory - default is build/.ccache
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        global macports::ccache_dir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {![file exists ${macports::ccache_dir}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_info [msgcat::mc "Skipping deletion of ccache directory: %s does not exist." $macports::ccache_dir]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return
</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;'>+        ui_msg "$macports::ui_prefix ccache location: ${macports::ccache_dir}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[macports::global_option_isset ports_dryrun]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_msg "Deleting... (dry run)"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_info [msgcat::mc "Skipping deletion of everything under %s (dry run)" $macports::ccache_dir]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return
</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;'>+        set ccachedirs [glob -nocomplain -directory $macports::ccache_dir *]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[llength $ccachedirs] == 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_info [msgcat::mc "No ccache directories to delete"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return
</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;'>+        set retval 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[info exists macports::ui_options(questions_yesno)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set retval [$macports::ui_options(questions_yesno) "" "" "" "y" 0 "Would you like to delete everything under the ccache directory?"]
</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;'>+        if {${retval} == 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_info [msgcat::mc "Deleting everything under %s" $macports::ccache_dir]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            try -pass_signal {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                file delete -force -- {*}$ccachedirs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } catch {{*} eCode eMessage} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ui_debug "$::errorInfo"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ui_error "$eMessage"
</span>             }
         }
     }
</pre><pre style='margin:0'>

</pre>