aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/create.sh
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-06-07 04:06:59 +0800
committerGitHub <noreply@github.com>2024-06-07 04:06:59 +0800
commit2b07fc2c7e4e6311d35ae72c17b25e47680d61f6 (patch)
tree813ea77176ccd89d91aa7b4e70771755eaf2cf41 /scripts/create.sh
parent6d1ad27900634bd16089eb3fe847fe9583dcf3d9 (diff)
downloadllm-functions-docker-2b07fc2c7e4e6311d35ae72c17b25e47680d61f6.tar.gz
refactor: rename scripts (#29)
Diffstat (limited to 'scripts/create.sh')
-rwxr-xr-xscripts/create.sh124
1 files changed, 0 insertions, 124 deletions
diff --git a/scripts/create.sh b/scripts/create.sh
deleted file mode 100755
index 0d558fa..0000000
--- a/scripts/create.sh
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/usr/bin/env bash
-set -e
-
-# @describe Create a boilplate tool script file.
-# It automatically generate declaration json for `*.py` and `*.js` and generate `@option` tags for `.sh`.
-# Examples:
-# argc create abc.sh foo bar! baz+ qux*
-# @arg name! The script file name.
-# @arg params* The script parameters
-
-main() {
- output="tools/$argc_name"
- if [[ -f "$output" ]]; then
- _die "$output already exists"
- fi
- ext="${argc_name##*.}"
- support_exts=('.sh' '.js' '.py')
- if [[ "$ext" == "$argc_name" ]]; then
- _die "No extension name, pelease add one of ${support_exts[*]}"
- fi
- case $ext in
- sh) create_sh ;;
- js) create_js ;;
- py) create_py ;;
- *) _die "Invalid extension name: $ext, must be one of ${support_exts[*]}" ;;
- esac
-}
-
-create_sh() {
- cat <<-'EOF' | sed 's/__DESCRIBE_TAG__/# @describe/g' > "$output"
-#!/usr/bin/env bash
-set -e
-
-__DESCRIBE_TAG__
-EOF
- for param in "${argc_params[@]}"; do
- echo "# @option --$(echo $param | sed 's/-/_/g')" >> "$output"
- done
- cat <<-'EOF' >> "$output"
-
-main() {
- ( set -o posix ; set ) | grep ^argc_ # inspect all argc variables
-}
-
-eval "$(argc --argc-eval "$0" "$@")"
-EOF
- chmod +x "$output"
-}
-
-create_js() {
- cat <<EOF > "$output"
-exports.declarate = function declarate() {
- return $(build_schema)
-}
-
-exports.execute = function execute(data) {
- console.log(data)
-}
-EOF
-}
-
-create_py() {
- cat <<EOF > "$output"
-def declarate():
- return $(build_schema)
-
-
-def execute(data):
- print(data)
-EOF
-}
-
-build_schema() {
- echo '{
- "name": "'"${argc_name%%.*}"'",
- "description": "",
- "parameters": '"$(build_properties)"'
- }' | jq '.' | sed '2,$s/^/ /g'
-}
-
-build_properties() {
- required_params=()
- properties=''
- for param in "${argc_params[@]}"; do
- if [[ "$param" == *'!' ]]; then
- param="${param:0:$((${#param}-1))}"
- required_params+=("$param")
- property='{"'"$param"'":{"type":"string","description":""}}'
- elif [[ "$param" == *'+' ]]; then
- param="${param:0:$((${#param}-1))}"
- required_params+=("$param")
- property='{"'"$param"'":{"type":"array","description":"","items": {"type":"string"}}}'
- elif [[ "$param" == *'*' ]]; then
- param="${param:0:$((${#param}-1))}"
- property='{"'"$param"'":{"type":"array","description":"","items": {"type":"string"}}}'
- else
- property='{"'"$param"'":{"type":"string","description":""}}'
- fi
- properties+="$property"
- done
- required=''
- for param in "${required_params[@]}"; do
- if [[ -z "$required" ]]; then
- required=',"required":['
- fi
- required+="\"$param\","
- done
- if [[ -n "$required" ]]; then
- required="${required:0:$((${#required}-1))}"
- required+="]"
- fi
- echo '{
- "type": "object",
- "properties": '"$(echo "$properties" | jq -s 'add')$required"'
- }' | jq '.'
-}
-
-_die() {
- echo "$*"
- exit 1
-}
-
-# See more details at https://github.com/sigoden/argc
-eval "$(argc --argc-eval "$0" "$@")" \ No newline at end of file