From 3d3523fd7a82de7ca3986bbaa57d0818daf54eb0 Mon Sep 17 00:00:00 2001 From: arabian Date: Mon, 23 Feb 2026 12:08:47 +0300 Subject: [PATCH] feat(flatpak): new wrapper in python that supports pwsp-daemon, pwsp-cli and pwsp-gui --- packages/flatpak/pwsp-wrapper.py | 37 +++++++++++++++++++++++ packages/flatpak/pwsp-wrapper.sh | 4 --- packages/flatpak/ru.arabianq.pwsp.desktop | 2 +- packages/flatpak/ru.arabianq.pwsp.yaml | 4 +-- 4 files changed, 40 insertions(+), 7 deletions(-) create mode 100755 packages/flatpak/pwsp-wrapper.py delete mode 100644 packages/flatpak/pwsp-wrapper.sh diff --git a/packages/flatpak/pwsp-wrapper.py b/packages/flatpak/pwsp-wrapper.py new file mode 100755 index 0000000..3d3962f --- /dev/null +++ b/packages/flatpak/pwsp-wrapper.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 + +import argparse +import subprocess + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + prog="PWSP Flatpak", + add_help=True, + exit_on_error=True, + suggest_on_error=True, + color=True + ) + subparsers = parser.add_subparsers(dest="command") + + cli_parser = subparsers.add_parser("cli", add_help=False, prefix_chars=" ") + cli_parser.add_argument("args", nargs=argparse.REMAINDER, help="Arguments for pwsp-cli") + + daemon_parser = subparsers.add_parser("daemon", add_help=True) + daemon_group = daemon_parser.add_mutually_exclusive_group(required=True) + daemon_group.add_argument("--start", action="store_true", help="Start pwps-daemon") + daemon_group.add_argument("--kill", action="store_true", help="Kill pwsp-daemon") + + args = parser.parse_args() + + command = args.command + if not command: + subprocess.Popen("pwsp-daemon") + subprocess.Popen("pwsp-gui") + else: + if command == "cli": + subprocess.Popen(["pwsp-cli"] + args.args) + elif command == "daemon": + if args.start: + subprocess.Popen("pwsp-daemon") + elif args.kill: + subprocess.Popen(["killall", "pwsp-daemon"]) \ No newline at end of file diff --git a/packages/flatpak/pwsp-wrapper.sh b/packages/flatpak/pwsp-wrapper.sh deleted file mode 100644 index e010a13..0000000 --- a/packages/flatpak/pwsp-wrapper.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -pwsp-daemon & -exec pwsp-gui "$@" diff --git a/packages/flatpak/ru.arabianq.pwsp.desktop b/packages/flatpak/ru.arabianq.pwsp.desktop index 63ad3d7..95c1955 100644 --- a/packages/flatpak/ru.arabianq.pwsp.desktop +++ b/packages/flatpak/ru.arabianq.pwsp.desktop @@ -1,7 +1,7 @@ [Desktop Entry] Name=PWSP (Soundpad) Comment=Let's you play audio files through you microphone -Exec=pwsp-wrapper.sh %u +Exec=pwsp-wrapper.py %u Icon=ru.arabianq.pwsp Terminal=false Type=Application diff --git a/packages/flatpak/ru.arabianq.pwsp.yaml b/packages/flatpak/ru.arabianq.pwsp.yaml index 582fd4e..37ab8be 100644 --- a/packages/flatpak/ru.arabianq.pwsp.yaml +++ b/packages/flatpak/ru.arabianq.pwsp.yaml @@ -5,7 +5,7 @@ sdk: org.freedesktop.Sdk sdk-extensions: - org.freedesktop.Sdk.Extension.rust-stable - org.freedesktop.Sdk.Extension.llvm20 -command: pwsp-wrapper.sh +command: pwsp-wrapper.py finish-args: - --share=ipc - --socket=fallback-x11 @@ -38,7 +38,7 @@ modules: - install -Dm755 target/release/pwsp-daemon /app/bin/pwsp-daemon - install -Dm755 target/release/pwsp-cli /app/bin/pwsp-cli - install -Dm755 target/release/pwsp-gui /app/bin/pwsp-gui - - install -Dm755 packages/flatpak/pwsp-wrapper.sh /app/bin/pwsp-wrapper.sh + - install -Dm755 packages/flatpak/pwsp-wrapper.py /app/bin/pwsp-wrapper.py - install -Dm644 assets/icon.png /app/share/icons/hicolor/256x256/apps/ru.arabianq.pwsp.png - install -Dm644 packages/flatpak/ru.arabianq.pwsp.desktop /app/share/applications/ru.arabianq.pwsp.desktop - install -Dm644 packages/flatpak/ru.arabianq.pwsp.metainfo.xml /app/share/metainfo/ru.arabianq.pwsp.metainfo.xml