FYI: The line 22 that finally worked:
# update members.txt only for secretary actions
ASF::SVN.multiUpdate members_txt, message, env, _ do |text|

I don't know why having the () around the arguments is a problem, but it is. 
Could this be a bug in the "ruby compiler"?

Craig

> On Jun 6, 2020, at 1:41 PM, Craig Russell <apache....@gmail.com> wrote:
> 
> 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 
>> <mailto: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
>>  
>> <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 <mailto:c...@apache.org>
> 

Craig L Russell
c...@apache.org

Reply via email to