| #!/usr/bin/perl -w |
| |
| use strict; |
| |
| my $command = shift @ARGV; |
| my $perl = shift @ARGV; |
| my $syncfile = shift @ARGV; |
| |
| if ($command eq 'quickstart') { |
| quickstart(); |
| |
| } |
| elsif ($command eq 'start') { |
| quickstart(); |
| if ($syncfile) |
| { |
| # sleep until it disappears, or times out. |
| # on second thoughts, just sleep a little bit if it exists, |
| # don't wait for it to disappear entirely. this just gives us |
| # a little delay, to avoid overloading, without totally screwing |
| # up if a lockfile gets left lying around... |
| |
| if (-f $syncfile && mtime_age_secs($syncfile) < 60*60) { |
| print "$syncfile exists with age ".mtime_age_secs($syncfile).", sleeping\n"; |
| sleep 60*3 + rand(60*5); |
| } |
| |
| open (TOUCH, ">$syncfile"); close TOUCH; |
| } |
| |
| # ensure we're in a safe state to build |
| system ("$perl Makefile.PL < /dev/null"); |
| system ("make distclean"); |
| system ("rm -rf Mail-SpamAssassin*"); |
| |
| } |
| elsif ($command eq 'stop') { |
| if ($syncfile) { |
| unlink ($syncfile); |
| print "$syncfile removed\n"; |
| } |
| } |
| exit; |
| |
| sub mtime_age_secs { |
| my $f = shift; |
| my @s = stat($f); |
| return (time - $s[9]); |
| } |
| |
| sub quickstart { |
| # TODO |
| } |
| |