1#!/bin/bash 2 3set -eu 4 5client_configure() { 6 sudo chmod 600 $PQSSLCERTTEST_PATH/postgresql.key 7} 8 9pgdg_repository() { 10 local sourcelist='sources.list.d/postgresql.list' 11 12 curl -sS 'https://www.postgresql.org/media/keys/ACCC4CF8.asc' | sudo apt-key add - 13 echo deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main $PGVERSION | sudo tee "/etc/apt/$sourcelist" 14 sudo apt-get -o Dir::Etc::sourcelist="$sourcelist" -o Dir::Etc::sourceparts='-' -o APT::Get::List-Cleanup='0' update 15} 16 17postgresql_configure() { 18 sudo tee /etc/postgresql/$PGVERSION/main/pg_hba.conf > /dev/null <<-config 19 local all all trust 20 hostnossl all pqgossltest 127.0.0.1/32 reject 21 hostnossl all pqgosslcert 127.0.0.1/32 reject 22 hostssl all pqgossltest 127.0.0.1/32 trust 23 hostssl all pqgosslcert 127.0.0.1/32 cert 24 host all all 127.0.0.1/32 trust 25 hostnossl all pqgossltest ::1/128 reject 26 hostnossl all pqgosslcert ::1/128 reject 27 hostssl all pqgossltest ::1/128 trust 28 hostssl all pqgosslcert ::1/128 cert 29 host all all ::1/128 trust 30 config 31 32 xargs sudo install -o postgres -g postgres -m 600 -t /var/lib/postgresql/$PGVERSION/main/ <<-certificates 33 certs/root.crt 34 certs/server.crt 35 certs/server.key 36 certificates 37 38 sort -VCu <<-versions || 39 $PGVERSION 40 9.2 41 versions 42 sudo tee -a /etc/postgresql/$PGVERSION/main/postgresql.conf > /dev/null <<-config 43 ssl_ca_file = 'root.crt' 44 ssl_cert_file = 'server.crt' 45 ssl_key_file = 'server.key' 46 config 47 48 echo 127.0.0.1 postgres | sudo tee -a /etc/hosts > /dev/null 49 50 sudo service postgresql restart 51} 52 53postgresql_install() { 54 xargs sudo apt-get -y -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confnew' install <<-packages 55 postgresql-$PGVERSION 56 postgresql-server-dev-$PGVERSION 57 postgresql-contrib-$PGVERSION 58 packages 59} 60 61postgresql_uninstall() { 62 sudo service postgresql stop 63 xargs sudo apt-get -y --purge remove <<-packages 64 libpq-dev 65 libpq5 66 postgresql 67 postgresql-client-common 68 postgresql-common 69 packages 70 sudo rm -rf /var/lib/postgresql 71} 72 73megacheck_install() { 74 # Lock megacheck version at $MEGACHECK_VERSION to prevent spontaneous 75 # new error messages in old code. 76 go get -d honnef.co/go/tools/... 77 git -C $GOPATH/src/honnef.co/go/tools/ checkout $MEGACHECK_VERSION 78 go install honnef.co/go/tools/cmd/megacheck 79 megacheck --version 80} 81 82golint_install() { 83 go get golang.org/x/lint/golint 84} 85 86$1 87