Commit 2eeb5eb2 authored by Bruce Momjian's avatar Bruce Momjian

Fix PGDATAOLD and PGDATANEW to properly set pgconfig location, per

report from Tom.

Backpatch to 9.2.
parent 85254199
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
static void usage(void); static void usage(void);
static void check_required_directory(char **dirpath, static void check_required_directory(char **dirpath, char **configpath,
char *envVarName, char *cmdLineOption, char *description); char *envVarName, char *cmdLineOption, char *description);
...@@ -203,14 +203,14 @@ parseCommandLine(int argc, char *argv[]) ...@@ -203,14 +203,14 @@ parseCommandLine(int argc, char *argv[])
} }
/* Get values from env if not already set */ /* Get values from env if not already set */
check_required_directory(&old_cluster.bindir, "PGBINOLD", "-b", check_required_directory(&old_cluster.bindir, NULL, "PGBINOLD", "-b",
"old cluster binaries reside"); "old cluster binaries reside");
check_required_directory(&new_cluster.bindir, "PGBINNEW", "-B", check_required_directory(&new_cluster.bindir, NULL, "PGBINNEW", "-B",
"new cluster binaries reside"); "new cluster binaries reside");
check_required_directory(&old_cluster.pgdata, "PGDATAOLD", "-d", check_required_directory(&old_cluster.pgdata, &old_cluster.pgconfig,
"old cluster data resides"); "PGDATAOLD", "-d", "old cluster data resides");
check_required_directory(&new_cluster.pgdata, "PGDATANEW", "-D", check_required_directory(&new_cluster.pgdata, &new_cluster.pgconfig,
"new cluster data resides"); "PGDATANEW", "-D", "new cluster data resides");
} }
...@@ -284,15 +284,20 @@ or\n"), old_cluster.port, new_cluster.port, os_info.user); ...@@ -284,15 +284,20 @@ or\n"), old_cluster.port, new_cluster.port, os_info.user);
* user hasn't provided the required directory name. * user hasn't provided the required directory name.
*/ */
static void static void
check_required_directory(char **dirpath, char *envVarName, check_required_directory(char **dirpath, char **configpath,
char *cmdLineOption, char *description) char *envVarName, char *cmdLineOption,
char *description)
{ {
if (*dirpath == NULL || strlen(*dirpath) == 0) if (*dirpath == NULL || strlen(*dirpath) == 0)
{ {
const char *envVar; const char *envVar;
if ((envVar = getenv(envVarName)) && strlen(envVar)) if ((envVar = getenv(envVarName)) && strlen(envVar))
{
*dirpath = pg_strdup(envVar); *dirpath = pg_strdup(envVar);
if (configpath)
*configpath = pg_strdup(envVar);
}
else else
pg_log(PG_FATAL, "You must identify the directory where the %s.\n" pg_log(PG_FATAL, "You must identify the directory where the %s.\n"
"Please use the %s command-line option or the %s environment variable.\n", "Please use the %s command-line option or the %s environment variable.\n",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment