예제 #1
0
        static void Initialize()
        {
            Console.WriteLine("");

            Console.Write("Initializing Komodo daemon: ");
            _Komodo = new KomodoDaemon();
            Console.WriteLine("[success]");

            Console.WriteLine("");
        }
예제 #2
0
파일: Program.cs 프로젝트: jchristn/komodo
        private static void InitializeGlobals()
        {
            ConsoleColor prior = Console.ForegroundColor;

            Console.ForegroundColor = ConsoleColor.DarkGray;

            Console.Write("| Initializing logging            : ");
            _Logging = new LoggingModule(
                _Settings.Logging.SyslogServerIp,
                _Settings.Logging.SyslogServerPort,
                _Settings.Logging.ConsoleLogging);

            if (_Settings.Logging.FileLogging && !String.IsNullOrEmpty(_Settings.Logging.Filename))
            {
                if (String.IsNullOrEmpty(_Settings.Logging.FileDirectory))
                {
                    _Settings.Logging.FileDirectory = "./";
                }
                if (_Settings.Logging.FileDirectory.Contains("\\"))
                {
                    _Settings.Logging.FileDirectory = _Settings.Logging.FileDirectory.Replace("\\", "/");
                }
                if (!Directory.Exists(_Settings.Logging.FileDirectory))
                {
                    Directory.CreateDirectory(_Settings.Logging.FileDirectory);
                }

                _Logging.Settings.FileLogging = FileLoggingMode.FileWithDate;
                _Logging.Settings.LogFilename = _Settings.Logging.FileDirectory + _Settings.Logging.Filename;
            }
            Console.WriteLine("[success]");

            Console.Write("| Initializing Komodo daemon      : ");
            _DaemonSettings = _Settings.ToDaemonSettings();
            _Daemon         = new KomodoDaemon(_DaemonSettings);
            Console.WriteLine("[success]");

            Console.Write("| Initializing database           : ");
            _ORM = new WatsonORM(_Settings.Database.ToDatabaseSettings());
            _ORM.InitializeDatabase();
            _ORM.InitializeTable(typeof(ApiKey));
            _ORM.InitializeTable(typeof(Index));
            _ORM.InitializeTable(typeof(Metadata));
            _ORM.InitializeTable(typeof(MetadataDocument));
            _ORM.InitializeTable(typeof(Node));
            _ORM.InitializeTable(typeof(ParsedDocument));
            _ORM.InitializeTable(typeof(Permission));
            _ORM.InitializeTable(typeof(SourceDocument));
            _ORM.InitializeTable(typeof(TermDoc));
            _ORM.InitializeTable(typeof(TermGuid));
            _ORM.InitializeTable(typeof(User));
            Console.WriteLine("[success]");

            Console.Write("| Initializing authentication     : ");
            _Auth = new AuthManager(_ORM);
            Console.WriteLine("[success]");

            Console.Write("| Initializing webserver          : ");
            _Webserver = new WatsonWebserver.Server(
                _Settings.Server.ListenerHostname,
                _Settings.Server.ListenerPort,
                _Settings.Server.Ssl,
                RequestReceived);

            _Webserver.Routes.Content.Add("/Assets/", true);
            _Webserver.Settings.AccessControl.Mode = AccessControlMode.DefaultPermit;
            _Webserver.Start();

            Console.WriteLine(
                "[success] " +
                (_Settings.Server.Ssl ? "https://" : "http://") +
                _Settings.Server.ListenerHostname + ":" + _Settings.Server.ListenerPort);

            if (_Settings.Server.ListenerHostname.Equals("localhost") || _Settings.Server.ListenerHostname.Equals("127.0.0.1"))
            {
                //                          1         2         3         4         5         6         7         8
                //                 12345678901234567890123456789012345678901234567890123456789012345678901234567890
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine("");
                Console.WriteLine("WARNING: Komodo started on '" + _Settings.Server.ListenerHostname + "'");
                Console.ForegroundColor = ConsoleColor.DarkYellow;
                Console.WriteLine("Komodo can only service requests from the local machine.  If you wish to serve");
                Console.WriteLine("external requests, edit the system.json file and specify a DNS-resolvable");
                Console.WriteLine("hostname in the Server.ListenerHostname field.");
                Console.WriteLine("");
            }

            List <string> adminListeners = new List <string> {
                "*", "+", "0.0.0.0"
            };

            if (adminListeners.Contains(_Settings.Server.ListenerHostname))
            {
                //                          1         2         3         4         5         6         7         8
                //                 12345678901234567890123456789012345678901234567890123456789012345678901234567890
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.WriteLine("");
                Console.WriteLine("NOTICE: Komodo is listening on a wildcard hostname: '" + _Settings.Server.ListenerHostname + "'");
                Console.ForegroundColor = ConsoleColor.DarkCyan;
                Console.WriteLine("Komodo must be run with administrative privileges, otherwise it will not be able");
                Console.WriteLine("to respond to incoming requests.");
                Console.WriteLine("");
            }

            Console.ForegroundColor = ConsoleColor.DarkGray;

            if (_Settings.EnableConsole)
            {
                _Console = new ConsoleManager(_Settings, ExitApplication);
            }

            Console.ForegroundColor = prior;
            Console.WriteLine("");
        }