summaryrefslogtreecommitdiffstats
path: root/ldap/admin/src/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'ldap/admin/src/scripts')
-rw-r--r--ldap/admin/src/scripts/DSCreate.pm.in57
-rw-r--r--ldap/admin/src/scripts/DSUpdate.pm.in9
-rwxr-xr-xldap/admin/src/scripts/template-start-slapd.in3
3 files changed, 42 insertions, 27 deletions
diff --git a/ldap/admin/src/scripts/DSCreate.pm.in b/ldap/admin/src/scripts/DSCreate.pm.in
index 06b2d1fd..09b7cd11 100644
--- a/ldap/admin/src/scripts/DSCreate.pm.in
+++ b/ldap/admin/src/scripts/DSCreate.pm.in
@@ -64,8 +64,8 @@ use Mozilla::LDAP::LDIF;
use Exporter;
@ISA = qw(Exporter);
-@EXPORT = qw(createDSInstance removeDSInstance setDefaults createInstanceScripts installSchema);
-@EXPORT_OK = qw(createDSInstance removeDSInstance setDefaults createInstanceScripts installSchema);
+@EXPORT = qw(createDSInstance removeDSInstance setDefaults createInstanceScripts makeOtherConfigFiles installSchema);
+@EXPORT_OK = qw(createDSInstance removeDSInstance setDefaults createInstanceScripts makeOtherConfigFiles installSchema);
use strict;
@@ -436,6 +436,7 @@ sub createConfigFile {
sub makeOtherConfigFiles {
my $inf = shift;
+ my $skip = shift;
my @errs;
my %maptable = (
"DS-ROOT" => $inf->{General}->{prefix},
@@ -461,13 +462,18 @@ sub makeOtherConfigFiles {
$src = "$inf->{General}->{prefix}@configdir@/slapd-collations.conf";
$dest = "$inf->{slapd}->{config_dir}/slapd-collations.conf";
+
$! = 0; # clear errno
- copy($src, $dest);
- if ($!) {
- return ('error_copying_file', $src, $dest, $!);
- }
- if (@errs = changeOwnerMode($inf, 4, $dest)) {
- return @errs;
+
+ #in skip mode, skip files that already exist
+ unless ($skip and -f $dest) {
+ copy($src, $dest);
+ if ($!) {
+ return ('error_copying_file', $src, $dest, $!);
+ }
+ if (@errs = changeOwnerMode($inf, 4, $dest)) {
+ return @errs;
+ }
}
# determine initconfig_dir
@@ -487,22 +493,25 @@ sub makeOtherConfigFiles {
$! = 0; # clear errno
- if (!open(SRC, "< $src")) {
- return ("error_opening_scripttmpl", $src, $!);
- }
- if (!open(DEST, "> $dest")) {
- return ("error_opening_scripttmpl", $dest, $!);
- }
- my $contents; # slurp entire file into memory
- read SRC, $contents, int(-s $src);
- close(SRC);
- while (my ($key, $val) = each %maptable) {
- $contents =~ s/\{\{$key\}\}/$val/g;
- }
- print DEST $contents;
- close(DEST);
- if (@errs = changeOwnerMode($inf, 4, $dest)) {
- return @errs;
+ # in skip mode, skip files that already exist
+ unless ($skip and -f $dest) {
+ if (!open(SRC, "< $src")) {
+ return ("error_opening_scripttmpl", $src, $!);
+ }
+ if (!open(DEST, "> $dest")) {
+ return ("error_opening_scripttmpl", $dest, $!);
+ }
+ my $contents; # slurp entire file into memory
+ read SRC, $contents, int(-s $src);
+ close(SRC);
+ while (my ($key, $val) = each %maptable) {
+ $contents =~ s/\{\{$key\}\}/$val/g;
+ }
+ print DEST $contents;
+ close(DEST);
+ if (@errs = changeOwnerMode($inf, 4, $dest)) {
+ return @errs;
+ }
}
return ();
diff --git a/ldap/admin/src/scripts/DSUpdate.pm.in b/ldap/admin/src/scripts/DSUpdate.pm.in
index 3792afe2..3241a582 100644
--- a/ldap/admin/src/scripts/DSUpdate.pm.in
+++ b/ldap/admin/src/scripts/DSUpdate.pm.in
@@ -47,7 +47,7 @@ package DSUpdate;
use DSUtil;
use Inf;
use FileConn;
-use DSCreate qw(setDefaults createInstanceScripts);
+use DSCreate qw(setDefaults createInstanceScripts makeOtherConfigFiles);
use File::Basename qw(basename dirname);
@@ -315,7 +315,12 @@ sub updateDSInstance {
}
# upgrade instance scripts
- if (@errs = createInstanceScripts($inf, 1)) {
+ if (@errs = createInstanceScripts($inf, 0)) {
+ return @errs;
+ }
+
+ # add new or missing config files
+ if (@errs = makeOtherConfigFiles($inf, 1)) {
return @errs;
}
diff --git a/ldap/admin/src/scripts/template-start-slapd.in b/ldap/admin/src/scripts/template-start-slapd.in
index 444a37ff..0c9ac631 100755
--- a/ldap/admin/src/scripts/template-start-slapd.in
+++ b/ldap/admin/src/scripts/template-start-slapd.in
@@ -5,6 +5,7 @@
# 0: Server started successfully
# 1: Server could not be started
# 2: Server already running
+INSTANCE={{SERV-ID}}
-@sbindir@/start-dirsrv -d {{INITCONFIG-DIR}} {{SERV-ID}} "$@"
+@sbindir@/start-dirsrv -d {{INITCONFIG-DIR}} $INSTANCE "$@"
exit $?