From c47e069df96149ab9f9b5cfcb0c097a26fe6a59b Mon Sep 17 00:00:00 2001 From: Hristo Date: Thu, 1 Feb 2024 16:48:40 +0200 Subject: [PATCH 1/2] hotfix update system one more time --- src/rpi-cpu2mqtt.py | 22 +++++++++------------- src/update.py | 18 ++++++++++++------ 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/rpi-cpu2mqtt.py b/src/rpi-cpu2mqtt.py index afa71b6..de5f1bb 100644 --- a/src/rpi-cpu2mqtt.py +++ b/src/rpi-cpu2mqtt.py @@ -161,7 +161,7 @@ def check_git_update(script_dir): else: git_update = { "installed_ver": config.version, - "new_ver": check_git_version_remote(script_dir), + "new_ver": update.check_git_version_remote(script_dir), } return(json.dumps(git_update)) @@ -173,11 +173,7 @@ def check_git_version(script_dir): return(git_version) -def check_git_version_remote(script_dir): - full_cmd = "git -C {} ls-remote --tags origin | awk -F'/' '{{print $3}}' | sort -V | tail -n 1".format(script_dir) - result = subprocess.Popen(full_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0].decode("utf-8") - latest_tag = result.strip() - return latest_tag if latest_tag else None + def get_network_ip(): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) @@ -477,7 +473,7 @@ def parse_arguments(): args = parser.parse_args() if args.update: - version = check_git_version_remote(script_dir).strip() + version = update.check_git_version_remote(script_dir).strip() git_update = check_git_update(script_dir) if git_update == 'on': @@ -485,13 +481,13 @@ def parse_arguments(): else: git_update = False - update.do_update(version, git_update) + update.do_update(script_dir, version, git_update) exit() if args.version: installed_version = check_git_version(script_dir).strip() - latest_versino = check_git_version_remote(script_dir).strip() + latest_versino = update.check_git_version_remote(script_dir).strip() print("Installed version: " + installed_version) print("Latest version: " + latest_versino) if installed_version != latest_versino: @@ -560,15 +556,15 @@ def on_message(client, userdata, msg): global exit_flag print("Received message: ", msg.payload.decode()) if msg.payload.decode() == "install": - version = check_git_version_remote(script_dir).strip() - update.do_update(version, git_update=True, config_update=True) + version = update.check_git_version_remote(script_dir).strip() + update.do_update(script_dir, version, git_update=True, config_update=True) print("Update completed. Setting exit flag...") exit_flag = True exit_flag = False - +script_dir = os.path.dirname(os.path.realpath(__file__)) if __name__ == '__main__': - script_dir = os.path.dirname(os.path.realpath(__file__)) + args = parse_arguments(); if args.service: diff --git a/src/update.py b/src/update.py index e5296df..00e4e97 100644 --- a/src/update.py +++ b/src/update.py @@ -3,7 +3,6 @@ import os import subprocess import config - def get_assignments(filename): with open(filename) as f: tree = ast.parse(f.read(), filename) @@ -39,6 +38,13 @@ def display_config_differences(current_config, example_config, display=True): else: return False +def check_git_version_remote(script_dir): + full_cmd = "git -C {} ls-remote --tags origin | awk -F'/' '{{print $3}}' | sort -V | tail -n 1".format(script_dir) + result = subprocess.Popen(full_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0].decode("utf-8") + latest_tag = result.strip() + return latest_tag if latest_tag else None + + def update_config_version(version, script_dir): with open(script_dir + '/config.py', 'r') as f: lines = f.readlines() @@ -52,11 +58,10 @@ def update_config_version(version, script_dir): f.write(line) -def do_update(version=config.version, git_update=True, config_update=True): - script_dir = os.path.dirname(os.path.realpath(__file__)) +def do_update(script_dir, version=config.version, git_update=True, config_update=True): print("Current version: {}".format(config.version)) if git_update: - print(":: Updating git repository") + print(":: Updating git repository", script_dir) result = subprocess.run(['git', '-C', script_dir, 'pull'], check=True, universal_newlines=True, stdout=subprocess.PIPE) print(result.stdout) @@ -68,5 +73,6 @@ def do_update(version=config.version, git_update=True, config_update=True): update_config_version(version, script_dir) -if __name__ == '__main__': - do_update() \ No newline at end of file +if __name__ == '__main__': + script_dir = os.path.dirname(os.path.realpath(__file__)) + do_update(script_dir,check_git_version_remote(script_dir)) \ No newline at end of file From 3240a195ea11a368f21b9b28c89b5b23d97cb0ec Mon Sep 17 00:00:00 2001 From: Hristo Date: Thu, 1 Feb 2024 16:52:33 +0200 Subject: [PATCH 2/2] hotfix update system one more time --- src/rpi-cpu2mqtt.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rpi-cpu2mqtt.py b/src/rpi-cpu2mqtt.py index de5f1bb..ab837e2 100644 --- a/src/rpi-cpu2mqtt.py +++ b/src/rpi-cpu2mqtt.py @@ -562,9 +562,9 @@ def on_message(client, userdata, msg): exit_flag = True exit_flag = False -script_dir = os.path.dirname(os.path.realpath(__file__)) -if __name__ == '__main__': +if __name__ == '__main__': + script_dir = os.path.dirname(os.path.realpath(__file__)) args = parse_arguments(); if args.service: