diff options
| author | sigoden <sigoden@gmail.com> | 2024-06-08 19:39:12 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-08 19:39:12 +0800 |
| commit | 82d7a7de8a76e56cff306b0da7f4f14fdb57cbf1 (patch) | |
| tree | 151c719d3ca5e8945b4aa410a7de34e49ebec4f2 /Argcfile.sh | |
| parent | 57e8799d163ba3788d098c20a09dc6cb4cd710a2 (diff) | |
| download | llm-functions-docker-82d7a7de8a76e56cff306b0da7f4f14fdb57cbf1.tar.gz | |
refactor: extract some functions from Argcfile.sh to scripts (#38)
Diffstat (limited to 'Argcfile.sh')
| -rw-r--r-- | Argcfile.sh | 64 |
1 files changed, 4 insertions, 60 deletions
diff --git a/Argcfile.sh b/Argcfile.sh index 623b6c6..1283a55 100644 --- a/Argcfile.sh +++ b/Argcfile.sh @@ -292,9 +292,9 @@ EOF _ask_json_data() { declaration="$1" echo 'Missing the JSON data but here are its properties:' - echo "$declaration" | _inspect_declaration_params | sed 's/^/> /' + echo "$declaration" | ./scripts/declarations-util.sh pretty-print | sed -n '2,$s/^/>/p' echo 'Generate placeholder data:' - data="$(echo "$declaration" | _generate_data_according_declaration)" + data="$(echo "$declaration" | _declarations_json_data)" echo "> $data" read -r -p 'Use the generated data? (y/n) ' res case "$res" in @@ -308,64 +308,8 @@ _ask_json_data() { esac } -_inspect_declaration_params() { - jq -r ' -def get_indicator: - .value.type as $type | - [ - { condition: ($type == "array" and .required), result: "+" }, - { condition: ($type == "array"), result: "*" }, - { condition: .required, result: "!" }, - { condition: true, result: "" } - ] | map(select(.condition) | .result) | first; - -def get_kind: - .value.type as $type | - (.value.enum // []) as $enum | - ([ - { condition: ($type == "array"), result: "string[]" }, - { condition: ($type == "string" and ($enum | length > 0)), result: ($enum | join("|")) }, - { condition: ($type == "string"), result: "" }, - { condition: true, result: $type } - ] | map(select(.condition) | .result) | first) as $kind | - if $kind != "" then "(\($kind))" else "" end; - -def print_property: - .key as $key | - (.value.description | split("\n")[0]) as $description | - (. | get_kind) as $kind | - (. | get_indicator) as $indicator | - "\($key)\($kind)\($indicator): \($description)"; - -.parameters | -.required as $requiredProperties | -.properties | to_entries[] | -.key as $key | .+ { "required": ($requiredProperties | index($key) != null) } | -print_property -' -} - -_generate_data_according_declaration() { - jq -c ' -def convert_string: - if has("enum") then .enum[0] else "foo" end; - -def convert_property: - .key as $key | - .value.type as $type | - [ - { condition: ($type == "string"), result: { $key: (.value | convert_string) }}, - { condition: ($type == "boolean"), result: { $key: false }}, - { condition: ($type == "integer"), result: { $key: 42 }}, - { condition: ($type == "number"), result: { $key: 3.14 }}, - { condition: ($type == "array"), result: { $key: [ "v1" ] } } - ] | map(select(.condition) | .result) | first; - -.parameters | -[ - .properties | to_entries[] | convert_property -] | add // {} -' +_declarations_json_data() { + ./scripts/declarations-util.sh generate-json | tail -n +2 } _normalize_path() { |
