aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/cmd.js
diff options
context:
space:
mode:
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