From fd5332ae13c3621e32c7e3b15e4740bc0e160c22 Mon Sep 17 00:00:00 2001
From: Rolf Niepraschk <Rolf.Niepraschk@ptb.de>
Date: Mon, 17 Aug 2020 14:52:45 +0200
Subject: [PATCH] preparation of automatic update (2)

---
 newRevision | 14 ++++++++++++++
 server.py   | 21 ++++++++++++++++++++-
 2 files changed, 34 insertions(+), 1 deletion(-)
 create mode 100755 newRevision

diff --git a/newRevision b/newRevision
new file mode 100755
index 0000000..da3b41d
--- /dev/null
+++ b/newRevision
@@ -0,0 +1,14 @@
+#! /bin/bash
+# Rolf Niepraschk, 2020-08-17
+
+if [ "$#" -ne 2 ]; then
+  echo "Illegal number of parameters"
+  echo "Usage: $0 \"tag (version)\" \"tag message\""
+  exit 1
+fi
+
+git tag "$1" -am '$2'
+git push --tags
+
+exit 0
+
diff --git a/server.py b/server.py
index a35b048..5992f6b 100644
--- a/server.py
+++ b/server.py
@@ -2,6 +2,8 @@ from flask import Flask, request, jsonify, send_from_directory
 from flask_cors import CORS
 import utils as utils
 from trans import Trans
+from datetime import datetime
+import subprocess
 from pprint import pprint
 
 config = utils.get_config_dict()
@@ -23,7 +25,24 @@ def version():
 def update():
     app.logger.debug('hit update')
     req = request.get_json()
-    pprint(req) 
+    ###pprint(req)
+    tarball_url = req['repository']['homepage'] + '/-/archive/master/' + \
+      req['repository']['name'] + '-master.tar'
+    version = utils.get_version()
+    print(tarball_url)
+    with open('./LOG', 'a') as f:    
+        print(datetime.now().strftime("[%Y-%m-%d %H:%M:%S] " + version), file=f)
+    try:
+        ps = subprocess.Popen(('/usr/bin/curl', '--insecure', '--silent', \
+          '--output', '-', tarball_url), stdout=subprocess.PIPE)
+        output = subprocess.check_output(('/usr/bin/tar', '--extract', \
+          '-f', '-', '--strip-components=1'), stdin=ps.stdout)
+        ps.wait()
+    except Exception as error:
+        app.logger.debug(str(error)) 
+        return jsonify({'error':str(error)})
+        
+    return jsonify({'OK':True})
         
 @app.route('/validate', methods=['POST'])
 def validate():
-- 
GitLab