From 005d23030dab2b7708996e779dc78dd5f8ebdb8d Mon Sep 17 00:00:00 2001 From: sigoden Date: Wed, 5 Jun 2024 18:37:52 +0800 Subject: feat: adjust project structure (#16) --- run/tool.rb | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 run/tool.rb (limited to 'run/tool.rb') diff --git a/run/tool.rb b/run/tool.rb new file mode 100755 index 0000000..4a692ef --- /dev/null +++ b/run/tool.rb @@ -0,0 +1,54 @@ +#!/usr/bin/env ruby + +require 'json' +require 'pathname' + +def parse_argv + func_file = __FILE__ + func_data = nil + + if func_file.end_with?("tool.rb") + func_file = ARGV[0] + func_data = ARGV[1] + else + func_file = File.basename(func_file) + func_data = ARGV[0] + end + + func_file += '.rb' unless func_file.end_with?(".rb") + + [func_file, func_data] +end + +def load_func(func_file) + func_path = File.expand_path("../tools/rb/#{func_file}", __dir__) + + begin + require func_path + rescue LoadError + puts "Invalid function: #{func_file}" + exit 1 + end +end + +func_file, func_data = parse_argv + +if ENV["LLM_FUNCTION_ACTION"] == "declarate" + load_func(func_file) + puts JSON.pretty_generate(declarate) +else + if func_data.nil? + puts "No json data" + exit 1 + end + + begin + args = JSON.parse(func_data) + rescue JSON::ParserError + puts "Invalid json data" + exit 1 + end + + load_func(func_file) + execute(args) +end \ No newline at end of file -- cgit v1.2.3