mirror of
https://git.v0l.io/Kieran/void.cat.git
synced 2025-03-18 04:52:22 +01:00
Skip files-v2 if no v1 dir
This commit is contained in:
parent
6481eb54f0
commit
72047a5098
@ -5,16 +5,21 @@ namespace VoidCat.Services.Migrations;
|
||||
public class FileStoreV2 : IMigration
|
||||
{
|
||||
private readonly VoidSettings _settings;
|
||||
|
||||
|
||||
public FileStoreV2(VoidSettings settings)
|
||||
{
|
||||
_settings = settings;
|
||||
}
|
||||
|
||||
|
||||
public int Order => 2;
|
||||
public ValueTask<IMigration.MigrationResult> Migrate(string[] args)
|
||||
{
|
||||
var baseDir = Path.Join(_settings.DataDirectory, "files-v1");
|
||||
if (!Directory.Exists(baseDir))
|
||||
{
|
||||
return ValueTask.FromResult(IMigration.MigrationResult.Skipped);
|
||||
}
|
||||
|
||||
foreach (var path in Directory.EnumerateFiles(baseDir))
|
||||
{
|
||||
if (!Guid.TryParse(Path.GetFileNameWithoutExtension(path), out var id))
|
||||
@ -28,15 +33,16 @@ public class FileStoreV2 : IMigration
|
||||
{
|
||||
Directory.CreateDirectory(destDir);
|
||||
}
|
||||
|
||||
File.Move(MapPathV1(id), dest);
|
||||
}
|
||||
|
||||
return ValueTask.FromResult(IMigration.MigrationResult.Completed);
|
||||
}
|
||||
|
||||
|
||||
private string MapPathV1(Guid id) =>
|
||||
Path.Join(_settings.DataDirectory, "files-v1", id.ToString());
|
||||
|
||||
|
||||
private string MapPathV2(Guid id) =>
|
||||
Path.Join(_settings.DataDirectory, "files-v2", id.ToString()[..2], id.ToString()[2..4], id.ToString());
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user