Escape subshells in cheatsheets (#90)

Fix #85
This commit is contained in:
Denis Isidoro 2019-09-27 10:59:56 -03:00
parent 303f9f67d1
commit 00a2d2b91e
2 changed files with 5 additions and 10 deletions

View File

@ -2,6 +2,7 @@
ARG_REGEX="<[0-9a-zA-Z_]+>"
ARG_DELIMITER="\f"
ARG_DELIMITER_2="\v"
arg::dict() {
local -r input="$(cat | sed 's/\\n/\\f/g')"
@ -27,15 +28,9 @@ arg::next() {
}
arg::deserialize() {
local -r arg="$1"
if [ ${arg:0:1} = "'" ]; then
local -r out="$(echo "${arg:1:${#arg}-2}")"
else
local -r out="$arg"
fi
echo "$out" | tr "${ARG_DELIMITER}" " "
local arg="$1"
arg="${arg:1:${#arg}-2}"
echo "$arg" | tr "${ARG_DELIMITER}" " " | tr "${ARG_DELIMITER_2}" "'"
}
# TODO: separation of concerns

View File

@ -19,7 +19,7 @@ ui::select() {
local -r cheats="$1"
local -r script_path="${SCRIPT_DIR}/navi"
local -r preview_cmd="echo \"{}\" | tr ' ' '${ARG_DELIMITER}' | xargs -I% \"${script_path}\" preview %"
local -r preview_cmd="echo \'{}\' | tr \"'\" '${ARG_DELIMITER_2}' | tr ' ' '${ARG_DELIMITER}' | xargs -I% \"${script_path}\" preview %"
local -r query="$(dict::get "$OPTIONS" query)"
local -r entry_point="$(dict::get "$OPTIONS" entry_point)"