chiark / gitweb /
wiki: log checkupdates start/stop time and command line for each run
authorHans-Christoph Steiner <hans@eds.org>
Wed, 17 Jan 2018 14:18:05 +0000 (15:18 +0100)
committerHans-Christoph Steiner <hans@eds.org>
Mon, 22 Jan 2018 12:49:10 +0000 (13:49 +0100)
fdroidserver/checkupdates.py
fdroidserver/common.py

index a303f7fe6c3fcd17c306e974aa527cc5a90bb0c4..66c33608a40b815d8130fb6a1310b72e2f83ce8e 100644 (file)
@@ -23,6 +23,7 @@ import urllib.request
 import urllib.error
 import time
 import subprocess
+import sys
 from argparse import ArgumentParser
 import traceback
 import html
@@ -512,6 +513,7 @@ def checkupdates_app(app):
 
 config = None
 options = None
+start_timestamp = time.gmtime()
 
 
 def main():
@@ -580,6 +582,27 @@ def main():
             logging.error(_("...checkupdate failed for {appid} : {error}")
                           .format(appid=appid, error=e))
 
+    if config.get('wiki_server') and config.get('wiki_path'):
+        try:
+            import mwclient
+            site = mwclient.Site((config['wiki_protocol'], config['wiki_server']),
+                                 path=config['wiki_path'])
+            site.login(config['wiki_user'], config['wiki_password'])
+
+            # Write a page with the last build log for this version code
+            wiki_page_path = 'checkupdates_' + time.strftime('%s', start_timestamp)
+            newpage = site.Pages[wiki_page_path]
+            txt = ''
+            txt += "* command line: <code>" + ' '.join(sys.argv) + "</code>\n"
+            txt += "* started at " + common.get_wiki_timestamp(start_timestamp) + '\n'
+            txt += "* completed at " + common.get_wiki_timestamp() + '\n'
+            txt += "\n\n"
+            newpage.save(txt, summary='Run log')
+            newpage = site.Pages['checkupdates']
+            newpage.save('#REDIRECT [[' + wiki_page_path + ']]', summary='Update redirect')
+        except Exception as e:
+            logging.error(_('Error while attempting to publish log: %s') % e)
+
     logging.info(_("Finished"))
 
 
index 439a999162a425a5570def696e4325e9cbb82c6b..456b6e997f596c36bdcac6cca3a03cc2da82504b 100644 (file)
@@ -3012,6 +3012,9 @@ def get_examples_dir():
     return examplesdir
 
 
-def get_wiki_timestamp():
+def get_wiki_timestamp(timestamp=None):
     """Return current time in the standard format for posting to the wiki"""
-    return time.strftime("%Y-%m-%d %H:%M:%SZ", time.gmtime())
+
+    if timestamp is None:
+        timestamp = time.gmtime()
+    return time.strftime("%Y-%m-%d %H:%M:%SZ", timestamp)