SanAndreasUnity/Assets/Scripts/Utilities/CmdLineUtils.cs
2020-05-31 19:09:43 +02:00

71 lines
1.9 KiB
C#

namespace SanAndreasUnity.Utilities
{
public class CmdLineUtils
{
public static string[] GetCmdLineArgs()
{
try
{
string[] commandLineArgs = System.Environment.GetCommandLineArgs();
if (commandLineArgs != null)
return commandLineArgs;
}
catch (System.Exception) {}
return new string[0];
}
public static bool GetArgument(string argName, ref string argValue)
{
string[] commandLineArgs = GetCmdLineArgs();
if (commandLineArgs.Length < 2) // first argument is program path
return false;
string search = "-" + argName + ":";
var foundArg = System.Array.Find(commandLineArgs, arg => arg.StartsWith(search));
if (null == foundArg)
return false;
// found specified argument
// extract value
argValue = foundArg.Substring(search.Length);
return true;
}
public static bool GetIntArgument(string argName, ref int argValue)
{
string str = null;
if (GetArgument(argName, ref str))
{
if (int.TryParse(str, out argValue))
return true;
}
return false;
}
public static bool GetUshortArgument(string argName, ref ushort argValue)
{
string str = null;
if (GetArgument(argName, ref str))
{
if (ushort.TryParse(str, out argValue))
return true;
}
return false;
}
public static bool HasArgument(string argName)
{
string str = null;
return GetArgument(argName, ref str);
}
}
}