// Copyright (C) Stichting Deltares 2024. All rights reserved. // // This file is part of the Dam Engine. // // The Dam Engine is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using System; using CommandLine; using CommandLine.Text; namespace Deltares.DamEngine.ConsoleRun; internal class CommandOptions : CommandLineOptionsBase { public const string DefaultInputFileName = "InputFile.xml"; public const string DefaultOutputFileName = "OutputFile.xml"; [Option("i", "input", Required = true, DefaultValue = DefaultInputFileName, HelpText = "Name and path of the input file.")] public string InputFileName { get; set; } [Option("o", "output", Required = false, DefaultValue = DefaultOutputFileName, HelpText = "Name and path of the output file.")] public string OutputFileName { get; set; } [HelpOption] public string GetUsage() { var help = new HelpText { Heading = "Dam Console Run", Copyright = "Copyright (c) 2018 Deltares", AdditionalNewLineAfterOption = true, AddDashesToOption = true }; HandleParsingErrorsInHelp(help); help.AddPreOptionsLine("Usage: DamConsoleRunner[.exe] -i InputFile [ -o OutputFile]"); help.AddOptions(this); return help; } void HandleParsingErrorsInHelp(HelpText help) { if (LastPostParsingState.Errors.Count > 0) { string errors = help.RenderParsingErrorsText(this, 2); // indent with two spaces if (!string.IsNullOrEmpty(errors)) { help.AddPreOptionsLine(string.Concat(Environment.NewLine, "ERROR(S):")); help.AddPreOptionsLine(errors); } } } }