diff options
| author | sigoden <sigoden@gmail.com> | 2024-06-06 15:11:49 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-06 15:11:49 +0800 |
| commit | 61440a09167269b05c431dc40789faa62c528f34 (patch) | |
| tree | bb2769a76585188112f19add761f00b683cc3d71 /scripts | |
| parent | f58e9ea54a4d46e020ed3b5860a9832f41521e29 (diff) | |
| download | llm-functions-docker-61440a09167269b05c431dc40789faa62c528f34.tar.gz | |
fix: scripts/bin.sh convert json to cli options incorrect (#24)
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/bin.sh | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/scripts/bin.sh b/scripts/bin.sh index 77a6605..b5b1075 100755 --- a/scripts/bin.sh +++ b/scripts/bin.sh @@ -20,13 +20,15 @@ fi FUNC_FILE="$LLM_FUNCTIONS_DIR/tools/$FUNC_FILE" +export JQ=jq if [[ "$OS" == "Windows_NT" ]]; then + export JQ="jq -b" FUNC_FILE="$(cygpath -w "$FUNC_FILE")" fi if [[ "$LLM_FUNCTION_ACTION" == "declarate" ]]; then argc --argc-export "$FUNC_FILE" | \ - jq -r ' + $JQ -r ' def parse_description(flag_option): if flag_option.describe == "" then {} @@ -74,23 +76,26 @@ else data="$( echo "$FUNC_DATA" | \ - jq -r ' + $JQ -r ' to_entries | .[] | (.key | split("_") | join("-")) as $key | if .value | type == "array" then - .value | .[] | "--\($key)\n\(.)" + .value | .[] | "--\($key)\n\(. | @json)" elif .value | type == "boolean" then if .value then "--\($key)" else "" end else - "--\($key)\n\(.value)" - end' | \ - tr -d '\r' + "--\($key)\n\(.value | @json)" + end' )" || { echo "Invalid json data" exit 1 } while IFS= read -r line; do - ARGS+=("$line") + if [[ "$line" == '--'* ]]; then + ARGS+=("$line") + else + ARGS+=("$(echo "$line" | $JQ -r '.')") + fi done <<< "$data" "$FUNC_FILE" "${ARGS[@]}" fi
\ No newline at end of file |
