diff --git a/AirlockTools_Client.py b/AirlockTools_Client.py index 0554d43..c2d4093 100644 --- a/AirlockTools_Client.py +++ b/AirlockTools_Client.py @@ -23,7 +23,7 @@ import logging import os - +import tempfile import dotenv import urllib3 @@ -38,6 +38,18 @@ urllib3.disable_warnings( ) def main(): + + + if "NUITKA_ONEFILE_PARENT" in os.environ: + splash_filename = os.path.join( + tempfile.gettempdir(), + f"onefile_{int(os.environ['NUITKA_ONEFILE_PARENT'])}_splash_feedback.tmp" + ) + if os.path.exists(splash_filename): + os.unlink(splash_filename) + + + irtang() #Determine working directory, setup directory, configure logging, sent env, get API and URL if not already stored setup() diff --git a/loading.png b/loading.png new file mode 100644 index 0000000..1dc81bd Binary files /dev/null and b/loading.png differ diff --git a/loxide_tight.ico b/loxide_tight.ico new file mode 100644 index 0000000..631fb96 Binary files /dev/null and b/loxide_tight.ico differ diff --git a/utils/tui.py b/utils/tui.py index 9dfa6e3..36deeda 100644 --- a/utils/tui.py +++ b/utils/tui.py @@ -1,44 +1,33 @@ import logging import os import sys -import dotenv -from pathlib import Path +import dotenv +from dotenv import set_key from textual.app import App, ComposeResult +from textual.containers import Horizontal, Vertical +from textual.reactive import reactive from textual.screen import Screen from textual.widgets import ( - Header, - Tabs, - Tab, - Static, - Footer, - DirectoryTree, Button, + DirectoryTree, + Footer, + Header, + Static, + Tab, + Tabs, Tree, ) -from textual.containers import Vertical, Horizontal -from textual.reactive import reactive - -from dotenv import set_key - -from utils.configmanager import load_env -from utils.utils import open_directory - -from utils.setup import get_base_directory, load_user_config from flows.otp import otp_activities_by_agent, otp_generate, otp_revoke from flows.prepPolicy import menu_policy_enforce from flows.quietAgent import findQuietAgents - from services.agenthandler import findAgents, moveAgents, toggleEnforcement -from services.policyhandler import confirmUpdateAfromE from services.API import AirlockAPIWrapper - - -from rich.text import Text -from rich.style import Style -from rich.color import Color -from textual.widgets import Static +from services.policyhandler import confirmUpdateAfromE +from utils.configmanager import load_env +from utils.setup import get_base_directory, load_user_config +from utils.utils import open_directory dotenv.load_dotenv() @@ -51,16 +40,6 @@ _PENDING_JOB = None logger = logging.getLogger(__name__) -ASCII_ART = r""" - _____ .__ .__ __ ___________ .__ - / _ \ |__|______| | ____ ____ | | __ \__ ___/___ ____ | | ______ - / /_\ \| \_ __ \ | / _ \_/ ___\| |/ / | | / _ \ / _ \| | / ___/ -/ | \ || | \/ |_( <_> ) \___| < | |( <_> | <_> ) |__\___ \ -\____|__ /__||__| |____/\____/ \___ >__|_ \ |____| \____/ \____/|____/____ > - \/ \/ \/ \/ - """ - - # --------------------------------------------------------------------------- # helper to persist TEXTUAL_THEME to *user* config and mirror to .env # --------------------------------------------------------------------------- @@ -175,8 +154,6 @@ class MainMenuScreen(Screen): def compose(self) -> ComposeResult: yield Header(show_clock=True, icon="⚙") - yield Static(ASCII_ART, id="logo") - tabs = [ Tab("Policy Tree", id="p_tree"), Tab("Device Search", id="find"),