feat: adjust project structure (#16)

This commit is contained in:
sigoden
2024-06-05 18:37:52 +08:00
committed by GitHub
parent 7e3f47093f
commit 005d23030d
15 changed files with 19 additions and 19 deletions
+7 -7
View File
@@ -46,14 +46,14 @@ build-bin() {
for name in "${names[@]}"; do
basename="${name%.*}"
lang="${name##*.}"
func_file="$lang/$name"
func_file="tools/$lang/$name"
if [[ -f "$func_file" ]]; then
if _is_win; then
bin_file="$BIN_DIR/$basename.cmd"
_build_win_shim $lang > "$bin_file"
else
bin_file="$BIN_DIR/$basename"
ln -s "$PWD/cmd/cmd.$lang" "$bin_file"
ln -s "$PWD/run/tool.$lang" "$bin_file"
fi
else
not_found_funcs+=("$name")
@@ -85,7 +85,7 @@ build-declarations-json() {
build_failed_funcs=()
for name in "${names[@]}"; do
lang="${name##*.}"
func_file="$lang/$name"
func_file="tools/$lang/$name"
if [[ ! -f "$func_file" ]]; then
not_found_funcs+=("$name")
continue;
@@ -112,7 +112,7 @@ build-single-declaration() {
func="$1"
lang="${func##*.}"
cmd="$(_lang_to_cmd "$lang")"
LLM_FUNCTION_ACTION=declarate "$cmd" "cmd/cmd.$lang" "$func"
LLM_FUNCTION_ACTION=declarate "$cmd" "run/tool.$lang" "$func"
}
# @cmd List functions that can be put into functions.txt
@@ -154,8 +154,8 @@ test-functions() {
echo "Test $cmd_path: $(cat)"
}
if ! _is_win; then
"$cmd" "cmd/cmd.$lang" "$func" "$data" | {
echo "Test $cmd cmd/cmd.$lang $func: $(cat)"
"$cmd" "run/tool.$lang" "$func" "$data" | {
echo "Test $cmd run/tool.$lang $func: $(cat)"
}
fi
fi
@@ -242,7 +242,7 @@ _choice_func() {
lang="${item%:*}"
cmd="${item#*:}"
if command -v "$cmd" &> /dev/null; then
ls -1 $lang | grep "\.$lang$"
ls -1 tools/$lang | grep "\.$lang$"
fi
done
}
+4 -4
View File
@@ -76,7 +76,7 @@ The project supports write functions in bash/js/python.
### Bash
Create a new bashscript (.e.g. `may_execute_command.sh`) in the [./sh](./sh/) directory.
Create a new bashscript in the [./tools/sh](./tools/sh/) directory (.e.g. `may_execute_command.sh`).
```sh
#!/usr/bin/env bash
@@ -109,7 +109,7 @@ The relationship between comment tags and parameters in function declarations is
### Javascript
Create a new javascript (.e.g. `may_execute_command.js`) in the [./js](./js/) directory.
Create a new javascript in the [./tools/js](./tools/js/) directory (.e.g. `may_execute_command.js`).
```js
exports.declarate = function declarate() {
@@ -139,7 +139,7 @@ exports.execute = function execute(data) {
### Python
Create a new python script in the [./py](./py/) directory (e.g., `may_execute_py_code.py`).
Create a new python script in the [./tools/py](./tools/py/) directory (e.g., `may_execute_py_code.py`).
```py
def declarate():
@@ -167,7 +167,7 @@ def execute(data):
### Ruby
Create a new ruby script in the [./rb](./rb/) directory (e.g., `may_execute_rb_code.rb`).
Create a new ruby script in the [./tools/rb](./tools/rb/) directory (e.g., `may_execute_rb_code.rb`).
```rb
def declarate
+2 -2
View File
@@ -6,7 +6,7 @@ function parseArgv() {
let func_file = process.argv[1];
let func_data = null;
if (func_file.endsWith("cmd.js")) {
if (func_file.endsWith("tool.js")) {
func_file = process.argv[2]
func_data = process.argv[3]
} else {
@@ -22,7 +22,7 @@ function parseArgv() {
}
function loadFunc(func_file) {
const func_path = path.resolve(__dirname, `../js/${func_file}`)
const func_path = path.resolve(__dirname, `../tools/js/${func_file}`)
try {
return require(func_path);
} catch {
+2 -2
View File
@@ -9,7 +9,7 @@ def parse_argv():
func_file = sys.argv[0]
func_data = None
if func_file.endswith("cmd.py"):
if func_file.endswith("tool.py"):
func_file = sys.argv[1] if len(sys.argv) > 1 else None
func_data = sys.argv[2] if len(sys.argv) > 2 else None
else:
@@ -23,7 +23,7 @@ def parse_argv():
def load_func(func_file):
base_dir = os.path.dirname(os.path.abspath(__file__))
func_path = os.path.join(base_dir, f"../py/{func_file}")
func_path = os.path.join(base_dir, f"../tools/py/{func_file}")
if os.path.exists(func_path):
spec = importlib.util.spec_from_file_location(func_file, func_path)
module = importlib.util.module_from_spec(spec)
+2 -2
View File
@@ -7,7 +7,7 @@ def parse_argv
func_file = __FILE__
func_data = nil
if func_file.end_with?("cmd.rb")
if func_file.end_with?("tool.rb")
func_file = ARGV[0]
func_data = ARGV[1]
else
@@ -21,7 +21,7 @@ def parse_argv
end
def load_func(func_file)
func_path = File.expand_path("../rb/#{func_file}", __dir__)
func_path = File.expand_path("../tools/rb/#{func_file}", __dir__)
begin
require func_path
+2 -2
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
set -e
if [[ "$0" == *cmd.sh ]]; then
if [[ "$0" == *tool.sh ]]; then
FUNC_FILE="$1"
FUNC_DATA="$2"
else
@@ -13,7 +13,7 @@ if [[ "$FUNC_FILE" != *'.sh' ]]; then
fi
PROJECT_DIR="$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/.." &> /dev/null && pwd)"
FUNC_FILE="$PROJECT_DIR/sh/$FUNC_FILE"
FUNC_FILE="$PROJECT_DIR/tools/sh/$FUNC_FILE"
if [[ "$OS" == "Windows_NT" ]]; then
FUNC_FILE="$(cygpath -w "$FUNC_FILE")"