diff --git a/scripts/release.sh b/scripts/release.sh index 34b5f06..0ddc680 100644 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -1,8 +1,8 @@ set -e -outdir="./build/release" +socket_support=true -while getopts o:r:h args; do +while getopts o:r:hn args; do case "$args" in o) outdir=${OPTARG} @@ -10,12 +10,16 @@ while getopts o:r:h args; do r) gresource_file=${OPTARG} ;; - h) + n) + unset socket_support + ;; + ? | h) echo "\ colorshell's automated release-build script. options: -r \$file: gresource's target path (shell-only, file is kept in \$output. default: \$XDG_DATA_HOME/colorshell/resources.gresource) + -n: disable socket communication support(use the slower remote instance communication) -o \$path: build output path (default: \`./build/release\`) -h: show this help message" exit 0 @@ -24,4 +28,27 @@ options: done # send literal variable name, so it's interpreted in the shell rather than in the build -pnpm build -o "${outdir:-./build/release}" -b -r "${gresource_file:-\$XDG_DATA_HOME/colorshell/resources.gresource}" +sh ./scripts/build.sh -o "${outdir:-./build/release}" -b -r "${gresource_file:-\$XDG_DATA_HOME/colorshell/resources.gresource}" + +# add socket-communication support on executable +if [[ $socket_support ]]; then + echo "[info] adding socket communication support" + script="\ +#!/usr/bin/env bash + +set -e + +if gdbus introspect --session \\ + --dest io.github.retrozinndev.colorshell \\ + --object-path /io/github/retrozinndev/colorshell > /dev/null 2>&1; then + + echo \"\$@\" | socat - \"\${XDG_RUNTIME_DIR:-/run/user/\$(id -u)}/colorshell.sock\" + exit 0 + +fi + +`cat "${outdir:-./build/release}/colorshell" | sed -e 's/^#.*//'`" # remove shebang + + echo -en "$script" > "${outdir:-./build/release}/colorshell" + chmod +x "${outdir:-./build/release}/colorshell" +fi