You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
45 lines
1.1 KiB
using System; |
|
using System.Linq; |
|
|
|
namespace UnityEditor.TestRunner.CommandLineParser |
|
{ |
|
internal class CommandLineOption : ICommandLineOption |
|
{ |
|
Action<string> m_ArgAction; |
|
|
|
public CommandLineOption(string argName, Action action) |
|
{ |
|
ArgName = argName; |
|
m_ArgAction = s => action(); |
|
} |
|
|
|
public CommandLineOption(string argName, Action<string> action) |
|
{ |
|
ArgName = argName; |
|
m_ArgAction = action; |
|
} |
|
|
|
public CommandLineOption(string argName, Action<string[]> action) |
|
{ |
|
ArgName = argName; |
|
m_ArgAction = s => action(SplitStringToArray(s)); |
|
} |
|
|
|
public string ArgName { get; private set; } |
|
|
|
public void ApplyValue(string value) |
|
{ |
|
m_ArgAction(value); |
|
} |
|
|
|
static string[] SplitStringToArray(string value) |
|
{ |
|
if (string.IsNullOrEmpty(value)) |
|
{ |
|
return null; |
|
} |
|
|
|
return value.Split(new[] {';'}, StringSplitOptions.RemoveEmptyEntries); |
|
} |
|
} |
|
}
|
|
|