File: ms_check_pgsql_db.html

package info (click to toggle)
autoconf-archive 20041123-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 2,336 kB
  • ctags: 2
  • sloc: makefile: 29
file content (134 lines) | stat: -rw-r--r-- 3,590 bytes parent folder | download
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<html lang="en">
<head>
  <title>Autoconf Macro: ms_check_pgsql_db</title>
  <link rel="stylesheet" type="text/css" href="ac-archive.css">
</head>

<body>
  <table summary="web navigation" style="width:100%;">
    <tbody>
      <tr>
        <td style="width:50%;" align="center">[<a href="index.html">Macro Index
        Page</a>]</td>

        <td style="width:50%;" align="center">[<a href=
        "../m4source/ms_check_pgsql_db.m4">Download M4 Source</a>]</td>
      </tr>
    </tbody>
  </table>
  <hr>

  <h1>ms_check_pgsql_db</h1>

  <h2>Synopsis</h2>

  <div class="indent">
    <p style="text-align:left; white-space:nowrap;">
    <code>MS_CHECK_PGSQL_DB([DB], [USER], [HOST], [PASSWORD],
    [ACTION_IF_FAILED], [ACTION_IF_OK])</code></p>
  </div>

  <h2>Description</h2>

  <div class="indent">
    <p>This macro checks wether we can connect to a PostgreSQL server with the
    given data. The macro MS_PROG_PGCLIENT is required by this one. The
    variable $pgclient_call is set for later use in Makefiles, if you'd like to
    make use of this, you must do</p>
    <pre>
    AC_SUBST(pgclient_call)
</pre>

    <p>after having called MS_CHECK_PGSQL_DB. You can then do something like
    the following in your Makefile.am:</p>
    <pre>
    @pgclient_call@ -f file.sql
</pre>

    <p>If you want the user to set the data, you should support something like
    these configure options:</p>
    <pre>
    AC_ARG_WITH(pgsql-host,
            [  --with-pgsql-host=HOST               server is running on HOST @&lt;:@local socket@:&gt;@],
            [pg_host=$withval], [pg_host=])
</pre>
    <pre>
    AC_ARG_WITH(pgsql-db,
            [  --with-pgsql-db=DATABASE             use DATABASE @&lt;:@tarantoola@:&gt;@],
            [pg_db=$withval], [pg_db=tarantoola])
</pre>
    <pre>
    AC_ARG_WITH(pgsql-user,
            [  --with-pgsql-user=USER               use USER @&lt;:@postgres@:&gt;@],
            [pg_user=$withval], [pg_user=postgres])
</pre>
    <pre>
    AC_ARG_WITH(pgsql-password,
            [  --with-pgsql-password=PASSWORD       use PASSWORD @&lt;:@none@:&gt;@],
            [pg_password=$withval], [pg_password=""])
</pre>

    <p>You can then call the macro like this:</p>
    <pre>
    MS_CHECK_PGSQL_DB([$pg_db], [$pg_user], [$pg_host], [$pg_password], [AC_MSG_ERROR([We need a database connection!])])
</pre>
  </div>

  <h2>Version</h2>

  <div class="indent">
    <p>1.1 (last modified: 2002-09-25)</p>
  </div>

  <h2>Author</h2>

  <div class="indent">
    <p>Moritz Sinn &lt;moritz@freesources.org&gt;</p>
  </div>

  <h2>M4 Source Code</h2>

  <div class="indent">
    <pre class="m4source">
AC_DEFUN([MS_CHECK_PGSQL_DB], [
AC_REQUIRE([MS_PROG_PGCLIENT])
AC_MSG_CHECKING([for PostgreSQL db $1 (user: $2, host: $3)])

pgclient_call="$pgclient"

if test "x$1" != "x"; then
        pgclient_call="$pgclient_call dbname=$1";
fi
if test "x$2" != "x"; then
        pgclient_call="$pgclient_call user=$2";
fi
if test "x$3" != "x"; then
        pgclient_call="$pgclient_call host=$3";
fi
if test "x$4" != "x"; then
        pgclient_call="$pgclient_call password=$4";
fi

$pgclient_call -c 'SELECT 1' &gt; /dev/null 2&gt;&amp;1
if test "x$?" = "x0"; then
        AC_MSG_RESULT([yes])
        $6
else
        AC_MSG_RESULT([no])
        $5
fi;
])dnl
</pre>
  </div>

  <h2>Copyright</h2>

  <div class="indent">
    <a href="COPYING.html">GNU General Public License</a> with this special
    <a href="COPYING-Exception.html">exception</a>.
  </div>
</body>
</html>