From 03c4b6982293c5be31d7eda89b6dcb8c1a7a8059 Mon Sep 17 00:00:00 2001 From: sigoden Date: Sun, 19 May 2024 22:43:49 +0800 Subject: feat: supports functions in bash/js/python/ruby (#6) --- cmd/cmd.js | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100755 cmd/cmd.js (limited to 'cmd/cmd.js') 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 -- cgit v1.2.3