#!/usr/bin/env python
import psycopg2
import argparse
import time


def check_pgsql(host, database, user, password):
    while True:
        try:
            conn = psycopg2.connect(dbname=database, host=host,
                                    user=user, password=password)
            cur = conn.cursor()
            cur.execute("select pg_postmaster_start_time()")
            return True
        except:
            pass
        time.sleep(.5)  # give it a chance to start


if __name__ == "__main__":
    # Parse options.
    parser = argparse.ArgumentParser(description='Wait postgresql to be ready')
    parser.add_argument('--host', dest='host', default="localhost")
    parser.add_argument('--user', dest='user', default="postgres")
    parser.add_argument('--password', dest='password', default="postgres")
    parser.add_argument('--database', dest='database', default="template1")
    args = parser.parse_args()
    check_pgsql(args.host, args.database, args.user, args.password)
