diff --git a/DepotDownloader/ContentDownloader.cs b/DepotDownloader/ContentDownloader.cs index d9191610..83d902f8 100644 --- a/DepotDownloader/ContentDownloader.cs +++ b/DepotDownloader/ContentDownloader.cs @@ -472,7 +472,8 @@ namespace DepotDownloader continue; } - if (depotConfig["osarch"] != KeyValue.Invalid && + if (!Config.DownloadAllArchs && + depotConfig["osarch"] != KeyValue.Invalid && !string.IsNullOrWhiteSpace(depotConfig["osarch"].Value)) { var depotArch = depotConfig["osarch"].Value; diff --git a/DepotDownloader/DownloadConfig.cs b/DepotDownloader/DownloadConfig.cs index 1022aac4..25bf5e70 100644 --- a/DepotDownloader/DownloadConfig.cs +++ b/DepotDownloader/DownloadConfig.cs @@ -7,6 +7,7 @@ namespace DepotDownloader { public int CellID { get; set; } public bool DownloadAllPlatforms { get; set; } + public bool DownloadAllArchs { get; set; } public bool DownloadAllLanguages { get; set; } public bool DownloadManifestOnly { get; set; } public string InstallDirectory { get; set; } diff --git a/DepotDownloader/Program.cs b/DepotDownloader/Program.cs index 14f7f88d..714ca9ae 100644 --- a/DepotDownloader/Program.cs +++ b/DepotDownloader/Program.cs @@ -194,6 +194,7 @@ namespace DepotDownloader ContentDownloader.Config.BetaPassword = GetParameter(args, "-betapassword"); ContentDownloader.Config.DownloadAllPlatforms = HasParameter(args, "-all-platforms"); + var os = GetParameter(args, "-os"); if (ContentDownloader.Config.DownloadAllPlatforms && !string.IsNullOrEmpty(os)) @@ -202,8 +203,16 @@ namespace DepotDownloader return 1; } + ContentDownloader.Config.DownloadAllArchs = HasParameter(args, "-all-archs"); + var arch = GetParameter(args, "-osarch"); + if (ContentDownloader.Config.DownloadAllArchs && !string.IsNullOrEmpty(arch)) + { + Console.WriteLine("Error: Cannot specify -osarch when -all-archs is specified."); + return 1; + } + ContentDownloader.Config.DownloadAllLanguages = HasParameter(args, "-all-languages"); var language = GetParameter(args, "-language");