#!/usr/bin/perl

use strict;
use warnings;

our $kurilapath;
BEGIN {
    $kurilapath = $ENV{kurilapath} || "../";
    push @INC, "$kurilapath/mad/";
}

use Convert;
use IO::Handle;

use Fatal qw|open close|;

{
    local $/ = undef;
    my $filename = $ARGV[0];
    my $fh;
    open $fh, '+<', "$filename";
    my $input = $fh->getline;
    use File::Basename;
    my (undef, $dir, undef) = File::Basename::fileparse($filename);
    my @lib;
    push @lib, "$ENV{madpath}/lib", "./lib", "./blib/lib", "./blib/arch/", "../lib/", $dir;
    for (keys %ENV) {
        $_ =~ m/^mad_(.*)$/ or next;
        my $k = $1;
        $ENV{$k} = $ENV{"mad_$k"};
    }
    my $output = eval { Convert::convert($input,
                                         "$ENV{madconvert}",
                                         dumpcommand => "$ENV{madperl}",
                                         switches => join ' ', map { "-I $_" } @lib ) };
    if ($output) {
#         if ($input ne $output) {
        open my $fh, '>', "$filename.p5k" or die;
        $fh->print($output);
        close $fh or die;
#         }
    } else {
        warn "Failed converting $filename:\n\n$@\n\n";
    }
}

