diff --git a/check-linuxcnc-inputs.sh b/check-linuxcnc-inputs.sh index c941423..8ef2f33 100755 --- a/check-linuxcnc-inputs.sh +++ b/check-linuxcnc-inputs.sh @@ -461,6 +461,34 @@ if [[ -n "$manifest" && "$require_complete" == "--require-kinematics-complete" ] exit 1 fi + generated_component_manpage_sources=() + for source in "${manifest_generated_sources[@]}"; do + case "$source" in + src/objects/hal/components/*.c) + component_name=$(basename "$source" .c) + manpage_source="src/objects/man/man9/$component_name.9.adoc" + if [[ -f "$linuxcnc_root/$manpage_source" ]]; then + generated_component_manpage_sources+=("$manpage_source") + fi + ;; + esac + done + mapfile -t generated_component_manpage_sources < <( + printf '%s\n' "${generated_component_manpage_sources[@]}" | sed '/^$/d' | sort -u + ) + + missing_generated_component_manpage_sources=() + for source in "${generated_component_manpage_sources[@]}"; do + if ! printf '%s\n' "${manifest_metadata_sources[@]}" | grep -Fx -- "$source" >/dev/null; then + missing_generated_component_manpage_sources+=("$source") + fi + done + if ((${#missing_generated_component_manpage_sources[@]} > 0)); then + echo "manifest does not cover all LinuxCNC generated component manpage sources adjacent to generated kinematics sources: $manifest" >&2 + printf 'missing generated component manpage source: %s\n' "${missing_generated_component_manpage_sources[@]}" >&2 + exit 1 + fi + missing_m428_m430_ini_remap_sources=() unresolved_m428_m430_ini_remaps=() for source in "${manifest_m428_m430_ini_sources[@]}"; do @@ -1134,6 +1162,37 @@ if [[ -n "$manifest" && "$require_complete" == "--require-kinematics-complete" ] printf '%s\n' "${unresolved_m428_m430_config_tooldata_sources[@]}" | sed '/^$/d' | sort -u ) + # Source basis: these LinuxCNC M428/M429/M430 INI files name TOOL_TABLE + # entries that are absent from the current LinuxCNC source tree. Keep the + # unresolved set explicit so new missing tool tables do not pass silently. + expected_unresolved_m428_m430_config_tooldata_sources=( + "configs/sim/axis/vismach/hexapod-sim/hexapod.ini TOOL_TABLE=hexapod.tbl" + "configs/sim/axis/vismach/scara/scara.ini TOOL_TABLE=scara.tbl" + "configs/sim/qtvcp_screens/non-trivial/scara/scara.ini TOOL_TABLE=scara.tbl" + ) + unexpected_unresolved_m428_m430_config_tooldata_sources=() + for source in "${unresolved_m428_m430_config_tooldata_sources[@]}"; do + if ! printf '%s\n' "${expected_unresolved_m428_m430_config_tooldata_sources[@]}" | grep -Fx -- "$source" >/dev/null; then + unexpected_unresolved_m428_m430_config_tooldata_sources+=("$source") + fi + done + missing_expected_unresolved_m428_m430_config_tooldata_sources=() + for source in "${expected_unresolved_m428_m430_config_tooldata_sources[@]}"; do + if ! printf '%s\n' "${unresolved_m428_m430_config_tooldata_sources[@]}" | grep -Fx -- "$source" >/dev/null; then + missing_expected_unresolved_m428_m430_config_tooldata_sources+=("$source") + fi + done + if ((${#unexpected_unresolved_m428_m430_config_tooldata_sources[@]} > 0)); then + echo "LinuxCNC M428/M429/M430 INI TOOL_TABLE files have new unresolved sources: $manifest" >&2 + printf 'unexpected unresolved M428/M429/M430 tool table source: %s\n' "${unexpected_unresolved_m428_m430_config_tooldata_sources[@]}" >&2 + exit 1 + fi + if ((${#missing_expected_unresolved_m428_m430_config_tooldata_sources[@]} > 0)); then + echo "LinuxCNC M428/M429/M430 INI TOOL_TABLE unresolved source set changed: $manifest" >&2 + printf 'missing expected unresolved M428/M429/M430 tool table source: %s\n' "${missing_expected_unresolved_m428_m430_config_tooldata_sources[@]}" >&2 + exit 1 + fi + missing_m428_m430_config_tooldata_sources=() for source in "${m428_m430_config_tooldata_sources[@]}"; do if ! printf '%s\n' "${manifest_tooldata_sources[@]}" | grep -Fx -- "$source" >/dev/null; then diff --git a/linuxcnc-kinematics-source-files.txt b/linuxcnc-kinematics-source-files.txt index 2eeff48..a40144c 100644 --- a/linuxcnc-kinematics-source-files.txt +++ b/linuxcnc-kinematics-source-files.txt @@ -277,9 +277,15 @@ metadata:docs/man/man9/tripodkins.9:LinuxCNC tripodkins generated manpage source metadata:src/objects/hal/components/gantry.mak:halcompile-generated gantry component make metadata metadata:src/objects/man/man9/gantry.9.adoc:halcompile-generated gantry component manpage source metadata:src/objects/hal/components/matrixkins.mak:halcompile-generated matrixkins make metadata adjacent to generated kinematics source +metadata:src/objects/man/man9/matrixkins.9.adoc:halcompile-generated matrixkins manpage source adjacent to generated kinematics source metadata:src/objects/hal/components/millturn.mak:halcompile-generated millturn make metadata adjacent to generated kinematics source +metadata:src/objects/man/man9/millturn.9.adoc:halcompile-generated millturn manpage source adjacent to generated kinematics source metadata:src/objects/hal/components/userkins.mak:halcompile-generated userkins make metadata adjacent to generated kinematics source +metadata:src/objects/man/man9/userkins.9.adoc:halcompile-generated userkins manpage source adjacent to generated kinematics source metadata:src/objects/hal/components/xyzab_tdr_kins.mak:halcompile-generated XYZAB table dual rotary make metadata adjacent to generated kinematics source +metadata:src/objects/man/man9/xyzab_tdr_kins.9.adoc:halcompile-generated XYZAB table dual rotary manpage source adjacent to generated kinematics source metadata:src/objects/hal/components/xyzacb_trsrn.mak:halcompile-generated XYZACB TRSRN make metadata adjacent to generated kinematics source +metadata:src/objects/man/man9/xyzacb_trsrn.9.adoc:halcompile-generated XYZACB TRSRN manpage source adjacent to generated kinematics source metadata:src/objects/hal/components/xyzbca_trsrn.mak:halcompile-generated XYZBCA TRSRN make metadata adjacent to generated kinematics source +metadata:src/objects/man/man9/xyzbca_trsrn.9.adoc:halcompile-generated XYZBCA TRSRN manpage source adjacent to generated kinematics source asset:src/emc/kinematics/blend.fig:LinuxCNC kinematics reference asset tracked for full directory coverage