f0336fed9f1cb2bde0a2b56faad6a301333751a9
[webi-installers/.git] / postgres / install.sh
1 set -e
2 set -u
3
4 pkg_cmd_name="postgres"
5 #WEBI_SINGLE=""
6
7 POSTGRES_DATA_DIR=$HOME/.local/share/postgres/var
8
9 pkg_get_current_version() {
10     # 'postgres --version' has output in this format:
11     #       postgres (PostgreSQL) 10.13
12     # This trims it down to just the version number:
13     #       10.13
14     echo "$(postgres --version 2> /dev/null | head -n 1 | cut -d' ' -f3)"
15 }
16
17 pkg_install() {
18     # mkdir -p $HOME/.local/opt
19     mkdir -p "$(dirname $pkg_src)"
20
21     # mv ./pgqsl* "$HOME/.local/opt/postgres-v10.13"
22     mv ./"p"* "$pkg_src"
23 }
24
25 pkg_link() {
26     # rm -f "$HOME/.local/opt/postgres"
27     rm -f "$pkg_dst"
28     rm -f "$HOME/Applications/pgAdmin"*.app || true
29
30     # ln -s "$HOME/.local/opt/postgres-v10.13" "$HOME/.local/opt/postgres"
31     ln -s "$pkg_src" "$pkg_dst"
32     ln -s "$pkg_src/pgAdmin 4.app" "$HOME/Applications/pgAdmin 4.app" || true
33 }
34
35 pkg_post_install() {
36     webi_path_add "$pkg_dst_bin"
37
38     #echo "Initializing PostgreSQL with database at $POSTGRES_DATA_DIR/"
39
40     PWFILE="$(pwd)/pwfile.tmp"
41     mkdir -p "$POSTGRES_DATA_DIR"
42     chmod 0700 "$POSTGRES_DATA_DIR"
43
44     if [ ! -f "$POSTGRES_DATA_DIR/postgresql.conf" ]; then
45         echo "postgres" > "$PWFILE"
46         "$pkg_src/bin/initdb" \
47             -D "$POSTGRES_DATA_DIR/" \
48             --username postgres --pwfile "$PWFILE" \
49             --auth-local=password --auth-host=password
50     fi
51 }
52
53 pkg_done_message() {
54     # TODO show with serviceman
55     echo "Installed 'postgres' and 'psql' at $pkg_dst"
56     echo ""
57     echo "IMPORTANT!!!"
58     echo ""
59     echo "Database initialized at $POSTGRES_DATA_DIR:"
60     echo "    postgres -D $POSTGRES_DATA_DIR -p 5432"
61     echo ""
62     echo "Username and password set to 'postgres':"
63     echo "    psql 'postgres://postgres:postgres@localhost:5432/postgres'"
64     echo ""
65 }