#!/bin/bash # # Installs app if not already installed . /etc/federated . /federated/lib/functions.sh trap cleanup `seq 1 15` usage() { cat << EOF Install application Usage: $0 [-n] appname Arguments: appname Application to install. bookstack,espocrm,freescout,etc Options -n Don't send the customer e-mail on install EOF exit 2; } while getopts "n" OPTION; do case $OPTION in n) NO_EMAIL="true"; ;; *) usage; exit 2; esac done [ $# -gt 2 ] || [ $# -lt 1 ] && usage [[ "$2" = "-n" ]] && usage [[ ! "$NO_EMAIL" ]] && APP=$1 || APP=$2 [ ! -f /federated/lib/$APP.sh ] && failcheck "/federated/lib/$APP.sh doesn't exist." [ -d /federated/apps/$APP ] && failcheck "/federated/apps/$APP already exists. $APP is installed?" . /federated/lib/$APP.sh config_$APP start_$APP # Only send email if email function exists and NO_EMAIL isn't set [[ ! "$NO_EMAIL" ]] && [[ $(type -t email_$APP) == function ]] && email_$APP