#!/usr/bin/env ruby # frozen_string_literal: true BIN = "/usr/lib/postgresql/#{ENV["PG_MAJOR"]}/bin" DATA = "/tmp/test_data/pg" def run(*args) system(*args, exception: true) end should_setup = true should_run = true should_exec = false while a = ARGV.pop if a == "--skip-setup" should_setup = false elsif a == "--skip-run" should_run = false elsif a == "--exec" should_exec = true else raise "Unknown argument #{a}" end end if should_setup run "rm -rf #{DATA}" run "mkdir -p #{DATA}" run "#{BIN}/initdb -D #{DATA}" run "echo fsync = off >> #{DATA}/postgresql.conf" run "echo synchronous_commit = off >> #{DATA}/postgresql.conf" run "echo full_page_writes = off >> #{DATA}/postgresql.conf" run "echo shared_buffers = 500MB >> #{DATA}/postgresql.conf" end if should_exec exec "#{BIN}/postgres -D #{DATA}" elsif should_run run "#{BIN}/pg_ctl -D #{DATA} start" end