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