#!/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 list-bridges | list-zfs-pools | list-dir-pools) COMMAND=$1 ;; --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) [[ ! -f /etc/pve/lxc/$vmid.conf ]] && echo "no configuration file found for vmid=<$vmid>" && exit 20 /opt/miaou-bash/tools/append_or_replace '^hostname:.*$' "hostname: $NEWNAME" /etc/pve/lxc/$vmid.conf } # MAIN set -Eue parse_options $* assert_args rename