#!/usr/bin/perl
# Extracts logfiles from raw DVR data
use Date::Manip;

$FILE=$ARGV[0];
$DIR="logs";
$Day="Mon"; # Default

open DATA, "strings $FILE|" || die "Couldn't open $FILE :$!\n";
open SYSTEM, ">$DIR/syslog";

print "Gathering log data...\n";
while(<DATA>) {
   $line=$_;
   if($line=~/(\d*):(\d*):(\d*)/) {
	if($line=~/^(\d*)\/(\d*)\/(\d*) (\d*):(\d*):(\d*)/) {
		if($line=~/(\S*) (\S*) Starting new logfile for/) {
			$date=&ParseDate("$1 $2");
			$Day=&UnixDate($date,"%a");
			print "Determined that $1 $2 was on $Day\n";
		}
		print SYSTEM $line;
	} elsif ($line=~/^(\d*):(\d*):(\d*)/) {
		open DAY, ">>$DIR/$Day.log";
		print DAY $line;
		close DAY;
	}
   }
}
close DATA;
print "Sorting syslog...";
system("sort $DIR/syslog > $DIR/syslog.tmp");
system("mv $DIR/syslog.tmp $DIR/syslog");
print "done.\n";
