From 7174fe03dbb43a1914a601669e708365b31ccc30 Mon Sep 17 00:00:00 2001 From: Roman Dobosz Date: Sun, 1 Aug 2021 17:40:49 +0200 Subject: [PATCH] Bump to version 6.1.22. There were cloud network command added. --- README.rst | 2 +- VBoxManage | 53 ++++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 47 insertions(+), 8 deletions(-) diff --git a/README.rst b/README.rst index be095c6..bde1cc9 100644 --- a/README.rst +++ b/README.rst @@ -6,7 +6,7 @@ script. However, in some point of time I've decided to rewrite it almost from scratch. Current version of script was written and tested against VBoxManage in version -6.1.10, and should contain all commands and their options. +6.1.22, and should contain all commands and their options. Unlike other attempts, I've tried to make the script context aware. See the simple session with the VBoxManage command below, to have an idea how it works: diff --git a/VBoxManage b/VBoxManage index 85542cd..06c902b 100644 --- a/VBoxManage +++ b/VBoxManage @@ -693,14 +693,19 @@ _VBoxManage() { ;; cloud) - if [[ " ${COMP_WORDS[@]} " != *" --provider"* || + if [ "${prev}" == "cloud" ]; then + items=(--provider --profile network) + elif [[ " ${COMP_WORDS[@]} " == *" network"* ]]; then + items=(update delete info) + elif [[ " ${COMP_WORDS[@]} " != *" --provider"* || " ${COMP_WORDS[@]} " != *" --profile"* ]]; then items=(--provider --profile) else [[ " ${COMP_WORDS[@]} " != *" list"* && " ${COMP_WORDS[@]} " != *" instance"* && + " ${COMP_WORDS[@]} " != *" network"* && " ${COMP_WORDS[@]} " != *" image"* ]] && - items=(list instance image) + items=(list instance image network) fi _get_excluded_items "${items[@]}" COMPREPLY=( $(compgen -W "$result" -- ${cur}) ) @@ -724,7 +729,11 @@ _VBoxManage() { COMPREPLY=( $(compgen -W "create info delete import export" -- ${cur}) ) ;; - + network) # TODO: differentiate between setup/create and update/delete/info + if [[ " ${COMP_WORDS[@]} " == *" --provider"* ]]; then + COMPREPLY=( $(compgen -W "setup create" -- ${cur}) ) + fi + ;; esac if [[ " ${COMP_WORDS[@]} " == *" list images"* ]]; then @@ -734,8 +743,9 @@ _VBoxManage() { fi if [[ " ${COMP_WORDS[@]} " == *" instance create"* ]]; then - items=(--domain-name --display-name --shape --subnet --publicip - --boot-disk-size --privateip --public-ssh-key --launch-mode) + items=( --domain-name --display-name --shape --subnet + --publicip --boot-disk-size --privateip --public-ssh-key + --launch-mode --cloud-init-script-path ) [[ " ${COMP_WORDS[@]} " != *" --image-id"* && " ${COMP_WORDS[@]} " != *" --boot-volume-id"* ]] && items+=(--image-id --boot-volume-id) @@ -778,6 +788,34 @@ _VBoxManage() { COMPREPLY=( $(compgen -W "--id --display-name --bucket-name --object-name" -- ${cur}) ) fi + if [[ " ${COMP_WORDS[@]} " == *" network setup"* ]]; then + items=( --local-gateway-iso --gateway-os-name + --gateway-os-version --gateway-shape --tunnel-network-name + --tunnel-network-range --guest-additions-iso --proxy + --compartment-id ) + _get_excluded_items "${items[@]}" + COMPREPLY=( $(compgen -W "$result" -- ${cur}) ) + fi + if [[ " ${COMP_WORDS[@]} " == *" network create"* ]]; then + items=( --name --network-id ) + [[ " ${COMP_WORDS[@]} " != *" --enable"* && + " ${COMP_WORDS[@]} " != *" --disable"* ]] && + items+=(--enable --disable) + _get_excluded_items "${items[@]}" + COMPREPLY=( $(compgen -W "$result" -- ${cur}) ) + fi + if [[ " ${COMP_WORDS[@]} " == *" network update"* ]]; then + items=( --name --network-id ) + [[ " ${COMP_WORDS[@]} " != *" --enable"* && + " ${COMP_WORDS[@]} " != *" --disable"* ]] && + items+=(--enable --disable) + _get_excluded_items "${items[@]}" + COMPREPLY=( $(compgen -W "$result" -- ${cur}) ) + fi + if [[ " ${COMP_WORDS[@]} " == *" network info"* || + " ${COMP_WORDS[@]} " == *" network delete"* ]]; then + COMPREPLY=( $(compgen -W "--name" -- ${cur}) ) + fi ;; controlvm) @@ -1232,7 +1270,8 @@ _VBoxManage() { ;; "export") - items=( --manifest --iso --options --vsys --cloud ) + items=( --manifest --iso --options --vsys --cloud + --cloudinitscriptpath ) if [[ ${prev} == ${cmd} ]]; then _vms_comp vms elif [[ ${prev} == "--eulafile" ]]; then @@ -1258,7 +1297,7 @@ _VBoxManage() { items+=(--vmname --cloudprofile --cloudshape --clouddomain --clouddisksize --cloudbucket --cloudocivcn --cloudocisubnet --cloudkeepobject --cloudlaunchinstance --cloudpublicip - --cloudprivateip --cloudlaunchmode) + --cloudprivateip --cloudlaunchmode --cloudinitscriptpath ) _get_excluded_items "${items[@]}" COMPREPLY=( $(compgen -W "$result" -- ${cur}) )