You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by Sam Ruby <ru...@apache.org> on 2016/03/06 04:15:02 UTC

[whimsy.git] [1/1] Commit 557e77a: update cache after successful commit

Commit 557e77a50f1d0c9afeaf01e7e0e5413db5c25eea:
    update cache after successful commit


Branch: refs/heads/master
Author: Sam Ruby <ru...@intertwingly.net>
Committer: Sam Ruby <ru...@intertwingly.net>
Pusher: rubys <ru...@apache.org>

------------------------------------------------------------
lib/whimsy/asf/committee.rb                                  | +++++++ --
www/roster/views/actions/committee.json.rb                   | +++++++++ -
------------------------------------------------------------
19 changes: 16 additions, 3 deletions.
------------------------------------------------------------


diff --git a/lib/whimsy/asf/committee.rb b/lib/whimsy/asf/committee.rb
index 46faa81..27cb126 100644
--- a/lib/whimsy/asf/committee.rb
+++ b/lib/whimsy/asf/committee.rb
@@ -52,14 +52,19 @@ def self.load_committee_info
         return @committee_info 
       end
 
-      list = Hash.new {|hash, name| hash[name] = find(name)}
 
       @committee_mtime = File.mtime(file)
       @@svn_change = Time.parse(
         `svn info #{file}`[/Last Changed Date: (.*) \(/, 1]).gmtime
 
+      parse_committee_info File.read(file)
+    end
+
+    def self.parse_committee_info(contents)
+      list = Hash.new {|hash, name| hash[name] = find(name)}
+
       # Split the file on lines starting "* ", i.e. the start of each group in section 3
-      info = File.read(file).split(/^\* /)
+      info = contents.split(/^\* /)
       # Extract the text before first entry in section 3 and split on section headers,
       # keeping sections 1 (COMMITTEES) and 2 (REPORTING).
       head, report = info.shift.split(/^\d\./)[1..2]
diff --git a/www/roster/views/actions/committee.json.rb b/www/roster/views/actions/committee.json.rb
index 97c3021..e6617e3 100644
--- a/www/roster/views/actions/committee.json.rb
+++ b/www/roster/views/actions/committee.json.rb
@@ -53,11 +53,19 @@
       File.write(file, info)
 
       # commit changes
-      Kernel.system 'svn', 'commit', '--quiet',
+      rc = Kernel.system 'svn', 'commit', '--quiet',
         '--no-auth-cache', '--non-interactive',
         '--username', env.user.untaint, '--password', env.password.untaint,
         tmpdir.untaint, '--message',
         "#{@pmc} #{@action == 'add' ? '+' : '-'}= #{@id}"
+
+      if rc
+        # update cache
+        ASF::Committee.parse_committee_info(info)
+      else
+        # die
+        raise Error.new('Update committee-info.txt failed')
+      end
     end
   end