File: ms_check_pgsql_db.html

package info (click to toggle)
autoconf-archive 20060312-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 4,180 kB
  • ctags: 13
  • sloc: sh: 455; makefile: 44
file content (131 lines) | stat: -rw-r--r-- 3,380 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
<!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="http://autoconf-archive.cryp.to/ms_check_pgsql_db.m4">Download
      M4 Source</a>
     </td>
     <td style="width:50%;" align="center">
      <a href="macros-by-category.html">Macro Index Page</a>
     </td>
    </tr>
   </tbody>
  </table>
  <hr>
  <h1>
   ms_check_pgsql_db
  </h1>
  <h2>
   Synopsis
  </h2>
  <p class="indent" style="white-space:nowrap;">
   <code>MS_CHECK_PGSQL_DB([DB], [USER], [HOST], [PASSWORD],
   [ACTION_IF_FAILED], [ACTION_IF_OK])</code>
  </p>
  <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=])

    AC_ARG_WITH(pgsql-db,
            [  --with-pgsql-db=DATABASE             use DATABASE @&lt;:@tarantoola@:&gt;@],
            [pg_db=$withval], [pg_db=tarantoola])

    AC_ARG_WITH(pgsql-user,
            [  --with-pgsql-user=USER               use USER @&lt;:@postgres@:&gt;@],
            [pg_user=$withval], [pg_user=postgres])

    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>
   Author
  </h2>
  <p class="indent">
   Moritz Sinn &lt;moritz@freesources.org&gt;
  </p>
  <h2>
   Last Modified
  </h2>
  <p class="indent">
   2002-09-25
  </p>
  <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>
 </body>
</html>