issue 620

CSharp · Console

/Program.cs

// @nuget: CommandLineParser -Version 2.8.0
using System;
using System.Collections.Generic;
using CommandLine;

public class Program
{
	public static void Main()
	{
		Test2();
	}
   public static void Test2()
		{
			var parser = new Parser(config =>
			  {
				  config.IgnoreUnknownArguments = true;

			  });
	        var args="-quit -batchmode -buildTarget ${BuildTargetGroup} -executeMethod THUtils.Editor.BuildPipeline.THBuildPipeline.JenkinsBuildGame --platformTarget ${BuildTarget} --buildTargetGroup ${BuildTargetGroup} --buildConfig ${BuildConfiguration} --revision ${RevisionNumber} --scenes ${SpecificScenes}".Split();				
	       //or one quote around Unity option
	      // var args="\"-quit -batchmode -buildTarget ${BuildTargetGroup} -executeMethod THUtils.Editor.BuildPipeline.THBuildPipeline.JenkinsBuildGame\" --platformTarget ${BuildTarget} --buildTargetGroup ${BuildTargetGroup} --buildConfig ${BuildConfiguration} --revision ${RevisionNumber} --scenes ${SpecificScenes}".Split();				
			var result= parser.ParseArguments<THBuildOptions>(args);
			result.WithParsed(Run);
		}

		private static void Run(THBuildOptions obj)
		{
			obj.Dump();			
		}

}

public class THBuildOptions
		{
			[Option("buildConfig")] public string BuildConfiguration { get; set; }
			[Option("buildTargetGroup")] public string BuildTargetGroup { get; set; }
			[Option("platformTarget")] public string BuildTarget { get; set; }
			[Option("revision")] public string RevisionNumber { get; set; }
			[Option("scenes")] public IEnumerable<string> SpecificScenes { get; set; }

			public override string ToString()
			{
				return $"BuildConfig = {BuildConfiguration}\r\n" +
					   $"BuildTargetGroup = {BuildTargetGroup}\r\n" +
					   $"PlatformTarget = {BuildTarget}\r\n" +
					   $"Revision = {RevisionNumber}\r\n" +
					   $"Scenes = {SpecificScenes}\r\n";
			}
		}
;