#!/usr/bin/perl

my ($line) = "";
my ($output) = "";
my ($previousServerName) = "";

while($line = <STDIN>)
  {
    my (@mathopd_log)   = split(/\t/, $line);
    my ($Ctime)         = $mathopd_log[0];
    my ($RemoteUser)    = $mathopd_log[1];
    my ($RemoteAddress) = $mathopd_log[2];
    my ($RemotePort)    = $mathopd_log[3];
    my ($ServerName)    = $mathopd_log[4];
    my ($Method)        = $mathopd_log[5];
    my ($Uri)           = $mathopd_log[6];
    my ($Stats)         = $mathopd_log[7];
    my ($ContentLength) = $mathopd_log[8];
    my ($Referer)       = $mathopd_log[9];
    my ($UserAgent)     = $mathopd_log[10];
    my ($BytesRead)     = $mathopd_log[11];
    my ($BytesWritten)  = $mathopd_log[12];
    #
    if ($ServerName eq "-")
      {
        #
        # Just ignore it.
        #
        next;
      }
    #
    my (@date)          = split(/\s+/, $Ctime);
    #
    if ($Referer eq '-')
      {
        $Referer = '';
      }
    #
    $output = sprintf ("%s - - [%02d/%s/%s:%s +0000] \"%s %s HTTP/1.0\" %d %d \"%s\" \"%s\"",
                       $RemoteAddress,
                       $date[2], $date[1], $date[4], $date[3],
                       $Method,
                       $Uri,
                       $Stats,
                       $ContentLength,
                       $Referer,
                       $UserAgent);

    if    ($previousServerName eq "")
      {
        open (OUTPUT, ">>:utf8", $ServerName);
      }
    elsif ($previousServerName eq $ServerName)
      {
        #
        # The output stream is already opened.
        #
        ;
      }
    else
      {
        close (OUTPUT);
        open (OUTPUT, ">>:utf8", $ServerName);
      }
    #
    print OUTPUT ("$output\n");
  }
close (OUTPUT);
