aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/cmd.js
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-05-21 08:26:47 +0800
committerGitHub <noreply@github.com>2024-05-21 08:26:47 +0800
commitef43b22a8e6d4eb7388a552ba6d52d662e38fd0c (patch)
treecf03ce9e37b5e3068aa38aa2213b558d210bc1a0 /cmd/cmd.js
parente6642b5898ef3c46b2d37ab8dfce18f5db0a5618 (diff)
downloadllm-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-xcmd/cmd.js53
1 files changed, 36 insertions, 17 deletions
diff --git a/cmd/cmd.js b/cmd/cmd.js
index 81eedc6..d2893b5 100755
--- a/cmd/cmd.js
+++ b/cmd/cmd.js
@@ -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