mirror of
https://github.com/wabbajack-tools/wabbajack.git
synced 2024-08-30 18:42:17 +00:00
Abstract out the CLI routines so we can reuse them inside the WPF app
This commit is contained in:
parent
2b33aeb7d9
commit
bb0c6c7ca9
@ -1,31 +1,20 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.CommandLine;
|
using System.CommandLine;
|
||||||
|
using System.CommandLine.Builder;
|
||||||
using System.CommandLine.Invocation;
|
using System.CommandLine.Invocation;
|
||||||
using System.CommandLine.NamingConventionBinder;
|
using System.CommandLine.NamingConventionBinder;
|
||||||
using System.ComponentModel.Design;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Wabbajack.CLI.Verbs;
|
|
||||||
using Wabbajack.Paths;
|
using Wabbajack.Paths;
|
||||||
using Wabbajack.Services.OSIntegrated;
|
|
||||||
|
|
||||||
namespace Wabbajack.CLI;
|
namespace Wabbajack.CLI.Builder;
|
||||||
|
|
||||||
public partial class CommandLineBuilder
|
public class CommandLineBuilder
|
||||||
{
|
{
|
||||||
private static IServiceProvider _provider;
|
private static IServiceProvider _provider;
|
||||||
public CommandLineBuilder(IServiceProvider provider, IConsole console, LoggingRateLimiterReporter _)
|
public CommandLineBuilder(IServiceProvider provider, IConsole console)
|
||||||
{
|
{
|
||||||
_provider = provider;
|
_provider = provider;
|
||||||
}
|
}
|
||||||
|
|
||||||
static CommandLineBuilder()
|
|
||||||
{
|
|
||||||
RegisterAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task<int> Run(string[] args)
|
public async Task<int> Run(string[] args)
|
||||||
{
|
{
|
||||||
var root = new RootCommand();
|
var root = new RootCommand();
|
||||||
@ -58,7 +47,7 @@ public partial class CommandLineBuilder
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
private Command MakeCommend(Type verbType, Func<IVerb, Delegate> verbHandler, VerbDefinition definition)
|
private Command MakeCommend(Type verbType, Func<object, Delegate> verbHandler, VerbDefinition definition)
|
||||||
{
|
{
|
||||||
var command = new Command(definition.Name, definition.Description);
|
var command = new Command(definition.Name, definition.Description);
|
||||||
foreach (var option in definition.Options)
|
foreach (var option in definition.Options)
|
||||||
@ -73,9 +62,9 @@ public partial class CommandLineBuilder
|
|||||||
{
|
{
|
||||||
private IServiceProvider _provider;
|
private IServiceProvider _provider;
|
||||||
private Type _type;
|
private Type _type;
|
||||||
private readonly Func<IVerb, Delegate> _delgate;
|
private readonly Func<object, Delegate> _delgate;
|
||||||
|
|
||||||
public HandlerDelegate(IServiceProvider provider, Type type, Func<IVerb, Delegate> inner)
|
public HandlerDelegate(IServiceProvider provider, Type type, Func<object, Delegate> inner)
|
||||||
{
|
{
|
||||||
_provider = provider;
|
_provider = provider;
|
||||||
_type = type;
|
_type = type;
|
||||||
@ -83,22 +72,23 @@ public partial class CommandLineBuilder
|
|||||||
}
|
}
|
||||||
public int Invoke(InvocationContext context)
|
public int Invoke(InvocationContext context)
|
||||||
{
|
{
|
||||||
var service = (IVerb)_provider.GetRequiredService(_type);
|
var service = _provider.GetRequiredService(_type);
|
||||||
var handler = CommandHandler.Create(_delgate(service));
|
var handler = CommandHandler.Create(_delgate(service));
|
||||||
return handler.Invoke(context);
|
return handler.Invoke(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<int> InvokeAsync(InvocationContext context)
|
public Task<int> InvokeAsync(InvocationContext context)
|
||||||
{
|
{
|
||||||
var service = (IVerb)_provider.GetRequiredService(_type);
|
var service = _provider.GetRequiredService(_type);
|
||||||
var handler = CommandHandler.Create(_delgate(service));
|
var handler = CommandHandler.Create(_delgate(service));
|
||||||
return handler.InvokeAsync(context);
|
return handler.InvokeAsync(context);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<(Type Type, VerbDefinition Definition, Func<IVerb, Delegate> Handler)> _commands { get; set; } = new();
|
private static List<(Type Type, VerbDefinition Definition, Func<object, Delegate> Handler)> _commands { get; set; } = new();
|
||||||
public static IEnumerable<Type> Verbs => _commands.Select(c => c.Type);
|
public static IEnumerable<Type> Verbs => _commands.Select(c => c.Type);
|
||||||
public static void RegisterCommand<T>(VerbDefinition definition, Func<IVerb, Delegate> handler)
|
|
||||||
|
public static void RegisterCommand<T>(VerbDefinition definition, Func<object, Delegate> handler)
|
||||||
{
|
{
|
||||||
_commands.Add((typeof(T), definition, handler));
|
_commands.Add((typeof(T), definition, handler));
|
||||||
|
|
||||||
@ -120,17 +110,3 @@ public record VerbDefinition(string Name, string Description, OptionDefinition[]
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class CommandLineBuilderExtensions
|
|
||||||
{
|
|
||||||
public static IServiceCollection AddCommands(this IServiceCollection services)
|
|
||||||
{
|
|
||||||
services.AddSingleton<CommandLineBuilder>();
|
|
||||||
|
|
||||||
foreach (var verb in CommandLineBuilder.Verbs)
|
|
||||||
{
|
|
||||||
services.AddSingleton(verb);
|
|
||||||
}
|
|
||||||
|
|
||||||
return services;
|
|
||||||
}
|
|
||||||
}
|
|
23
Wabbajack.CLI.Builder/Wabbajack.CLI.Builder.csproj
Normal file
23
Wabbajack.CLI.Builder/Wabbajack.CLI.Builder.csproj
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.2-mauipre.1.22102.15" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.2-mauipre.1.22102.15" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Hosting" Version="6.0.2-mauipre.1.22102.15" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="6.0.2-mauipre.1.22102.15" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.2" />
|
||||||
|
<PackageReference Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
|
||||||
|
<PackageReference Include="System.CommandLine.NamingConventionBinder" Version="2.0.0-beta4.22272.1" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Wabbajack.Paths\Wabbajack.Paths.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
@ -18,6 +18,7 @@ using Wabbajack.Server.Lib;
|
|||||||
using Wabbajack.Services.OSIntegrated;
|
using Wabbajack.Services.OSIntegrated;
|
||||||
using Wabbajack.VFS;
|
using Wabbajack.VFS;
|
||||||
using Client = Wabbajack.Networking.GitHub.Client;
|
using Client = Wabbajack.Networking.GitHub.Client;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
|
|
||||||
namespace Wabbajack.CLI;
|
namespace Wabbajack.CLI;
|
||||||
|
|
||||||
@ -46,7 +47,13 @@ internal class Program
|
|||||||
|
|
||||||
|
|
||||||
services.AddTransient<Context>();
|
services.AddTransient<Context>();
|
||||||
services.AddCommands();
|
|
||||||
|
services.AddSingleton<CommandLineBuilder>();
|
||||||
|
services.AddCLIVerbs();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
services.AddSingleton<IUserInterventionHandler, UserInterventionHandler>();
|
services.AddSingleton<IUserInterventionHandler, UserInterventionHandler>();
|
||||||
}).Build();
|
}).Build();
|
||||||
|
|
||||||
|
@ -1,32 +1,57 @@
|
|||||||
|
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
namespace Wabbajack.CLI;
|
namespace Wabbajack.CLI;
|
||||||
using Wabbajack.CLI.Verbs;
|
using Wabbajack.CLI.Verbs;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
|
|
||||||
public partial class CommandLineBuilder {
|
public static class CommandLineBuilderExtensions{
|
||||||
|
|
||||||
private static void RegisterAll() {
|
public static void AddCLIVerbs(this IServiceCollection services) {
|
||||||
RegisterCommand<Compile>(Compile.Definition, c => ((Compile)c).Run);
|
CommandLineBuilder.RegisterCommand<Compile>(Compile.Definition, c => ((Compile)c).Run);
|
||||||
RegisterCommand<Decrypt>(Decrypt.Definition, c => ((Decrypt)c).Run);
|
services.AddSingleton<Compile>();
|
||||||
RegisterCommand<DownloadAll>(DownloadAll.Definition, c => ((DownloadAll)c).Run);
|
CommandLineBuilder.RegisterCommand<Decrypt>(Decrypt.Definition, c => ((Decrypt)c).Run);
|
||||||
RegisterCommand<DownloadUrl>(DownloadUrl.Definition, c => ((DownloadUrl)c).Run);
|
services.AddSingleton<Decrypt>();
|
||||||
RegisterCommand<DumpZipInfo>(DumpZipInfo.Definition, c => ((DumpZipInfo)c).Run);
|
CommandLineBuilder.RegisterCommand<DownloadAll>(DownloadAll.Definition, c => ((DownloadAll)c).Run);
|
||||||
RegisterCommand<Encrypt>(Encrypt.Definition, c => ((Encrypt)c).Run);
|
services.AddSingleton<DownloadAll>();
|
||||||
RegisterCommand<Extract>(Extract.Definition, c => ((Extract)c).Run);
|
CommandLineBuilder.RegisterCommand<DownloadUrl>(DownloadUrl.Definition, c => ((DownloadUrl)c).Run);
|
||||||
RegisterCommand<ForceHeal>(ForceHeal.Definition, c => ((ForceHeal)c).Run);
|
services.AddSingleton<DownloadUrl>();
|
||||||
RegisterCommand<HashFile>(HashFile.Definition, c => ((HashFile)c).Run);
|
CommandLineBuilder.RegisterCommand<DumpZipInfo>(DumpZipInfo.Definition, c => ((DumpZipInfo)c).Run);
|
||||||
RegisterCommand<HashUrlString>(HashUrlString.Definition, c => ((HashUrlString)c).Run);
|
services.AddSingleton<DumpZipInfo>();
|
||||||
RegisterCommand<Install>(Install.Definition, c => ((Install)c).Run);
|
CommandLineBuilder.RegisterCommand<Encrypt>(Encrypt.Definition, c => ((Encrypt)c).Run);
|
||||||
RegisterCommand<InstallCompileInstallVerify>(InstallCompileInstallVerify.Definition, c => ((InstallCompileInstallVerify)c).Run);
|
services.AddSingleton<Encrypt>();
|
||||||
RegisterCommand<ListCreationClubContent>(ListCreationClubContent.Definition, c => ((ListCreationClubContent)c).Run);
|
CommandLineBuilder.RegisterCommand<Extract>(Extract.Definition, c => ((Extract)c).Run);
|
||||||
RegisterCommand<ListGames>(ListGames.Definition, c => ((ListGames)c).Run);
|
services.AddSingleton<Extract>();
|
||||||
RegisterCommand<ListModlists>(ListModlists.Definition, c => ((ListModlists)c).Run);
|
CommandLineBuilder.RegisterCommand<ForceHeal>(ForceHeal.Definition, c => ((ForceHeal)c).Run);
|
||||||
RegisterCommand<MirrorFile>(MirrorFile.Definition, c => ((MirrorFile)c).Run);
|
services.AddSingleton<ForceHeal>();
|
||||||
RegisterCommand<ModlistReport>(ModlistReport.Definition, c => ((ModlistReport)c).Run);
|
CommandLineBuilder.RegisterCommand<HashFile>(HashFile.Definition, c => ((HashFile)c).Run);
|
||||||
RegisterCommand<SteamDownloadFile>(SteamDownloadFile.Definition, c => ((SteamDownloadFile)c).Run);
|
services.AddSingleton<HashFile>();
|
||||||
RegisterCommand<SteamDumpAppInfo>(SteamDumpAppInfo.Definition, c => ((SteamDumpAppInfo)c).Run);
|
CommandLineBuilder.RegisterCommand<HashUrlString>(HashUrlString.Definition, c => ((HashUrlString)c).Run);
|
||||||
RegisterCommand<SteamLogin>(SteamLogin.Definition, c => ((SteamLogin)c).Run);
|
services.AddSingleton<HashUrlString>();
|
||||||
RegisterCommand<UploadToNexus>(UploadToNexus.Definition, c => ((UploadToNexus)c).Run);
|
CommandLineBuilder.RegisterCommand<Install>(Install.Definition, c => ((Install)c).Run);
|
||||||
RegisterCommand<ValidateLists>(ValidateLists.Definition, c => ((ValidateLists)c).Run);
|
services.AddSingleton<Install>();
|
||||||
RegisterCommand<VFSIndex>(VFSIndex.Definition, c => ((VFSIndex)c).Run);
|
CommandLineBuilder.RegisterCommand<InstallCompileInstallVerify>(InstallCompileInstallVerify.Definition, c => ((InstallCompileInstallVerify)c).Run);
|
||||||
|
services.AddSingleton<InstallCompileInstallVerify>();
|
||||||
|
CommandLineBuilder.RegisterCommand<ListCreationClubContent>(ListCreationClubContent.Definition, c => ((ListCreationClubContent)c).Run);
|
||||||
|
services.AddSingleton<ListCreationClubContent>();
|
||||||
|
CommandLineBuilder.RegisterCommand<ListGames>(ListGames.Definition, c => ((ListGames)c).Run);
|
||||||
|
services.AddSingleton<ListGames>();
|
||||||
|
CommandLineBuilder.RegisterCommand<ListModlists>(ListModlists.Definition, c => ((ListModlists)c).Run);
|
||||||
|
services.AddSingleton<ListModlists>();
|
||||||
|
CommandLineBuilder.RegisterCommand<MirrorFile>(MirrorFile.Definition, c => ((MirrorFile)c).Run);
|
||||||
|
services.AddSingleton<MirrorFile>();
|
||||||
|
CommandLineBuilder.RegisterCommand<ModlistReport>(ModlistReport.Definition, c => ((ModlistReport)c).Run);
|
||||||
|
services.AddSingleton<ModlistReport>();
|
||||||
|
CommandLineBuilder.RegisterCommand<SteamDownloadFile>(SteamDownloadFile.Definition, c => ((SteamDownloadFile)c).Run);
|
||||||
|
services.AddSingleton<SteamDownloadFile>();
|
||||||
|
CommandLineBuilder.RegisterCommand<SteamDumpAppInfo>(SteamDumpAppInfo.Definition, c => ((SteamDumpAppInfo)c).Run);
|
||||||
|
services.AddSingleton<SteamDumpAppInfo>();
|
||||||
|
CommandLineBuilder.RegisterCommand<SteamLogin>(SteamLogin.Definition, c => ((SteamLogin)c).Run);
|
||||||
|
services.AddSingleton<SteamLogin>();
|
||||||
|
CommandLineBuilder.RegisterCommand<UploadToNexus>(UploadToNexus.Definition, c => ((UploadToNexus)c).Run);
|
||||||
|
services.AddSingleton<UploadToNexus>();
|
||||||
|
CommandLineBuilder.RegisterCommand<ValidateLists>(ValidateLists.Definition, c => ((ValidateLists)c).Run);
|
||||||
|
services.AddSingleton<ValidateLists>();
|
||||||
|
CommandLineBuilder.RegisterCommand<VFSIndex>(VFSIndex.Definition, c => ((VFSIndex)c).Run);
|
||||||
|
services.AddSingleton<VFSIndex>();
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -5,19 +5,22 @@
|
|||||||
<#@ import namespace="System.IO"#>
|
<#@ import namespace="System.IO"#>
|
||||||
<#@ import namespace="System.Collections.Generic" #>
|
<#@ import namespace="System.Collections.Generic" #>
|
||||||
|
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
namespace Wabbajack.CLI;
|
namespace Wabbajack.CLI;
|
||||||
using Wabbajack.CLI.Verbs;
|
using Wabbajack.CLI.Verbs;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
|
|
||||||
public partial class CommandLineBuilder {
|
public static class CommandLineBuilderExtensions{
|
||||||
|
|
||||||
private static void RegisterAll() {
|
public static void AddCLIVerbs(this IServiceCollection services) {
|
||||||
<#
|
<#
|
||||||
foreach (var verb in Directory.EnumerateFiles("Verbs"))
|
foreach (var verb in Directory.EnumerateFiles("Verbs"))
|
||||||
{
|
{
|
||||||
var klass = verb.Split('\\').Last().Split('.').First();
|
var klass = verb.Split('\\').Last().Split('.').First();
|
||||||
if (klass == "IVerb") continue;
|
if (klass == "IVerb") continue;
|
||||||
#>
|
#>
|
||||||
RegisterCommand<<#=klass#>>(<#=klass#>.Definition, c => ((<#=klass#>)c).Run);
|
CommandLineBuilder.RegisterCommand<<#=klass#>>(<#=klass#>.Definition, c => ((<#=klass#>)c).Run);
|
||||||
|
services.AddSingleton<<#=klass#>>();
|
||||||
<#
|
<#
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ using System.CommandLine.NamingConventionBinder;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Compiler;
|
using Wabbajack.Compiler;
|
||||||
using Wabbajack.Downloaders;
|
using Wabbajack.Downloaders;
|
||||||
using Wabbajack.Downloaders.GameFile;
|
using Wabbajack.Downloaders.GameFile;
|
||||||
@ -14,7 +15,7 @@ using Wabbajack.VFS;
|
|||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class Compile : IVerb
|
public class Compile
|
||||||
{
|
{
|
||||||
private readonly ILogger<Compile> _logger;
|
private readonly ILogger<Compile> _logger;
|
||||||
private readonly Client _wjClient;
|
private readonly Client _wjClient;
|
||||||
|
@ -4,13 +4,14 @@ using System.CommandLine.Invocation;
|
|||||||
using System.CommandLine.NamingConventionBinder;
|
using System.CommandLine.NamingConventionBinder;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Paths;
|
using Wabbajack.Paths;
|
||||||
using Wabbajack.Paths.IO;
|
using Wabbajack.Paths.IO;
|
||||||
using Wabbajack.Services.OSIntegrated;
|
using Wabbajack.Services.OSIntegrated;
|
||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class Decrypt : IVerb
|
public class Decrypt
|
||||||
{
|
{
|
||||||
private readonly ILogger<Decrypt> _logger;
|
private readonly ILogger<Decrypt> _logger;
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ using System.Linq;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Common;
|
using Wabbajack.Common;
|
||||||
using Wabbajack.Downloaders;
|
using Wabbajack.Downloaders;
|
||||||
using Wabbajack.DTOs;
|
using Wabbajack.DTOs;
|
||||||
@ -20,7 +21,7 @@ using Wabbajack.VFS;
|
|||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class DownloadAll : IVerb
|
public class DownloadAll
|
||||||
{
|
{
|
||||||
private readonly DownloadDispatcher _dispatcher;
|
private readonly DownloadDispatcher _dispatcher;
|
||||||
private readonly ILogger<DownloadAll> _logger;
|
private readonly ILogger<DownloadAll> _logger;
|
||||||
|
@ -5,6 +5,7 @@ using System.CommandLine.NamingConventionBinder;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Common;
|
using Wabbajack.Common;
|
||||||
using Wabbajack.Downloaders;
|
using Wabbajack.Downloaders;
|
||||||
using Wabbajack.DTOs;
|
using Wabbajack.DTOs;
|
||||||
@ -13,7 +14,7 @@ using Wabbajack.Paths.IO;
|
|||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class DownloadUrl : IVerb
|
public class DownloadUrl
|
||||||
{
|
{
|
||||||
private readonly DownloadDispatcher _dispatcher;
|
private readonly DownloadDispatcher _dispatcher;
|
||||||
private readonly ILogger<DownloadUrl> _logger;
|
private readonly ILogger<DownloadUrl> _logger;
|
||||||
|
@ -7,6 +7,7 @@ using System.Linq;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Common;
|
using Wabbajack.Common;
|
||||||
using Wabbajack.Compression.Zip;
|
using Wabbajack.Compression.Zip;
|
||||||
using Wabbajack.Downloaders;
|
using Wabbajack.Downloaders;
|
||||||
@ -16,7 +17,7 @@ using Wabbajack.Paths.IO;
|
|||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class DumpZipInfo : IVerb
|
public class DumpZipInfo
|
||||||
{
|
{
|
||||||
private readonly ILogger<DumpZipInfo> _logger;
|
private readonly ILogger<DumpZipInfo> _logger;
|
||||||
|
|
||||||
|
@ -3,13 +3,14 @@ using System.CommandLine.Invocation;
|
|||||||
using System.CommandLine.NamingConventionBinder;
|
using System.CommandLine.NamingConventionBinder;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Paths;
|
using Wabbajack.Paths;
|
||||||
using Wabbajack.Paths.IO;
|
using Wabbajack.Paths.IO;
|
||||||
using Wabbajack.Services.OSIntegrated;
|
using Wabbajack.Services.OSIntegrated;
|
||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class Encrypt : IVerb
|
public class Encrypt
|
||||||
{
|
{
|
||||||
private readonly ILogger<Encrypt> _logger;
|
private readonly ILogger<Encrypt> _logger;
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ using System.CommandLine.NamingConventionBinder;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Common;
|
using Wabbajack.Common;
|
||||||
using Wabbajack.Downloaders;
|
using Wabbajack.Downloaders;
|
||||||
using Wabbajack.DTOs;
|
using Wabbajack.DTOs;
|
||||||
@ -13,7 +14,7 @@ using Wabbajack.Paths.IO;
|
|||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class Extract : IVerb
|
public class Extract
|
||||||
{
|
{
|
||||||
|
|
||||||
private readonly ILogger<DownloadUrl> _logger;
|
private readonly ILogger<DownloadUrl> _logger;
|
||||||
|
@ -9,6 +9,7 @@ using System.Threading;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using FluentFTP.Helpers;
|
using FluentFTP.Helpers;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Common;
|
using Wabbajack.Common;
|
||||||
using Wabbajack.Compiler.PatchCache;
|
using Wabbajack.Compiler.PatchCache;
|
||||||
using Wabbajack.Downloaders;
|
using Wabbajack.Downloaders;
|
||||||
@ -25,7 +26,7 @@ using Wabbajack.VFS;
|
|||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class ForceHeal : IVerb
|
public class ForceHeal
|
||||||
{
|
{
|
||||||
private readonly ILogger<ForceHeal> _logger;
|
private readonly ILogger<ForceHeal> _logger;
|
||||||
private readonly Client _client;
|
private readonly Client _client;
|
||||||
|
@ -5,13 +5,14 @@ using System.IO;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Hashing.xxHash64;
|
using Wabbajack.Hashing.xxHash64;
|
||||||
using Wabbajack.Paths;
|
using Wabbajack.Paths;
|
||||||
using Wabbajack.Paths.IO;
|
using Wabbajack.Paths.IO;
|
||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class HashFile : IVerb
|
public class HashFile
|
||||||
{
|
{
|
||||||
private readonly ILogger<HashFile> _logger;
|
private readonly ILogger<HashFile> _logger;
|
||||||
|
|
||||||
|
@ -3,12 +3,13 @@ using System.CommandLine.Invocation;
|
|||||||
using System.CommandLine.NamingConventionBinder;
|
using System.CommandLine.NamingConventionBinder;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Hashing.xxHash64;
|
using Wabbajack.Hashing.xxHash64;
|
||||||
using Wabbajack.Paths;
|
using Wabbajack.Paths;
|
||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class HashUrlString : IVerb
|
public class HashUrlString
|
||||||
{
|
{
|
||||||
private readonly ILogger<HashUrlString> _logger;
|
private readonly ILogger<HashUrlString> _logger;
|
||||||
|
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
using System.CommandLine;
|
|
||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
|
||||||
|
|
||||||
public interface IVerb
|
|
||||||
{
|
|
||||||
}
|
|
@ -6,6 +6,7 @@ using System.Linq;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Downloaders;
|
using Wabbajack.Downloaders;
|
||||||
using Wabbajack.Downloaders.GameFile;
|
using Wabbajack.Downloaders.GameFile;
|
||||||
using Wabbajack.DTOs;
|
using Wabbajack.DTOs;
|
||||||
@ -18,7 +19,7 @@ using Wabbajack.VFS;
|
|||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class Install : IVerb
|
public class Install
|
||||||
{
|
{
|
||||||
private readonly ILogger<Install> _logger;
|
private readonly ILogger<Install> _logger;
|
||||||
private readonly Client _wjClient;
|
private readonly Client _wjClient;
|
||||||
|
@ -8,6 +8,7 @@ using System.Linq;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Common;
|
using Wabbajack.Common;
|
||||||
using Wabbajack.Compiler;
|
using Wabbajack.Compiler;
|
||||||
using Wabbajack.Downloaders;
|
using Wabbajack.Downloaders;
|
||||||
@ -22,7 +23,7 @@ using Wabbajack.VFS;
|
|||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class InstallCompileInstallVerify : IVerb
|
public class InstallCompileInstallVerify
|
||||||
{
|
{
|
||||||
private readonly ILogger<InstallCompileInstallVerify> _logger;
|
private readonly ILogger<InstallCompileInstallVerify> _logger;
|
||||||
private readonly Client _wjClient;
|
private readonly Client _wjClient;
|
||||||
@ -47,7 +48,7 @@ public class InstallCompileInstallVerify : IVerb
|
|||||||
_inferencer = inferencer;
|
_inferencer = inferencer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static VerbDefinition Definition = new VerbDefinition("install-compile-install-verify",
|
public static VerbDefinition Definition = new("install-compile-install-verify",
|
||||||
"Installs a modlist, compiles it, installs it again, verifies it", new[]
|
"Installs a modlist, compiles it, installs it again, verifies it", new[]
|
||||||
{
|
{
|
||||||
new OptionDefinition(typeof(AbsolutePath), "m", "machineUrl", "Machine url(s) to download"),
|
new OptionDefinition(typeof(AbsolutePath), "m", "machineUrl", "Machine url(s) to download"),
|
||||||
|
@ -7,6 +7,7 @@ using System.Linq;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Common;
|
using Wabbajack.Common;
|
||||||
using Wabbajack.Downloaders.Bethesda;
|
using Wabbajack.Downloaders.Bethesda;
|
||||||
using Wabbajack.DTOs;
|
using Wabbajack.DTOs;
|
||||||
@ -17,7 +18,7 @@ using Wabbajack.Paths;
|
|||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class ListCreationClubContent : IVerb
|
public class ListCreationClubContent
|
||||||
{
|
{
|
||||||
private readonly ILogger<ListCreationClubContent> _logger;
|
private readonly ILogger<ListCreationClubContent> _logger;
|
||||||
private readonly Client _client;
|
private readonly Client _client;
|
||||||
|
@ -7,13 +7,14 @@ using System.Linq;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Downloaders.GameFile;
|
using Wabbajack.Downloaders.GameFile;
|
||||||
using Wabbajack.DTOs;
|
using Wabbajack.DTOs;
|
||||||
using Wabbajack.Paths.IO;
|
using Wabbajack.Paths.IO;
|
||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class ListGames : IVerb
|
public class ListGames
|
||||||
{
|
{
|
||||||
private readonly ILogger<ListGames> _logger;
|
private readonly ILogger<ListGames> _logger;
|
||||||
private readonly GameLocator _locator;
|
private readonly GameLocator _locator;
|
||||||
@ -24,7 +25,7 @@ public class ListGames : IVerb
|
|||||||
_locator = locator;
|
_locator = locator;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static VerbDefinition Definition = new VerbDefinition("list-games",
|
public static VerbDefinition Definition = new("list-games",
|
||||||
"Lists all games Wabbajack recognizes, and their installed versions/locations (if any)", Array.Empty<OptionDefinition>());
|
"Lists all games Wabbajack recognizes, and their installed versions/locations (if any)", Array.Empty<OptionDefinition>());
|
||||||
|
|
||||||
internal Task<int> Run(CancellationToken token)
|
internal Task<int> Run(CancellationToken token)
|
||||||
|
@ -7,12 +7,13 @@ using System.Threading;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using FluentFTP.Helpers;
|
using FluentFTP.Helpers;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.DTOs;
|
using Wabbajack.DTOs;
|
||||||
using Wabbajack.Networking.WabbajackClientApi;
|
using Wabbajack.Networking.WabbajackClientApi;
|
||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class ListModlists : IVerb
|
public class ListModlists
|
||||||
{
|
{
|
||||||
private readonly ILogger<ListCreationClubContent> _logger;
|
private readonly ILogger<ListCreationClubContent> _logger;
|
||||||
private readonly Client _client;
|
private readonly Client _client;
|
||||||
|
@ -3,12 +3,13 @@ using System.CommandLine.Invocation;
|
|||||||
using System.CommandLine.NamingConventionBinder;
|
using System.CommandLine.NamingConventionBinder;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Networking.WabbajackClientApi;
|
using Wabbajack.Networking.WabbajackClientApi;
|
||||||
using Wabbajack.Paths;
|
using Wabbajack.Paths;
|
||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class MirrorFile : IVerb
|
public class MirrorFile
|
||||||
{
|
{
|
||||||
private readonly ILogger<MirrorFile> _logger;
|
private readonly ILogger<MirrorFile> _logger;
|
||||||
private readonly Client _client;
|
private readonly Client _client;
|
||||||
|
@ -10,6 +10,7 @@ using System.Text;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Nettle;
|
using Nettle;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Common;
|
using Wabbajack.Common;
|
||||||
using Wabbajack.DTOs.Directives;
|
using Wabbajack.DTOs.Directives;
|
||||||
using Wabbajack.DTOs.JsonConverters;
|
using Wabbajack.DTOs.JsonConverters;
|
||||||
@ -19,7 +20,7 @@ using Wabbajack.Paths.IO;
|
|||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class ModlistReport : IVerb
|
public class ModlistReport
|
||||||
{
|
{
|
||||||
private readonly ILogger<ModlistReport> _logger;
|
private readonly ILogger<ModlistReport> _logger;
|
||||||
private readonly DTOSerializer _dtos;
|
private readonly DTOSerializer _dtos;
|
||||||
|
@ -7,6 +7,7 @@ using System.Threading.Tasks;
|
|||||||
using FluentFTP.Helpers;
|
using FluentFTP.Helpers;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using SteamKit2;
|
using SteamKit2;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.DTOs;
|
using Wabbajack.DTOs;
|
||||||
using Wabbajack.DTOs.JsonConverters;
|
using Wabbajack.DTOs.JsonConverters;
|
||||||
using Wabbajack.Networking.Http.Interfaces;
|
using Wabbajack.Networking.Http.Interfaces;
|
||||||
@ -15,7 +16,7 @@ using Wabbajack.Paths;
|
|||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class SteamDownloadFile : IVerb
|
public class SteamDownloadFile
|
||||||
{
|
{
|
||||||
private readonly ILogger<SteamDownloadFile> _logger;
|
private readonly ILogger<SteamDownloadFile> _logger;
|
||||||
private readonly Client _client;
|
private readonly Client _client;
|
||||||
@ -35,7 +36,7 @@ public class SteamDownloadFile : IVerb
|
|||||||
_wjClient = wjClient;
|
_wjClient = wjClient;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static VerbDefinition Definition = new VerbDefinition("steam-download-file",
|
public static VerbDefinition Definition = new("steam-download-file",
|
||||||
"Dumps information to the console about the given app",
|
"Dumps information to the console about the given app",
|
||||||
new[]
|
new[]
|
||||||
{
|
{
|
||||||
|
@ -7,6 +7,7 @@ using System.Threading.Tasks;
|
|||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SteamKit2;
|
using SteamKit2;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.DTOs;
|
using Wabbajack.DTOs;
|
||||||
using Wabbajack.DTOs.JsonConverters;
|
using Wabbajack.DTOs.JsonConverters;
|
||||||
using Wabbajack.Networking.Http.Interfaces;
|
using Wabbajack.Networking.Http.Interfaces;
|
||||||
@ -15,7 +16,7 @@ using JsonSerializer = System.Text.Json.JsonSerializer;
|
|||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class SteamDumpAppInfo : IVerb
|
public class SteamDumpAppInfo
|
||||||
{
|
{
|
||||||
private readonly ILogger<SteamDumpAppInfo> _logger;
|
private readonly ILogger<SteamDumpAppInfo> _logger;
|
||||||
private readonly Client _client;
|
private readonly Client _client;
|
||||||
@ -33,7 +34,7 @@ public class SteamDumpAppInfo : IVerb
|
|||||||
_dtos = dtos;
|
_dtos = dtos;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static VerbDefinition Definition = new VerbDefinition("steam-app-dump-info",
|
public static VerbDefinition Definition = new("steam-app-dump-info",
|
||||||
"Dumps information to the console about the given app", new[]
|
"Dumps information to the console about the given app", new[]
|
||||||
{
|
{
|
||||||
new OptionDefinition(typeof(string), "g", "game", "Wabbajack game name")
|
new OptionDefinition(typeof(string), "g", "game", "Wabbajack game name")
|
||||||
|
@ -4,13 +4,14 @@ using System.CommandLine.Invocation;
|
|||||||
using System.CommandLine.NamingConventionBinder;
|
using System.CommandLine.NamingConventionBinder;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Networking.Http.Interfaces;
|
using Wabbajack.Networking.Http.Interfaces;
|
||||||
using Wabbajack.Networking.Steam;
|
using Wabbajack.Networking.Steam;
|
||||||
using Wabbajack.Paths;
|
using Wabbajack.Paths;
|
||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class SteamLogin : IVerb
|
public class SteamLogin
|
||||||
{
|
{
|
||||||
private readonly ILogger<SteamLogin> _logger;
|
private readonly ILogger<SteamLogin> _logger;
|
||||||
private readonly Client _client;
|
private readonly Client _client;
|
||||||
|
@ -1,20 +1,16 @@
|
|||||||
using System.CommandLine;
|
|
||||||
using System.CommandLine.Invocation;
|
|
||||||
using System.CommandLine.NamingConventionBinder;
|
|
||||||
using System.Text.Json;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Common;
|
using Wabbajack.Common;
|
||||||
using Wabbajack.DTOs.JsonConverters;
|
using Wabbajack.DTOs.JsonConverters;
|
||||||
using Wabbajack.Networking.NexusApi;
|
using Wabbajack.Networking.NexusApi;
|
||||||
using Wabbajack.Networking.NexusApi.DTOs;
|
using Wabbajack.Networking.NexusApi.DTOs;
|
||||||
using Wabbajack.Paths;
|
using Wabbajack.Paths;
|
||||||
using Wabbajack.Paths.IO;
|
|
||||||
|
|
||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class UploadToNexus : IVerb
|
public class UploadToNexus
|
||||||
{
|
{
|
||||||
private readonly ILogger<UploadToNexus> _logger;
|
private readonly ILogger<UploadToNexus> _logger;
|
||||||
private readonly NexusApi _client;
|
private readonly NexusApi _client;
|
||||||
|
@ -3,12 +3,13 @@ using System.CommandLine.Invocation;
|
|||||||
using System.CommandLine.NamingConventionBinder;
|
using System.CommandLine.NamingConventionBinder;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.Paths;
|
using Wabbajack.Paths;
|
||||||
using Wabbajack.VFS;
|
using Wabbajack.VFS;
|
||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class VFSIndex : IVerb
|
public class VFSIndex
|
||||||
{
|
{
|
||||||
private readonly Context _context;
|
private readonly Context _context;
|
||||||
|
|
||||||
@ -17,7 +18,7 @@ public class VFSIndex : IVerb
|
|||||||
_context = context;
|
_context = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static VerbDefinition Definition = new VerbDefinition("vfs-index",
|
public static VerbDefinition Definition = new("vfs-index",
|
||||||
"Index and cache the contents of a folder", new[]
|
"Index and cache the contents of a folder", new[]
|
||||||
{
|
{
|
||||||
new OptionDefinition(typeof(AbsolutePath), "f", "folder", "Folder to index")
|
new OptionDefinition(typeof(AbsolutePath), "f", "folder", "Folder to index")
|
||||||
|
@ -12,6 +12,7 @@ using Microsoft.Extensions.Logging;
|
|||||||
using SixLabors.ImageSharp;
|
using SixLabors.ImageSharp;
|
||||||
using SixLabors.ImageSharp.Formats.Webp;
|
using SixLabors.ImageSharp.Formats.Webp;
|
||||||
using SixLabors.ImageSharp.Processing;
|
using SixLabors.ImageSharp.Processing;
|
||||||
|
using Wabbajack.CLI.Builder;
|
||||||
using Wabbajack.CLI.Services;
|
using Wabbajack.CLI.Services;
|
||||||
using Wabbajack.Common;
|
using Wabbajack.Common;
|
||||||
using Wabbajack.Compression.Zip;
|
using Wabbajack.Compression.Zip;
|
||||||
@ -35,7 +36,7 @@ using Wabbajack.Server.Lib.TokenProviders;
|
|||||||
|
|
||||||
namespace Wabbajack.CLI.Verbs;
|
namespace Wabbajack.CLI.Verbs;
|
||||||
|
|
||||||
public class ValidateLists : IVerb
|
public class ValidateLists
|
||||||
{
|
{
|
||||||
private static readonly Uri MirrorPrefix = new("https://mirror.wabbajack.org");
|
private static readonly Uri MirrorPrefix = new("https://mirror.wabbajack.org");
|
||||||
private readonly WriteOnlyClient _discord;
|
private readonly WriteOnlyClient _discord;
|
||||||
@ -74,7 +75,7 @@ public class ValidateLists : IVerb
|
|||||||
_httpLimiter = httpLimiter;
|
_httpLimiter = httpLimiter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static VerbDefinition Definition = new VerbDefinition("validate-lists",
|
public static VerbDefinition Definition = new("validate-lists",
|
||||||
"Gets a list of modlists, validates them and exports a result list", new[]
|
"Gets a list of modlists, validates them and exports a result list", new[]
|
||||||
{
|
{
|
||||||
new OptionDefinition(typeof(AbsolutePath), "r", "reports", "Location to store validation report outputs")
|
new OptionDefinition(typeof(AbsolutePath), "r", "reports", "Location to store validation report outputs")
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Wabbajack.CLI.Builder\Wabbajack.CLI.Builder.csproj" />
|
||||||
<ProjectReference Include="..\Wabbajack.Downloaders.Bethesda\Wabbajack.Downloaders.Bethesda.csproj" />
|
<ProjectReference Include="..\Wabbajack.Downloaders.Bethesda\Wabbajack.Downloaders.Bethesda.csproj" />
|
||||||
<ProjectReference Include="..\Wabbajack.Downloaders.Dispatcher\Wabbajack.Downloaders.Dispatcher.csproj" />
|
<ProjectReference Include="..\Wabbajack.Downloaders.Dispatcher\Wabbajack.Downloaders.Dispatcher.csproj" />
|
||||||
<ProjectReference Include="..\Wabbajack.Hashing.xxHash64\Wabbajack.Hashing.xxHash64.csproj" />
|
<ProjectReference Include="..\Wabbajack.Hashing.xxHash64\Wabbajack.Hashing.xxHash64.csproj" />
|
||||||
|
@ -141,6 +141,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wabbajack.App.Wpf", "Wabbaj
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wabbajack.VFS.Interfaces", "Wabbajack.VFS.Interfaces\Wabbajack.VFS.Interfaces.csproj", "{E4BDB22D-11A4-452F-8D10-D9CA9777EA22}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wabbajack.VFS.Interfaces", "Wabbajack.VFS.Interfaces\Wabbajack.VFS.Interfaces.csproj", "{E4BDB22D-11A4-452F-8D10-D9CA9777EA22}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wabbajack.CLI.Builder", "Wabbajack.CLI.Builder\Wabbajack.CLI.Builder.csproj", "{99CD51A1-38C9-420E-9497-2C9AEAF0053C}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@ -387,6 +389,10 @@ Global
|
|||||||
{E4BDB22D-11A4-452F-8D10-D9CA9777EA22}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{E4BDB22D-11A4-452F-8D10-D9CA9777EA22}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{E4BDB22D-11A4-452F-8D10-D9CA9777EA22}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{E4BDB22D-11A4-452F-8D10-D9CA9777EA22}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{E4BDB22D-11A4-452F-8D10-D9CA9777EA22}.Release|Any CPU.Build.0 = Release|Any CPU
|
{E4BDB22D-11A4-452F-8D10-D9CA9777EA22}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{99CD51A1-38C9-420E-9497-2C9AEAF0053C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{99CD51A1-38C9-420E-9497-2C9AEAF0053C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{99CD51A1-38C9-420E-9497-2C9AEAF0053C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{99CD51A1-38C9-420E-9497-2C9AEAF0053C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
Loading…
Reference in New Issue
Block a user