Beispiel #1
0
 /// <summary>
 /// エラーログと必要に応じてスタックトレースを表示します。
 /// </summary>
 /// <param name="message"></param>
 /// <param name="e"></param>
 public static void LogError(string message, Exception e = null)
 {
     ConsoleColorWriter.SetToConsole(ConsoleColor.Red);
     WriteError("エラー : " + message);
     if (e != null)
     {
         WriteError("詳細 : ");
         WriteError(e.ToString());
     }
     ConsoleColorWriter.SetToConsole();
 }
Beispiel #2
0
 /// <summary>
 /// 警告ログと必要に応じてスタックトレースを表示します。
 /// </summary>
 /// <param name="message"></param>
 /// <param name="e"></param>
 public static void LogWarn(string message, Exception e = null)
 {
     ConsoleColorWriter.SetToConsole(ConsoleColor.Yellow);
     WriteLog("警告 : " + message);
     if (e != null)
     {
         WriteLog("詳細 : ");
         WriteLog(e.ToString());
     }
     ConsoleColorWriter.SetToConsole();
 }
Beispiel #3
0
        static void Main(string[] args)
        {
            var application = new CommandLineApplication(throwOnUnexpectedArg: false)
            {
                Name = nameof(ExcelFormatter),
            };

            application.HelpOption("-?|-h|--help");

            var SelectA1           = application.Option("-a1|--selecta1", "指定のシートに対して、「A1セル」を選択した状態にします。", CommandOptionType.NoValue);
            var copyTemplate       = application.Option("-te|--template", "指定のシートに対してテンプレートを適用します。", CommandOptionType.NoValue);
            var fixPageSetup       = application.Option("-pa|--page", "指定のシートに対してページ設定を適用します。", CommandOptionType.NoValue);
            var fixFont            = application.Option("-fo|--font", "指定のシートに対してフォント設定を適用します。", CommandOptionType.NoValue);
            var fixHeader          = application.Option("-hd|--header", "指定のシートに対してヘッダ設定を適用します。", CommandOptionType.NoValue);
            var fixFooter          = application.Option("-ft|--footer", "指定のシートに対してフッタ設定を適用します。", CommandOptionType.NoValue);
            var removeSampleText   = application.Option("-sr|--removesample", "指定のシートに対してSAMPLE文字を取り除きます。", CommandOptionType.NoValue);
            var addSampleText      = application.Option("-sa|--addsample", "指定のシートに対してSAMPLE文字を追加します。", CommandOptionType.NoValue);
            var overWriteWriteTime = application.Option("-ts|--timestamp", "対象ファイルのタイムスタンプを上書きします。", CommandOptionType.NoValue);
            var mirror             = application.Option("-mr|--mirror", "処理対象ファイルを上書きせず、<output dir>に処理後のファイルをコピーします。", CommandOptionType.SingleValue);
            var subDirectory       = application.Option("-sd|--subDirectory", "処理対象について、サブフォルダも検索します。", CommandOptionType.NoValue);
            var createConfig       = application.Option("-c|--config", "コンフィグファイルの雛形を作成し、アプリケーションを終了します。", CommandOptionType.NoValue);

            var directoryList = application.Argument("dir", "処理対象ディレクトリ", true);

            // アプリケーション実行内容
            application.OnExecute(() =>
            {
                ConsoleColorWriter.SetToConsole();

                // コンフィグファイルの雛形を作成
                if (createConfig.HasValue())
                {
                    ConfigCreator.Save();
                    return(1);
                }

                if (directoryList.Values.Count < 1)
                {
                    application.ShowHelp();
                    return(1);
                }

                // 実行プロセス
                ExecuteOptions executeOptions = new ExecuteOptions
                {
                    SelectA1           = SelectA1.HasValue(),
                    CopyTemplate       = copyTemplate.HasValue(),
                    FixPageSetup       = fixPageSetup.HasValue(),
                    FixFont            = fixFont.HasValue(),
                    FixHeader          = fixHeader.HasValue(),
                    FixFooter          = fixFooter.HasValue(),
                    RemoveSampleText   = removeSampleText.HasValue(),
                    AddSampleText      = addSampleText.HasValue(),
                    OverWriteWriteTime = overWriteWriteTime.HasValue(),
                    SubDirectory       = subDirectory.HasValue(),
                    MirrorDirectory    = mirror.Value()
                };

                if (!executeOptions.HasValue())
                {
                    LogUtil.LogWarn("実行オプションが指定されていません。");
                    application.ShowHelp();
                    return(1);
                }

                if (!String.IsNullOrEmpty(mirror.Value()) && !System.IO.Directory.Exists(mirror.Value()))
                {
                    LogUtil.LogError("[-mr] オプションの値に存在しないディレクトリ名が含まれています。");
                    return(1);
                }

                using (ExcelFormatterApp excelApp = new ExcelFormatterApp())
                {
                    try
                    {
                        excelApp.Open();

                        if (!ConfigValidator.Validate(excelApp.Config))
                        {
                            return(1);
                        }

                        // 選択したオプションをコンソールに表示
                        Console.WriteLine("----------------------------------------");
                        Console.WriteLine("以下の操作を実行します:");
                        foreach (var option in application.Options)
                        {
                            if (option.HasValue())
                            {
                                Console.WriteLine(option.Description);
                            }
                        }
                        Console.WriteLine("----------------------------------------");

                        FormatExcelFiles(directoryList, executeOptions, excelApp);
                    }
                    catch (ApplicationException e)
                    {
                        LogUtil.LogWarn("アプリケーションの初期化に失敗しました。", e);
                        return(1);
                    }
                    finally
                    {
                        excelApp.Close();
                        Console.WriteLine("----------------------------------------");
                        LogUtil.Log("処理が終了しました。");
                        ConsoleColorWriter.ResetToConsole();
                    }
                }

                return(0);
            });
            try
            {
                application.Execute(args);
            }
            catch (CommandParsingException)
            {
                application.ShowHelp();
            }
        }