summaryrefslogtreecommitdiffstats
path: root/ldap/admin/src/scripts/DSCreate.pm.in
diff options
context:
space:
mode:
authorRich Megginson <rmeggins@redhat.com>2010-03-01 07:26:48 -0700
committerRich Megginson <rmeggins@redhat.com>2010-03-02 09:12:12 -0700
commit3a9ca47eb2ae7f430ce07fd28a99fb7c22aa9207 (patch)
tree016cebf3e339e6b00be74ee6e34fec562b3aa106 /ldap/admin/src/scripts/DSCreate.pm.in
parent142900b2757378bfbff34e3f390fcb1a292eea91 (diff)
downloadds-existingdir.tar.gz
ds-existingdir.tar.xz
ds-existingdir.zip
Diffstat (limited to 'ldap/admin/src/scripts/DSCreate.pm.in')
-rw-r--r--ldap/admin/src/scripts/DSCreate.pm.in18
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};