entrypoint.sh 2.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/usr/bin/env bash
  2. #
  3. # ENVIRONMENT VARIABLES ARE:
  4. #
  5. # * DATABASE_TYPE (values: postgresql, mysql, sqlite)
  6. #
  7. # Ensure DATABASE_TYPE is set
  8. if ! [ -n "$DATABASE_TYPE" ]; then
  9. echo "You must set DATABASE_TYPE environment variable"
  10. exit 1
  11. fi
  12. # Ensure DATABASE_TYPE value
  13. case "$DATABASE_TYPE" in
  14. postgresql|mysql|sqlite) ;;
  15. *) echo "DATABASE_TYPE environment variable must be one of these: \
  16. postgresql, mysql, sqlite" ; exit 1 ;;
  17. esac
  18. # Prepare config files
  19. cp /tracim/tracim/development.ini.base /tracim/tracim/development.ini
  20. cp /tracim/tracim/wsgidav.conf.sample /tracim/tracim/wsgidav.conf
  21. # PostgreSQL case
  22. if [ "$DATABASE_TYPE" = postgresql ] ; then
  23. # TODO: We need to increase max_connections, why ? Tracim tests don't closes connections ?
  24. sed -i "s/\(max_connections *= *\).*/\max_connections = 300/" /etc/postgresql/9.4/main/postgresql.conf
  25. service postgresql start
  26. su - postgres -s /bin/bash -c "psql -c \"CREATE DATABASE tracim;\""
  27. su - postgres -s /bin/bash -c "psql -c \"ALTER USER postgres WITH PASSWORD 'dummy';\""
  28. sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = postgresql:\/\/postgres:dummy@127.0.0.1:5432\/tracim?client_encoding=utf8/" /tracim/tracim/test.ini
  29. sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = postgresql:\/\/postgres:dummy@127.0.0.1:5432\/tracim?client_encoding=utf8/" /tracim/tracim/development.ini
  30. fi
  31. # MySQL case
  32. if [ "$DATABASE_TYPE" = mysql ] ; then
  33. service mysql start
  34. mysql -e 'CREATE DATABASE tracim;'
  35. sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = mysql+oursql:\/\/root@localhost\/tracim/" /tracim/tracim/test.ini
  36. sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = mysql+oursql:\/\/root@localhost\/tracim/" /tracim/tracim/development.ini
  37. fi
  38. # SQLite case
  39. if [ "$DATABASE_TYPE" = sqlite ] ; then
  40. sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = sqlite:\/\/\/tracim.sqlite/" /tracim/tracim/test.ini
  41. sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = sqlite:\/\/\/tracim.sqlite/" /tracim/tracim/development.ini
  42. fi
  43. # Run tests
  44. cd /tracim/tracim && nosetests -c /tracim/tracim/test.ini -v