aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/cmd.js
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-05-19 22:43:49 +0800
committerGitHub <noreply@github.com>2024-05-19 22:43:49 +0800
commit03c4b6982293c5be31d7eda89b6dcb8c1a7a8059 (patch)
treea2d48d189dcbe242ab69b174c734db4e70d502a2 /cmd/cmd.js
parentbe279dcd322da7f84bb6451f10456b19a979e9ad (diff)
downloadllm-functions-docker-03c4b6982293c5be31d7eda89b6dcb8c1a7a8059.tar.gz
feat: supports functions in bash/js/python/ruby (#6)
Diffstat (limited to 'cmd/cmd.js')
-rwxr-xr-xcmd/cmd.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/cmd/cmd.js b/cmd/cmd.js
new file mode 100755
index 0000000..81eedc6
--- /dev/null
+++ b/cmd/cmd.js
@@ -0,0 +1,36 @@
+#!/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]
+ } else {
+ func_name = path.basename(func_name)
+ }
+ if (!func_name.endsWith(".js")) {
+ func_name += '.js'
+ }
+ const func_path = path.resolve(__dirname, `../js/${func_name}`)
+ try {
+ return require(func_path);
+ } catch {
+ console.log(`Invalid js function: ${func_name}`)
+ process.exit(1)
+ }
+}
+
+if (process.env["LLM_FUNCTION_DECLARATE"]) {
+ const { declarate } = loadModule();
+ console.log(JSON.stringify(declarate(), null, 2))
+} else {
+ let data = null;
+ try {
+ data = JSON.parse(process.env["LLM_FUNCTION_DATA"])
+ } catch {
+ console.log("Invalid LLM_FUNCTION_DATA")
+ process.exit(1)
+ }
+ const { execute } = loadModule();
+ execute(data)
+} \ No newline at end of file