blob: 280ffe94b56f1ec3cb7cf9ef39ed3397393e3c4a (
plain) (
blame)
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
using System.Buffers.Text;
using ArcaneLibs;
using Microsoft.EntityFrameworkCore;
using Spacebar.Cdn.Fsck;
using Spacebar.Interop.Cdn.Abstractions;
using Spacebar.Interop.Cdn.Signing;
using Spacebar.Models.Db.Contexts;
var builder = Host.CreateApplicationBuilder(args);
// builder.Services.AddSingleton<IFileSource>(new ProxyFileSource("http://cdn.old.server.spacebar.chat"));
IFileSource fromSrc, toSrc;
if (args.Length != 2) {
Console.WriteLine("Usage: Spacebar.Cdn.Migration <from-path> <to-path>");
return;
}
if (args[0].StartsWith("http://"))
fromSrc = new ProxyFileSource(args[0]);
else
fromSrc = new FilesystemFileSource(args[0]);
if (args[1].StartsWith("http://"))
toSrc = new ProxyFileSource(args[1]);
else
toSrc = new FilesystemFileSource(args[1]);
builder.Services.AddSingleton(new MigrationFileStores() {
From = fromSrc,
To = toSrc
});
builder.Services.AddSingleton<CdnSigningService>(sp =>
new CdnSigningService(
sp.GetRequiredService<ILogger<CdnSigningService>>(),
Convert.FromBase64String(""),
false,
true,
TimeSpan.FromMinutes(5)
)
);
builder.Services.AddHostedService<FsckService>();
builder.Services.AddDbContextPool<SpacebarDbContext>(options => {
options
.UseNpgsql(builder.Configuration.GetConnectionString("Spacebar"))
.EnableDetailedErrors();
});
StreamingHttpClient.LogRequests = false;
var host = builder.Build();
await host.Services.GetRequiredService<MigrationFileStores>().From.Init();
await host.Services.GetRequiredService<MigrationFileStores>().To.Init();
host.Start();
|