diff options
| author | Moritz Meißelbach <arbelzapf@gmail.com> | 2019-11-29 23:58:40 +0100 |
|---|---|---|
| committer | Moritz Meißelbach <arbelzapf@gmail.com> | 2019-11-29 23:58:40 +0100 |
| commit | bf4c34f708eb355bbeca87bb296b0a2d42c23fc2 (patch) | |
| tree | 94ab11f663f344793547fa7708ee51f00667a6f6 | |
| parent | 4e58f614e28cd23106101b303dccc526febf16b5 (diff) | |
| download | sway-launcher-desktop-bf4c34f708eb355bbeca87bb296b0a2d42c23fc2.tar.gz sway-launcher-desktop-bf4c34f708eb355bbeca87bb296b0a2d42c23fc2.zip | |
Implement template variable substitution in provider commands
| -rwxr-xr-x | sway-launcher-desktop.sh | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/sway-launcher-desktop.sh b/sway-launcher-desktop.sh index 7e2861b..df538d9 100755 --- a/sway-launcher-desktop.sh +++ b/sway-launcher-desktop.sh @@ -39,13 +39,10 @@ if [ -f "${CONFIG_DIR}/providers.conf" ]; then }' "${CONFIG_DIR}/providers.conf") eval "$PARSED" else - PROVIDERS['desktop']="${0} list-entries${DEL}${0} describe-desktop${DEL}${0} generate-command" - PROVIDERS['command']="${0} list-commands${DEL}${0} describe-command${DEL}${0} command-line" + PROVIDERS['desktop']="${0} list-entries${DEL}${0} describe-desktop '{1}'${DEL}${0} generate-command {1} {2}" + PROVIDERS['command']="${0} list-commands${DEL}${0} describe-command {1}${DEL}${0} command-line {1}" fi -#for i in "${!PROVIDERS[@]}"; do -# echo "${i}=${PROVIDERS[$i]}" -#done -#exit + touch "$HIST_FILE" readarray HIST_LINES <"$HIST_FILE" @@ -56,7 +53,7 @@ function describe() { # shellcheck disable=SC2086 readarray -d ${DEL} -t PROVIDER_ARGS <<<${PROVIDERS[${1}]} # shellcheck disable=SC2086 - [ -n "${PROVIDER_ARGS[1]}" ] && eval "${PROVIDER_ARGS[1]} ${2}" + [ -n "${PROVIDER_ARGS[1]}" ] && eval "${PROVIDER_ARGS[1]//\{1\}/${2}}" } function describe-desktop() { description=$(sed -ne '/^Comment=/{s/^Comment=//;p;q}' "$1") @@ -247,6 +244,9 @@ readarray -d $'\034' -t PARAMS <<<${COMMAND_STR} # COMMAND_STR is "<string>\034<type>" # shellcheck disable=SC2086 readarray -d ${DEL} -t PROVIDER_ARGS <<<${PROVIDERS[${PARAMS[1]}]} +# Substitute {1}, {2} etc with the correct values +COMMAND=${PROVIDER_ARGS[2]//\{1\}/${PARAMS[0]}} +COMMAND=${COMMAND//\{2\}/${PARAMS[3]}} # shellcheck disable=SC2086 -command=$(eval ${PROVIDER_ARGS[1]} ${PARAMS[0]} ${PARAMS[3]}) +command=$(bash -c ${COMMAND}) (exec setsid /bin/sh -c "$command" &) |
