Commit ac7238dc authored by Peter Eisentraut's avatar Peter Eisentraut

Improve error reporting when location specified by postgres -D does not exist

Previously, the first error seen would be that postgresql.conf does not
exist.  But for the case where the whole directory does not exist, give
an error message about that, together with a hint for how to create one.
parent 2808a2e0
......@@ -4463,6 +4463,17 @@ SelectConfigFiles(const char *userDoption, const char *progname)
else
configdir = make_absolute_path(getenv("PGDATA"));
if (configdir && stat(configdir, &stat_buf) != 0)
{
write_stderr("%s: could not access \"%s\": %s\n",
progname,
configdir,
strerror(errno));
if (errno == ENOENT)
write_stderr("Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n");
return false;
}
/*
* Find the configuration file: if config_file was specified on the
* command line, use it, else use configdir/postgresql.conf. In any case
......@@ -4498,7 +4509,7 @@ SelectConfigFiles(const char *userDoption, const char *progname)
*/
if (stat(ConfigFileName, &stat_buf) != 0)
{
write_stderr("%s cannot access the server configuration file \"%s\": %s\n",
write_stderr("%s: could not access the server configuration file \"%s\": %s\n",
progname, ConfigFileName, strerror(errno));
free(configdir);
return false;
......
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