diff --git a/dynamic_launcher.py b/dynamic_launcher.py new file mode 100644 index 0000000..89aaed8 --- /dev/null +++ b/dynamic_launcher.py @@ -0,0 +1,53 @@ +import os +import sys +import requests +import importlib.util +import zipfile +import shutil +import json +from datetime import datetime +import configparser +from PyQt5 import QtWidgets, QtGui +from PyQt5.QtWidgets import ( + QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, + QLabel, QLineEdit, QPushButton, QCheckBox, QComboBox, QDialog, + QMessageBox, QFileDialog +) +from PyQt5.QtGui import QFont +from PyQt5.QtCore import Qt + +# Define repository details +file_url = 'https://git.rolfsvaag.no/frarol96/ERSCMU/raw/branch/main/ERSCMU.py' +cache_dir = os.path.join(os.getenv('APPDATA'), 'ERSC Mod Updater') +cache_file = os.path.join(cache_dir, 'ERSCMU.py') + +# Ensure cache directory exists +if not os.path.exists(cache_dir): + os.makedirs(cache_dir) + +# Function to fetch the latest file +def fetch_latest_file(url, cache_path): + try: + print("Fetching latest version of the script...") + response = requests.get(url) + response.raise_for_status() + with open(cache_path, 'wb') as f: + f.write(response.content) + print("Latest version fetched and cached.") + except requests.RequestException as e: + print(f"Failed to fetch the latest version. Using cached version if available.\nError: {e}") + +# Fetch the latest version of the file or use the cached version +fetch_latest_file(file_url, cache_file) + +# Ensure the cached file exists +if not os.path.exists(cache_file): + print("No cached version available. Exiting.") + sys.exit(1) + +# Prepare the global context with necessary imports +global_context = globals().copy() + +# Import and run the cached script +with open(cache_file, 'r') as file: + exec(file.read(), global_context) \ No newline at end of file