参考所有分组,完成尽量多的内容。禁止顺手扩功能 smoke

结论:收敛第 1 组 switchkins/remap 生成器约束,--all-output-dir 拒绝含空白路径和文件系统根目录,避免生成表/配置 case 误写到不受控位置;未扩展 smoke 功能。验证:./check-linuxcnc-switchkins-remap-table.sh linuxcnc-kinematics-source-files.txt、CNC_SIM_ALL_NATIVE_GUARDRAILS_ONLY=1 ./test-all-native.sh、./test-native.sh、./test-linuxcnc-source-link.sh 均通过。
This commit is contained in:
cnc
2026-06-03 19:17:18 +08:00
parent aa6e79ac64
commit 951dcc7980
2 changed files with 36 additions and 0 deletions

View File

@@ -64,6 +64,10 @@ if [[ "$mode" == all && -z "$all_output_dir" ]]; then
echo "missing output directory for --all-output-dir" >&2
exit 1
fi
if [[ "$mode" == all && "$all_output_dir" =~ [[:space:]] ]]; then
echo "switchkins remap output directory must not contain whitespace: $all_output_dir" >&2
exit 1
fi
linuxcnc_root=$(cd "$linuxcnc_root" && pwd)
@@ -1244,6 +1248,11 @@ elif [[ "$mode" == all ]]; then
exit 1
fi
mkdir -p "$all_output_dir"
all_output_dir=$(cd "$all_output_dir" && pwd)
if [[ "$all_output_dir" == "/" ]]; then
echo "switchkins remap output directory must not be the filesystem root" >&2
exit 1
fi
write_generated_file "$all_output_dir/linuxcnc_switchkins_remap_table.inc" "table" write_table
write_generated_file "$all_output_dir/linuxcnc_switchkins_remap_config_cases.inc" "config cases" write_config_cases
write_generated_file "$all_output_dir/linuxcnc_switchkins_remap_config_cases.json" "JSON config cases" write_json_cases