Skip to content

Commit 3c16a01

Browse files
committed
cliencore and core adapt to the blacklist.
1 parent cd91580 commit 3c16a01

File tree

12 files changed

+39
-30
lines changed

12 files changed

+39
-30
lines changed

src/c#/GeneralUpdate.ClientCore/GeneralClientBootstrap.cs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,11 @@ private async Task ExecuteWorkflowAsync()
167167
var isForcibly = CheckForcibly(mainResp.Body) || CheckForcibly(upgradeResp.Body);
168168
if (CanSkip(isForcibly)) return;
169169

170+
//black list initialization.
171+
BlackListManager.Instance?.AddBlackFiles(_configInfo.BlackFiles);
172+
BlackListManager.Instance?.AddBlackFileFormats(_configInfo.BlackFormats);
173+
BlackListManager.Instance?.AddSkipDirectorys(_configInfo.SkipDirectorys);
174+
170175
_configInfo.Encoding = GetOption(UpdateOption.Encoding) ?? Encoding.Default;
171176
_configInfo.Format = GetOption(UpdateOption.Format) ?? Format.ZIP;
172177
_configInfo.DownloadTimeOut = GetOption(UpdateOption.DownloadTimeOut) == 0
@@ -200,17 +205,18 @@ private async Task ExecuteWorkflowAsync()
200205
, _configInfo.BackupDirectory
201206
, _configInfo.Bowl
202207
, _configInfo.Scheme
203-
, _configInfo.Token);
208+
, _configInfo.Token
209+
, BlackListManager.Instance.BlackFileFormats.ToList()
210+
, BlackListManager.Instance.BlackFiles.ToList()
211+
, BlackListManager.Instance.SkipDirectorys.ToList());
204212

205213
_configInfo.ProcessInfo =
206214
JsonSerializer.Serialize(processInfo, ProcessInfoJsonContext.Default.ProcessInfo);
207215
}
208216

209-
var skipDirectorys = StorageManager.SkipDirectorys;
210-
skipDirectorys.AddRange(_configInfo.SkipDirectorys);
211217
StorageManager.Backup(_configInfo.InstallPath
212218
, _configInfo.BackupDirectory
213-
, skipDirectorys);
219+
, BlackListManager.Instance.SkipDirectorys);
214220

215221
StrategyFactory();
216222
switch (_configInfo.IsUpgradeUpdate)

src/c#/GeneralUpdate.ClientCore/Pipeline/PatchMiddleware.cs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,6 @@ public async Task InvokeAsync(PipelineContext context)
1818
{
1919
var sourcePath = context.Get<string>("SourcePath");
2020
var targetPath = context.Get<string>("PatchPath");
21-
var blackFiles = context.Get<List<string>>("BlackFiles");
22-
var blackFileFormats = context.Get<List<string>>("BlackFileFormats");
23-
var skipDirectorys = context.Get<List<string>>("SkipDirectorys");
24-
25-
BlackListManager.Instance.AddBlackFiles(blackFiles);
26-
BlackListManager.Instance.AddBlackFileFormats(blackFileFormats);
27-
BlackListManager.Instance.AddSkipDirectorys(skipDirectorys);
2821
await DifferentialCore.Instance.Dirty(sourcePath, targetPath);
2922
}
3023
catch (Exception exception)

src/c#/GeneralUpdate.ClientCore/Strategys/WindowsStrategy.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,6 @@ public override async Task ExecuteAsync()
4646
//patch middleware
4747
context.Add("SourcePath", _configinfo.InstallPath);
4848
context.Add("PatchPath", patchPath);
49-
context.Add("BlackFiles", _configinfo.BlackFiles);
50-
context.Add("BlackFileFormats", _configinfo.BlackFormats);
51-
context.Add("SkipDirectorys", _configinfo.SkipDirectorys);
5249

5350
var pipelineBuilder = new PipelineBuilder(context)
5451
.UseMiddleware<PatchMiddleware>()

src/c#/GeneralUpdate.Common/FileBasic/BlackListManager.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public class BlackListManager
2222

2323
private static readonly List<string> _blackFiles = ["Newtonsoft.Json.dll"];
2424

25-
private static readonly List<string> _skipDirectorys = [];
25+
private static readonly List<string> _skipDirectorys = ["app-", "fail"];
2626

2727
private BlackListManager() { }
2828

@@ -98,6 +98,7 @@ public void AddSkipDirectorys(List<string>? directorys)
9898
{
9999
if (directorys == null)
100100
return;
101+
101102
foreach (var directory in directorys)
102103
{
103104
AddSkipDirectory(directory);
@@ -108,6 +109,7 @@ public void AddSkipDirectory(string directory)
108109
{
109110
if (string.IsNullOrWhiteSpace(directory))
110111
return;
112+
111113
if (!_skipDirectorys.Contains(directory))
112114
{
113115
_skipDirectorys.Add(directory);

src/c#/GeneralUpdate.Common/FileBasic/StorageManager.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public sealed class StorageManager
1313
{
1414
private long _fileCount = 0;
1515
public const string DirectoryName = "app-";
16-
public static readonly List<string> SkipDirectorys = ["fail", DirectoryName];
16+
1717
private ComparisonResult ComparisonResult { get; set; }
1818

1919
#region Public Methods
@@ -171,7 +171,7 @@ public static bool HashEquals(string leftPath, string rightPath)
171171
/// <param name="backupPath"></param>
172172
/// <param name="sourcePath"></param>
173173
/// <param name="directoryName"></param>
174-
public static void Backup(string sourcePath, string backupPath, List<string> directoryNames)
174+
public static void Backup(string sourcePath, string backupPath, IReadOnlyList<string> directoryNames)
175175
{
176176
if (Directory.Exists(backupPath))
177177
{
@@ -181,7 +181,7 @@ public static void Backup(string sourcePath, string backupPath, List<string> dir
181181
CopyDirectory(sourcePath, backupPath, directoryNames);
182182
}
183183

184-
private static void CopyDirectory(string sourceDir, string targetDir, List<string> directoryNames)
184+
private static void CopyDirectory(string sourceDir, string targetDir, IReadOnlyList<string> directoryNames)
185185
{
186186
foreach (string dirPath in Directory.GetDirectories(sourceDir, "*", SearchOption.TopDirectoryOnly))
187187
{

src/c#/GeneralUpdate.Common/Shared/Object/ProcessInfo.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ public ProcessInfo(string appName
2424
, string backupDirectory
2525
, string bowl
2626
, string scheme
27-
, string token)
27+
, string token
28+
, List<string> blackFileFormats
29+
, List<string> blackFiles
30+
, List<string> skipDirectories)
2831
{
2932
AppName = appName ?? throw new ArgumentNullException(nameof(appName));
3033
if (!Directory.Exists(installPath)) throw new ArgumentException($"{nameof(installPath)} path does not exist ! {installPath}.");
@@ -44,6 +47,9 @@ public ProcessInfo(string appName
4447
Bowl = bowl;
4548
Scheme = scheme;
4649
Token = token;
50+
BlackFileFormats = blackFileFormats;
51+
BlackFiles = blackFiles;
52+
SkipDirectorys = skipDirectories;
4753
}
4854

4955
/// <summary>
@@ -126,5 +132,14 @@ public ProcessInfo(string appName
126132

127133
[JsonPropertyName("Token")]
128134
public string Token { get; set; }
135+
136+
[JsonPropertyName("BlackFileFormats")]
137+
public List<string> BlackFileFormats { get; set; }
138+
139+
[JsonPropertyName("BlackFiles")]
140+
public List<string> BlackFiles { get; set; }
141+
142+
[JsonPropertyName("SkipDirectorys")]
143+
public List<string> SkipDirectorys { get; set; }
129144
}
130145
}

src/c#/GeneralUpdate.Core/Driver/DriverCommand.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public abstract class DriverCommand
1616
/// <returns></returns>
1717
protected static IEnumerable<FileInfo> SearchDrivers(string patchPath, string fileExtension)
1818
{
19-
var files = StorageManager.GetAllFiles(patchPath, StorageManager.SkipDirectorys);
19+
var files = StorageManager.GetAllFiles(patchPath, BlackListManager.Instance.SkipDirectorys.ToList());
2020
return files.Where(x => x.FullName.EndsWith(fileExtension)).ToList();
2121
}
2222
}

src/c#/GeneralUpdate.Core/Driver/RestoreDriverCommand.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public void Execute()
1111
{
1212
try
1313
{
14-
var backupFiles = StorageManager.GetAllFiles(information.OutPutDirectory, StorageManager.SkipDirectorys);
14+
var backupFiles = StorageManager.GetAllFiles(information.OutPutDirectory, BlackListManager.Instance.SkipDirectorys.ToList());
1515
var fileExtension = information.DriverFileExtension;
1616
var drivers = backupFiles.Where(x => x.FullName.EndsWith(fileExtension)).ToList();
1717

src/c#/GeneralUpdate.Core/GeneralUpdateBootstrap.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ public GeneralUpdateBootstrap()
3333
if (processInfo == null)
3434
throw new ArgumentException("ProcessInfo object cannot be null!");
3535

36+
BlackListManager.Instance?.AddBlackFileFormats(processInfo.BlackFileFormats);
37+
BlackListManager.Instance?.AddBlackFiles(processInfo.BlackFiles);
38+
BlackListManager.Instance?.AddSkipDirectorys(processInfo.SkipDirectorys);
39+
3640
_configInfo = new()
3741
{
3842
MainAppName = processInfo.AppName,

src/c#/GeneralUpdate.Core/Pipeline/PatchMiddleware.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,6 @@ public async Task InvokeAsync(PipelineContext context)
1818
{
1919
var sourcePath = context.Get<string>("SourcePath");
2020
var targetPath = context.Get<string>("PatchPath");
21-
var blackFiles = context.Get<List<string>>("BlackFiles");
22-
var blackFileFormats = context.Get<List<string>>("BlackFileFormats");
23-
24-
BlackListManager.Instance.AddBlackFiles(blackFiles);
25-
BlackListManager.Instance.AddBlackFileFormats(blackFileFormats);
2621
await DifferentialCore.Instance?.Dirty(sourcePath, targetPath);
2722
}
2823
catch (Exception exception)

0 commit comments

Comments
 (0)