Use grep for Pimox template showcmd validation

This commit is contained in:
juvenal.diaz 2026-09-25 13:39:14 -06:00
parent 3c10516ab7
commit 0b36e21a38
1 changed files with 4 additions and 6 deletions

View File

@ -195,15 +195,13 @@ start_vm() {
trap 'rm -f "$start_script"' 0
sudo "$qm_cmd" showcmd "$vmid" --pretty >"$start_script"
if ! awk -v vmid="$vmid" '
NR == 1 && ($1 == "/usr/bin/kvm" || $1 ~ /qemu-system-aarch64$/) { kvm = 1 }
$1 == "-id" && $2 == vmid { id = 1 }
END { exit (kvm && id) ? 0 : 1 }
' "$start_script"; then
if ! { grep -Fq -- '/usr/bin/kvm' "$start_script" || grep -Fq -- 'qemu-system-aarch64' "$start_script"; } ||
! grep -Fq -- "-id $vmid" "$start_script"; then
echo "qm showcmd for VM $vmid did not produce the expected KVM command" >&2
sed 's/^/ showcmd: /' "$start_script" >&2
exit 1
fi
smp_count="$(awk '$1 == "-smp" { count++ } END { print count + 0 }' "$start_script")"
smp_count="$(grep -c '^[[:space:]]*-smp[[:space:]]' "$start_script" || true)"
if [ "$smp_count" -ne 1 ]; then
echo "Expected one native -smp argument for VM $vmid, found $smp_count. Remove stale qm args before starting." >&2
exit 1