#!/bin/bash # Install the Second Life Viewer. This script can install the viewer both # system-wide and for an individual user. VT102_STYLE_NORMAL='\E[0m' VT102_COLOR_RED='\E[31m' SCRIPTSRC=`readlink -f "$0" || echo "$0"` RUN_PATH=`dirname "${SCRIPTSRC}" || echo .` tarball_path=${RUN_PATH} function prompt() { local prompt=$1 local input echo -n "$prompt" while read input; do case $input in [Yy]* ) return 1 ;; [Nn]* ) return 0 ;; * ) echo "Please enter yes or no." echo -n "$prompt" esac done } function die() { warn $1 exit 1 } function warn() { echo -n -e $VT102_COLOR_RED echo $1 echo -n -e $VT102_STYLE_NORMAL } function homedir_install() { warn "You are not running as a privileged user, so you will only be able" warn "to install the Second Life Viewer in your home directory. If you" warn "would like to install the Second Life Viewer system-wide, please run" warn "this script as the root user, or with the 'sudo' command." echo prompt "Proceed with the installation? [Y/N]: " if [[ $? == 0 ]]; then exit 0 fi install_to_prefix "$HOME/.secondlife-install" $HOME/.secondlife-install/etc/refresh_desktop_app_entry.sh } function root_install() { local default_prefix="/opt/secondlife-install" echo -n "Enter the desired installation directory [${default_prefix}]: "; read if [[ "$REPLY" = "" ]] ; then local install_prefix=$default_prefix else local install_prefix=$REPLY fi install_to_prefix "$install_prefix" mkdir -p /usr/local/share/applications ${install_prefix}/etc/refresh_desktop_app_entry.sh } function install_to_prefix() { test -e "$1" && backup_previous_installation "$1" mkdir -p "$1" || die "Failed to create installation directory!" echo " - Installing to $1" cp -a "${tarball_path}"/* "$1/" || die "Failed to complete the installation!" } function backup_previous_installation() { local backup_dir="$1".backup-$(date -I) echo " - Backing up previous installation to $backup_dir" mv "$1" "$backup_dir" || die "Failed to create backup of existing installation!" } if [ "$UID" == "0" ]; then root_install else homedir_install fi