Files
racalmas/tools/update_program.pl
2025-04-11 11:06:01 +02:00

72 lines
1.8 KiB
Perl
Executable File

#! /usr/bin/perl
use warnings;
use strict;
use Data::Dumper;
use Date::Calc;
use config;
use template;
my $perlPath='-I /var/www/html/lib/calcms';
my $configPath=$ARGV[0]||'/var/www/html/website/agenda/config/config.cgi';
unless (defined $config::config){
config::get($configPath);
}
clean_up_cache();
sub clean_up_cache{
my $base_dir =$config::config->{locations}->{base_dir}||'';
print_error("'base_dir' directory not configured! Please check config!") if($base_dir eq'');
print_error("invalid 'base_dir' directory '$base_dir'! Please check config!") unless ($base_dir=~/[a-zA-Z]\/[a-zA-Z]/);
print_error("'base_dir' directory '$base_dir' does not exist! Please check config!") unless (-e $base_dir);
print_error("cannot read 'base_dir' directory '$base_dir'! Please check permissions!") unless (-r $base_dir);
# update basic layout
print_header("update basic layout");
my $file="$base_dir/index.html";
if ((-e $file) && (!-w $file)){
print_error("Please check write permission on '$file'");
}else{
my $config=$base_dir.'/config/config.cgi';
my $cmd="perl $perlPath get_source_page.pl --config $config --output $file 2>&1";
execute($cmd);
}
# update start page
print_header("update agenda start page");
$file="$base_dir/programm.html";
if ((-e $file) && (!-w $file)){
print_error("Please check write permission on '$file'\n");
}else{
my $cmd="cd $base_dir; perl $perlPath aggregate.cgi date=today >$file 2>&1";
execute($cmd);
}
}
sub print_header{
print "\n# $_[0]\n";
}
sub execute{
my $cmd=$_[0];
print_info($cmd."\n");
print eval{`$cmd`}."\n";
print_info('ok') if ($? == 0);
print_error("error $! $?") if ($? != 0);
}
sub print_info{
print $_[0]."\n";
}
sub print_error{
print STDERR "ERROR: $_[0]\n";
exit 1;
}
1;