funwar_initdb.sh 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/bin/bash
  2. set -e
  3. # set eggdrop user name and password
  4. USER="eggdrop"
  5. PASSWORD="eggdropPassword"
  6. # set database schema and table name
  7. SCHEMA="test"
  8. TABLE="funmatch"
  9. # add eggdrop user
  10. psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" \
  11. <<-EOSQL
  12. CREATE SCHEMA ${SCHEMA};
  13. CREATE USER ${USER} PASSWORD '${PASSWORD}';
  14. EOSQL
  15. # create a new table for the eggdrop user
  16. psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" \
  17. <<-EOSQL
  18. CREATE TABLE ${SCHEMA}.${TABLE}(
  19. id SERIAL PRIMARY KEY,
  20. date DATE NOT NULL DEFAULT CURRENT_DATE,
  21. time TIME NOT NULL,
  22. xonx INTEGER NOT NULL,
  23. clantag VARCHAR (16) NOT NULL,
  24. irc VARCHAR (16) NOT NULL,
  25. www VARCHAR (256) NOT NULL,
  26. server VARCHAR (256) NOT NULL,
  27. org VARCHAR (128) NOT NULL
  28. );
  29. EOSQL
  30. # insert some testing data into new table
  31. psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" \
  32. <<-EOSQL
  33. INSERT INTO ${SCHEMA}.${TABLE} (time, xonx, clantag, irc, www, server, org)
  34. VALUES
  35. ('18:30', 8, '[WIN]', '#win', 'www.winclan.com', 'et.winclan.com:1337',
  36. 'winrar'),
  37. ('19:30', 16, '[FAIL]', '#fail', 'www.failclan.com', 'et.failclan.com:7331',
  38. 'failbot'),
  39. ('20:30', 32, '<unknown>', '#unknown', 'www.unknownclan.com',
  40. 'et.unknownclan.com:3000', 'incognito');
  41. EOSQL
  42. # make sure the eggdrop user can access the new table
  43. psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" \
  44. <<-EOSQL
  45. GRANT ALL ON SCHEMA ${SCHEMA} TO ${USER};
  46. GRANT ALL ON ALL TABLES IN SCHEMA ${SCHEMA} TO ${USER};
  47. EOSQL