29 lines
1021 B
C#
29 lines
1021 B
C#
using Microsoft.Extensions.Configuration;
|
|
|
|
namespace backend.Install;
|
|
|
|
public static class InstallEndpoints
|
|
{
|
|
public static IEndpointRouteBuilder MapInstallEndpoints(this IEndpointRouteBuilder app)
|
|
{
|
|
app.MapGet("/install.sh", (HttpContext http, InstallScriptBuilder builder) =>
|
|
{
|
|
var scheme = http.Request.Scheme;
|
|
var host = http.Request.Host.ToString();
|
|
var script = builder.Build($"{scheme}://{host}");
|
|
return Results.Text(script, "text/x-shellscript");
|
|
});
|
|
|
|
app.MapGet("/client.tar.gz", (IConfiguration cfg, IWebHostEnvironment env) =>
|
|
{
|
|
var path = cfg["Install:ClientTarballPath"]
|
|
?? Path.Combine(env.WebRootPath ?? "wwwroot", "client.tar.gz");
|
|
if (!File.Exists(path))
|
|
return Results.NotFound(new { error = "client.tar.gz not found at " + path });
|
|
return Results.File(path, "application/gzip", "client.tar.gz");
|
|
});
|
|
|
|
return app;
|
|
}
|
|
}
|