Support more configuration in the .proxmox file

This commit is contained in:
Nicolas Jeannerod 2025-02-20 09:30:11 +01:00
parent a7c6ceb111
commit 9611e4ff9a
Signed by untrusted user: Niols
GPG key ID: 35DB9EC8886E1CB8

View file

@ -28,24 +28,27 @@ debug=false
help () { help () {
cat <<EOF cat <<EOF
Usage: $0 [OPTION...] [ID...] Usage: $0 [OPTION...] ID [ID...]
Authentication options: Options:
--username STR Username, with provider (eg. niols@pve) --username STR Username, with provider (eg. niols@pve; required)
--password STR Password --password STR Password (required)
If not provided via the command line, username and password will be looked for
in a '.proxmox' file in the current working directory, the username on the
first line, and the password on the second.
Other options:
--sockets INT Number of sockets (default: $sockets)
--cores INT Number of cores (default: $cores) --cores INT Number of cores (default: $cores)
--memory INT Memory (default: $memory) --memory INT Memory (default: $memory)
--debug Run this script in debug mode --sockets INT Number of sockets (default: $sockets)
Others: --debug Run this script in debug mode (default: $debug)
-h|-?|--help Show this help and exit -h|-?|--help Show this help and exit
Options can also be provided by adding assignments to a '.proxmox' file in the
current working directory. For instance, it could contain:
cores=7
username=mireille@pve
debug=true
Command line options take precedence over options found in the '.proxmox' file.
EOF EOF
} }
@ -57,6 +60,10 @@ die_with_help () { printf '\033[31m'; printf "$@"; printf '\033[0m\n'; help; exi
# shellcheck disable=SC2059 # shellcheck disable=SC2059
debug () { if $debug; then printf >&2 '\033[37m'; printf >&2 "$@"; printf >&2 '\033[0m\n'; fi } debug () { if $debug; then printf >&2 '\033[37m'; printf >&2 "$@"; printf >&2 '\033[0m\n'; fi }
if [ -f .proxmox ]; then
. "$PWD"/.proxmox
fi
while [ $# -gt 0 ]; do while [ $# -gt 0 ]; do
argument=$1 argument=$1
shift shift
@ -78,12 +85,12 @@ while [ $# -gt 0 ]; do
esac esac
done done
if [ -z "$username" ] || [ -z "$password" ]; then if [ -z "$vm_ids" ]; then
if [ -f .proxmox ]; then die_with_help "Required: at least one VM id.\n"
{ read -r username; read -r password; } < .proxmox
else
die_with_help "Required: '--username' and '--password'.\n"
fi fi
if [ -z "$username" ] || [ -z "$password" ]; then
die_with_help "Required: '--username' and '--password'.\n"
fi fi
readonly sockets readonly sockets