public static int Main(string[] args)
{
Console.CancelKeyPress += new ConsoleCancelEventHandler(ConsoleCancelKeyPress);
options = InputOptions.Create(args);
logger = new ConsoleLogger(options);
isRunning = true;
if (options.IsValid)
{
if (!options.Help)
{
if (options.ParentProcessId > 0)
{
Process parentProcess = Process.GetProcessById(options.ParentProcessId);
if (parentProcess != null)
{
logger.Debug("Parent process was found with ID {0}. Subscribing to 'Exited' event.", options.ParentProcessId);
parentProcess.Exited += new EventHandler(ParentProcessExited);
parentProcess.EnableRaisingEvents = true;
}
else
{
logger.Debug("No parent process was found with ID {0}.", options.ParentProcessId);
}
}
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine("Type 'exit' to shutdown gracefully, or Ctl+C to exit immediately.");
Console.ResetColor();
Console.WriteLine();
inputThread = new Thread(WaitForInput);
inputThread.Start();
PullupBootstraps();
}
else
{
logger.Help();
}
}
else
{
logger.InputError();
return 1;
}
return 0;
}