feat: adjust project structure (#16)
This commit is contained in:
+7
-7
@@ -46,14 +46,14 @@ build-bin() {
|
|||||||
for name in "${names[@]}"; do
|
for name in "${names[@]}"; do
|
||||||
basename="${name%.*}"
|
basename="${name%.*}"
|
||||||
lang="${name##*.}"
|
lang="${name##*.}"
|
||||||
func_file="$lang/$name"
|
func_file="tools/$lang/$name"
|
||||||
if [[ -f "$func_file" ]]; then
|
if [[ -f "$func_file" ]]; then
|
||||||
if _is_win; then
|
if _is_win; then
|
||||||
bin_file="$BIN_DIR/$basename.cmd"
|
bin_file="$BIN_DIR/$basename.cmd"
|
||||||
_build_win_shim $lang > "$bin_file"
|
_build_win_shim $lang > "$bin_file"
|
||||||
else
|
else
|
||||||
bin_file="$BIN_DIR/$basename"
|
bin_file="$BIN_DIR/$basename"
|
||||||
ln -s "$PWD/cmd/cmd.$lang" "$bin_file"
|
ln -s "$PWD/run/tool.$lang" "$bin_file"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
not_found_funcs+=("$name")
|
not_found_funcs+=("$name")
|
||||||
@@ -85,7 +85,7 @@ build-declarations-json() {
|
|||||||
build_failed_funcs=()
|
build_failed_funcs=()
|
||||||
for name in "${names[@]}"; do
|
for name in "${names[@]}"; do
|
||||||
lang="${name##*.}"
|
lang="${name##*.}"
|
||||||
func_file="$lang/$name"
|
func_file="tools/$lang/$name"
|
||||||
if [[ ! -f "$func_file" ]]; then
|
if [[ ! -f "$func_file" ]]; then
|
||||||
not_found_funcs+=("$name")
|
not_found_funcs+=("$name")
|
||||||
continue;
|
continue;
|
||||||
@@ -112,7 +112,7 @@ build-single-declaration() {
|
|||||||
func="$1"
|
func="$1"
|
||||||
lang="${func##*.}"
|
lang="${func##*.}"
|
||||||
cmd="$(_lang_to_cmd "$lang")"
|
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
|
# @cmd List functions that can be put into functions.txt
|
||||||
@@ -154,8 +154,8 @@ test-functions() {
|
|||||||
echo "Test $cmd_path: $(cat)"
|
echo "Test $cmd_path: $(cat)"
|
||||||
}
|
}
|
||||||
if ! _is_win; then
|
if ! _is_win; then
|
||||||
"$cmd" "cmd/cmd.$lang" "$func" "$data" | {
|
"$cmd" "run/tool.$lang" "$func" "$data" | {
|
||||||
echo "Test $cmd cmd/cmd.$lang $func: $(cat)"
|
echo "Test $cmd run/tool.$lang $func: $(cat)"
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -242,7 +242,7 @@ _choice_func() {
|
|||||||
lang="${item%:*}"
|
lang="${item%:*}"
|
||||||
cmd="${item#*:}"
|
cmd="${item#*:}"
|
||||||
if command -v "$cmd" &> /dev/null; then
|
if command -v "$cmd" &> /dev/null; then
|
||||||
ls -1 $lang | grep "\.$lang$"
|
ls -1 tools/$lang | grep "\.$lang$"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ The project supports write functions in bash/js/python.
|
|||||||
|
|
||||||
### Bash
|
### 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
|
```sh
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
@@ -109,7 +109,7 @@ The relationship between comment tags and parameters in function declarations is
|
|||||||
|
|
||||||
### Javascript
|
### 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
|
```js
|
||||||
exports.declarate = function declarate() {
|
exports.declarate = function declarate() {
|
||||||
@@ -139,7 +139,7 @@ exports.execute = function execute(data) {
|
|||||||
|
|
||||||
### Python
|
### 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
|
```py
|
||||||
def declarate():
|
def declarate():
|
||||||
@@ -167,7 +167,7 @@ def execute(data):
|
|||||||
|
|
||||||
### Ruby
|
### 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
|
```rb
|
||||||
def declarate
|
def declarate
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ function parseArgv() {
|
|||||||
let func_file = process.argv[1];
|
let func_file = process.argv[1];
|
||||||
let func_data = null;
|
let func_data = null;
|
||||||
|
|
||||||
if (func_file.endsWith("cmd.js")) {
|
if (func_file.endsWith("tool.js")) {
|
||||||
func_file = process.argv[2]
|
func_file = process.argv[2]
|
||||||
func_data = process.argv[3]
|
func_data = process.argv[3]
|
||||||
} else {
|
} else {
|
||||||
@@ -22,7 +22,7 @@ function parseArgv() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function loadFunc(func_file) {
|
function loadFunc(func_file) {
|
||||||
const func_path = path.resolve(__dirname, `../js/${func_file}`)
|
const func_path = path.resolve(__dirname, `../tools/js/${func_file}`)
|
||||||
try {
|
try {
|
||||||
return require(func_path);
|
return require(func_path);
|
||||||
} catch {
|
} catch {
|
||||||
@@ -9,7 +9,7 @@ def parse_argv():
|
|||||||
func_file = sys.argv[0]
|
func_file = sys.argv[0]
|
||||||
func_data = None
|
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_file = sys.argv[1] if len(sys.argv) > 1 else None
|
||||||
func_data = sys.argv[2] if len(sys.argv) > 2 else None
|
func_data = sys.argv[2] if len(sys.argv) > 2 else None
|
||||||
else:
|
else:
|
||||||
@@ -23,7 +23,7 @@ def parse_argv():
|
|||||||
|
|
||||||
def load_func(func_file):
|
def load_func(func_file):
|
||||||
base_dir = os.path.dirname(os.path.abspath(__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):
|
if os.path.exists(func_path):
|
||||||
spec = importlib.util.spec_from_file_location(func_file, func_path)
|
spec = importlib.util.spec_from_file_location(func_file, func_path)
|
||||||
module = importlib.util.module_from_spec(spec)
|
module = importlib.util.module_from_spec(spec)
|
||||||
@@ -7,7 +7,7 @@ def parse_argv
|
|||||||
func_file = __FILE__
|
func_file = __FILE__
|
||||||
func_data = nil
|
func_data = nil
|
||||||
|
|
||||||
if func_file.end_with?("cmd.rb")
|
if func_file.end_with?("tool.rb")
|
||||||
func_file = ARGV[0]
|
func_file = ARGV[0]
|
||||||
func_data = ARGV[1]
|
func_data = ARGV[1]
|
||||||
else
|
else
|
||||||
@@ -21,7 +21,7 @@ def parse_argv
|
|||||||
end
|
end
|
||||||
|
|
||||||
def load_func(func_file)
|
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
|
begin
|
||||||
require func_path
|
require func_path
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
if [[ "$0" == *cmd.sh ]]; then
|
if [[ "$0" == *tool.sh ]]; then
|
||||||
FUNC_FILE="$1"
|
FUNC_FILE="$1"
|
||||||
FUNC_DATA="$2"
|
FUNC_DATA="$2"
|
||||||
else
|
else
|
||||||
@@ -13,7 +13,7 @@ if [[ "$FUNC_FILE" != *'.sh' ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
PROJECT_DIR="$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/.." &> /dev/null && pwd)"
|
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
|
if [[ "$OS" == "Windows_NT" ]]; then
|
||||||
FUNC_FILE="$(cygpath -w "$FUNC_FILE")"
|
FUNC_FILE="$(cygpath -w "$FUNC_FILE")"
|
||||||
Reference in New Issue
Block a user