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

commit c0b10fed4de75554557c4440674ddb2000b1c96a
Author: Sebb <[email protected]>
AuthorDate: Tue Nov 24 00:17:58 2020 +0000

    Tidy up
---
 lib/whimsy/asf/svn.rb | 123 ++++++++++++++++++++++++--------------------------
 1 file changed, 60 insertions(+), 63 deletions(-)

diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb
index 9ab3c45..4fd7ed0 100644
--- a/lib/whimsy/asf/svn.rb
+++ b/lib/whimsy/asf/svn.rb
@@ -40,7 +40,7 @@ module ASF
         svn = Array(ASF::Config.get(:svn))
 
         # reload if repository changes
-        if File.exist?(REPOSITORY) && 
@@repository_mtime!=File.mtime(REPOSITORY)
+        if File.exist?(REPOSITORY) && @@repository_mtime != 
File.mtime(REPOSITORY)
           @repos = nil
         end
 
@@ -62,7 +62,7 @@ module ASF
             if Dir.exist? name
               out, _ = self.getInfoItem(name, 'url')
               if out
-                [out.sub(/^http:/,'https:'), name]
+                [out.sub(/^http:/, 'https:'), name]
               end
             end
           }.compact]
@@ -93,7 +93,7 @@ module ASF
       if includeAll
         self._all_repo_entries
       else
-        self._all_repo_entries.reject{|_k, v| v['depth'] == 'skip' or 
v['depth'] == 'delete'}
+        self._all_repo_entries.reject {|_k, v| v['depth'] == 'skip' or 
v['depth'] == 'delete'}
       end
     end
 
@@ -136,7 +136,7 @@ module ASF
       unless url # bad entry
         raise Exception.new("Unable to find url attribute for SVN entry 
#{name}")
       end
-      return (@base+url).to_s
+      return (@base + url).to_s
     end
 
     # fetch a repository URL by name - abort if not found
@@ -154,10 +154,10 @@ module ASF
     # assumes that the relative paths are cumulative, unlike URI.merge
     # name - the nickname for the URL
     # relpath - the relative path(s) to the file
-    def self.svnpath!(name,*relpath)
+    def self.svnpath!(name, *relpath)
       base = self.svnurl!(name)
-      base = base + '/' unless base.end_with? '/'
-      endpart = [relpath].join('/').sub(%r{^/+},'').gsub(%r{/+},'/')
+      base += '/' unless base.end_with? '/'
+      endpart = [relpath].join('/').sub(%r{^/+}, '').gsub(%r{/+}, '/')
       return base + endpart
     end
 
@@ -167,13 +167,13 @@ module ASF
     def self.find(name)
       return @testdata[name] if @testdata[name]
 
-      result = repos[(@mock+name.sub('private/','')).to_s.sub(/\/*$/, '')] ||
-        repos[(@base+name).to_s.sub(/\/*$/, '')] # lose trailing slash
+      result = repos[(@mock + name.sub('private/', '')).to_s.sub(/\/*$/, '')] 
||
+        repos[(@base + name).to_s.sub(/\/*$/, '')] # lose trailing slash
 
       # if name is a simple identifier (may contain '-'), try to match name in 
repository.yml
       if not result and name =~ /^[\w-]+$/
         entry = repo_entry(name)
-        result = find((@base+entry['url']).to_s) if entry
+        result = find((@base + entry['url']).to_s) if entry
       end
 
       # recursively try parent directory
@@ -193,11 +193,11 @@ module ASF
     def self.find!(name)
       result = self.find(name)
 
-      if not result
+      unless result
         entry = repo_entry(name)
         if entry
           raise Exception.new("Unable to find svn checkout for " +
-            "#{@base+entry['url']} (#{name})")
+            "#{@base + entry['url']} (#{name})")
         else
           raise Exception.new("Unable to find svn checkout for #{name}")
         end
@@ -206,7 +206,6 @@ module ASF
       result
     end
 
-
     # retrieve info, [err] for a path in svn
     # output looks like:
     #    Path: /srv/svn/steve
@@ -292,14 +291,14 @@ module ASF
     # retrieve list, [err] for a path in svn
     def self.list(path, user=nil, password=nil, timestamp=false)
       if timestamp
-        return self.svn(['list','--xml'], path, {user: user, password: 
password})
+        return self.svn(['list', '--xml'], path, {user: user, password: 
password})
       else
         return self.svn('list', path, {user: user, password: password})
       end
     end
 
     # These keys are common to svn_ and svn
-    VALID_KEYS=[:user, :password, :verbose, :env, :dryrun, :msg, :depth, 
:quiet, :item, :revision]
+    VALID_KEYS = %i[user password verbose env dryrun msg depth quiet item 
revision]
 
     # common routine to build SVN command line
     # returns [cmd, stdin] where stdin is the data for stdin (if any)
@@ -400,7 +399,7 @@ module ASF
     # - nil, err
     # - [cmd] if :dryrun
     # May raise ArgumentError
-    def self.svn(command, path , options = {})
+    def self.svn(command, path, options = {})
       raise ArgumentError.new 'command must not be nil' unless command
       raise ArgumentError.new 'path must not be nil' unless path
 
@@ -466,7 +465,7 @@ module ASF
       auth = options.delete(:auth)
       if auth
         # override any other auth
-        [:env, :user, :password].each do |k|
+        %i[env user password].each do |k|
           options.delete(k)
         end
       end
@@ -479,10 +478,10 @@ module ASF
       end
 
       # This ensures the output is captured in the response
-      _.system ['echo', [cmd,sysopts].inspect] if options[:verbose] # includes 
auth
+      _.system ['echo', [cmd, sysopts].inspect] if options[:verbose] # 
includes auth
 
       if options[:dryrun] # excludes auth
-        return _.system cmd.insert(0,'echo')
+        return _.system cmd.insert(0, 'echo')
       end
 
       #  N.B. Version 1.3.3 requires separate hashes for JsonBuilder and 
BuilderClass,
@@ -530,7 +529,7 @@ module ASF
     # Note: working copies updated out via cron jobs can only be accessed
     # read only by processes that run under the Apache web server.
     def self.updateSimple(path)
-      stdout, _ = self.svn('update',path)
+      stdout, _ = self.svn('update', path)
       revision = 0
       if stdout
         # extract revision number
@@ -603,7 +602,7 @@ module ASF
       Dir.mktmpdir do |tmpdir|
 
         # create an empty checkout
-        self.svn_('checkout', [self.getInfoItem(dir,'url'), tmpdir], _,
+        self.svn_('checkout', [self.getInfoItem(dir, 'url'), tmpdir], _,
           {depth: 'empty', env: env})
 
         # retrieve the file to be updated (may not exist)
@@ -633,7 +632,7 @@ module ASF
         # create/update the temporary copy
         if contents and not contents.empty?
           File.write tmpfile, contents
-          if not previous_contents
+          unless previous_contents
             self.svn_('add', tmpfile, _, {env: env}) # TODO is auth needed 
here?
           end
         elsif tmpfile and File.file? tmpfile
@@ -680,9 +679,9 @@ module ASF
     # For example:
     #     commands = []
     #     url1 = 'https://svn.../' # etc
-    #     commands << ['mv',url1,url2]
-    #     commands << ['rm',url3]
-    #   ASF::SVN.svnmucc_(commands,message,env,_,revision)
+    #     commands << ['mv', url1, url2]
+    #     commands << ['rm', url3]
+    #   ASF::SVN.svnmucc_(commands, message, env, _, revision)
     def self.svnmucc_(commands, msg, env, _, revision, options={})
 
       raise ArgumentError.new 'commands must be an array' unless 
commands.is_a? Array
@@ -690,7 +689,7 @@ module ASF
       raise ArgumentError.new 'env must not be nil' unless env
       raise ArgumentError.new '_ must not be nil' unless _
 
-      bad_keys = options.keys - [:dryrun, :verbose, :tmpdir, :root]
+      bad_keys = options.keys - %i[dryrun verbose tmpdir root]
       if bad_keys.size > 0
         raise ArgumentError.new "Following options not recognised: 
#{bad_keys.inspect}"
       end
@@ -737,10 +736,10 @@ module ASF
           end
         end
         if options[:verbose]
-          _.system 'echo',[syscmd.flatten,sysopts.to_s]
+          _.system 'echo', [syscmd.flatten, sysopts.to_s]
         end
         if options[:dryrun]
-          _.system syscmd.insert(0,'echo')
+          _.system syscmd.insert(0, 'echo')
         else
           if _.instance_of?(Wunderbar::JsonBuilder) or 
_.instance_of?(Wunderbar::TextBuilder)
             _.system syscmd, sysopts, sysopts # needs two hashes
@@ -833,12 +832,12 @@ module ASF
     #   :verbose - show what will be done
     #   :tmpdir - use this temporary directory (and don't remove it)
     # For example:
-    #   ASF::SVN.multiUpdate_(path,message,env,_) do |text|
+    #   ASF::SVN.multiUpdate_(path, message, env, _) do |text|
     #     out = '...'
     #     extra = []
     #     url1 = 'https://svn.../' # etc
-    #     extra << ['mv',url1,url2]
-    #     extra << ['rm',url3]
+    #     extra << ['mv', url1, url2]
+    #     extra << ['rm', url3]
     #     [out, extra]
     #   end
     def self.multiUpdate_(path, msg, env, _, options = {})
@@ -846,7 +845,7 @@ module ASF
       if File.file? path
         basename = File.basename(path)
         parentdir = File.dirname(path)
-        parenturl = ASF::SVN.getInfoItem(parentdir,'url')
+        parenturl = ASF::SVN.getInfoItem(parentdir, 'url')
       else
         uri = URI.parse(path)
         # allow file: and svn URIs for local testing
@@ -873,8 +872,8 @@ module ASF
 
         # N.B. the revision is required for the svnmucc put to prevent 
overriding a previous update
         # this is why the file is checked out rather than just extracted
-        filerev = 
ASF::SVN.getInfoItem(outputfile,'revision',env.user,env.password) # is auth 
needed here?
-        fileurl = ASF::SVN.getInfoItem(outputfile,'url',env.user,env.password)
+        filerev = ASF::SVN.getInfoItem(outputfile, 'revision', env.user, 
env.password) # is auth needed here?
+        fileurl = ASF::SVN.getInfoItem(outputfile, 'url', env.user, 
env.password)
 
         # get the new file contents and any extra svn commands
         contents, extra = yield File.read(outputfile)
@@ -894,7 +893,7 @@ module ASF
         if options[:dryrun]
           puts cmds # TODO: not sure this is correct for Wunderbar
         else
-          rc = ASF::SVN.svnmucc_(cmds,msg,env,_,filerev,{tmpdir: tmpdir, 
verbose: options[:verbose]})
+          rc = ASF::SVN.svnmucc_(cmds, msg, env, _, filerev, {tmpdir: tmpdir, 
verbose: options[:verbose]})
           raise "svnmucc failure #{rc} committing" unless rc == 0
           rc
         end
@@ -904,16 +903,16 @@ module ASF
     end
 
     EPOCH_SEP = ':' # separator
-    EPOCH_TAG = 'epoch'+EPOCH_SEP # marker in file to show epochs are present
+    EPOCH_TAG = 'epoch' + EPOCH_SEP # marker in file to show epochs are present
     EPOCH_LEN = EPOCH_TAG.size
     # update directory listing in /srv/svn/<name>.txt
     # N.B. The listing includes the trailing '/' so directory names can be 
distinguished
     # @return filerev, svnrev
-    # on error return nil,message
+    # on error return nil, message
     def self.updatelisting(name, user=nil, password=nil, storedates=false)
       url = self.svnurl(name)
       unless url
-        return nil,"Cannot find URL"
+        return nil, "Cannot find URL"
       end
       listfile, listfiletmp = self.listingNames(name)
       filerev = "0"
@@ -929,7 +928,7 @@ module ASF
         end
       rescue
       end
-      svnrev, err = self.getInfoItem(url,'last-changed-revision',user,password)
+      svnrev, err = self.getInfoItem(url, 'last-changed-revision', user, 
password)
       if svnrev
         begin
           unless filerev == svnrev && filedates == storedates
@@ -937,33 +936,33 @@ module ASF
             if storedates
               require 'nokogiri'
               require 'date'
-              open(listfiletmp,'w') do |w|
+              open(listfiletmp, 'w') do |w|
                 w.puts "#{EPOCH_TAG}#{svnrev}" # show that this file has epochs
-                xml_doc  = Nokogiri::XML(list)
+                xml_doc = Nokogiri::XML(list)
                 xml_doc.css('entry').each do |entry|
                   kind = entry.css('@kind').text
                   name = entry.at_css('name').text
                   date = entry.at_css('date').text
                   epoch = DateTime.parse(date).strftime('%s')
                   # The separator is the last character of the epoch tag
-                  w.puts "%s#{EPOCH_SEP}%s%s" % [epoch,name,kind=='dir' ? '/' 
: '']
+                  w.puts "%s#{EPOCH_SEP}%s%s" % [epoch, name, kind == 'dir' ? 
'/' : '']
                 end
               end
             else
-              open(listfiletmp,'w') do |w|
+              open(listfiletmp, 'w') do |w|
                 w.puts svnrev
                 w.puts list
               end
             end
-            File.rename(listfiletmp,listfile)
+            File.rename(listfiletmp, listfile)
           end
         rescue Exception => e
-          return nil,e.inspect
+          return nil, e.inspect
         end
       else
-        return nil,err
+        return nil, err
       end
-      return filerev,svnrev
+      return filerev, svnrev
 
     end
 
@@ -988,35 +987,33 @@ module ASF
           filerev = l.gets.chomp # TODO should we be checking filerev?
           if filerev.start_with?(EPOCH_TAG)
             if getEpoch
-              trimEpoch = -> x { x.split(EPOCH_SEP,2) } # return as array
+              trimEpoch = -> x { x.split(EPOCH_SEP, 2) } # return as array
             else
-              trimEpoch = -> x { x.split(EPOCH_SEP,2)[1] } # strip the epoch
+              trimEpoch = -> x { x.split(EPOCH_SEP, 2)[1] } # strip the epoch
             end
           else
             trimEpoch = nil
           end
           if trimSlash
             list = l.readlines.map {|x| x.chomp.chomp('/')}
-            list = list.map(&trimEpoch) if trimEpoch
-            return curtag, list
           else
             list = l.readlines.map(&:chomp)
-            list = list.map(&trimEpoch) if trimEpoch
-            return curtag, list
           end
+          list = list.map(&trimEpoch) if trimEpoch
+          return curtag, list
         end
       end
     end
 
     # Does this host's installation of SVN support --password-from-stdin?
-    def self.passwordStdinOK?()
+    def self.passwordStdinOK?
       return @svnHasPasswordFromStdin unless @svnHasPasswordFromStdin.nil?
-        out, _err, status = Open3.capture3('svn','help','cat', '-v')
-        if status.success? && out
-          @svnHasPasswordFromStdin = out.include? '--password-from-stdin'
-        else
-          @svnHasPasswordFromStdin = false
-        end
+      out, _err, status = Open3.capture3('svn', 'help', 'cat', '-v')
+      if status.success? && out
+        @svnHasPasswordFromStdin = out.include? '--password-from-stdin'
+      else
+        @svnHasPasswordFromStdin = false
+      end
       @svnHasPasswordFromStdin
     end
 
@@ -1028,7 +1025,7 @@ module ASF
       if svn.instance_of? String and svn.end_with? '/*'
         File.dirname(svn)
       else
-        File.join(ASF::Config.root,'svn')
+        File.join(ASF::Config.root, 'svn')
       end
     end
 
@@ -1037,8 +1034,8 @@ module ASF
     # [listing-name, temporary name]
     def self.listingNames(name)
       dir = self.svn_parent
-      return File.join(dir,"%s.txt" % name),
-             File.join(dir,"%s.tmp" % name)
+      return File.join(dir, "%s.txt" % name),
+             File.join(dir, "%s.tmp" % name)
     end
 
     # Get all the SVN entries

Reply via email to