# -*- mode: perl -*-

$opt_chatfiles = 'quiet-green,quiet-red,quiet-purple';
# $opt_chatfiles = 'loud-green,loud-red,loud-purple';

use vars qw($opt_fetch_news $opt_del_news_batch $opt_send_news);

$opt_fetch_news = 0;
$opt_send_news = 1;
$opt_del_news_batch = 1;

$opt_sleep_time = 10;

push @user_options, qw(fetch-news!);
push @root_options, 
    (qw(send-news! del-news-batch!),
     "from-cron" => sub {
	 $opt_max_idle_time = 65;
	 $opt_sleep_time = 30;
	 $opt_max_dials = 12;
     });
;

sub before_connect {
    su_launch(0, 'mail', '/usr/bin/mailq');
    su_launch(0, 'nobody', 'id');
    sleep(1);
    1;
}

sub once_connected {
    launch(0, "/usr/sbin/netdate ntp.demon.co.uk ntp1.demon.co.uk ntp2.demon.co.uk ; /sbin/hwclock --systohc --utc; date");
    su_launch(1, 'nobody', qw(finger status@gate.demon.co.uk));
    su_launch(2, 'nobody', qw(finger hedonism@post.demon.co.uk));
    su_launch(5, 'mail', '/usr/sbin/runq');
    su_launch(10, 'homepgs', qw(/home/homepgs/scripts/put-homepages));
    if ($opt_fetch_news) {
	my $file_number = $$;
	while (1) {
	    $news_batchfile = "/var/lib/suck/batchfile.$file_number";
	    unless (-e $news_batchfile) {
		last;
	    }
	    $file_number += 99999;
	}
	su_launch(7, 'news', qw(suck news.demon.co.uk -a),
	       "-S", "/var/lib/suck/suck.log",
	       "-br", $news_batchfile);
    }
    if ($opt_send_news) {
	su_launch(15, 'news', qw(/usr/lib/news/bin/nntpsend));
    }
    1;
}

sub do_pjob {
    su_launch(0, 'mail', '/usr/sbin/runq');
    1;
}

sub before_exit {
    if (defined $news_batchfile) {
	verbose "Starting rnews";
	my $rnews_return = system(qw(rnews -v), $news_batchfile);
	if ($rnews_return == 0) {
	    timing_announce "rnews finished";
	    if ($opt_del_news_batch) {
		if (!-l $news_batchfile && -f _) {
		    verbose "deleting batchfile $news_batchfile";
		    unlink $news_batchfile;
		} else {
		    logmsg "Batchfile $news_batchfile not regular file, not deleted";
		}
	    }
	} else {
	    timing_announce "rnews failed with return code $rnews_return";
	    logmsg "Batchfile $news_batchfile not deleted";
	}
    }
    1;
}

1;
