~sidnei/txstatsd/add-rate-limit

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#! /bin/bash

ROOTDIR=${ROOTDIR:-`bzr root`}
if [ ! -d "$ROOTDIR"  ]; then
    echo "ROOTDIR '$ROOTDIR' doesn't exist" >&2
    exit 1
fi

DATABASES="
distinct
"

function setup_database() {
    local TESTDIR=$1

    echo "## Starting postgres in $TESTDIR ##"
    mkdir -p "$TESTDIR/data"
    chmod 700 "$TESTDIR/data"

    export PGHOST="$TESTDIR"
    export PGDATA="$TESTDIR/data"
    if [ -d /usr/lib/postgresql/8.4 ]; then
        export PGBINDIR=/usr/lib/postgresql/8.4/bin
    elif [ -d /usr/lib/postgresql/8.3 ]; then
        export PGBINDIR=/usr/lib/postgresql/8.3/bin
    else
        echo "Cannot find valid parent for PGBINDIR"
    fi
    $PGBINDIR/initdb -E UNICODE -D $PGDATA
    # set up the database options file
    if [ ! -e $PGDATA/postgresql.conf ]; then
        echo "PostgreSQL data directory apparently didn't init"
    else
    (
        cat <<EOF
search_path='\$user,public,ts2'
add_missing_from=false
log_statement='all'
log_line_prefix='[%m] %q%u@%d %c '
fsync = off
EOF
    ) > $PGDATA/postgresql.conf
    fi
    $PGBINDIR/initdb -A trust &>/dev/null
    $PGBINDIR/pg_ctl start -w -D $TESTDIR/data -l $TESTDIR/postgres.log -o "-F -k $TESTDIR -h ''"
    for db in $DATABASES; do
        $PGBINDIR/createdb --encoding UNICODE "$db" &>/dev/null
        $PGBINDIR/createlang plpgsql "$db"
    done
    $PGBINDIR/createuser --superuser --createdb "postgres" &>/dev/null
    # create the additional users we need via a psql script
    $PGBINDIR/psql -U postgres template1 <<EOF
CREATE ROLE client INHERIT;

CREATE USER client IN ROLE client;
EOF
    echo "To set your environment so psql will connect to this DB instance type:"
    echo "    export PGHOST=$TESTDIR"
    echo "## Done. ##"
    echo -n host=$TESTDIR dbname=distinct > $ROOTDIR/tmp/pg.dsn
}

setup_database $ROOTDIR/tmp/db1