107 lines
2.3 KiB
Bash
Executable File
107 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Install @VIEWER_CHANNEL@. 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 @VIEWER_CHANNEL@ in your home directory. If you"
|
|
warn "would like to install @VIEWER_CHANNEL@ 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/.@VIEWER_BRANDING_ID@-install"
|
|
$HOME/.@VIEWER_BRANDING_ID@-install/etc/refresh_desktop_app_entry.sh
|
|
}
|
|
|
|
function root_install()
|
|
{
|
|
local default_prefix="/opt/@VIEWER_BRANDING_ID@-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
|