Add an updater program

This commit is contained in:
CMDR-Kiel42 committed 2019-07-23 00:10:06 +02:00
1 parent 5729c8e4d6
commit 80f2eeaa87
2 files changed
+46

No files matched your search

+4
View File
@@ -8,6 +8,7 @@ import json
import webbrowser
import requests
import traceback
import subprocess
from time import sleep
from AutoCompleter import AutoCompleter
from PlaceHolderEntry import PlaceHolderEntry
@@ -41,6 +42,9 @@ def plugin_start(plugin_dir):
if response.status_code == 200:
if this.plugin_version != response.content:
this.update_available = True
pid = os.getpid()
print("PID: " + str(pid))
subprocess.Popen(["./updater.py", "--pid=" + str(pid), "--version=" + response.content])
else:
sys.stderr.write("Could not query latest version from GitHub: " + str(response.status_code) + response.text)
except NameError:
Executable
+42
View File
@@ -0,0 +1,42 @@
#!/usr/bin/env python2
import os
import requests
import sys
import argparse
import time
import zipfile
def is_running(pid):
try:
os.kill(pid, 0)
except OSError:
return False
return True
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--pid')
parser.add_argument('--version')
args = parser.parse_args()
pid = args.pid
version = args.version
zip_name = "EDMC_SpanshRouter_" + args.version.replace('.', '') + ".zip"
url = 'https://github.com/CMDR-Kiel42/EDMC_SpanshRouter/releases/download/v' + args.version + '/' + zip_name
r = requests.get(url)
with open(zip_name, 'wb') as f:
f.write(r.content)
while is_running(int(pid)):
time.sleep(.25)
with zipfile.ZipFile(zip_name, 'r') as zip_ref:
zip_ref.extractall("./")
os.remove(zip_name)
if __name__ == "__main__":
main()