From dbba3c4dc290b5fcdcc9783dfca3caf449609807 Mon Sep 17 00:00:00 2001 From: BarsTiger Date: Tue, 1 Mar 2022 16:52:03 +0200 Subject: [PATCH] Updating horsy now works --- horsy.py | 20 +++++++++++++------- horsy_updater.py | 5 ++++- horsygui.py | 7 +++++-- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/horsy.py b/horsy.py index fccde4b..e302646 100644 --- a/horsy.py +++ b/horsy.py @@ -1,5 +1,6 @@ import argparse import os +import subprocess import sys import requests import modules.tui as tui @@ -35,17 +36,22 @@ if not os.path.isfile(horsy_vars.horsypath + 'config.cfg'): try: with open(horsy_vars.horsypath + 'apps/version', 'r') as f: version = int(f.read()) - if int(requests.get('https://github.com/horsy-ml/horsy/raw/master/web_vars/version').text) > version: - print('New version available!') - input('Press enter to update...') - with open(os.path.join(horsy_vars.horsypath) + '/horsy_updater.exe', 'wb') as f: - f.write(requests.get('https://github.com/horsy-ml/horsy/raw/master/bin/horsy_updater.exe').content) - os.system('horsy_updater.exe horsy') - sys.exit(0) except: print('Horsy may be not installed correctly. Please reinstall it or stop other horsy instances. ' 'If you installed it just now, please restart PC.') +if int(requests.get('https://github.com/horsy-ml/horsy/raw/master/web_vars/version').text) > version: + print('New version available!') + print('If you see this message again, or horsy doesn\'t launch itself for long time, please type ' + 'horsy_updater in your terminal to update it manually.') + input('Press enter to update...') + print('Updating...') + print('Please wait, if process seems closed, its OK, just wait a bit.') + with open(os.path.join(horsy_vars.horsypath) + '/horsy_updater.exe', 'wb') as f: + f.write(requests.get('https://github.com/horsy-ml/horsy/raw/master/bin/horsy_updater.exe').content) + subprocess.Popen('horsy_updater.exe horsy', shell=True, close_fds=True) + sys.exit(0) + isNoArgs = False diff --git a/horsy_updater.py b/horsy_updater.py index da1878b..de571f6 100644 --- a/horsy_updater.py +++ b/horsy_updater.py @@ -37,4 +37,7 @@ urllib.request.urlretrieve("https://github.com/horsy-ml/horsy/raw/master/web_var for thread in threads: thread.join() -os.system(option) +try: + os.system(option) +except: + input("horsy updated manually. You can launch it now. Press enter to exit.") diff --git a/horsygui.py b/horsygui.py index b705b3d..b747333 100644 --- a/horsygui.py +++ b/horsygui.py @@ -9,6 +9,7 @@ from PyQt5 import QtWidgets import ctypes import modules.gui as gui import requests +import subprocess # Hide console window (does not work on custom terminals like Windows Terminal) @@ -237,7 +238,9 @@ if __name__ == "__main__": version = int(f.read()) if int(requests.get('https://github.com/horsy-ml/horsy/raw/master/web_vars/version').text) > version: gui.popup('Update', 'New version available! \nWe appreciate your safety, so you need to update horsy.' - '\nPress OK and updater will download the latest version.') + '\nPress OK and updater will download the latest version.\n' + 'If you see this message again, or horsy doesn\'t launch \n' + 'itself for long time, please type horsy_updater in your terminal.') try: with open(os.path.join(horsy_vars.horsypath) + '/horsy_updater.exe', 'wb') as f: f.write(requests.get('https://github.com/horsy-ml/horsy/raw/master/bin/horsy_updater.exe').content) @@ -248,7 +251,7 @@ if __name__ == "__main__": 'Afterwards, delete updater file and launch horsy again.') webbrowser.open('https://github.com/horsy-ml/horsy/raw/master/bin/horsy_updater.exe') UiMainWindow.close() - os.system('horsy_updater.exe horsygui') + subprocess.Popen('horsy_updater.exe horsygui', shell=True, close_fds=True) sys.exit() get_users_apps()