diff --git a/src/__builtins__.py b/src/__builtins__.py index ecdfe3c..4aafda5 100644 --- a/src/__builtins__.py +++ b/src/__builtins__.py @@ -70,7 +70,7 @@ def custom_except_hook(exc_type, exc_value, exc_traceback): sys.__excepthook__(exc_type, exc_value, exc_traceback) sys.__excepthook__(exc_type, exc_value, exc_traceback) return -# + logger.error("Uncaught exception", exc_info = (exc_type, exc_value, exc_traceback)) -# + sys.excepthook = custom_except_hook \ No newline at end of file diff --git a/src/__main__.py b/src/__main__.py index c7db4e4..0feb1a9 100644 --- a/src/__main__.py +++ b/src/__main__.py @@ -4,12 +4,12 @@ import argparse import faulthandler import traceback -from setproctitle import setproctitle import tracemalloc tracemalloc.start() # Lib imports +from setproctitle import setproctitle # Application imports from __builtins__ import * diff --git a/src/core/widgets/code/command_system/commands/set_miniview.py b/src/core/widgets/code/command_system/commands/set_miniview.py index 67396a5..2a064c8 100644 --- a/src/core/widgets/code/command_system/commands/set_miniview.py +++ b/src/core/widgets/code/command_system/commands/set_miniview.py @@ -17,4 +17,4 @@ def execute( **kwargs ): logger.debug("Command: Set MiniView") - event_system.emit("set-mini-view", (view,)) + event_system.emit("set-mini-view", (view, )) diff --git a/src/core/widgets/code/controllers/completion_controller.py b/src/core/widgets/code/controllers/completion_controller.py index f714511..2f478d5 100644 --- a/src/core/widgets/code/controllers/completion_controller.py +++ b/src/core/widgets/code/controllers/completion_controller.py @@ -4,7 +4,6 @@ import gi gi.require_version('GtkSource', '4') -from gi.repository import GLib from gi.repository import GtkSource # Application imports diff --git a/src/core/widgets/vte_widget.py b/src/core/widgets/vte_widget.py index 888c75d..6fbde45 100644 --- a/src/core/widgets/vte_widget.py +++ b/src/core/widgets/vte_widget.py @@ -88,7 +88,7 @@ class VteWidget(Vte.Terminal): self.spawn_async( Vte.PtyFlags.DEFAULT, settings_manager.path_manager.get_home_path(), - ["/bin/bash"], + ["/bin/bash", "--rcfile", f"{settings_manager.path_manager.get_home_path()}/.bashrc", "-i"], env, GLib.SpawnFlags.DEFAULT, None, None, -1, None, None, diff --git a/src/core/widgets/webkit/webkit_ui.py b/src/core/widgets/webkit/webkit_ui.py index 69d7faf..4f52bd9 100644 --- a/src/core/widgets/webkit/webkit_ui.py +++ b/src/core/widgets/webkit/webkit_ui.py @@ -5,7 +5,7 @@ import json # Lib imports import gi gi.require_version('Gdk', '3.0') -gi.require_version('WebKit2', '4.0') +gi.require_version('WebKit2', '4.1') from gi.repository import Gdk from gi.repository import Gtk from gi.repository import Gio diff --git a/src/libs/controllers/controller_base.py b/src/libs/controllers/controller_base.py index 3997ba6..53ce236 100644 --- a/src/libs/controllers/controller_base.py +++ b/src/libs/controllers/controller_base.py @@ -37,8 +37,10 @@ class ControllerBase(Singleton, EmitDispatcher): return self.controller_message_bus.message_to(name, event) def message_to_selected(self, names: list[str], event: BaseEvent): - for name in names: + return [ self.controller_message_bus.message_to_selected(name, event) + for name in names + ] def register_controller(self, name: str, controller): self.controller_message_bus.register_controller(name, controller) diff --git a/src/libs/event_factory.py b/src/libs/event_factory.py index e8ccc43..5dc1e93 100644 --- a/src/libs/event_factory.py +++ b/src/libs/event_factory.py @@ -31,7 +31,7 @@ class EventFactory(Singleton): event_type = self._class_name_to_event_type(name) self._event_classes[event_type] = obj - Code_Event_Types.add_event_class(name, obj) + App_Event_Types.add_event_class(name, obj) i += 1 logger.debug(f"Registered {i} event types:") @@ -44,7 +44,7 @@ class EventFactory(Singleton): event_type = self._class_name_to_event_type(name) del self._event_classes[event_type] - Code_Event_Types.remove_event_class(name) + App_Event_Types.remove_event_class(name) i += 1 logger.debug(f"Unregistered {i} event types:") @@ -98,6 +98,7 @@ class EventNamespace: -Code_Event_Types = EventNamespace() +App_Event_Types = EventNamespace() +Code_Event_Types = App_Event_Types Event_Factory = EventFactory() diff --git a/src/libs/mixins/ipc_signals_mixin.py b/src/libs/mixins/ipc_signals_mixin.py index 30bd167..024ecf4 100644 --- a/src/libs/mixins/ipc_signals_mixin.py +++ b/src/libs/mixins/ipc_signals_mixin.py @@ -18,20 +18,20 @@ class IPCSignalsMixin: def handle_file_from_ipc(self, fpath: str) -> None: logger.debug(f"File From IPC: {fpath}") GLib.idle_add( - self.broadcast_message, "handle-file", (fpath,) + self.broadcast_message, "handle-file", (fpath, ) ) def handle_files_from_ipc(self, uris: list) -> None: logger.debug(f"Files From IPC: {uris}") GLib.idle_add( - self.broadcast_message, "handle-files", (uris,) + self.broadcast_message, "handle-files", (uris, ) ) def handle_dir_from_ipc(self, fpath: str) -> None: logger.debug(f"Dir From IPC: {fpath}") GLib.idle_add( - self.broadcast_message, "handle-folder", (fpath,) + self.broadcast_message, "handle-folder", (fpath, ) ) def broadcast_message(self, message_type: str = "none", data: () = ()) -> None: - event_system.emit(message_type, data) \ No newline at end of file + event_system.emit(message_type, data) diff --git a/src/libs/settings/webkit/webkit_ui_settings.py b/src/libs/settings/webkit/webkit_ui_settings.py index 0351fc6..ae03366 100644 --- a/src/libs/settings/webkit/webkit_ui_settings.py +++ b/src/libs/settings/webkit/webkit_ui_settings.py @@ -2,7 +2,7 @@ # Lib imports import gi -gi.require_version('WebKit2', '4.0') +gi.require_version('WebKit2', '4.1') from gi.repository import WebKit2 # Application imports diff --git a/src/plugins/plugin_types/plugin_code.py b/src/plugins/plugin_types/plugin_code.py index 3c6188d..3106eaf 100644 --- a/src/plugins/plugin_types/plugin_code.py +++ b/src/plugins/plugin_types/plugin_code.py @@ -41,10 +41,10 @@ class PluginCode(PluginBase): return self.plugin_context.request_ui_element(element_id) def emit(self, event: BaseEvent): - return self.plugin_context.emit(event) + self.plugin_context.emit(event) def emit_to(self, name: str, event: BaseEvent): - return self.plugin_context.emit_to(name, event) + self.plugin_context.emit_to(name, event) def emit_to_selected(self, names: list[str], event: BaseEvent): - return self.plugin_context.emit_to_selected(names, event) + self.plugin_context.emit_to_selected(names, event) diff --git a/src/plugins/plugin_types/plugin_ui.py b/src/plugins/plugin_types/plugin_ui.py index f09e09f..46ae04a 100644 --- a/src/plugins/plugin_types/plugin_ui.py +++ b/src/plugins/plugin_types/plugin_ui.py @@ -10,7 +10,7 @@ from .plugin_base import PluginBase -class PluginCodeException(Exception): +class PluginUIException(Exception): ... @@ -23,22 +23,22 @@ class PluginUI(PluginBase): def _controller_message(self, event: BaseEvent): - raise PluginCodeException("Plugin UI '_controller_message' must be overriden by Plugin") + raise PluginUIException("Plugin UI '_controller_message' must be overriden by Plugin") def load(self): - raise PluginCodeException("Plugin UI 'load' must be overriden by Plugin") + raise PluginUIException("Plugin UI 'load' must be overriden by Plugin") def run(self): - raise PluginCodeException("Plugin UI 'run' must be overriden by Plugin") + raise PluginUIException("Plugin UI 'run' must be overriden by Plugin") def request_ui_element(self, element_id: str): return self.plugin_context.request_ui_element(element_id) def emit(self, event: BaseEvent): - return self.plugin_context.emit(event) + self.plugin_context.emit(event) def emit_to(self, name: str, event: BaseEvent): - return self.plugin_context.emit_to(name, event) + self.plugin_context.emit_to(name, event) def emit_to_selected(self, names: list[str], event: BaseEvent): - return self.plugin_context.emit_to_selected(names, event) + self.plugin_context.emit_to_selected(names, event) diff --git a/src/scripts/CONFIG.sh b/src/scripts/CONFIG.sh new file mode 100644 index 0000000..b67fe6a --- /dev/null +++ b/src/scripts/CONFIG.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# set -o xtrace ## To debug scripts +# set -o errexit ## To exit on error +# set -o errunset ## To exit if a variable is referenced but not set + + +CONTAINER="flask-apps" \ No newline at end of file diff --git a/src/scripts/clean.sh b/src/scripts/clean.sh new file mode 100755 index 0000000..102c9ad --- /dev/null +++ b/src/scripts/clean.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +. CONFIG.sh + +# set -o xtrace ## To debug scripts +# set -o errexit ## To exit on error +# set -o errunset ## To exit if a variable is referenced but not set + + +function main() { + SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + cd "${SCRIPTPATH}" + echo "Working Dir: " $(pwd) + + podman container prune + podman image prune + podman volume prune + podman network prune +} +main $@; + diff --git a/src/scripts/interactive-shell.sh b/src/scripts/interactive-shell.sh new file mode 100755 index 0000000..f462082 --- /dev/null +++ b/src/scripts/interactive-shell.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +. CONFIG.sh + +# set -o xtrace ## To debug scripts +# set -o errexit ## To exit on error +# set -o errunset ## To exit if a variable is referenced but not set + + +function main() { + SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + cd "${SCRIPTPATH}" + echo "Working Dir: " $(pwd) + + ID=$(podman ps --filter "ancestor=localhost/${CONTAINER}:latest" --format "{{.ID}}") + if [ "${ID}" == "" ]; then + echo "Is not up..." + exit 1 + fi + + podman exec -it "${ID}" /bin/bash +} +main $@; diff --git a/src/scripts/reset.sh b/src/scripts/reset.sh new file mode 100755 index 0000000..e0b652a --- /dev/null +++ b/src/scripts/reset.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +# . CONFIG.sh + +# set -o xtrace ## To debug scripts +# set -o errexit ## To exit on error +# set -o errunset ## To exit if a variable is referenced but not set + + +function main() { + SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + cd "${SCRIPTPATH}" + echo "Working Dir: " $(pwd) + + podman container prune + podman image prune + podman volume prune + podman network prune + + podman machine stop + podman machine reset + # podman machine init + podman machine init --rootful + podman machine set --memory 4096 + # podman machine set --cpus 2 --memory 4096 + podman machine start +} +main $@; + diff --git a/src/scripts/run.sh b/src/scripts/run.sh new file mode 100755 index 0000000..8f3bbb3 --- /dev/null +++ b/src/scripts/run.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +# . CONFIG.sh + +# set -o xtrace ## To debug scripts +# set -o errexit ## To exit on error +# set -o errunset ## To exit if a variable is referenced but not set + + +function main() { + SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + cd "${SCRIPTPATH}" + echo "Working Dir: " $(pwd) + + set -e + + trap "kill 0" SIGTERM SIGINT + + DarkCrypt/socket_run.sh > /tmp/apps/darkcrypt.log 2>&1 & + Dropper/socket_run.sh > /tmp/apps/dropper.log 2>&1 & + Finances/socket_run.sh > /tmp/apps/finances.log 2>&1 & + Homepage/socket_run.sh > /tmp/apps/homepage.log 2>&1 & + WebFM/socket_run.sh > /tmp/apps/webfm.log 2>&1 & + + Keycloak-11.0.2/bin/standalone.sh > /tmp/apps/keycloak.log 2>&1 & + + exec nginx -g "daemon off;" +} +main $@; diff --git a/src/scripts/save.sh b/src/scripts/save.sh new file mode 100755 index 0000000..6c4d28d --- /dev/null +++ b/src/scripts/save.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +. CONFIG.sh + +# set -o xtrace ## To debug scripts +# set -o errexit ## To exit on error +# set -o errunset ## To exit if a variable is referenced but not set + + +function main() { + SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + cd "${SCRIPTPATH}" + echo "Working Dir: " $(pwd) + + podman save -o "${CONTAINER}" $1 +} +main $@; diff --git a/src/scripts/shrink.sh b/src/scripts/shrink.sh new file mode 100755 index 0000000..28139a2 --- /dev/null +++ b/src/scripts/shrink.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +. CONFIG.sh + +# set -o xtrace ## To debug scripts +# set -o errexit ## To exit on error +# set -o errunset ## To exit if a variable is referenced but not set + + +function main() { + SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + cd "${SCRIPTPATH}" + echo "Working Dir: " $(pwd) + + qemu-img resize --shrink ~/.local/share/containers/podman/machine/qemu/podman-machine-*.qcow2 30G +} +main $@; diff --git a/src/scripts/start.sh b/src/scripts/start.sh new file mode 100755 index 0000000..953af4b --- /dev/null +++ b/src/scripts/start.sh @@ -0,0 +1,63 @@ +#!/bin/bash + +. CONFIG.sh + +# set -o xtrace ## To debug scripts +# set -o errexit ## To exit on error +# set -o errunset ## To exit if a variable is referenced but not set + + +function set_routs() { + sudo iptables -t nat -I OUTPUT -p tcp -o lo --dport 80 -j REDIRECT --to-ports 8080 + sudo iptables -t nat -I OUTPUT -p tcp -o lo --dport 443 -j REDIRECT --to-ports 4433 +} + +function main() { + SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + cd "${SCRIPTPATH}" + echo "Working Dir: " $(pwd) + + ID=$(podman ps --filter "ancestor=localhost/${CONTAINER}:latest" --format "{{.ID}}") + if [ "${ID}" != "" ]; then + echo "Is up..." + exit 1 + fi + + DOWNLOAD_HOST="${HOME}/Downloads" + DOWNLOAD_CONTAINER="${HOME}/Downloads" + DROPPER_CONF_HOST="${HOME}/.config/dropper" + DROPPER_CONF_CONTAINER="${HOME}/.config/dropper" + WEBFM_CONF_HOST="${HOME}/.config/webfm" + WEBFM_CONF_CONTAINER="${HOME}/.config/webfm" + LAZYSHARE_HOST="${HOME}/LazyShare" + LAZYSHARE_CONTAINER="${HOME}/LazyShare" + REMUXS_HOST="${HOME}/.remuxs" + REMUXS_CONTAINER="${HOME}/.remuxs" + BASE_THUMBS_PTH_HOST="${HOME}/.thumbnails" + BASE_THUMBS_PTH_CONTAINER="${HOME}/.thumbnails" + ICON_DIR_HOST="${HOME}/.icons" + ICON_DIR_CONTAINER="${HOME}/.icons" + + # set_routs + sudo sysctl net.ipv4.ip_unprivileged_port_start=80 + + podman run -d -m 4G \ + -p 80:80 \ + -p 443:443 \ + -p 7777:7777 \ + --annotation run.oci.cdi.devices=all \ + -e NVIDIA_DRIVER_CAPABILITIES=video,compute,utility \ + -e HOME="${HOME}" \ + -v "${DOWNLOAD_HOST}":"${DOWNLOAD_CONTAINER}" \ + -v "${DROPPER_CONF_HOST}":"${DROPPER_CONF_CONTAINER}" \ + -v "${WEBFM_CONF_HOST}":"${WEBFM_CONF_CONTAINER}" \ + -v "${LAZYSHARE_HOST}":"${LAZYSHARE_CONTAINER}" \ + -v "${BASE_THUMBS_PTH_HOST}":"${BASE_THUMBS_PTH_CONTAINER}" \ + -v "${ICON_DIR_HOST}":"${ICON_DIR_CONTAINER}" \ + -v "${REMUXS_HOST}":"${REMUXS_CONTAINER}" \ + "${CONTAINER}:latest" + + sudo sysctl net.ipv4.ip_unprivileged_port_start=1024 + +} +main $@; diff --git a/src/scripts/stop.sh b/src/scripts/stop.sh new file mode 100755 index 0000000..bac8bcd --- /dev/null +++ b/src/scripts/stop.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +. CONFIG.sh + +# set -o xtrace ## To debug scripts +# set -o errexit ## To exit on error +# set -o errunset ## To exit if a variable is referenced but not set + + +function unset_routs() { + sudo iptables -P INPUT ACCEPT + sudo iptables -P FORWARD ACCEPT + sudo iptables -P OUTPUT ACCEPT + sudo iptables -t nat -F + sudo iptables -t mangle -F + sudo iptables -F + sudo iptables -X + sudo iptables -nvL + + sudo ufw enable +} + +function main() { + SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + cd "${SCRIPTPATH}" + echo "Working Dir: " $(pwd) + + ID=$(podman ps --filter "ancestor=localhost/${CONTAINER}:latest" --format "{{.ID}}") + if [ "${ID}" == "" ]; then + echo "Is not up..." + exit 1 + fi + + # unset_routs + + podman container stop "${ID}" +} +main $@;