messagingfw/msgtest/targetautomation/Script/logsplit.pl
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 18 Jan 2010 20:36:02 +0200
changeset 0 8e480a14352b
permissions -rw-r--r--
Revision: 201001 Kit: 201003

# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of "Eclipse Public License v1.0"
# which accompanies this distribution, and is available
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
#
# Initial Contributors:
# Nokia Corporation - initial contribution.
#
# Contributors:
#
# Description:
#

#!perl

$count = @ARGV;
die "ERROR: Bad arguments\n\nUsage: \n\nlogsplit logfilename\n\n" if ($count!=1);

$state = 1;
while (<>) {
	if ($state==1) {
		# regular expression here searching for ---->START
		if (/=====> START /) {
			@fields = split /\[/;
			shift @fields;
			@fields = split /\]/;
			$_ = shift @fields;
			@fields = split / /;
			$filename = $fields[2];
			@fields = split /\\/, $filename;
			$filename = $fields[@fields-1];
			# open file here
			print "$filename \n";
			open LOGHANDLE, ">$filename"
				or die "FAILED: opening file $filename.\n($!)\n";
			$state=2;
		}
	}
	elsif ($state==2) {
		# regular expression here searching for ---->STOP
		if (/=====> STOP /) {
			# check that start and stop matches ?
			# close file here
			close LOGHANDLE;
			$state=1;
		}
		elsif (/=====> START /) {
			# Start found during a file...?
			close LOGHANDLE;
			die "FAILED: source file corrupt!\n\n";
		}
		else {
			print LOGHANDLE $_;
			# write line to file
		}
	}
}