diff options
author | Rich Megginson <rmeggins@redhat.com> | 2010-03-01 07:26:48 -0700 |
---|---|---|
committer | Rich Megginson <rmeggins@redhat.com> | 2010-03-02 09:12:12 -0700 |
commit | 3a9ca47eb2ae7f430ce07fd28a99fb7c22aa9207 (patch) | |
tree | 016cebf3e339e6b00be74ee6e34fec562b3aa106 /ldap/admin/src/scripts/DSCreate.pm.in | |
parent | 142900b2757378bfbff34e3f390fcb1a292eea91 (diff) | |
download | ds-existingdir.tar.gz ds-existingdir.tar.xz ds-existingdir.zip |
wipexistingdir
Diffstat (limited to 'ldap/admin/src/scripts/DSCreate.pm.in')
-rw-r--r-- | ldap/admin/src/scripts/DSCreate.pm.in | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/ldap/admin/src/scripts/DSCreate.pm.in b/ldap/admin/src/scripts/DSCreate.pm.in index fb2a4d75..59a4568f 100644 --- a/ldap/admin/src/scripts/DSCreate.pm.in +++ b/ldap/admin/src/scripts/DSCreate.pm.in @@ -198,7 +198,6 @@ sub changeOwnerMode { sub makeDSDirs { my $inf = shift; - my $verbose = ($DSUtil::debuglevel > 0); my $mode = getMode($inf, 7); my @errs; @@ -207,6 +206,23 @@ sub makeDSDirs { # more privileged user than the directory server, but # still allows the admin server to manage directory # server files/dirs without being root + + # run through first time looking for pre-existing - if any already + # exist, report and exit + my $existing_dirs; + for my $kw (qw(inst_dir config_dir schema_dir log_dir lock_dir run_dir tmp_dir + cert_dir db_dir ldif_dir bak_dir)) { + my $dir = $inf->{slapd}->{$kw}; + if (-d $dir) { + $existing_dirs .= `ls -ld $dir`; + } + } + + if ($existing_dirs) { + return ('error_paths_already_exist', $existing_dirs); + } + + # all clear - create them for my $kw (qw(inst_dir config_dir schema_dir log_dir lock_dir run_dir tmp_dir cert_dir db_dir ldif_dir bak_dir)) { my $dir = $inf->{slapd}->{$kw}; |