2 # Setup, update or delete reporting cron job
4 require './sarg-lib.pl';
5 &foreign_require("cron", "cron-lib.pl");
6 @jobs = &cron::list_cron_jobs();
7 ($oldjob) = grep { $_->{'user'} eq 'root' &&
8 $_->{'command'} eq $cron_cmd } @jobs;
12 &error_setup($text{'sched_err'});
17 $job = { 'active' => 1,
19 'command' => $cron_cmd };
22 &cron::parse_times_input($job, \%in);
23 &cron::create_wrapper($cron_cmd, $module_name, "generate.pl");
25 if (!$in{'range_def'}) {
26 $in{'rfrom'} =~ /^\d+$/ || &error($text{'sched_erfrom'});
27 $in{'rto'} =~ /^\d+$/ || &error($text{'sched_erto'});
30 &lock_file(&cron::cron_file($job));
31 if ($in{'sched'} && !$oldjob) {
33 &cron::create_cron_job($job);
36 elsif (!$in{'sched'} && $oldjob) {
38 &cron::delete_cron_job($job);
41 elsif ($in{'sched'} && $oldjob) {
43 &cron::change_cron_job($job);
49 &unlock_file(&cron::cron_file($job));
51 # Save config settings
52 &lock_file($module_config_file);
53 $config{'clear'} = $in{'clear'};
54 $config{'range'} = $in{'range_def'} ? undef : $in{'rfrom'}." ".$in{'rto'};
55 &save_module_config();
56 &unlock_file($module_config_file);
57 &webmin_log("sched", undef, $mode);