#!/usr/bin/env bash # CONSTANTS BASEDIR=$(dirname "$0") OLDNAME='' NEWNAME='' # FUNCTIONS function usage { echo "usage: $(basename "$0") {current_name} {new_name}" } function parse_options { while [[ $# -gt 0 ]]; do case "$1" in --help | -h) usage && exit 0 ;; *) if [[ -z $OLDNAME ]]; then OLDNAME=$1 else if [[ -z $NEWNAME ]]; then NEWNAME=$1 else echo >&2 "Unknown option: $1" && usage && exit 2 fi fi ;; esac shift 1 # Move to the next argument done } function assert_args { [[ -z $NEWNAME ]] && echo 'error: arguments required!' && usage && exit 10 if vmid=$(pct-lookup $NEWNAME 2>/dev/null); then echo "error: new_name already used for vmid=<$vmid>!" exit 20 fi } function rename { vmid=$(pct-lookup $OLDNAME) pct set $vmid --hostname "$NEWNAME" } # MAIN set -Eue parse_options $* assert_args rename sleep 2