yavsc/src/Yavsc/Startup/Startup.SanityChecks.cs

51 lines
1.8 KiB
C#
Raw Normal View History

2017-06-27 03:47:21 +02:00
using System;
2017-07-03 20:30:00 +02:00
using System.IO;
2017-06-27 03:47:21 +02:00
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
namespace Yavsc
{
2018-07-26 14:26:26 +02:00
// ensures we may count on :
// * Google credentials
// * an AppData folder
2017-06-27 03:47:21 +02:00
public partial class Startup
{
public void CheckServices(IServiceCollection services)
{
}
public void CheckApp(IApplicationBuilder app,
SiteSettings siteSettings, IHostingEnvironment env,
ILoggerFactory loggerFactory
)
{
2017-07-03 20:30:00 +02:00
2017-06-27 03:47:21 +02:00
var logger = loggerFactory.CreateLogger<Startup>();
2017-07-03 20:30:00 +02:00
var appData = Environment.GetEnvironmentVariable("APPDATA");
if (appData == null)
{
2018-02-03 20:17:29 +01:00
logger.LogWarning("AppData was not found in environment variables");
2017-07-03 20:30:00 +02:00
if (SiteSetup.DataDir == null) {
2017-07-05 18:31:31 +02:00
SiteSetup.DataDir = "AppData"+env.EnvironmentName;
2018-02-03 20:17:29 +01:00
logger.LogInformation("Using: "+SiteSetup.DataDir);
} else logger.LogInformation("Using value from settings: "+SiteSetup.DataDir);
2017-07-03 20:30:00 +02:00
DirectoryInfo di = new DirectoryInfo(SiteSetup.DataDir);
if (!di.Exists)
{
di.Create();
logger.LogWarning("Created dir : "+di.FullName);
2018-07-26 14:26:26 +02:00
}
else logger.LogInformation("Using existing directory: "+di.Name);
2017-07-03 20:30:00 +02:00
SiteSetup.DataDir = Path.Combine(Directory.GetCurrentDirectory(),di.Name);
Environment.SetEnvironmentVariable("APPDATA", SiteSetup.DataDir);
2018-02-03 20:17:29 +01:00
logger.LogWarning("It has been set to : "+Environment.GetEnvironmentVariable("APPDATA"));
2017-07-03 20:30:00 +02:00
}
2017-06-27 03:47:21 +02:00
}
}
}