forked from pool/virtualbox
65 lines
2.4 KiB
Bash
65 lines
2.4 KiB
Bash
|
#!/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
|
||
|
$WGET http://download.virtualbox.org/virtualbox/$VBOX_VERSION/$VBOX_EXT > /dev/null 2>&1
|
||
|
|
||
|
# 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
|