|
#!/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);
|
|
print($form->parse_html_template("dbupgrade/update_templates_warnings",
|
|
{ "WARNINGS" => \@warnings }));
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
sub do_update {
|
|
update_templates("German-winston.xml",
|
|
"German-taxbird.txb",
|
|
"German-credit_note.tex",
|
|
"German-zahlungserinnerung.tex");
|
|
}
|
|
|
|
return do_update();
|