Set appData env var

main
Paul Schneider 9 years ago
parent 58d3fbd37a
commit 2c9aa980d5
4 changed files with 187 additions and 163 deletions

@ -28,6 +28,8 @@ namespace Yavsc
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public Contact Admin { get; set; } public Contact Admin { get; set; }
public string DataDir { get; set; }
/// <summary> /// <summary>
/// User's files directory /// User's files directory
/// </summary> /// </summary>

@ -1,4 +1,5 @@
using System; using System;
using System.IO;
using Google.Apis.Auth.OAuth2; using Google.Apis.Auth.OAuth2;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting; using Microsoft.AspNet.Hosting;
@ -21,8 +22,27 @@ namespace Yavsc
ILoggerFactory loggerFactory ILoggerFactory loggerFactory
) )
{ {
var logger = loggerFactory.CreateLogger<Startup>(); var logger = loggerFactory.CreateLogger<Startup>();
var appData = Environment.GetEnvironmentVariable("APPDATA");
if (appData == null)
{
if (SiteSetup.DataDir == null) {
SiteSetup.DataDir = "AppData";
} else logger.LogWarning("existing setting: "+SiteSetup.DataDir);
DirectoryInfo di = new DirectoryInfo(SiteSetup.DataDir);
if (!di.Exists)
{
di.Create();
logger.LogWarning("Created dir : "+di.FullName);
} else logger.LogWarning("existing: "+di.Name);
SiteSetup.DataDir = Path.Combine(Directory.GetCurrentDirectory(),di.Name);
Environment.SetEnvironmentVariable("APPDATA", SiteSetup.DataDir);
logger.LogWarning("AppData was not found in env vars, it has been set to : "+
Environment.GetEnvironmentVariable("APPDATA"));
}
var creds = GoogleSettings?.Account?.private_key; var creds = GoogleSettings?.Account?.private_key;
if (creds==null) if (creds==null)
throw new InvalidOperationException("No Google API credential"); throw new InvalidOperationException("No Google API credential");

@ -67,6 +67,7 @@ namespace Yavsc
builder.AddEnvironmentVariables(); builder.AddEnvironmentVariables();
Configuration = builder.Build(); Configuration = builder.Build();
ConnectionString = Configuration["Data:DefaultConnection:ConnectionString"]; ConnectionString = Configuration["Data:DefaultConnection:ConnectionString"];
} }
public static GoogleAuthSettings GoogleSettings { get; set; } public static GoogleAuthSettings GoogleSettings { get; set; }
public IConfigurationRoot Configuration { get; set; } public IConfigurationRoot Configuration { get; set; }
@ -264,6 +265,7 @@ namespace Yavsc
Startup.UserBillsDirName = new DirectoryInfo(siteSettings.Value.UserFiles.Bills).FullName; Startup.UserBillsDirName = new DirectoryInfo(siteSettings.Value.UserFiles.Bills).FullName;
Startup.Temp = siteSettings.Value.TempDir; Startup.Temp = siteSettings.Value.TempDir;
PayPalSettings = payPalSettings.Value; PayPalSettings = payPalSettings.Value;
// TODO implement an installation & upgrade procedure // TODO implement an installation & upgrade procedure
// Create required directories // Create required directories
foreach (string dir in new string[] { UserFilesDirName, UserBillsDirName, SiteSetup.TempDir }) foreach (string dir in new string[] { UserFilesDirName, UserBillsDirName, SiteSetup.TempDir })

Loading…