Exemple #1
0
 private static void OnUnhandledException(object sender, ThreadExceptionEventArgs exception_args)
 {
     try {
         SparkleLogger.WriteCrashReport(exception_args.Exception);
     } finally {
         Environment.Exit(-1);
     }
 }
Exemple #2
0
        public static void Main(string [] args)
        {
            if (args.Length != 0 && !args [0].Equals("start") &&
                SparkleBackend.Platform != PlatformID.MacOSX &&
                SparkleBackend.Platform != PlatformID.Win32NT)
            {
                string n = Environment.NewLine;

                Console.WriteLine(n +
                                  "SparkleShare is a collaboration and sharing tool that is" + n +
                                  "designed to keep things simple and to stay out of your way." + n +
                                  n +
                                  "Version: " + SparkleLib.SparkleBackend.Version + n +
                                  "Copyright (C) 2010 Hylke Bons" + n +
                                  "This program comes with ABSOLUTELY NO WARRANTY." + n +
                                  n +
                                  "This is free software, and you are welcome to redistribute it" + n +
                                  "under certain conditions. Please read the GNU GPLv3 for details." + n +
                                  n +
                                  "Usage: sparkleshare [start|stop|restart]");

                Environment.Exit(-1);
            }

            // Only allow one instance of SparkleShare (on Windows)
            if (!program_mutex.WaitOne(0, false))
            {
                Console.WriteLine("SparkleShare is already running.");

                Controller = new SparkleController();
                Controller.Initialize();

                UI = new SparkleUI();
                UI.Run();
            }

            try {
                Controller = new SparkleController();
                Controller.Initialize();

                UI = new SparkleUI();
                UI.Run();
            } catch (Exception e) {
                SparkleLogger.WriteCrashReport(e);
                Environment.Exit(-1);
            }

            #if !__MonoCS__
            // Suppress assertion messages in debug mode
            GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced);
            GC.WaitForPendingFinalizers();
            #endif
        }