<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/9cae30a703869f742f71257e238daacd013ee29a">https://github.com/macports/mpbb/commit/9cae30a703869f742f71257e238daacd013ee29a</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 9cae30a703869f742f71257e238daacd013ee29a
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Mon May 16 23:41:42 2022 +1000
<span style='display:block; white-space:pre;color:#404040;'> mpbb-cleanup: clean out failcache daily
</span>---
mpbb-cleanup | 6 ++++++
tools/failcache-cleanup.tcl | 44 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 50 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/mpbb-cleanup b/mpbb-cleanup
</span><span style='display:block; white-space:pre;color:#808080;'>index 0e5b570..5d4b177 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/mpbb-cleanup
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/mpbb-cleanup
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -90,6 +90,12 @@ cleanup() {
</span> find "${option_prefix}/var/macports/distfiles" -type f \! -newerat "4 hours ago" -print -delete | sed -E 's/^/Deleting distfile /'
find "${option_prefix}/var/macports/distfiles" -type d -mindepth 1 -empty -print -delete | sed -E 's/^/Deleting directory /'
fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ # clean out failcache at most once every 24 hours
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ timestamp="${option_work_dir}/failcache-cleanup.timestamp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if [[ ! -f "$timestamp" || $(($(date +%s) - $(stat -f %m "$timestamp"))) -gt 86400 ]]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "$(readlink "${option_prefix}/bin/port-tclsh")" "${thisdir}/tools/failcache-cleanup.tcl" --failcache_dir "${option_failcache_dir}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ touch "$timestamp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span> fi
echo
for dir in build logs; do
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/tools/failcache-cleanup.tcl b/tools/failcache-cleanup.tcl
</span>new file mode 100755
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..e840919
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/tools/failcache-cleanup.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,44 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#!/usr/bin/env port-tclsh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# clear out stale entries and entries for deleted ports from the failcache
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+package require macports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+mportinit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+source [file join [file dirname [info script]] failcache.tcl]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set failcache_dir ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+while {[string range [lindex $::argv 0] 0 1] eq "--"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ switch -- [lindex $::argv 0] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --failcache_dir {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set failcache_dir [lindex $::argv 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set ::argv [lrange $::argv 1 end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ error "unknown option: [lindex $::argv 0]"
</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 ::argv [lrange $::argv 1 end]
</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 {$failcache_dir eq ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ error "must specify --failcache_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;'>+ foreach f [glob -directory $failcache_dir -nocomplain -tails *] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lassign [split $f " "] entry_portname entry_variants entry_hash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set result [mportlookup $entry_portname]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[llength $result] < 2} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts "Port '$entry_portname' no longer exists; removing failcache entry $f"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file delete -force [file join $failcache_dir $f]
</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;'>+ array unset portinfo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ array set portinfo [lindex $result 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set hash [port_files_checksum $portinfo(porturl)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$entry_hash ne $hash} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts "Removing stale failcache entry: $f"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file delete -force [file join $failcache_dir $f]
</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></pre><pre style='margin:0'>
</pre>