2020-03-24 03:06:06 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
# Script to update extpack
|
|
|
|
# The idea for this method and the original code came from Larry Len Rainey.
|
|
|
|
#
|
|
|
|
# This implementation by Larry Finger
|
|
|
|
|
|
|
|
# Define some symbols and determine the current version of VB
|
|
|
|
|
|
|
|
VBOXMANAGE=/usr/bin/VBoxManage
|
|
|
|
AWK=/usr/bin/awk
|
|
|
|
GREP=/usr/bin/grep
|
|
|
|
WGET=/usr/bin/wget
|
|
|
|
VBOX_VERSION=`$VBOXMANAGE --version | $AWK -F_ {'print $1'}`
|
|
|
|
|
|
|
|
# Define a symbol for the name of the extpack matching the VB version
|
|
|
|
VBOX_EXT=`echo Oracle_VM_VirtualBox_Extension_Pack-${VBOX_VERSION}.vbox-extpack`
|
|
|
|
|
|
|
|
# Full path to extpack license file
|
|
|
|
LICENSE_PATH="/usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack/ExtPack-license.rtf"
|
|
|
|
|
|
|
|
# Determine the installed version of extpack, if any.
|
|
|
|
EXTPACK_CURRENT=`$VBOXMANAGE list extpacks | $GREP -A1 "Oracle VM VirtualBox Extension Pack" | $GREP Version | $AWK -F\ {'print $2'}`
|
|
|
|
|
|
|
|
# The extpacks are licensed under a Personal Use and Evaluation License
|
|
|
|
# At some point, the user must agree to the conditions of that license.
|
|
|
|
# If no extpack is installed on this system, then there is no agreement,
|
|
|
|
# thus this script cannot install the extpack.
|
|
|
|
#
|
|
|
|
# This situation applies to new installations that could conform to the license,
|
|
|
|
# but more importantly, it handles commercial setups that have not purchased
|
|
|
|
# the necessary license.
|
|
|
|
# Check if extpack is currently installed. If not exit
|
|
|
|
if [ -z $EXTPACK_CURRENT ]; then
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
#
|
|
|
|
# An extpack has been installed on this system. Now we need to check if
|
|
|
|
# it was issued under the current version of the license.
|
|
|
|
|
|
|
|
#Note to maintainers: The "version 10" in the next command must be changed
|
|
|
|
# manually when Oracle revises the license.
|
|
|
|
|
|
|
|
LICENSE_CHECK=`$GREP "version 10" $LICENSE_PATH | $AWK -F\ {'print $2'}`
|
|
|
|
if [ -z $LICENSE_CHECK ]; then
|
|
|
|
# New license version does not match the current installation.
|
|
|
|
# The user will need to agree to the new version, thus we do nothing here.
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
if [ $VBOX_VERSION == $EXTPACK_CURRENT ]; then
|
|
|
|
# The extpack currently installed matches - we are done
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
# A new version of extpack is needed - switch to directory that can be written, and download it
|
|
|
|
pushd ~ > /dev/null 2>&1
|
2021-03-02 18:30:32 +01:00
|
|
|
$WGET https://download.virtualbox.org/virtualbox/$VBOX_VERSION/$VBOX_EXT > /dev/null 2>&1
|
2020-03-24 03:06:06 +01:00
|
|
|
|
|
|
|
# Now install it
|
|
|
|
echo Y | $VBOXMANAGE extpack install --replace $VBOX_EXT > /dev/null 2>&1
|
|
|
|
|
|
|
|
# Clean up by deleting downloaded file and restoring the original working directory
|
|
|
|
rm -f $VBOX_EXT
|
|
|
|
popd ~ > /dev/null 2>&1
|