参考所有分组:锁定loadusr资产清单校验,测试通过
This commit is contained in:
@@ -102,11 +102,16 @@ read_ini_switchkins_config() {
|
||||
print "postgui_halfile\t" value
|
||||
} else if (section == "hal" && key == "halcmd") {
|
||||
lower = tolower(value)
|
||||
if (lower ~ /(^|[[:space:]])loadusr([[:space:]]|$)/ &&
|
||||
match(lower, /[^[:space:]]+\.py([[:space:]]|$)/)) {
|
||||
py = substr(value, RSTART, RLENGTH)
|
||||
sub(/[[:space:]]*$/, "", py)
|
||||
print "halcmd_loadusr_py\t" py
|
||||
if (lower ~ /(^|[[:space:]])loadusr([[:space:]]|$)/) {
|
||||
command = value
|
||||
sub(/^.*(^|[[:space:]])loadusr[[:space:]]+/, "", command)
|
||||
while (command ~ /^-[^[:space:]]+[[:space:]]+/) {
|
||||
sub(/^-[^[:space:]]+[[:space:]]+/, "", command)
|
||||
}
|
||||
sub(/[[:space:]].*$/, "", command)
|
||||
if (command != "") {
|
||||
print "halcmd_loadusr\t" command
|
||||
}
|
||||
}
|
||||
} else if (section == "emcio" && key == "tool_table") {
|
||||
print "tool_table\t" value
|
||||
@@ -149,6 +154,34 @@ read_ini_switchkins_config() {
|
||||
' "$file"
|
||||
}
|
||||
|
||||
read_loadusr_commands() {
|
||||
local file=$1
|
||||
awk '
|
||||
function trim(value) {
|
||||
sub(/^[[:space:]]*/, "", value)
|
||||
sub(/[[:space:]]*$/, "", value)
|
||||
return value
|
||||
}
|
||||
{
|
||||
line = $0
|
||||
sub(/[[:space:]]*#.*/, "", line)
|
||||
line = trim(line)
|
||||
lower = tolower(line)
|
||||
if (lower !~ /(^|[[:space:]])loadusr([[:space:]]|$)/) {
|
||||
next
|
||||
}
|
||||
sub(/^.*(^|[[:space:]])loadusr[[:space:]]+/, "", line)
|
||||
while (line ~ /^-[^[:space:]]+[[:space:]]+/) {
|
||||
sub(/^-[^[:space:]]+[[:space:]]+/, "", line)
|
||||
}
|
||||
sub(/[[:space:]].*$/, "", line)
|
||||
if (line != "") {
|
||||
print line
|
||||
}
|
||||
}
|
||||
' "$file"
|
||||
}
|
||||
|
||||
resolved_config_path=
|
||||
resolve_config_path() {
|
||||
local config_dir=$1
|
||||
@@ -382,6 +415,49 @@ asset_source_for_path() {
|
||||
resolved_asset_source=$resolved_linuxcnc_path
|
||||
}
|
||||
|
||||
resolved_loadusr_asset_source=
|
||||
loadusr_asset_source_for_command() {
|
||||
local config=$1
|
||||
local command=$2
|
||||
resolved_loadusr_asset_source=
|
||||
[[ -n "$command" ]] || return 1
|
||||
|
||||
if [[ "$command" == */* || "$command" == *.py ]]; then
|
||||
if asset_source_for_path "$config" "$command"; then
|
||||
resolved_loadusr_asset_source=$resolved_asset_source
|
||||
return 0
|
||||
fi
|
||||
if [[ "$command" != *.py ]] && asset_source_for_path "$config" "$command.py"; then
|
||||
resolved_loadusr_asset_source=$resolved_asset_source
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
fi
|
||||
|
||||
local source="src/hal/user_comps/vismach/$command.py"
|
||||
if [[ -f "$linuxcnc_root/$source" ]]; then
|
||||
resolved_loadusr_asset_source=$source
|
||||
return 0
|
||||
fi
|
||||
if asset_source_for_path "$config" "$command.py"; then
|
||||
resolved_loadusr_asset_source=$resolved_asset_source
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
record_loadusr_asset() {
|
||||
local config_path=$1
|
||||
local config=$2
|
||||
local command=$3
|
||||
local label=$4
|
||||
if loadusr_asset_source_for_command "$config" "$command"; then
|
||||
loadusr_asset_source=$resolved_loadusr_asset_source
|
||||
record_asset_source "$config_path" "$loadusr_asset_source" "$label"
|
||||
record_python_import_assets "$config_path" "$loadusr_asset_source"
|
||||
fi
|
||||
}
|
||||
|
||||
resolved_python_module_source=
|
||||
python_module_source_for_name() {
|
||||
local config=$1
|
||||
@@ -813,7 +889,7 @@ while IFS=: read -r group path _note; do
|
||||
python_paths=
|
||||
python_toplevels=
|
||||
python_remaps=
|
||||
halcmd_loadusr_pys=
|
||||
halcmd_loadusrs=
|
||||
remap_ngc_428=
|
||||
remap_ngc_429=
|
||||
remap_ngc_430=
|
||||
@@ -852,8 +928,8 @@ while IFS=: read -r group path _note; do
|
||||
python_remap)
|
||||
python_remaps+="${python_remaps:+$'\n'}$ini_value"
|
||||
;;
|
||||
halcmd_loadusr_py)
|
||||
halcmd_loadusr_pys+="${halcmd_loadusr_pys:+$'\n'}$ini_value"
|
||||
halcmd_loadusr)
|
||||
halcmd_loadusrs+="${halcmd_loadusrs:+$'\n'}$ini_value"
|
||||
;;
|
||||
remap_428)
|
||||
[[ -n "$remap_ngc_428" ]] || remap_ngc_428=$ini_value
|
||||
@@ -948,6 +1024,10 @@ while IFS=: read -r group path _note; do
|
||||
record_config_source "$path" "$hal_source" "HALFILE"
|
||||
add_alias "$hal_source" "$m428" "$m429" "$m430"
|
||||
add_halfile_source_cases "$hal_source" "$m428" "$m429" "$m430"
|
||||
while IFS= read -r loadusr_command; do
|
||||
[[ -n "$loadusr_command" ]] || continue
|
||||
record_loadusr_asset "$path" "$linuxcnc_root/$hal_source" "$loadusr_command" "HALFILE loadusr"
|
||||
done < <(read_loadusr_commands "$linuxcnc_root/$hal_source")
|
||||
fi
|
||||
add_halfile_cases "$halfile" "$m428" "$m429" "$m430"
|
||||
add_halfile_aliases "$halfile" "$m428" "$m429" "$m430"
|
||||
@@ -958,6 +1038,10 @@ while IFS=: read -r group path _note; do
|
||||
record_config_source "$path" "$hal_source" "POSTGUI_HALFILE"
|
||||
add_alias "$hal_source" "$m428" "$m429" "$m430"
|
||||
add_postgui_halfile_source_cases "$hal_source" "$m428" "$m429" "$m430"
|
||||
while IFS= read -r loadusr_command; do
|
||||
[[ -n "$loadusr_command" ]] || continue
|
||||
record_loadusr_asset "$path" "$linuxcnc_root/$hal_source" "$loadusr_command" "POSTGUI_HALFILE loadusr"
|
||||
done < <(read_loadusr_commands "$linuxcnc_root/$hal_source")
|
||||
fi
|
||||
add_postgui_halfile_cases "$halfile" "$m428" "$m429" "$m430"
|
||||
add_halfile_aliases "$halfile" "$m428" "$m429" "$m430"
|
||||
@@ -997,14 +1081,10 @@ while IFS=: read -r group path _note; do
|
||||
record_python_import_assets "$path" "$python_remap_source"
|
||||
fi
|
||||
done <<<"$python_remaps"
|
||||
while IFS= read -r loadusr_py; do
|
||||
[[ -n "$loadusr_py" ]] || continue
|
||||
if asset_source_for_path "$config" "$loadusr_py"; then
|
||||
halcmd_loadusr_source=$resolved_asset_source
|
||||
record_asset_source "$path" "$halcmd_loadusr_source" "HALCMD loadusr"
|
||||
record_python_import_assets "$path" "$halcmd_loadusr_source"
|
||||
fi
|
||||
done <<<"$halcmd_loadusr_pys"
|
||||
while IFS= read -r loadusr_command; do
|
||||
[[ -n "$loadusr_command" ]] || continue
|
||||
record_loadusr_asset "$path" "$config" "$loadusr_command" "HALCMD loadusr"
|
||||
done <<<"$halcmd_loadusrs"
|
||||
|
||||
for remap_source in "$remap_source_428" "$remap_source_429" "$remap_source_430"; do
|
||||
if [[ -n "$remap_source" ]]; then
|
||||
|
||||
Reference in New Issue
Block a user