diff --git a/CMakeLists.txt b/CMakeLists.txt index 4db2209..915eb4b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,6 +95,7 @@ add_subdirectory(assets) option(BUILD_PREVIEW "" OFF) add_subdirectory(fcitx5-webview) +set(ADDON_TYPE "StaticLibrary") add_subdirectory(fcitx5-beast/src) target_include_directories(beast PRIVATE "${PREBUILT_INSTALL_PATH}/include") diff --git a/assets/fcitx5-curl b/assets/fcitx5-curl index cf1acfc..606f3bc 100755 --- a/assets/fcitx5-curl +++ b/assets/fcitx5-curl @@ -1,13 +1,45 @@ #!/bin/zsh set -eu +DEBUG="${DEBUG:-}" + if [[ $# -eq 0 || $# -eq 1 && ( "$1" == "-h" || "$1" == "--help" ) ]]; then echo "Usage: fcitx5-curl path [curl options]" echo "Example: fcitx5-curl /config/addon/rime/deploy -X POST -d '{}'" exit 0 fi -source ~/.config/fcitx5/conf/beast.conf || Port=32489 -url="http://127.0.0.1:$Port$1" +CONFIG_FILE_PATH="$HOME/.config/fcitx5/conf/beast.conf" + +if [ -f "$CONFIG_FILE_PATH" ] +then + COMMUNICATION=$(sed -n 's/Communication=\([^ ]*.*\)/\1/p' "$CONFIG_FILE_PATH") + UDS_PATH=$(sed -n 's/Path=\([^ ]*.*\)/\1/p' "$CONFIG_FILE_PATH") + TCP_PORT=$(sed -n 's/Port=\([^ ]*.*\)/\1/p' "$CONFIG_FILE_PATH") +fi + +COMMUNICATION="${COMMUNICATION:-UDS}" +UDS_PATH="${UDS_PATH:-/tmp/fcitx5.sock}" +TCP_PORT="${TCP_PORT:-32489}" + +CURL_FLAGS=() + +if [[ "$COMMUNICATION" == 'TCP' ]]; then + FCITX_BEAST_URL="http://127.0.0.1:$TCP_PORT$1" +else + CURL_FLAGS+=('--unix-socket' "$UDS_PATH") + FCITX_BEAST_URL="http://fcitx$1" +fi + shift -curl "$url" "$@" +CURL_FLAGS+=($@) + +if [[ -n "$DEBUG" ]]; then + echo "COMMUNICATION=$COMMUNICATION" + echo "UDS_PATH=$UDS_PATH" + echo "TCP_PORT=$TCP_PORT" + echo "FCITX_BEAST_URL=$FCITX_BEAST_URL" + echo "CURL_FLAGS=$CURL_FLAGS" +fi + +curl $CURL_FLAGS "$FCITX_BEAST_URL" diff --git a/fcitx5-beast b/fcitx5-beast index 7be759a..31bb4fd 160000 --- a/fcitx5-beast +++ b/fcitx5-beast @@ -1 +1 @@ -Subproject commit 7be759a9f76928e861922b5cfe296a954bb3fa7b +Subproject commit 31bb4fd32500c3593b919de8890d852712724aea