Guest User

Untitled

a guest
Mar 21st, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. #!/usr/env/bin bash
  2.  
  3. # vim: set ft=bash
  4.  
  5. ROOT=$PWD
  6.  
  7. read -r -d '' ADJECTIVES <<'EOF'
  8. agreeable
  9. brave
  10. calm
  11. delightful
  12. eager
  13. faithful
  14. gentle
  15. happy
  16. EOF
  17.  
  18. read -r -d '' NOUNS <<'EOF'
  19. child
  20. day
  21. life
  22. man
  23. people
  24. thing
  25. time
  26. way
  27. woman
  28. world
  29. year
  30. EOF
  31.  
  32. read -r -d '' NATS <<'EOF'
  33. american
  34. australian
  35. british
  36. chinese
  37. french
  38. german
  39. indian
  40. italian
  41. japanese
  42. russian
  43. EOF
  44.  
  45. start_pg()
  46. {
  47. adj=$(echo "$ADJECTIVES" | shuf | head -n 1)
  48. noun=$(echo "$NOUNS" | shuf | head -n 1)
  49. nat=$(echo "$NATS" | shuf | head -n 1)
  50. name="$adj"-"$nat"-"$noun"
  51.  
  52. FOO_PGDATA="$ROOT/.pg/$name"
  53. echo "Creating $FOO_PGDATA directory"
  54. mkdir -p $FOO_PGDATA
  55.  
  56. chmod 0700 -R $FOO_PGDATA
  57. echo "Starting postgres..."
  58. PGDATA=$FOO_PGDATA initdb
  59. echo "PG_HBA:"
  60. cat $FOO_PGDATA/pg_hba.conf
  61. # TODO(1): write hba_conf here
  62. # TODO(2): accept:
  63. # $name NAME
  64. # $user USERNAME PASSWORD
  65. # $port PORT
  66. # TODO(3): export env vars with PGPORT and all
  67. PGDATA=$FOO_PGDATA postgres > $FOO_PGDATA/pglog 2>&1 &
  68. echo "Postgres started, are logs written to $FOO_PGDATA/pglog."
  69. FOO_PID=$!
  70. TRAPS="name=$name FOO_PGDATA=$FOO_PGDATA FOO_PID=$FOO_PID stop_pg; $TRAPS"
  71. echo "Done."
  72.  
  73. trap "$TRAPS" EXIT
  74. }
  75.  
  76. stop_pg()
  77. {
  78. echo stopping $name
  79. echo killing $FOO_PID
  80. kill $FOO_PID
  81. wait $FOO_PID
  82. echo removing $FOO_PGDATA
  83. rm -rf $FOO_PGDATA
  84. }
Add Comment
Please, Sign In to add comment