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,6 +1,6 @@
#!/bin/sh
## SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
## SPDX-FileCopyrightText: 2023 - 2025 Benjamin Grande M. S. <ben.grande.b@gmail.com>
##
## SPDX-License-Identifier: AGPL-3.0-or-later
@ -60,7 +60,7 @@ if test -n "${1-}"; then
*) files="${files} ${f}"
esac
done
files="$(file ${files} | awk -F ":" '/ shell script,/{ print $1 }')"
files="$(file -- ${files} | awk -F ":" '/ shell script,/{ print $1 }')"
if test -z "${files}"; then
exit 0
fi
@ -80,7 +80,7 @@ case "${find_tool}" in
;;
find)
files="$(find scripts/ salt/ -not \( -path "*/zsh" -prune \) -type f \
-exec file {} \+ | awk -F ":" '/ shell script,/{ print $1 }')"
-exec file -- {} \+ | awk -F ":" '/ shell script,/{ print $1 }')"
;;
*) printf '%s\n' "Unsupported find tool" >&2; exit 1;;
esac