public static void Main(string[] args)
{
try
{
var arguments = Args.Parse<Arguments>(args);
using (var fileReader = new Common.BinaryFileReader(arguments.Inputfile))
{
Common.BinaryFileWriter fileWriter = null;
switch (arguments.Command)
{
case Arguments.Commands.TrimBlack:
fileWriter = new Common.BinaryFileWriter(arguments.OutputFile);
var trimBlackCommand = new TrimBlack(fileReader, fileWriter);
trimBlackCommand.Execute();
break;
case Arguments.Commands.FindLoop:
var findLoopCommand = new FindLoop(fileReader);
findLoopCommand.Execute();
break;
case Arguments.Commands.TrimEnd:
fileWriter = new Common.BinaryFileWriter(arguments.OutputFile);
var trimEndCommand = new TrimEnd(fileReader, fileWriter, arguments.TrimPos);
trimEndCommand.Execute();
break;
}
if (fileWriter != null)
fileWriter.Dispose();
}
}
catch (ArgException ex)
{
Console.WriteLine("Argument error {0}", ex.Message);
Console.WriteLine(ArgUsage.GenerateUsageFromTemplate<Arguments>());
}
catch (Exception ex)
{
Console.WriteLine("Unhandled exception: {0}", ex);
}
}