2013-03-01 00:50:50 +00:00
using System ;
2014-10-13 17:51:17 +00:00
using System.Net.Sockets ;
2013-08-30 22:55:01 +00:00
using NLog ;
2013-08-13 05:08:37 +00:00
using NzbDrone.Common.EnvironmentInfo ;
2013-08-31 01:42:30 +00:00
using NzbDrone.Common.Instrumentation ;
2013-08-16 02:20:54 +00:00
using NzbDrone.Host ;
2013-03-01 00:50:50 +00:00
namespace NzbDrone.Console
{
2013-08-07 05:32:22 +00:00
public static class ConsoleApp
2013-03-01 00:50:50 +00:00
{
2014-12-17 07:12:26 +00:00
private static readonly Logger Logger = NzbDroneLogger . GetLogger ( typeof ( ConsoleApp ) ) ;
2013-08-31 01:42:30 +00:00
2013-03-01 00:50:50 +00:00
public static void Main ( string [ ] args )
{
try
{
2013-11-26 06:53:36 +00:00
var startupArgs = new StartupContext ( args ) ;
2014-12-17 07:12:26 +00:00
NzbDroneLogger . Register ( startupArgs , false , true ) ;
2013-11-26 06:53:36 +00:00
Bootstrap . Start ( startupArgs , new ConsoleAlerts ( ) ) ;
2013-03-01 00:50:50 +00:00
}
2014-10-13 17:51:17 +00:00
catch ( SocketException exception )
{
System . Console . WriteLine ( "" ) ;
System . Console . WriteLine ( "" ) ;
2015-03-21 11:05:06 +00:00
Logger . Fatal ( exception . Message + ". This can happen if another instance of Sonarr is already running or another application is using the port assinged to NzbDrone (default: 8989)" ) ;
2014-10-13 17:51:17 +00:00
System . Console . WriteLine ( "Press any key to exit..." ) ;
System . Console . ReadLine ( ) ;
Environment . Exit ( 1 ) ;
}
2013-08-07 05:32:22 +00:00
catch ( Exception e )
2013-03-01 00:50:50 +00:00
{
2013-11-26 05:36:06 +00:00
System . Console . WriteLine ( "" ) ;
System . Console . WriteLine ( "" ) ;
2013-09-05 01:03:41 +00:00
Logger . FatalException ( "EPIC FAIL!" , e ) ;
2013-11-26 05:36:06 +00:00
System . Console . WriteLine ( "Press any key to exit..." ) ;
2013-08-20 22:48:10 +00:00
System . Console . ReadLine ( ) ;
2014-10-13 17:51:17 +00:00
Environment . Exit ( 1 ) ;
2013-03-01 00:50:50 +00:00
}
2014-10-03 05:24:32 +00:00
Logger . Info ( "Exiting main." ) ;
2014-10-03 17:39:06 +00:00
//Need this to terminate on mono (thanks nlog)
LogManager . Configuration = null ;
Environment . Exit ( 0 ) ;
2013-03-01 00:50:50 +00:00
}
}
2013-08-31 01:42:30 +00:00
}