@@ -255,9 +255,11 @@ void setup_pgdata(void);
255
255
void setup_bin_paths (const char * argv0 );
256
256
void setup_data_file_paths (void );
257
257
void setup_locale_encoding (void );
258
- void setup_signals_and_umask (void );
258
+ void setup_signals (void );
259
259
void setup_text_search (void );
260
- void process (const char * argv0 );
260
+ void create_data_directory (void );
261
+ void create_xlog_symlink (void );
262
+ void initialize_data_directory (void );
261
263
262
264
263
265
#ifdef WIN32
@@ -3164,7 +3166,7 @@ setup_text_search(void)
3164
3166
3165
3167
3166
3168
void
3167
- setup_signals_and_umask (void )
3169
+ setup_signals (void )
3168
3170
{
3169
3171
/* some of these are not valid on Windows */
3170
3172
#ifdef SIGHUP
@@ -3184,19 +3186,12 @@ setup_signals_and_umask(void)
3184
3186
#ifdef SIGPIPE
3185
3187
pqsignal (SIGPIPE , SIG_IGN );
3186
3188
#endif
3187
-
3188
- umask (S_IRWXG | S_IRWXO );
3189
3189
}
3190
3190
3191
3191
3192
3192
void
3193
- process ( const char * argv0 )
3193
+ create_data_directory ( void )
3194
3194
{
3195
- int i ;
3196
- char bin_dir [MAXPGPATH ];
3197
-
3198
- setup_signals_and_umask ();
3199
-
3200
3195
switch (pg_check_dir (pg_data ))
3201
3196
{
3202
3197
case 0 :
@@ -3249,7 +3244,12 @@ process(const char *argv0)
3249
3244
progname , pg_data , strerror (errno ));
3250
3245
exit_nicely ();
3251
3246
}
3247
+ }
3248
+
3252
3249
3250
+ void
3251
+ create_xlog_symlink (void )
3252
+ {
3253
3253
/* Create transaction log symlink, if required */
3254
3254
if (strcmp (xlog_dir , "" ) != 0 )
3255
3255
{
@@ -3336,6 +3336,21 @@ process(const char *argv0)
3336
3336
exit_nicely ();
3337
3337
#endif
3338
3338
}
3339
+ }
3340
+
3341
+
3342
+ void
3343
+ initialize_data_directory (void )
3344
+ {
3345
+ int i ;
3346
+
3347
+ setup_signals ();
3348
+
3349
+ umask (S_IRWXG | S_IRWXO );
3350
+
3351
+ create_data_directory ();
3352
+
3353
+ create_xlog_symlink ();
3339
3354
3340
3355
/* Create required subdirectories */
3341
3356
printf (_ ("creating subdirectories ... " ));
@@ -3404,19 +3419,6 @@ process(const char *argv0)
3404
3419
3405
3420
if (authwarning != NULL )
3406
3421
fprintf (stderr , "%s" , authwarning );
3407
-
3408
- /* Get directory specification used to start this executable */
3409
- strlcpy (bin_dir , argv0 , sizeof (bin_dir ));
3410
- get_parent_directory (bin_dir );
3411
-
3412
- printf (_ ("\nSuccess. You can now start the database server using:\n\n"
3413
- " %s%s%spostgres%s -D %s%s%s\n"
3414
- "or\n"
3415
- " %s%s%spg_ctl%s -D %s%s%s -l logfile start\n\n" ),
3416
- QUOTE_PATH , bin_dir , (strlen (bin_dir ) > 0 ) ? DIR_SEP : "" , QUOTE_PATH ,
3417
- QUOTE_PATH , pgdata_native , QUOTE_PATH ,
3418
- QUOTE_PATH , bin_dir , (strlen (bin_dir ) > 0 ) ? DIR_SEP : "" , QUOTE_PATH ,
3419
- QUOTE_PATH , pgdata_native , QUOTE_PATH );
3420
3422
}
3421
3423
3422
3424
@@ -3459,6 +3461,7 @@ main(int argc, char *argv[])
3459
3461
int c ;
3460
3462
int option_index ;
3461
3463
char * effective_user ;
3464
+ char bin_dir [MAXPGPATH ];
3462
3465
3463
3466
progname = get_progname (argv [0 ]);
3464
3467
set_pglocale_pgservice (argv [0 ], PG_TEXTDOMAIN ("initdb" ));
@@ -3642,7 +3645,20 @@ main(int argc, char *argv[])
3642
3645
3643
3646
printf ("\n" );
3644
3647
3645
- process ( argv [ 0 ] );
3648
+ initialize_data_directory ( );
3646
3649
3650
+ /* Get directory specification used to start this executable */
3651
+ strlcpy (bin_dir , argv [0 ], sizeof (bin_dir ));
3652
+ get_parent_directory (bin_dir );
3653
+
3654
+ printf (_ ("\nSuccess. You can now start the database server using:\n\n"
3655
+ " %s%s%spostgres%s -D %s%s%s\n"
3656
+ "or\n"
3657
+ " %s%s%spg_ctl%s -D %s%s%s -l logfile start\n\n" ),
3658
+ QUOTE_PATH , bin_dir , (strlen (bin_dir ) > 0 ) ? DIR_SEP : "" , QUOTE_PATH ,
3659
+ QUOTE_PATH , pgdata_native , QUOTE_PATH ,
3660
+ QUOTE_PATH , bin_dir , (strlen (bin_dir ) > 0 ) ? DIR_SEP : "" , QUOTE_PATH ,
3661
+ QUOTE_PATH , pgdata_native , QUOTE_PATH );
3662
+
3647
3663
return 0 ;
3648
3664
}
0 commit comments