I tried this: line 22: ASF::SVN.multiUpdate (members_txt, message, env, _) do |text| # default command is empty command = "" # remove user's entry unless text.sub! entry, '' # e.g. if the workspace was out of date raise Exception.new("Failed to remove existing entry -- try refreshing") end
# determine where to put the entry if @action == 'emeritus' index = text.index(/^\s\*\)\s/, text.index(/^Emeritus/)) entry.sub! %r{\s*/\* deceased, .+?\*/},'' # drop the deceased comment if necessary # if pending emeritus request was found, move it to emeritus extra = [] if @emeritusfilename.index('/emeritus-requests-received/') emeritus_url = ASF::SVN.svnurl('emeritus') command = "svn mv #{@emeritusfilename} #{emeritus_url}" Wunderbar.warn "memstat.json.rb action emeritus commmand: #{command}" extra << ['mv', @emeritusfilename, emeritus_url] end elsif @action == 'active' index = text.index(/^\s\*\)\s/, text.index(/^Active/)) entry.sub! %r{\s*/\* deceased, .+?\*/},'' # drop the deceased comment if necessary # if emeritus file was found, move it to emeritus-reinstated if @emeritusfilename.index('/emeritus/') emeritus_reinstated_url = ASF::SVN.svnurl('emeritus-reinstated') command = "svn mv #{@emeritusfilename} #{emeritus_reinstated_url}" Wunderbar.warn "memstat.json.rb action emeritus commmand: #{command}" end elsif @action == 'deceased' index = text.index(/^\s\*\)\s/, text.index(/^Deceased/)) entry.sub! %r{\n}, " /* deceased, #{@dod} */\n" # add the deceased comment # else # raise Exception.new("invalid action #{action.inspect}") end # perform the insertion text.insert index, entry # save the updated text ASF::Member.text = text # return the updated (and normalized) text and extra svn command [ASF::Member.text, extra] end if updmem #only update members.txt for secretary actions The above is line 66 I got this: { "exception": "#<SyntaxError: /Users/clr/apache/git/whimsy/www/roster/views/actions/memstat.json.rb:22: syntax error, unexpected ')', expecting '='\n ... (members_txt, message, env, _) do |text|\n... ^\n/ Users/clr/apache/git/whimsy/www/roster/views/actions/memstat.json.rb:66: syntax error, unexpected `end', expecting end-of-input\n end if updmem #only update membe...\n^~~\n>", "backtrace": [ "/Users/clr/apache/git/whimsy/www/roster/main.rb:204:in `block in <top (required)>'", "/Users/clr/apache/git/whimsy/lib/whimsy/asf/rack.rb:223:in `call'", "/Users/clr/apache/git/whimsy/lib/whimsy/asf/rack.rb:48:in `call'", "/Users/clr/apache/git/whimsy/lib/whimsy/asf/rack.rb:200:in `call'", "/Users/clr/apache/git/whimsy/lib/whimsy/asf/rack.rb:254:in `call'" ] } > On Jun 6, 2020, at 9:04 AM, sebb <seb...@gmail.com> wrote: > > The full method name is > > ASF::SVN.multiUpdate > > There's an example call here: > > https://lists.apache.org/thread.html/r97d0fc64bf633e643889cba21e18b5bb60c7d068430c36c447119887%40%3Cdev.whimsical.apache.org%3E > > On Sat, 6 Jun 2020 at 15:47, Craig Russell <apache....@gmail.com> wrote: >> >> Is there an example of the use of this method? I cannot seem to call it from >> the memstat.json.rb code. >> >> Thanks, >> Craig >> >> >>> On Jun 6, 2020, at 7:18 AM, s...@apache.org wrote: >>> >>> 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 de90463 Add dryrun to multiUpdate >>> de90463 is described below >>> >>> commit de904636aedc54e7707d8e2b1858a6930058d737 >>> Author: Sebb <s...@apache.org> >>> AuthorDate: Sat Jun 6 15:18:19 2020 +0100 >>> >>> Add dryrun to multiUpdate >>> --- >>> lib/whimsy/asf/svn.rb | 8 ++++++-- >>> 1 file changed, 6 insertions(+), 2 deletions(-) >>> >>> diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb >>> index 6f1d722..9af5dbb 100644 >>> --- a/lib/whimsy/asf/svn.rb >>> +++ b/lib/whimsy/asf/svn.rb >>> @@ -578,7 +578,7 @@ module ASF >>> # extra << ['rm',url3] >>> # [out, extra] >>> # end >>> - def self.multiUpdate(path, msg, env, _) >>> + def self.multiUpdate(path, msg, env, _, options = {}) >>> require 'tempfile' >>> tmpdir = Dir.mktmpdir.untaint >>> if File.file? path >>> @@ -638,7 +638,11 @@ module ASF >>> end >>> >>> # Now commit everything >>> - ASF::SVN.svnmucc(cmds,msg,env,_,filerev,tmpdir) >>> + if options[:dryrun] >>> + puts cmds # TODO: not sure this is correct for Wunderbar >>> + else >>> + ASF::SVN.svnmucc(cmds,msg,env,_,filerev,tmpdir) >>> + end >>> ensure >>> FileUtils.rm_rf tmpdir >>> end >>> >> >> Craig L Russell >> c...@apache.org >> Craig L Russell c...@apache.org