#! /usr/bin/perl

my $prefix="/usr";
my $xmdir = "${prefix}/share/xm-tool";
push @INC, "$xmdir";

my @argv = ( "perl", "-I${prefix}/share/xm-tool" );
my $done = 0;
my $warn = 0;

for (@ARGV)
{
    if (not $done)
    { 
	if (/^--\w+$/)
	{
	    push @argv, $_;
	}
	elsif (/^-\w$/)
	{
	    push @argv, $_;
	    $warn = 1 if /-w/;
	}
	elsif (/^\s*(\w+)\:([\w\-]+\.p[ml])\s*$/)
	{
	    push @argv, "-e";
	    push @argv, "BEGIN { \$package=\'".$1."/".$2."\' } ";
	    push @argv, "-e";
	    push @argv, " require \"".$1."/".$2."\"; ";
	    $done = 1;
	}
	elsif (/.+::.+::.+/)
	{
	    push @argv, "-e";
	    push @argv, "BEGIN { \$package=\'".$_."\' } ";
	    push @argv, "-e";
	    push @argv, " use ".$_."; ";
	    push @argv, "-e";
	    push @argv, "\$_ = ".$_."::ARGS(\\\@ARGV); ";
	    push @argv, "-e";
	    push @argv, "print ".$_."::DO(\$_) if length; ";
	    $done = 1;
	}
	elsif (/.+::.+/)
	{
	    push @argv, "-e";
	    push @argv, "BEGIN { \$package=\'".$_."\' } ";
	    push @argv, "-e";
	    push @argv, " use ".$_."; ";
	    push @argv, "-e";
	    push @argv, "\$_ = ".$_."::ARGS(\\\@ARGV); ";
	    push @argv, "-e";
	    push @argv, "print ".$_."::DO(\$_) if length; ";
	    $done = 1;
	}else{
		push @argv, $_;
	}
    }else{
	push @argv, $_;
    }
}

print STDERR join (" ",@argv), "\n" if $warn;
exec @argv;
