// Copyright (C) Stichting Deltares 2020. 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.LayerOnSlopeTool.Application { internal class CommandOptions : CommandLineOptionsBase { public const string DefaultInputFolder = "Input"; public const string DefaultOutputFolder = "Output"; public const string DefaultGeometriesFolder = "Geometries"; [Option("i", "input", Required = true, DefaultValue = DefaultInputFolder, HelpText = "Name and path of the input folder.")] public string InputFolderName { get; set; } [Option("g", "geometries", Required = true, DefaultValue = DefaultGeometriesFolder, HelpText = "Name and path of the geometries folder.")] public string GeometriesFolderName { get; set; } [Option("o", "output", Required = false, DefaultValue = DefaultOutputFolder, HelpText = "Name and path of the output folder.")] public string OutputFolderName { get; set; } [HelpOption] public string GetUsage() { var help = new HelpText { Heading = "Layer on Slope Tool", Copyright = "Copyright (c) 2020 Deltares", AdditionalNewLineAfterOption = true, AddDashesToOption = true }; this.HandleParsingErrorsInHelp(help); help.AddPreOptionsLine("Usage: LayerOnSlopeTool[.exe] -i InputFile [ -o OutputFile]"); help.AddOptions(this); return help; } void HandleParsingErrorsInHelp(HelpText help) { if (this.LastPostParsingState.Errors.Count > 0) { var errors = help.RenderParsingErrorsText(this, 2); // indent with two spaces if (!string.IsNullOrEmpty(errors)) { help.AddPreOptionsLine(string.Concat(Environment.NewLine, "ERROR(S):")); help.AddPreOptionsLine(errors); } } } } }