refactor: several improvements (#132)
- js export expression - check args regarding run-agent/run-tool
This commit is contained in:
+3
-3
@@ -30,14 +30,14 @@ run@tool() {
|
|||||||
cmd="$(_lang_to_cmd "$lang")"
|
cmd="$(_lang_to_cmd "$lang")"
|
||||||
run_tool_script="$PWD/scripts/run-tool.$lang"
|
run_tool_script="$PWD/scripts/run-tool.$lang"
|
||||||
[[ -n "$argc_cwd" ]] && cd "$argc_cwd"
|
[[ -n "$argc_cwd" ]] && cd "$argc_cwd"
|
||||||
"$cmd" "$run_tool_script" "$argc_tool" "$argc_json"
|
exec "$cmd" "$run_tool_script" "$argc_tool" "$argc_json"
|
||||||
}
|
}
|
||||||
|
|
||||||
# @cmd Run the agent
|
# @cmd Run the agent
|
||||||
# @alias agent:run
|
# @alias agent:run
|
||||||
# @option -C --cwd <dir> Change the current working directory
|
# @option -C --cwd <dir> Change the current working directory
|
||||||
# @arg agent![`_choice_agent`] The agent name
|
# @arg agent![`_choice_agent`] The agent name
|
||||||
# @arg action![`_choice_agent_action`] The agent action
|
# @arg action![?`_choice_agent_action`] The agent action
|
||||||
# @arg json The json data
|
# @arg json The json data
|
||||||
run@agent() {
|
run@agent() {
|
||||||
if [[ -z "$argc_json" ]]; then
|
if [[ -z "$argc_json" ]]; then
|
||||||
@@ -54,7 +54,7 @@ run@agent() {
|
|||||||
cmd="$(_lang_to_cmd "$lang")"
|
cmd="$(_lang_to_cmd "$lang")"
|
||||||
run_agent_script="$PWD/scripts/run-agent.$lang"
|
run_agent_script="$PWD/scripts/run-agent.$lang"
|
||||||
[[ -n "$argc_cwd" ]] && cd "$argc_cwd"
|
[[ -n "$argc_cwd" ]] && cd "$argc_cwd"
|
||||||
"$cmd" "$run_agent_script" "$argc_agent" "$argc_action" "$argc_json"
|
exec "$cmd" "$run_agent_script" "$argc_agent" "$argc_action" "$argc_json"
|
||||||
}
|
}
|
||||||
|
|
||||||
# @cmd Build the project
|
# @cmd Build the project
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* Get the system info
|
* Get the system info
|
||||||
*/
|
*/
|
||||||
exports.get_ipinfo = async function getIpinfo() {
|
exports.get_ipinfo = async function () {
|
||||||
const res = await fetch("https://httpbin.org/ip")
|
const res = await fetch("https://httpbin.org/ip")
|
||||||
return res.json();
|
return res.json();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ create_js() {
|
|||||||
* @typedef {Object} Args${properties}
|
* @typedef {Object} Args${properties}
|
||||||
* @param {Args} args
|
* @param {Args} args
|
||||||
*/
|
*/
|
||||||
exports.run = function run(args) {
|
exports.run = function (args) {
|
||||||
console.log(args);
|
console.log(args);
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|||||||
@@ -31,10 +31,15 @@ function parseArgv(thisFileName) {
|
|||||||
agentData = process.argv[3];
|
agentData = process.argv[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (agentName.endsWith(".js")) {
|
if (agentName && agentName.endsWith(".js")) {
|
||||||
agentName = agentName.slice(0, -3);
|
agentName = agentName.slice(0, -3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!agentData || !agentFunc || !agentName) {
|
||||||
|
console.log(`Usage: ./run-agent.js <agent-name> <agent-func> <agent-data>`);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
return [agentName, agentFunc, agentData];
|
return [agentName, agentFunc, agentData];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -32,20 +32,26 @@ def parse_argv(this_file_name):
|
|||||||
|
|
||||||
agent_name = argv[0]
|
agent_name = argv[0]
|
||||||
agent_func = ""
|
agent_func = ""
|
||||||
agent_data = None
|
agent_data = ""
|
||||||
|
|
||||||
if agent_name.endswith(this_file_name):
|
if agent_name.endswith(this_file_name):
|
||||||
|
if len(sys.argv) > 3:
|
||||||
agent_name = sys.argv[1]
|
agent_name = sys.argv[1]
|
||||||
agent_func = sys.argv[2]
|
agent_func = sys.argv[2]
|
||||||
agent_data = sys.argv[3]
|
agent_data = sys.argv[3]
|
||||||
else:
|
else:
|
||||||
|
if len(sys.argv) > 2:
|
||||||
agent_name = os.path.basename(agent_name)
|
agent_name = os.path.basename(agent_name)
|
||||||
agent_func = sys.argv[1]
|
agent_func = sys.argv[1]
|
||||||
agent_data = sys.argv[2]
|
agent_data = sys.argv[2]
|
||||||
|
|
||||||
if agent_name.endswith(".py"):
|
if agent_name and agent_name.endswith(".py"):
|
||||||
agent_name = agent_name[:-3]
|
agent_name = agent_name[:-3]
|
||||||
|
|
||||||
|
if (not agent_data) or (not agent_func) or (not agent_name):
|
||||||
|
print("Usage: ./run-agent.py <agent-name> <agent-func> <agent-data>", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
return agent_name, agent_func, agent_data
|
return agent_name, agent_func, agent_data
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,9 @@ parse_argv() {
|
|||||||
if [[ "$agent_name" == *.sh ]]; then
|
if [[ "$agent_name" == *.sh ]]; then
|
||||||
agent_name="${agent_name:0:$((${#agent_name}-3))}"
|
agent_name="${agent_name:0:$((${#agent_name}-3))}"
|
||||||
fi
|
fi
|
||||||
|
if [[ -z "$agent_data" ]] || [[ -z "$agent_func" ]] || [[ -z "$agent_name" ]]; then
|
||||||
|
die "usage: ./run-agent.sh <agent-name> <agent-func> <agent-data>"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_env() {
|
setup_env() {
|
||||||
|
|||||||
+6
-1
@@ -28,10 +28,15 @@ function parseArgv(thisFileName) {
|
|||||||
toolData = process.argv[2];
|
toolData = process.argv[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (toolName.endsWith(".js")) {
|
if (toolName && toolName.endsWith(".js")) {
|
||||||
toolName = toolName.slice(0, -3);
|
toolName = toolName.slice(0, -3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!toolData || !toolName) {
|
||||||
|
console.log(`Usage: ./run-tools.js <tool-name> <tool-data>`);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
return [toolName, toolData];
|
return [toolName, toolData];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+8
-2
@@ -31,18 +31,24 @@ def parse_argv(this_file_name):
|
|||||||
argv = sys.argv[:] + [None] * max(0, 3 - len(sys.argv))
|
argv = sys.argv[:] + [None] * max(0, 3 - len(sys.argv))
|
||||||
|
|
||||||
tool_name = argv[0]
|
tool_name = argv[0]
|
||||||
tool_data = None
|
tool_data = ""
|
||||||
|
|
||||||
if tool_name.endswith(this_file_name):
|
if tool_name.endswith(this_file_name):
|
||||||
|
if len(sys.argv) > 2:
|
||||||
tool_name = argv[1]
|
tool_name = argv[1]
|
||||||
tool_data = argv[2]
|
tool_data = argv[2]
|
||||||
else:
|
else:
|
||||||
|
if len(sys.argv) > 1:
|
||||||
tool_name = os.path.basename(tool_name)
|
tool_name = os.path.basename(tool_name)
|
||||||
tool_data = sys.argv[1]
|
tool_data = sys.argv[1]
|
||||||
|
|
||||||
if tool_name.endswith(".py"):
|
if tool_name and tool_name.endswith(".py"):
|
||||||
tool_name = tool_name[:-3]
|
tool_name = tool_name[:-3]
|
||||||
|
|
||||||
|
if (not tool_data) or (not tool_name):
|
||||||
|
print("Usage: ./run-tool.py <tool-name> <tool-data>", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
return tool_name, tool_data
|
return tool_name, tool_data
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,9 @@ parse_argv() {
|
|||||||
if [[ "$tool_name" == *.sh ]]; then
|
if [[ "$tool_name" == *.sh ]]; then
|
||||||
tool_name="${tool_name:0:$((${#tool_name}-3))}"
|
tool_name="${tool_name:0:$((${#tool_name}-3))}"
|
||||||
fi
|
fi
|
||||||
|
if [[ -z "$tool_data" ]] || [[ -z "$tool_name" ]]; then
|
||||||
|
die "usage: ./run-tool.sh <tool-name> <tool-data>"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_env() {
|
setup_env() {
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@
|
|||||||
* @property {string[]} [array_optional] - Define a optional string array property
|
* @property {string[]} [array_optional] - Define a optional string array property
|
||||||
* @param {Args} args
|
* @param {Args} args
|
||||||
*/
|
*/
|
||||||
exports.run = function run(args) {
|
exports.run = function (args) {
|
||||||
let output = `string: ${args.string}
|
let output = `string: ${args.string}
|
||||||
string_enum: ${args.string_enum}
|
string_enum: ${args.string_enum}
|
||||||
string_optional: ${args.string_optional}
|
string_optional: ${args.string_optional}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
* @property {string} code - Javascript code to execute, such as `console.log("hello world")`
|
* @property {string} code - Javascript code to execute, such as `console.log("hello world")`
|
||||||
* @param {Args} args
|
* @param {Args} args
|
||||||
*/
|
*/
|
||||||
exports.run = function run({ code }) {
|
exports.run = function ({ code }) {
|
||||||
let output = "";
|
let output = "";
|
||||||
const oldStdoutWrite = process.stdout.write.bind(process.stdout);
|
const oldStdoutWrite = process.stdout.write.bind(process.stdout);
|
||||||
process.stdout.write = (chunk, _encoding, callback) => {
|
process.stdout.write = (chunk, _encoding, callback) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user