private void WriteLog(object obj, ConsoleColor color, LogType type)
        {
            DateTime now = DateTime.Now;

            try
            {
                string info = string.Format("{0}{1} {2} {3}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), Logo, type, obj);

                if (doConsolePrint)
                {
                    Console.ForegroundColor = color;
                    Console.WriteLine(info);
                    Console.ResetColor();
                }
                if (doFilePrint)
                {
                    handler.WriteLine(info);
                    handler.CheckFileSize(info.Length, now);
                }
            }
            catch (Exception e)
            {
                Log.Error(e.ToString());
            }
        }
Exemple #2
0
        public override void Write(object obj)
        {
            DateTime now = DateTime.Now;

            try
            {
                string info = string.Format("{0}{1}{2}{3}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), Logo, "[INFO] ", obj);

                if (doFormPrint)
                {
                    mainFrom.WinFromLog(info, Color.Red);
                }
                if (doFilePrint)
                {
                    handler.WriteLine(info);
                    handler.CheckFileSize(info.Length, now);
                }
            }
            catch (Exception e)
            {
                Log.Error(e.ToString());
            }
        }
Exemple #3
0
        /// <summary>
        /// Processes any command line arguments issued to the program.
        /// </summary>
        /// <param name="arguments"></param>
        internal static bool ProcessCommandLineArguments(string[] arguments)
        {
            if (arguments.Length > 0)
            {
                // There are arguments

                string helpText = Application.ProductName
                                  + ".exe <full path to .save file to process> "
                                  + "/prefix <the name prefix of vessel to apply to> "
                                  + "/groupid64 <the GroupID64 of the Steam Group> "
                                  + "[/logfolder <path to log file directory>] "
                                  + "[/nobackup] [/verbose] ";

                for (int i = 0; i < arguments.Length; i++)
                {
                    // Try to figure out what's in this argument
                    if (arguments[i].EndsWith(".save", StringComparison.CurrentCultureIgnoreCase))
                    {
                        // It's a .save file
                        hellionSaveFileInfo = new FileInfo(arguments[i]);
                        Logging.WriteLine("Argument: Save File " + hellionSaveFileInfo.FullName);

                        if (!hellionSaveFileInfo.Exists)
                        {
                            Logging.WriteLine("Specified Save File does not exist.");
                            PauseIfDebuggerAttached();
                            return(false);
                        }
                    }
                    else if (arguments[i].Equals("/prefix", StringComparison.CurrentCultureIgnoreCase))
                    {
                        // Increment i by one to prevent the next element being processed in case there are other(?) arguments.
                        i++;
                        groupPrefix = arguments[i].ToUpper();
                        Logging.WriteLine("Argument: Vessel Prefix " + groupPrefix);

                        if (string.IsNullOrEmpty(groupPrefix))
                        {
                            Logging.WriteLine("Invalid prefix.");
                            PauseIfDebuggerAttached();
                            return(false);
                        }
                    }
                    else if (arguments[i].Equals("/groupid64", StringComparison.CurrentCultureIgnoreCase))
                    {
                        // Increment i by one to prevent the next element being processed in case there are other(?) arguments.
                        i++;
                        groupID64 = Convert.ToInt64(arguments[i]);
                        Logging.WriteLine("Argument: Steam GroupID64 " + groupID64);
                        if (!(groupID64 > 0))
                        {
                            Logging.WriteLine("Problem with Steam GroupID64.");
                            PauseIfDebuggerAttached();
                            return(false);
                        }
                    }
                    else if (arguments[i].Equals("/logfolder", StringComparison.CurrentCultureIgnoreCase))
                    {
                        // Increment i by one to prevent the next element being processed in case there are other(?) arguments.
                        i++;
                        DirectoryInfo _loggingPath = new DirectoryInfo(arguments[i]);
                        Logging.WriteLine("Argument: Log File Path " + _loggingPath.FullName);
                        if (!(_loggingPath.Exists))
                        {
                            Logging.WriteLine("Invalid logging path specified.");
                            PauseIfDebuggerAttached();
                            return(false);
                        }
                        Logging.LogFile = new FileInfo(Path.Combine(_loggingPath.FullName, Logging.GenerateLogFileName(LogFileNameSuffix)));
                        Logging.WriteLine("Logging to: " + Logging.LogFile.FullName);

                        Logging.Mode = LogFileHandler.LoggingOperationType.ConsoleAndLogFile;
                    }
                    else if (arguments[i].Equals("/nobackup", StringComparison.CurrentCultureIgnoreCase))
                    {
                        createBackup = false;
                        Logging.WriteLine("Argument: Backup file will NOT be created.");
                    }
                    else if (arguments[i].Equals("/verbose", StringComparison.CurrentCultureIgnoreCase))
                    {
                        verboseOutput = true;
                        Logging.WriteLine("Argument: Verbose output ON.");
                    }
                    else if (arguments[i].Equals("/?") || arguments[i].ToLower().Contains("help"))
                    {
                        Logging.WriteLine(helpText);
                        PauseIfDebuggerAttached();
                        return(false);
                    }
                    else
                    {
                        Logging.WriteLine("Unexpected Argument: " + arguments[i]);
                        Logging.WriteLine("Use /? or /help to show available arguments.");
                        PauseIfDebuggerAttached();
                        return(false);
                    }
                }
                // We got here so everything checked out so far.
                return(true);
            }
            Logging.WriteLine("No parameters specified.");
            Logging.WriteLine("Use /? or /help to show available arguments.");
            PauseIfDebuggerAttached();
            return(false);
        }