diff --git a/tests/version_chech.py b/tests/version_chech.py new file mode 100644 index 00000000..602ed775 --- /dev/null +++ b/tests/version_chech.py @@ -0,0 +1,51 @@ +import requests + +local_version_file = '/usr/local/panel/version' +latest_version_url = 'https://openpanel.com/version' + +def get_local_version(): + try: + with open(local_version_file, 'r') as file: + return file.readline().strip() + except FileNotFoundError: + print(f"Error: {local_version_file} not found.") + return None + +def get_remote_version(): + try: + response = requests.get(latest_version_url) + response.raise_for_status() + return response.text.strip() + except requests.exceptions.RequestException as e: + print(f"Error fetching remote version: {e}") + return None + +def is_version_incremented(local, remote): + local_parts = list(map(int, local.split('.'))) + remote_parts = list(map(int, remote.split('.'))) + + if local_parts[0] > remote_parts[0]: # Major version increment + return True + elif local_parts[0] == remote_parts[0] and local_parts[1] > remote_parts[1]: # Minor version increment + return True + elif (local_parts[0] == remote_parts[0] and local_parts[1] == remote_parts[1] and + local_parts[2] == remote_parts[2] + 1): # Patch increment by exactly +1 + return True + else: + return False + +def main(): + local_version = get_local_version() + remote_version = get_remote_version() + + if local_version and remote_version: + if is_version_incremented(local_version, remote_version): + print(f"Local version {local_version} is properly incremented over remote version {remote_version}.") + else: + print(f"Error: Local version {local_version} is not incremented over remote version {remote_version}.") + else: + print("Unable to verify version increment due to missing version data.") + +if __name__ == "__main__": + main() +