#!/usr/bin/perl
# TODO: make 'svnserve -T' check
# TODO: clean up old src/svn/patches.* dirs

chdir or die;

use POSIX qw/strftime/;

# what goes where
my $nick = shift || "\$nick";
my $unique = "$$.$nick";
my $patchfile = "$ENV{HOME}/check.d/patch.$unique";
my $logfile = "$ENV{HOME}/check.d/log.$unique";
my $hostname = `hostname`; chomp $hostname;
my $starttime = strftime "%Y%m%d-%H:%M:%S", localtime;
my $whoami = (getpwuid $>)[0];

# save stdin before forking
system("cat > $patchfile") == 0 or die;

# daemonize
my $pid = fork;
die "fork: $!" unless defined $pid;
exit if $pid;
close STDIN and close STDOUT and close STDERR or die $!;

# in child
open STDOUT, '|-', qw/mail -s/, "$0\@$hostname: $nick: done: $starttime", $whoami or die;
open STDERR, ">&STDOUT" or die;
open STDIN, "/bin/sh check.sh $patchfile $logfile $unique 2>&1 |" or die $!;
print while <STDIN>;

