install.sh 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #!/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. if [ "_$_ITOP_SYSCONFDIR_" = "_" ]; then
  9. _ITOP_SYSCONFDIR_="/etc"
  10. fi
  11. if [ "_$_ITOP_VARDIR_" = "_" ]; then
  12. _ITOP_VARDIR_="/var"
  13. fi
  14. if [ "_$_ITOP_NAME_" = "_" ]; then
  15. _ITOP_NAME_="itop-itsm"
  16. fi
  17. if [ "_$PREFIX" != "_" ]; then
  18. local=${HEAD}$PREFIX
  19. sublocal=$PREFIX
  20. conf=${HEAD}$_ITOP_SYSCONFDIR_/$_ITOP_NAME_
  21. subconf=$_ITOP_SYSCONFDIR_/$_ITOP_NAME_
  22. var=${HEAD}$_ITOP_VARDIR_
  23. subvar=$_ITOP_VARDIR_
  24. webconf=${HEAD}$_ITOP_WEBCONFDIR_
  25. subwebconf=$_ITOP_WEBCONFDIR_
  26. else
  27. local=/usr/local
  28. sublocal=$local
  29. conf=$local/$_ITOP_SYSCONFDIR_
  30. subconf=$conf
  31. var=$local/$_ITOP_VARDIR_
  32. subvar=$var
  33. webconf=$local/$_ITOP_WEBCONFDIR_
  34. subwebconf=$_ITOP_WEBCONFDIR_
  35. fi
  36. if [ "_$_ITOP_WEBCONFDIR_" = "_" ]; then
  37. _ITOP_WEBCONFDIR_="$conf/../httpd"
  38. if [ ! -d $_ITOP_WEBCONFDIR_ ]; then
  39. exit "Please define a valid _ITOP_WEBCONFDIR_ variable"
  40. fi
  41. fi
  42. # Define additional dirs
  43. if [ _"$_ITOP_LOGDIR_" = _"" ]; then
  44. _ITOP_LOGDIR_="$var/log/$_ITOP_NAME_"
  45. else
  46. _ITOP_LOGDIR_="${HEAD}$_ITOP_LOGDIR_"
  47. fi
  48. if [ _"$_ITOP_VARLIBDIR_" = _"" ]; then
  49. _ITOP_VARLIBDIR_="$var/lib/$_ITOP_NAME_"
  50. else
  51. _ITOP_VARLIBDIR_="${HEAD}$_ITOP_VARLIBDIR_"
  52. fi
  53. if [ _"$_ITOP_DATADIR_" = _"" ]; then
  54. _ITOP_DATADIR_="$local/share/$_ITOP_NAME_"
  55. else
  56. _ITOP_DATADIR_="${HEAD}$_ITOP_DATADIR_"
  57. fi
  58. # From now on Variables are correctly setup, just use them
  59. #
  60. echo "$_ITOP_NAME_ will be installed under $_ITOP_DATADIR_"
  61. echo "Creating target directories ..."
  62. for d in production test toolkit; do
  63. install -m 755 -d $conf/$d $_ITOP_VARLIBDIR_/env-$d
  64. done
  65. install -m 755 -d $_ITOP_DATADIR_ $_ITOP_LOGDIR_ "$_ITOP_VARLIBDIR_/data"
  66. echo "Copying files ..."
  67. cp -a ./web/* $_ITOP_DATADIR_
  68. echo "Fixing line endings in LICENSE and README files"
  69. sed -i -e "s/\r$//g" ./LICENSE ./README
  70. echo "Creating symlinks..."
  71. (cd $_ITOP_DATADIR_ ; \
  72. ln -s $subconf conf ;\
  73. ln -s $subvar/log/$_ITOP_NAME_ log ;\
  74. ln -s $subvar/lib/$_ITOP_NAME_/env-production env-production ;\
  75. ln -s $subvar/lib/$_ITOP_NAME_/env-test env-test ;\
  76. ln -s $subvar/lib/$_ITOP_NAME_/data data ;\
  77. )
  78. (cd $_ITOP_VARLIBDIR_ ; ln -s $sublocal/share/$_ITOP_NAME_/approot.inc.php approot.inc.php)
  79. if [ _"$HEAD" != _"" ]; then
  80. echo Creating $webconf/conf.d, $conf/../cron.d and $conf/../logrotate.d directories
  81. install -m 755 -d $webconf/conf.d $conf/../cron.d $conf/../logrotate.d
  82. fi
  83. # Substitute variables for templates
  84. sed -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
  85. sed -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_
  86. sed -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_
  87. chmod 644 $webconf/conf.d/$_ITOP_NAME_.conf $conf/../cron.d/$_ITOP_NAME_ $conf/../logrotate.d/$_ITOP_NAME_
  88. exit 0