summaryrefslogtreecommitdiffstats
path: root/ldap/admin/src/scripts/setup-ds.pl.in
diff options
context:
space:
mode:
Diffstat (limited to 'ldap/admin/src/scripts/setup-ds.pl.in')
-rw-r--r--ldap/admin/src/scripts/setup-ds.pl.in47
1 files changed, 37 insertions, 10 deletions
diff --git a/ldap/admin/src/scripts/setup-ds.pl.in b/ldap/admin/src/scripts/setup-ds.pl.in
index 7fdc9772..aad6bfc8 100644
--- a/ldap/admin/src/scripts/setup-ds.pl.in
+++ b/ldap/admin/src/scripts/setup-ds.pl.in
@@ -48,6 +48,7 @@ use Resource;
use DialogManager;
use Util;
use DSCreate;
+use DSUpdate;
my $res = new Resource("@propertydir@/setup-ds.res");
@@ -56,11 +57,16 @@ my $setup = new Setup($res);
if (!$setup->{silent}) {
my $dialogmgr = new DialogManager($setup, $res, $TYPICAL);
- require SetupDialogs;
- require DSDialogs;
-
- my @dialogs = SetupDialogs->getDialogs();
- push @dialogs, DSDialogs->getDialogs();
+ my @dialogs;
+ if ($setup->{update}) {
+ require DSUpdateDialogs;
+ push @dialogs, DSUpdateDialogs->getDialogs();
+ } else {
+ require SetupDialogs;
+ require DSDialogs;
+ push @dialogs, SetupDialogs->getDialogs();
+ push @dialogs, DSDialogs->getDialogs();
+ }
$dialogmgr->addDialog(@dialogs);
@@ -71,15 +77,29 @@ if (!$setup->{silent}) {
$setup->{inf}->write();
}
-my @errs = createDSInstance($setup->{inf});
+my @errs;
+if ($setup->{update}) {
+ @errs = updateDS($setup);
+} else {
+ @errs = createDSInstance($setup->{inf});
+}
+
if (@errs) {
$setup->msg(@errs);
- $setup->msg($FATAL, 'error_creating_dsinstance',
- $setup->{inf}->{slapd}->{ServerIdentifier});
+ if ($setup->{update}) {
+ $setup->msg($FATAL, 'error_updating');
+ } else {
+ $setup->msg($FATAL, 'error_creating_dsinstance',
+ $setup->{inf}->{slapd}->{ServerIdentifier});
+ }
$setup->doExit(1);
} else {
- $setup->msg('created_dsinstance',
- $setup->{inf}->{slapd}->{ServerIdentifier});
+ if ($setup->{update}) {
+ $setup->msg('update_successful');
+ } else {
+ $setup->msg('created_dsinstance',
+ $setup->{inf}->{slapd}->{ServerIdentifier});
+ }
}
$setup->doExit(0);
@@ -91,3 +111,10 @@ END {
}
}
}
+
+# emacs settings
+# Local Variables:
+# mode:perl
+# indent-tabs-mode: nil
+# tab-width: 4
+# End: