diff --git a/lxtools_installer.py b/lxtools_installer.py index 8b6907a..9343d24 100755 --- a/lxtools_installer.py +++ b/lxtools_installer.py @@ -16,7 +16,6 @@ from manager import ( Image, AppManager, LxTools, - EnsureFiles, ) from network import NetworkChecker from message import MessageDialog @@ -1336,7 +1335,6 @@ def main(): try: # Create and run the GUI - EnsureFiles.extract_data_files() app = LXToolsGUI() app.run() except KeyboardInterrupt: diff --git a/manager.py b/manager.py index 6cc06b3..a62071c 100644 --- a/manager.py +++ b/manager.py @@ -94,6 +94,42 @@ class LXToolsAppConfig: "SUSE Leap": ["zypper", "install", "-y", "python312-tk"], } + @staticmethod + def extract_data_files(): + if getattr(sys, "_MEIPASS", None) is not None: + # Liste der Quellordner (entspricht dem "datas"-Eintrag in lxtools_installer.spec) + source_dirs = [ + os.path.join(sys._MEIPASS, "locale"), # für locale/... + os.path.join(sys._MEIPASS, "TK-Themes"), # für TK-Themes/... + os.path.join(sys._MEIPASS, "lx-icons"), # für lx-icons/... + ] + + target_dir = os.path.abspath( + os.getcwd() + ) # Zielverzeichnis: aktueller Ordner + + for source_dir in source_dirs: + group_name = os.path.basename( + source_dir + ) # Erhält den Gruppen-Name (z. B. 'locale', 'TK-Themes') + + for root, dirs, files in os.walk(source_dir): + for file in files: + src_path = os.path.join(root, file) + + # Relativer Pfad innerhalb des Quellordners + rel_path_from_source_root = os.path.relpath( + src_path, source_dir + ) + + # Ziel-Pfad unter dem Gruppen-Ordner im aktuellen Verzeichnis + dst_path = os.path.join( + target_dir, group_name, rel_path_from_source_root + ) + + os.makedirs(os.path.dirname(dst_path), exist_ok=True) + shutil.copy2(src_path, dst_path) + @staticmethod def setup_translations() -> gettext.gettext: """Initialize translations and set the translation function""" @@ -110,6 +146,7 @@ class LXToolsAppConfig: return gettext.gettext +LXToolsAppConfig.extract_data_files() # Initialize translations _ = LXToolsAppConfig.setup_translations() @@ -288,46 +325,6 @@ class OSDetector: return False -class EnsureFiles: - """ckeck start as appimage andd extract data files""" - - @staticmethod - def extract_data_files(): - if getattr(sys, "_MEIPASS", None) is not None: - # Liste der Quellordner (entspricht dem "datas"-Eintrag in lxtools_installer.spec) - source_dirs = [ - os.path.join(sys._MEIPASS, "locale"), # für locale/... - os.path.join(sys._MEIPASS, "TK-Themes"), # für TK-Themes/... - os.path.join(sys._MEIPASS, "lx-icons"), # für lx-icons/... - ] - - target_dir = os.path.abspath( - os.getcwd() - ) # Zielverzeichnis: aktueller Ordner - - for source_dir in source_dirs: - group_name = os.path.basename( - source_dir - ) # Erhält den Gruppen-Name (z. B. 'locale', 'TK-Themes') - - for root, dirs, files in os.walk(source_dir): - for file in files: - src_path = os.path.join(root, file) - - # Relativer Pfad innerhalb des Quellordners - rel_path_from_source_root = os.path.relpath( - src_path, source_dir - ) - - # Ziel-Pfad unter dem Gruppen-Ordner im aktuellen Verzeichnis - dst_path = os.path.join( - target_dir, group_name, rel_path_from_source_root - ) - - os.makedirs(os.path.dirname(dst_path), exist_ok=True) - shutil.copy2(src_path, dst_path) - - class Theme: @staticmethod def apply_light_theme(root):