public override void Run()
{
#if !NO_SYSTEM_DLL
if (Errors.Count > 0)
{
return;
}
string command = null;
string arguments = string.Empty;
switch ((int) System.Environment.OSVersion.Platform)
{
case (int)System.PlatformID.Unix:
case 128:// mono's PlatformID.Unix workaround on 1.1
command = "pedump";
arguments = "--verify all \"" + Context.GeneratedAssemblyFileName + "\"";
break;
default: // Windows
command = "peverify.exe";
arguments = "\"" + Context.GeneratedAssemblyFileName + "\"";
break;
}
if (null == command)
{
Errors.Add(new CompilerError(Boo.Lang.ResourceManager.GetString("BooC.VerifyPipelineUnsupported")));
return;
}
try
{
Process p = Boo.Lang.Builtins.shellp(command, arguments);
p.WaitForExit();
if (0 != p.ExitCode)
{
Errors.Add(new CompilerError(Boo.Lang.Compiler.Ast.LexicalInfo.Empty, p.StandardOutput.ReadToEnd()));
}
}
catch (System.Exception e)
{
Warnings.Add(new CompilerWarning("Could not start " + command));
_context.TraceWarning("Could not start " + command +" : " + e.Message);
}
#endif
}