Maze / Library /PackageCache /com.unity.collab-proxy@2.0.4 /Editor /PlasticSCM /CloudProjectDownloader /CommandLineArguments.cs
| using System; | |
| using System.Collections.Generic; | |
| namespace Unity.PlasticSCM.Editor.ProjectDownloader | |
| { | |
| internal class CommandLineArguments | |
| { | |
| internal static Dictionary<string, string> Build(string[] args) | |
| { | |
| Dictionary<string, string> result = new Dictionary<string, string>( | |
| StringComparer.OrdinalIgnoreCase); | |
| if (args == null) | |
| return result; | |
| List<string> trimmedArguments = TrimArgs(args); | |
| int index = 1; | |
| while (true) | |
| { | |
| if (index > trimmedArguments.Count - 1) | |
| break; | |
| if (IsKeyValueArgumentAtIndex(trimmedArguments, index)) | |
| { | |
| result[trimmedArguments[index]] = trimmedArguments[index + 1]; | |
| index += 2; | |
| continue; | |
| } | |
| result[trimmedArguments[index]] = null; | |
| index += 1; | |
| } | |
| return result; | |
| } | |
| static List<string> TrimArgs(string[] args) | |
| { | |
| List<string> trimmedArguments = new List<string>(); | |
| foreach (string argument in args) | |
| trimmedArguments.Add(argument.Trim()); | |
| return trimmedArguments; | |
| } | |
| static bool IsKeyValueArgumentAtIndex( | |
| List<string> trimmedArguments, | |
| int index) | |
| { | |
| if (index + 1 > trimmedArguments.Count -1) | |
| return false; | |
| return !trimmedArguments[index + 1].StartsWith("-"); | |
| } | |
| } | |
| } | |