fix: stricter command-line parsing

- Add to qvm-run:
  - no-gui when command doesn't require a GUI
  - filter-escape-chars when pass-io is set and output is not a file,
    such as a pipe that could later be used to print information.
- Change remaining echo to printf
- Add end-of-options separator when possible
This commit is contained in:
Ben Grande 2025-01-08 15:52:34 +01:00
parent a02997b89e
commit aea8438904
No known key found for this signature in database
GPG key ID: 00C64E14F51F9E56
116 changed files with 1136 additions and 648 deletions

View file

@ -1,20 +1,20 @@
#!/bin/sh
## SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
## SPDX-FileCopyrightText: 2024 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
##
## SPDX-License-Identifier: AGPL-3.0-or-later
set -eu
updatevm="$(qubes-prefs updatevm)"
updatevm_class="$(qvm-prefs "${updatevm}" klass)"
updatevm="$(qubes-prefs -- updatevm)"
updatevm_class="$(qvm-prefs -- "${updatevm}" klass)"
proxy_target=""
case "${updatevm_class}" in
StandaloneVM) proxy_target="${updatevm}";;
AppVM) proxy_target="$(qvm-prefs "${updatevm}" template)";;
AppVM) proxy_target="$(qvm-prefs -- "${updatevm}" template)";;
DispVM)
proxy_target="$(qvm-prefs "${updatevm}" template)"
proxy_target="$(qvm-prefs "${proxy_target}" template)"
proxy_target="$(qvm-prefs -- "${updatevm}" template)"
proxy_target="$(qvm-prefs -- "${proxy_target}" template)"
;;
*) printf '%s\n' "Unsupported qube class" >&2; exit 1;;
esac