Print arguments that were not consumed

Fixes #88
pull/634/head
Pavel Djundik 8 months ago
parent 4896ac0788
commit f078581947

@ -17,6 +17,8 @@ namespace DepotDownloader
{ {
class Program class Program
{ {
private static bool[] consumedArgs;
static async Task<int> Main(string[] args) static async Task<int> Main(string[] args)
{ {
if (args.Length == 0) if (args.Length == 0)
@ -47,6 +49,8 @@ namespace DepotDownloader
return 0; return 0;
} }
consumedArgs = new bool[args.Length];
if (HasParameter(args, "-debug")) if (HasParameter(args, "-debug"))
{ {
PrintVersion(true); PrintVersion(true);
@ -168,6 +172,8 @@ namespace DepotDownloader
{ {
#region Pubfile Downloading #region Pubfile Downloading
PrintUnconsumedArgs(args);
if (InitializeSteam(username, password)) if (InitializeSteam(username, password))
{ {
try try
@ -203,6 +209,8 @@ namespace DepotDownloader
{ {
#region UGC Downloading #region UGC Downloading
PrintUnconsumedArgs(args);
if (InitializeSteam(username, password)) if (InitializeSteam(username, password))
{ {
try try
@ -293,6 +301,8 @@ namespace DepotDownloader
depotManifestIds.AddRange(depotIdList.Select(depotId => (depotId, ContentDownloader.INVALID_MANIFEST_ID))); depotManifestIds.AddRange(depotIdList.Select(depotId => (depotId, ContentDownloader.INVALID_MANIFEST_ID)));
} }
PrintUnconsumedArgs(args);
if (InitializeSteam(username, password)) if (InitializeSteam(username, password))
{ {
try try
@ -379,7 +389,10 @@ namespace DepotDownloader
for (var x = 0; x < args.Length; ++x) for (var x = 0; x < args.Length; ++x)
{ {
if (args[x].Equals(param, StringComparison.OrdinalIgnoreCase)) if (args[x].Equals(param, StringComparison.OrdinalIgnoreCase))
{
consumedArgs[x] = true;
return x; return x;
}
} }
return -1; return -1;
@ -402,6 +415,7 @@ namespace DepotDownloader
var converter = TypeDescriptor.GetConverter(typeof(T)); var converter = TypeDescriptor.GetConverter(typeof(T));
if (converter != null) if (converter != null)
{ {
consumedArgs[index + 1] = true;
return (T)converter.ConvertFromString(strParam); return (T)converter.ConvertFromString(strParam);
} }
@ -427,6 +441,7 @@ namespace DepotDownloader
var converter = TypeDescriptor.GetConverter(typeof(T)); var converter = TypeDescriptor.GetConverter(typeof(T));
if (converter != null) if (converter != null)
{ {
consumedArgs[index] = true;
list.Add((T)converter.ConvertFromString(strParam)); list.Add((T)converter.ConvertFromString(strParam));
} }
@ -436,6 +451,26 @@ namespace DepotDownloader
return list; return list;
} }
static void PrintUnconsumedArgs(string[] args)
{
var printError = false;
for (var index = 0; index < consumedArgs.Length; index++)
{
if (!consumedArgs[index])
{
printError = true;
Console.Error.WriteLine($"Argument #{index + 1} {args[index]} was not used.");
}
}
if (printError)
{
Console.Error.WriteLine("Make sure you specified the arguments correctly. Check --help for correct arguments.");
Console.Error.WriteLine();
}
}
static void PrintUsage() static void PrintUsage()
{ {
// Do not use tabs to align parameters here because tab size may differ // Do not use tabs to align parameters here because tab size may differ

Loading…
Cancel
Save