diff options
| author | sigoden <sigoden@gmail.com> | 2024-05-21 08:26:47 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-21 08:26:47 +0800 |
| commit | ef43b22a8e6d4eb7388a552ba6d52d662e38fd0c (patch) | |
| tree | cf03ce9e37b5e3068aa38aa2213b558d210bc1a0 /cmd/cmd.js | |
| parent | e6642b5898ef3c46b2d37ab8dfce18f5db0a5618 (diff) | |
| download | llm-functions-docker-ef43b22a8e6d4eb7388a552ba6d52d662e38fd0c.tar.gz | |
feat: rewrite to accept json data from cli args other than env var (#7)
* update readme
Diffstat (limited to 'cmd/cmd.js')
| -rwxr-xr-x | cmd/cmd.js | 53 |
1 files changed, 36 insertions, 17 deletions
@@ -1,36 +1,55 @@ #!/usr/bin/env node -function loadModule() { - const path = require("path"); - let func_name = process.argv[1]; - if (func_name.endsWith("cmd.js")) { - func_name = process.argv[2] +const path = require("path"); + +function parseArgv() { + let func_file = process.argv[1]; + let func_data = null; + + if (func_file.endsWith("cmd.js")) { + func_file = process.argv[2] + func_data = process.argv[3] } else { - func_name = path.basename(func_name) + func_file = path.basename(func_file) + func_data = process.argv[2]; } - if (!func_name.endsWith(".js")) { - func_name += '.js' + + if (!func_file.endsWith(".js")) { + func_file += '.js' } - const func_path = path.resolve(__dirname, `../js/${func_name}`) + + return [func_file, func_data] +} + +function loadFunc(func_file) { + const func_path = path.resolve(__dirname, `../js/${func_file}`) try { return require(func_path); } catch { - console.log(`Invalid js function: ${func_name}`) + console.log(`Invalid function: ${func_file}`) process.exit(1) } } -if (process.env["LLM_FUNCTION_DECLARATE"]) { - const { declarate } = loadModule(); +const [func_file, func_data] = parseArgv(); + +if (process.env["LLM_FUNCTION_ACTION"] == "declarate") { + const { declarate } = loadFunc(func_file); console.log(JSON.stringify(declarate(), null, 2)) } else { - let data = null; + if (!func_data) { + console.log("No json data"); + process.exit(1) + } + + let args; try { - data = JSON.parse(process.env["LLM_FUNCTION_DATA"]) + args = JSON.parse(func_data) } catch { - console.log("Invalid LLM_FUNCTION_DATA") + console.log("Invalid json data") process.exit(1) } - const { execute } = loadModule(); - execute(data) + + const { execute } = loadFunc(func_file); + execute(args) }
\ No newline at end of file |
