kivitendo/sql/Pg-upgrade/Pg-upgrade-2.2.0.37-2.2.0.38.pl @ c9e93ded
411e9238 | Moritz Bunkus | #!/usr/bin/perl
|
||
# Upgrade von Vorlagen
|
||||
die("This script cannot be run from the command line.") unless ($main::form);
|
||||
use File::Copy;
|
||||
sub update_templates {
|
||||
local *IN;
|
||||
if (!open(IN, "users/members")) {
|
||||
die($dbup_locale->text("Could not open the file users/members."));
|
||||
}
|
||||
my %all_template_dirs;
|
||||
while (<IN>) {
|
||||
chomp();
|
||||
$all_template_dirs{$1} = 1 if (/^templates=(.*)/);
|
||||
}
|
||||
close(IN);
|
||||
my @new_templates;
|
||||
foreach my $raw (@_) {
|
||||
$raw =~ /^.*?-(.*)/;
|
||||
push(@new_templates, { "source" => "templates/$raw",
|
||||
"destination" => $1 });
|
||||
}
|
||||
my @warnings;
|
||||
foreach my $dir (keys(%all_template_dirs)) {
|
||||
foreach my $template (@new_templates) {
|
||||
my $destination = $dir . "/" . $template->{"destination"};
|
||||
if (-f $destination) {
|
||||
if (!rename($destination, $destination . ".bak")) {
|
||||
push(@warnings, sprintf($dbup_locale->text("Could not rename %s to %s. Reason: %s"),
|
||||
$destination, $destination . ".bak", $!));
|
||||
}
|
||||
}
|
||||
if (!copy($template->{"source"}, $destination)) {
|
||||
push(@warnings, sprintf($dbup_locale->text("Could not copy %s to %s. Reason: %s"),
|
||||
$template->{"source"}, $destination . ".bak", $!));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (@warnings) {
|
||||
@warnings = map(+{ "message" => $_ }, @warnings);
|
||||
9aaca433 | Moritz Bunkus | print($form->parse_html_template("dbupgrade/update_templates_warnings", { "WARNINGS" => \@warnings }));
|
||
411e9238 | Moritz Bunkus | }
|
||
return 1;
|
||||
}
|
||||
sub do_update {
|
||||
update_templates("German-winston.xml",
|
||||
"German-taxbird.txb",
|
||||
"German-credit_note.tex",
|
||||
"German-zahlungserinnerung.tex");
|
||||
}
|
||||
return do_update();
|