diff options
author | nmaxwell@google.com <nmaxwell@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-03 03:52:57 +0000 |
---|---|---|
committer | nmaxwell@google.com <nmaxwell@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-03 03:52:57 +0000 |
commit | 5c63349d029718212dea86dcd91a409c8a27ec1e (patch) | |
tree | 03dc67e20992cb7b12efebc8e92b7dc6214db7f7 | |
parent | 26103c1a53d4db0e87879af3e7ceece412f33f3e (diff) | |
download | chromium_src-5c63349d029718212dea86dcd91a409c8a27ec1e.zip chromium_src-5c63349d029718212dea86dcd91a409c8a27ec1e.tar.gz chromium_src-5c63349d029718212dea86dcd91a409c8a27ec1e.tar.bz2 |
Adding uninstall.sh script to be included in self-extracting archive. This will get called within the setup.sh script to uninstall previous versions of O3D. Can also be manually invoked by a user directly to remove files.
Review URL: http://codereview.chromium.org/171128
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25297 0039d316-1c4b-4281-b951-d872f2087c98
-rwxr-xr-x | o3d/installer/linux/generic/setup.sh | 15 | ||||
-rwxr-xr-x | o3d/installer/linux/generic/uninstall.sh | 114 |
2 files changed, 127 insertions, 2 deletions
diff --git a/o3d/installer/linux/generic/setup.sh b/o3d/installer/linux/generic/setup.sh index 6606e18..82d2633 100755 --- a/o3d/installer/linux/generic/setup.sh +++ b/o3d/installer/linux/generic/setup.sh @@ -59,6 +59,15 @@ SetRootUser() { } +UninstallO3d() { + # Uninstall previous version(s) of O3D before running setup + if [ -x "/opt/google/o3d/uninstall.sh" ]; then + echo "Removing previous version(s) of O3D" + /opt/google/o3d/uninstall.sh + fi +} + + SetupO3d() { # Create npapi plugin directories, copy and symlink libs. O3D_DIR="/opt/google/o3d" @@ -83,8 +92,9 @@ SetupO3d() { echo "ok" echo -n "Installing files to $O3D_DIR..." - install --mode=644 ${LIB3D} $O3D_DIR - install --mode=644 ${LIBS} $LIB_DIR + install --mode=0644 ${LIB3D} $O3D_DIR + install --mode=0755 ./uninstall.sh $O3D_DIR + install --mode=0644 ${LIBS} $LIB_DIR echo "ok" echo -n "Creating symlinks to plugin..." @@ -132,4 +142,5 @@ SetupO3d() { CheckArch SetRootUser +UninstallO3d SetupO3d diff --git a/o3d/installer/linux/generic/uninstall.sh b/o3d/installer/linux/generic/uninstall.sh new file mode 100755 index 0000000..4b94b57 --- /dev/null +++ b/o3d/installer/linux/generic/uninstall.sh @@ -0,0 +1,114 @@ +#!/bin/sh +# Uninstalls O3D plugin for Linux +# +# Copyright 2009, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PATH=$PATH:/usr/bin/:/usr/local/bin + +CheckArch() { + # Look for 32 or 64 bit arch from the kernel. If we can not get a read + # on the arch, we'll go with "unknown". + ARCH=$(uname -m) + case $ARCH in + i?86 | i86*) + ARCH="32bit";; + x86_64 | amd64) + ARCH="64bit";; + *) + ARCH="unknown";; + esac + + echo "System architecture mapped to: $ARCH" +} + + +SetRootUser() { + # We need to be root (or run as sudo) in order to perform uninstall. + USER=$(id -u) + if [ "$USER" != "0" ]; then + echo "You must be root (or sudo) to remove this package." + exit 1 + fi +} + + +Uninstall() { + # Remove O3D plugin, dirs and symlinks. + O3D_DIR="/opt/google/o3d" + APPS="mozilla firefox iceape iceweasel xulrunner midbrowser xulrunner-addons" + LIBS="libCg.so libCgGL.so libGLEW.so.1.5" + LIB3D="libnpo3dautoplugin.so" + LIB3D_WRAPPED="npwrapper.libnpo3dautoplugin.so" + + # Prompt user for verification to remove files and directories. + echo " + Do you wish to completely remove all previous version(s) of + the O3D plugin, directories and included libs? (y/N)" + read answer + if [ "$answer" = "y" ]; then + echo -n "Removing O3D plugin, directories and libs..." + rm ${O3D_DIR}/libnpo3dautoplugin.so + rm ${O3D_DIR}/lib/libCg.so + rm ${O3D_DIR}/lib/libCgGL.so + rm ${O3D_DIR}/lib/libGLEW.so.1.5 + for app in $APPS; do + for lib in $LIBS; do + if [ -L "/usr/lib/${app}/plugins/${lib}" ]; then + rm /usr/lib/${app}/plugins/${lib} + fi + done + done + rm ${O3D_DIR}/uninstall.sh + rmdir $O3D_DIR + echo "ok" + else + echo "Aborting at users request" + exit 0 + fi + + # If 64bit, remove the wrapped plugin. + if [ "$ARCH" = "64bit" ]; then + echo -n "Removing $LIB3D_WRAPPED..." + for app in $APPS; do + if [ -L "/usr/lib/${app}/plugins/${LIB3D_WRAPPED}" ]; then + rm /usr/lib/${app}/plugins/${LIB3D_WRAPPED} + fi + done + echo "Done. Uninstall complete!" + exit 0 + fi + + echo "Done. Uninstall complete!" + exit 0 +} + +CheckArch +SetRootUser +Uninstall |