1#!/usr/local/bin/bash 2# Linux installation script to be used inside packages (deb, rmp) 3# or launched manually with the appropriate variables set... 4# 5# $Id$ 6# 7#set -v 8 9if [ "_$_ITOP_SYSCONFDIR_" = "_" ]; then 10 _ITOP_SYSCONFDIR_="/etc" 11fi 12if [ "_$_ITOP_VARDIR_" = "_" ]; then 13 _ITOP_VARDIR_="/var" 14fi 15if [ "_$_ITOP_NAME_" = "_" ]; then 16 _ITOP_NAME_="itop-itsm" 17fi 18 19if [ "_$PREFIX" != "_" ]; then 20 local=${HEAD}$PREFIX 21 sublocal=$PREFIX 22 conf=${HEAD}$_ITOP_SYSCONFDIR_/$_ITOP_NAME_ 23 subconf=$_ITOP_SYSCONFDIR_/$_ITOP_NAME_ 24 var=${HEAD}$_ITOP_VARDIR_ 25 subvar=$_ITOP_VARDIR_ 26 webconf=${HEAD}$_ITOP_WEBCONFDIR_ 27 subwebconf=$_ITOP_WEBCONFDIR_ 28else 29 local=/usr/local 30 sublocal=$local 31 conf=$local/$_ITOP_SYSCONFDIR_ 32 subconf=$conf 33 var=$local/$_ITOP_VARDIR_ 34 subvar=$var 35 webconf=$local/$_ITOP_WEBCONFDIR_ 36 subwebconf=$_ITOP_WEBCONFDIR_ 37fi 38 39if [ "_$_ITOP_WEBCONFDIR_" = "_" ]; then 40 _ITOP_WEBCONFDIR_="$conf/../httpd" 41 if [ ! -d $_ITOP_WEBCONFDIR_ ]; then 42 exit "Please define a valid _ITOP_WEBCONFDIR_ variable" 43 fi 44fi 45 46# Define additional dirs 47if [ _"$_ITOP_LOGDIR_" = _"" ]; then 48 _ITOP_LOGDIR_="$var/log/$_ITOP_NAME_" 49else 50 _ITOP_LOGDIR_="${HEAD}$_ITOP_LOGDIR_" 51fi 52 53if [ _"$_ITOP_VARLIBDIR_" = _"" ]; then 54 _ITOP_VARLIBDIR_="$var/lib/$_ITOP_NAME_" 55else 56 _ITOP_VARLIBDIR_="${HEAD}$_ITOP_VARLIBDIR_" 57fi 58 59if [ _"$_ITOP_DATADIR_" = _"" ]; then 60 _ITOP_DATADIR_="$local/share/$_ITOP_NAME_" 61else 62 _ITOP_DATADIR_="${HEAD}$_ITOP_DATADIR_" 63fi 64 65# From now on Variables are correctly setup, just use them 66# 67echo "$_ITOP_NAME_ will be installed under $_ITOP_DATADIR_" 68 69echo "Creating target directories ..." 70for d in production test toolkit; do 71 install -m 755 -d $conf/$d $_ITOP_VARLIBDIR_/env-$d 72done 73install -m 755 -d $_ITOP_DATADIR_ $_ITOP_LOGDIR_ "$_ITOP_VARLIBDIR_/data" 74 75echo "Copying files ..." 76cp -a ./web/* $_ITOP_DATADIR_ 77 78echo "Fixing line endings in LICENSE and README files" 79sed -i -e "s/\r$//g" ./LICENSE ./README 80 81echo "Creating symlinks..." 82(cd $_ITOP_DATADIR_ ; \ 83ln -s $subconf conf ;\ 84ln -s $subvar/log/$_ITOP_NAME_ log ;\ 85ln -s $subvar/lib/$_ITOP_NAME_/env-production env-production ;\ 86ln -s $subvar/lib/$_ITOP_NAME_/env-test env-test ;\ 87ln -s $subvar/lib/$_ITOP_NAME_/data data ;\ 88) 89(cd $_ITOP_VARLIBDIR_ ; ln -s $sublocal/share/$_ITOP_NAME_/approot.inc.php approot.inc.php) 90 91 92if [ _"$HEAD" != _"" ]; then 93 echo Creating $webconf/conf.d, $conf/../cron.d and $conf/../logrotate.d directories 94 install -m 755 -d $webconf/conf.d $conf/../cron.d $conf/../logrotate.d 95fi 96 97# Substitute variables for templates 98sed -e "s~_ITOP_NAME_~$_ITOP_NAME_~g" -e "s~_ITOP_SYSCONFDIR_~$subconf~g" -e "s~_ITOP_DATADIR_~$sublocal/share~g" -e "s~_ITOP_LOGDIR_~$subvar/log~g" ./web/setup/install/apache.conf.tpl > $webconf/conf.d/$_ITOP_NAME_.conf 99sed -e "s~_ITOP_NAME_~$_ITOP_NAME_~g" -e "s~_ITOP_SYSCONFDIR_~$subconf~g" -e "s~_ITOP_DATADIR_~$sublocal/share~g" -e "s~_ITOP_LOGDIR_~$subvar/log~g" ./web/setup/install/cron.tpl > $conf/../cron.d/$_ITOP_NAME_ 100sed -e "s~_ITOP_NAME_~$_ITOP_NAME_~g" -e "s~_ITOP_SYSCONFDIR_~$subconf~g" -e "s~_ITOP_DATADIR_~$sublocal/share~g" -e "s~_ITOP_LOGDIR_~$subvar/log~g" ./web/setup/install/logrotate.tpl > $conf/../logrotate.d/$_ITOP_NAME_ 101chmod 644 $webconf/conf.d/$_ITOP_NAME_.conf $conf/../cron.d/$_ITOP_NAME_ $conf/../logrotate.d/$_ITOP_NAME_ 102 103exit 0 104