This is an automated email from the ASF dual-hosted git repository.

sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git


The following commit(s) were added to refs/heads/master by this push:
     new b3e3bbd5 Check for invalid revision; catchup on startup
b3e3bbd5 is described below

commit b3e3bbd566f76a921f86b7e740910a210ca379d1
Author: Sebb <s...@apache.org>
AuthorDate: Sun Mar 3 23:41:22 2024 +0000

    Check for invalid revision; catchup on startup
---
 tools/pubsub-ci-email.rb | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/tools/pubsub-ci-email.rb b/tools/pubsub-ci-email.rb
index 390ce0a0..25be5102 100755
--- a/tools/pubsub-ci-email.rb
+++ b/tools/pubsub-ci-email.rb
@@ -215,11 +215,11 @@ if $0 == __FILE__
   ASF::Mail.configure
 
   # show initial start
-  previous_revision = File.read(PREVIOUS_REVISION).chomp
+  previous_revision = File.read(PREVIOUS_REVISION).chomp.sub('r','').to_i
 
   svnrev, err = ASF::SVN.getInfoItem(SOURCE_URL, 'last-changed-revision')
   if svnrev
-    latest = "r#{svnrev}"
+    latest = svnrev.to_i
   else
     puts stamp err
     latest = 'unknown'
@@ -228,8 +228,17 @@ if $0 == __FILE__
   subject = "Started pubsub-ci-email from revision #{previous_revision}, 
current #{latest}"
   puts stamp subject
 
+  if previous_revision > latest
+    error = "ERROR: Previous revision #{previous_revision} > latest 
#{latest}!!"
+  else
+    error = nil
+  end
+
   body = <<~EOD
   This is a test email
+  Previous revision #{previous_revision}
+  Current  revision #{latest}
+  #{error}
 
   Generated by #{__FILE__}
   EOD
@@ -241,6 +250,8 @@ if $0 == __FILE__
   end
   mail.deliver!
 
+  raise ArgumentError.new error if error
+  
   options = {}
   args = ARGV.dup # preserve ARGV for relaunch
 
@@ -257,6 +268,9 @@ if $0 == __FILE__
     pubsub_CRED = File.read(pubsub_FILE).chomp.split(':') or raise 
ArgumentError.new "Missing credentials"
   end
 
+  # Catchup on any missed entries
+  handle_change(latest) if latest > previous_revision
+
   puts stamp(pubsub_URL)
   PubSub.listen(pubsub_URL, pubsub_CRED, options) do |event|
     puts stamp event if options[:debug]

Reply via email to