#!/usr/bin/env perl
use strict;
use warnings;
use YAML::XS;
use Digest::MD5;

eval
{
    local $/ = undef;
    my (  %param, $i ) = %{ YAML::XS::Load( <> ) };

    my ( $file, $position ) = @{$param{argv}} or die "file undef";

    die "Can't open '$file': $!" unless open my  $fh, '+<', $file;

    my ( $uid, $gid, $mode, $size ) = (stat $file)[4,5,2,7];
    $mode  = sprintf( "%04o", $mode & 07777 );
    printf "%d:%s:%d:%d:%s:", 
        $size, Digest::MD5->new()->addfile( $fh )->hexdigest(), $uid, $gid, $mode;

    seek $fh, $position || 0, 0;
    while( <$fh> ) { print $_; }

    exit 0;
};
print $@;
exit 1;
