Skip to content
Snippets Groups Projects
Commit 2eeb5eb2 authored by Bruce Momjian's avatar Bruce Momjian
Browse files

Fix PGDATAOLD and PGDATANEW to properly set pgconfig location, per

report from Tom.

Backpatch to 9.2.
parent 85254199
No related branches found
No related tags found
No related merge requests found
...@@ -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",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment