ERSCMU/dynamic_launcher.py

53 lines
1.6 KiB
Python
Raw Normal View History

2024-07-15 22:03:06 +00:00
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)