-
Notifications
You must be signed in to change notification settings - Fork 808
Expand file tree
/
Copy pathCargoPkgOperationHelper.cs
More file actions
41 lines (34 loc) · 1.68 KB
/
CargoPkgOperationHelper.cs
File metadata and controls
41 lines (34 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using UniGetUI.PackageEngine.Classes.Manager.BaseProviders;
using UniGetUI.PackageEngine.Enums;
using UniGetUI.PackageEngine.Interfaces;
using UniGetUI.PackageEngine.Serializable;
namespace UniGetUI.PackageEngine.Managers.CargoManager;
internal sealed class CargoPkgOperationHelper(Cargo cargo) : BasePkgOperationHelper(cargo)
{
protected override IReadOnlyList<string> _getOperationParameters(IPackage package,
InstallOptions options, OperationType operation)
{
var version = options.Version == string.Empty ? package.VersionString : options.Version;
List<string> parameters = operation switch
{
OperationType.Install => [Manager.Properties.InstallVerb, "--version", version, package.Id],
OperationType.Update => [Manager.Properties.UpdateVerb, package.Id],
OperationType.Uninstall => [Manager.Properties.UninstallVerb, package.Id],
_ => throw new InvalidDataException("Invalid package operation"),
};
if (operation is OperationType.Install or OperationType.Update)
{
parameters.Add("--no-confirm");
if(options.SkipHashCheck)
parameters.Add("--skip-signatures");
if(options.CustomInstallLocation != "")
parameters.AddRange(["--install-path", options.CustomInstallLocation]);
}
parameters.AddRange(options.CustomParameters);
return parameters;
}
protected override OperationVeredict _getOperationResult(IPackage package, OperationType operation, IReadOnlyList<string> processOutput, int returnCode)
{
return returnCode == 0 ? OperationVeredict.Success : OperationVeredict.Failure;
}
}