From 1f4584d80124d7e8a3c39e096b7e4b49f50effec Mon Sep 17 00:00:00 2001 From: itdominator <1itdominator@gmail.com> Date: Fri, 27 Oct 2023 22:57:28 -0500 Subject: [PATCH] Enhanced launcher by collecting relative paths when running from the terminal --- src/core/controller.py | 3 --- src/core/controller_data.py | 23 +++++++++++++++++++---- src/core/mixins/signals_mixins.py | 4 ++-- user_config/bin/ | 8 ++++++-- 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/core/controller.py b/src/core/controller.py index 3801ae7..b4640e2 100644 --- a/src/core/controller.py +++ b/src/core/controller.py @@ -65,6 +65,3 @@ class Controller(DummyMixin, SignalsMixins, ControllerData): self.base_container = BaseContainer() settings_manager.register_signals_to_builder([self, self.base_container]) - - def get_base_container(self): - return self.base_container diff --git a/src/core/controller_data.py b/src/core/controller_data.py index 15e2b05..67b4333 100644 --- a/src/core/controller_data.py +++ b/src/core/controller_data.py @@ -1,6 +1,7 @@ # Python imports import os import subprocess +from shutil import which # Lib imports @@ -24,6 +25,8 @@ class ControllerData: self.setup_builder_and_container() self.plugins = PluginsController() + def get_base_container(self): + return self.base_container def clear_console(self) -> None: ''' Clears the terminal screen. ''' @@ -55,14 +58,26 @@ class ControllerData: for child in widget.get_children(): widget.remove(child) - def get_clipboard_data(self, encoding="utf-8") -> str: - proc = subprocess.Popen(['xclip','-selection', 'clipboard', '-o'], stdout=subprocess.PIPE) + def get_clipboard_data(self, encoding = "utf-8") -> str: + if which("xclip"): + command = ['xclip','-selection','clipboard'] + else: + logger.info('xclip not found...') + return + + proc = subprocess.Popen(['xclip','-selection', 'clipboard', '-o'], stdout = subprocess.PIPE) retcode = proc.wait() data = proc.stdout.read() return data.decode(encoding).strip() - def set_clipboard_data(self, data: type, encoding="utf-8") -> None: - proc = subprocess.Popen(['xclip','-selection','clipboard'], stdin=subprocess.PIPE) + def set_clipboard_data(self, data: type, encoding = "utf-8") -> None: + if which("xclip"): + command = ['xclip','-selection','clipboard'] + else: + logger.info('xclip not found...') + return + + proc = subprocess.Popen(command, stdin = subprocess.PIPE) proc.stdin.write(data.encode(encoding)) proc.stdin.close() retcode = proc.wait() diff --git a/src/core/mixins/signals_mixins.py b/src/core/mixins/signals_mixins.py index 76515f6..d08600f 100644 --- a/src/core/mixins/signals_mixins.py +++ b/src/core/mixins/signals_mixins.py @@ -1,10 +1,10 @@ # Python imports # Lib imports -from .signals.ipc_signals_mixin import IPCSignalsMixin -from .signals.keyboard_signals_mixin import KeyboardSignalsMixin # Application imports +from .signals.ipc_signals_mixin import IPCSignalsMixin +from .signals.keyboard_signals_mixin import KeyboardSignalsMixin diff --git a/user_config/bin/ b/user_config/bin/ index 7a3e523..0d2394e 100755 --- a/user_config/bin/ +++ b/user_config/bin/ @@ -11,19 +11,23 @@ function main() { call_path=`pwd` path="" + # NOTE: Remove if you want to pass file(s) besides directories... if [[ ! "${1::1}" == /* ]]; then path="${call_path}/${1}" else path="${1}" fi - # NOTE: Remove if you want to pass file(s) besides directories... if [ ! -d "${path}" ]; then echo ": Path given not a directory..." exit 1 fi + # End NOTE: Remove if you want to pass file(s) besides directories... + + # Collect abs paths and stuff in 'files' array + mapfile -t files < <(readlink -f "$@") cd "/opt/" python /opt/.zip "$@" } -main "$@"; +main "$@"; \ No newline at end of file