diff --git a/lib/cli.sh b/lib/cli.sh index b7216dd..e0b6491 100644 --- a/lib/cli.sh +++ b/lib/cli.sh @@ -6,14 +6,14 @@ get_cmd() { parse_cmd() { local cmd=( ) arg - declare -n serialized=$1 + declare -n cmd_sent=$1 + declare -n serialized=$2 - route_cmd "$2" + route_cmd "$3" serialized=*${#cmd[@]}$'\r\n' - serialized+=${cmd[0]^^} - for arg in "${cmd[@]:1}"; do + for arg in "${cmd[@]}"; do serialized+=$arg done } @@ -55,6 +55,12 @@ parse_word() { fi done - cmd+=( "\$${#arg}"$'\r\n'"$arg"$'\r\n' ) + if ! (( ${#cmd[@]} )); then + cmd_sent=${arg^^} + cmd+=( "\$${#arg}"$'\r\n'"$cmd_sent"$'\r\n' ) + else + cmd+=( "\$${#arg}"$'\r\n'"$arg"$'\r\n' ) + fi + route_cmd "$line" } diff --git a/redish-cli b/redish-cli index e47eafb..3198d30 100755 --- a/redish-cli +++ b/redish-cli @@ -28,6 +28,6 @@ fi ### while get_cmd line; do - parse_cmd redis_cmd "$line" - redis_send "$redis_cmd" + parse_cmd redis_cmd redis_line "$line" + redis_send "$redis_line" done