Projekt

Allgemein

Profil

Herunterladen (1,72 KB) Statistiken
| Zweig: | Markierung: | Revision:
#!/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();
(35-35/42)