/server/script/setup-www.sh

https://github.com/tomclegg/get-evidence · Shell · 109 lines · 75 code · 21 blank · 13 comment · 15 complexity · 76e21ae6109eabcaa6e5b55e4e6da311 MD5 · raw file

  1. #!/bin/bash
  2. set -e
  3. . "$(echo "$0" | sed -e 's/[^\/]*$//')defaults.sh"
  4. WGET='wget -nv'
  5. if [ -z "$CI_VERSION" ]; then CI_VERSION=1.7.1; fi
  6. if [ -z "$CI_MD5" ]; then CI_MD5=deca9709cf21b26dc0e4ec040b37e866; fi
  7. if [ -z "$TEXTILE_VERSION" ]; then TEXTILE_VERSION=2.0.0; fi
  8. if [ -z "$TEXTILE_MD5" ]; then TEXTILE_MD5=c4f2454b16227236e01fc1c761366fe3; fi
  9. cd $TMP
  10. # Todo: use "$WGET http://codeigniter.com/download.php", figure out
  11. # which version was downloaded, and set CI_VERSION (if not provided in
  12. # env)
  13. # Download recommended version of CodeIgniter framework
  14. CI_FILE=CodeIgniter_$CI_VERSION.zip
  15. if ! md5sum $CI_FILE | grep -qw $CI_MD5 2>/dev/null
  16. then
  17. rm -f $CI_FILE
  18. $WGET http://codeigniter.com/download_files/$CI_FILE
  19. fi
  20. # Download recommended version fo textile library
  21. TEXTILE_FILE=textile_$TEXTILE_VERSION.tar.gz
  22. if ! md5sum $TEXTILE_FILE | grep -qw $TEXTILE_MD5 2>/dev/null
  23. then
  24. rm -f $TEXTILE_FILE
  25. $WGET http://textile.thresholdstate.com/file_download/2/$TEXTILE_FILE
  26. fi
  27. # Install CodeIgniter framework
  28. rm -Rf CodeIgniter_$CI_VERSION
  29. unzip -q $CI_FILE
  30. cd CodeIgniter_$CI_VERSION
  31. rm system/application/config/config.php
  32. rm system/application/config/database.php
  33. tar cf - index.php system | tar -C $WWW -xf -
  34. # Install textile library
  35. cd $TMP
  36. rm -rf textile-$TEXTILE_VERSION
  37. tar xzf $TEXTILE_FILE
  38. cd textile-$TEXTILE_VERSION
  39. cp classTextile.php $WWW/system/application/libraries/Textile.php
  40. cd $SOURCE/web
  41. tar cf - errors media scripts statistics system/application htaccess authenticate unauthenticate | tar -C $WWW -xf -
  42. cd $WWW
  43. perl -p -e 's/%([A-Z]+)%/$ENV{$1}/g' <htaccess >.htaccess
  44. for conf in config database trait-o-matic
  45. do
  46. # If existing config file is a regular file (not symlink), and there
  47. # is no site config, move the config to the site config dir
  48. if [ -e $WWW/system/application/config/$conf.php ] \
  49. && [ ! -L $WWW/system/application/config/$conf.php ] \
  50. && [ ! -e $CONFIG/$conf.php ] \
  51. && mv -i $WWW/system/application/config/$conf.php $CONFIG/$conf.php
  52. then
  53. echo >&2 "*** "
  54. echo >&2 "*** Moved $WWW/system/application/config/conf.php"
  55. echo >&2 "*** to $CONFIG/conf.php"
  56. echo >&2 "*** "
  57. fi
  58. # If it doesn't already exist, make a symlink from CI config dir to
  59. # the real site config dir
  60. if [ ! -e $WWW/system/application/config/$conf.php ] \
  61. && [ ! -L $WWW/system/application/config/$conf.php ]
  62. then
  63. ln -s $CONFIG/$conf.php $WWW/system/application/config/$conf.php
  64. fi
  65. # Put the latest defaults in $CONFIG
  66. cp -p $WWW/system/application/config/$conf.default.php $CONFIG/
  67. if [ ! -z "$BASE_URL" ]
  68. then
  69. perl -pi~ -e 's,http://\$_SERVER\[HTTP_HOST\]/,$ENV{BASE_URL},' $CONFIG/$conf.default.php
  70. fi
  71. if [ ! -e $CONFIG/$conf.php -a ! -L $CONFIG/$conf.php ]
  72. then
  73. dbpass=$(cat $CONFIG/dbpassword)
  74. [ $? = 0 ]
  75. sed -e "s/shakespeare/$dbpass/g" < $CONFIG/$conf.default.php > $CONFIG/$conf.php
  76. echo >&2 "*** "
  77. echo >&2 "*** Please edit $CONFIG/$conf.php to suit your installation."
  78. echo >&2 "*** "
  79. else
  80. echo >&2 "*** "
  81. echo >&2 "*** Please ensure $CONFIG/$conf.php is up-to-date."
  82. echo >&2 "*** Latest defaults can be found at"
  83. echo >&2 "*** $CONFIG/$conf.default.php"
  84. echo >&2 "*** "
  85. fi
  86. chmod 600 $CONFIG/$conf.php
  87. done
  88. perl -p -e 's/%([A-Z]+)%/$ENV{$1}/g' < $WWW/system/application/config/upload.php.in > $WWW/system/application/config/upload.php