Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Application/Deltares.LayerOnSlopeTool.Application.csproj
===================================================================
diff -u -r3066 -r3070
--- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Application/Deltares.LayerOnSlopeTool.Application.csproj (.../Deltares.LayerOnSlopeTool.Application.csproj) (revision 3066)
+++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Application/Deltares.LayerOnSlopeTool.Application.csproj (.../Deltares.LayerOnSlopeTool.Application.csproj) (revision 3070)
@@ -35,6 +35,9 @@
true
+
+ ..\..\lib\CommandLineParser\CommandLine.dll
+
@@ -45,6 +48,7 @@
+
Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Application/CommandOptions.cs
===================================================================
diff -u
--- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Application/CommandOptions.cs (revision 0)
+++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Application/CommandOptions.cs (revision 3070)
@@ -0,0 +1,73 @@
+// 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";
+
+ [Option("i", "input", Required = true, DefaultValue = DefaultInputFolder, HelpText = "Name and path of the input folder.")]
+ public string InputFolderName { 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);
+ }
+ }
+ }
+
+ }
+
+}
Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Application/Program.cs
===================================================================
diff -u -r3067 -r3070
--- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Application/Program.cs (.../Program.cs) (revision 3067)
+++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Application/Program.cs (.../Program.cs) (revision 3070)
@@ -20,17 +20,35 @@
// All rights reserved.
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+using CommandLine;
namespace Deltares.LayerOnSlopeTool.Application
{
- class Program
+ internal class Program
{
static void Main(string[] args)
{
+ var commandLineArguments = new CommandOptions();
+ ICommandLineParser parser = new CommandLineParser();
+ bool success = parser.ParseArguments(args, commandLineArguments);
+ try
+ {
+ if (success)
+ {
+ // TODO Add call to LayerCreator
+ }
+ else
+ {
+ Console.WriteLine();
+ Console.WriteLine(commandLineArguments.GetUsage());
+ Environment.ExitCode = -1;
+ }
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine("Exception: {0}", e.Message);
+ Environment.ExitCode = -1;
+ }
}
}
}