/!\ Warning: this commit doesn't compile /!
[circ.git] / CirC / Main.cs
blobed2ce5a97a45876fa0de5dcb173e52fcea9ef2e9
1 #region License
2 /* Circ : Main program
3 * Copyright (C) 2007 LAVAL Jérémie
5 * This file is licensed under the terms of the LGPL.
7 * For the complete licence see the file COPYING.
8 */
9 #endregion
10 using System;
11 using Circ.Cil;
12 using Circ.Backend;
13 using System.IO;
15 namespace Circ
17 public static class CircMain
19 static MainControl mainControl;
21 public static void Main(string[] args)
23 Logger.Debug("Circ starting...");
25 Logger.Debug("Initializing the Addin manager");
26 Mono.Addins.AddinManager.Initialize(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), ".Circ"));
27 Mono.Addins.AddinManager.Registry.Update(null);
29 mainControl = new MainControl();
30 Circ.Plugins.Shop.MainControl = mainControl;
32 Logger.Debug("Cross your fingers, it's beginning");
34 mainControl.WaitForInit();
35 //System.Threading.Thread.Sleep(3000);
36 Logger.Debug("Initialization finalized");
38 try {
39 Logger.Debug("Loading Plugins");
40 PluginsContainer.LoadPlugins();
41 try {
42 mainControl.Idle();
43 } catch (Exception ex) {
44 mainControl.Frontend.ShowErrorMessage("An error has occured during the execution : " + ex.Message);
46 } finally {
47 PluginsContainer.Unload();
48 mainControl.Dispose();
51 GC.Collect();
52 GC.WaitForPendingFinalizers();
55 public static void PrintUsageInformation()
57 Console.WriteLine("Circ, IRC client for the GNU/Linux plateform\n(c) 2006 LAVAL Jérémie\n\n"+
58 "Usage information : circ [OPTIONS]\n\nOPTIONS can be"+
59 ":\n\t-server:hostname Connect to the specified IRC server");
60 Environment.Exit(0);
63 /*private static void LoadPlugins()
65 plugins = new PluginLoader();
66 try {
67 plugins.Launch();
68 } catch (PluginException e) {
69 log.Error(e.Message, e);
71 }*/