diff --git a/.vscode/launch.json b/.vscode/launch.json index 89a004a6..1a9bf86a 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -52,8 +52,8 @@ // "AYANOVA_USE_URLS": "http://*:7575;", // //"AYANOVA_REPORT_RENDERING_TIMEOUT": "20000", // //"AYANOVA_REPORT_RENDERING_MAX_INSTANCES": "3", - "AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles", - //"AYANOVA_FOLDER_USER_FILES":"%ProgramData%\\ayanova\\userfiles", + //"AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles", + "AYANOVA_FOLDER_USER_FILES":"%ProgramData%\\ayanova\\userfiles", "AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles", "AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles", // "AYANOVA_SERVER_TEST_MODE": "false", diff --git a/dist/install/windows-pg-standalone/ayanovaserver.iss b/dist/install/windows-pg-standalone/ayanovaserver.iss index b37785de..caf8b626 100644 --- a/dist/install/windows-pg-standalone/ayanovaserver.iss +++ b/dist/install/windows-pg-standalone/ayanovaserver.iss @@ -47,7 +47,7 @@ Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{ [Files] Source: "C:\data\code\raven\dist\win-x64\ayanova\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\data\code\raven\dist\win-x64\ayanova\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs -Source: "C:\data\code\raven\dist\win-x64\launcher\appsettings.json"; DestDir: "{app}"; Flags: ignoreversion confirmoverwrite +Source: "C:\data\code\raven\dist\win-x64\launcher\config.json"; DestDir: "{app}"; Flags: ignoreversion confirmoverwrite Source: "C:\data\code\raven\dist\win-x64\launcher\*"; DestDir: "{app}\launcher"; Flags: ignoreversion recursesubdirs createallsubdirs ;Source: "C:\data\code\raven\dist\win-x64\launcher\{#MyAppLauncherExeName}"; DestDir: "{app}"; Flags: ignoreversion ; NOTE: Don't use "Flags: ignoreversion" on any shared system files diff --git a/server/AyaNova/util/FileUtil.cs b/server/AyaNova/util/FileUtil.cs index d44ea2a8..59cfb309 100644 --- a/server/AyaNova/util/FileUtil.cs +++ b/server/AyaNova/util/FileUtil.cs @@ -64,7 +64,7 @@ namespace AyaNova.Util //create path if doesn't exist already private static void EnsurePath(string path) { - Console.WriteLine($"FileUtil::EnsurePath path = [{path}]"); + //Console.WriteLine($"FileUtil::EnsurePath path = [{path}]"); if (!Directory.Exists(path)) Directory.CreateDirectory(path); } @@ -821,6 +821,15 @@ namespace AyaNova.Util return ret; } + + public static string StringPathDecodeEnvironmentVariables(string path){ + if(string.IsNullOrWhiteSpace(path)){ + return string.Empty; + } + + return System.Environment.ExpandEnvironmentVariables(path); + + } #endregion general utilities }//eoc diff --git a/server/AyaNova/util/ServerBootConfig.cs b/server/AyaNova/util/ServerBootConfig.cs index 79866b17..cb57dc7b 100644 --- a/server/AyaNova/util/ServerBootConfig.cs +++ b/server/AyaNova/util/ServerBootConfig.cs @@ -181,10 +181,10 @@ namespace AyaNova.Util //FOLDERS //Log folder - AYANOVA_LOG_PATH = config.GetValue("AYANOVA_LOG_PATH"); + AYANOVA_LOG_PATH = FileUtil.StringPathDecodeEnvironmentVariables(config.GetValue("AYANOVA_LOG_PATH")); - if (AYANOVA_LOG_PATH == null) + if (string.IsNullOrWhiteSpace(AYANOVA_LOG_PATH)) { //DEFAULT LOG PATH var currentDir = Directory.GetCurrentDirectory(); @@ -197,16 +197,16 @@ namespace AyaNova.Util //(note, startup.cs ensures these folders exist via FileUtil because we need IHostingEnvironment) //UserFiles - AYANOVA_FOLDER_USER_FILES = config.GetValue("AYANOVA_FOLDER_USER_FILES"); + AYANOVA_FOLDER_USER_FILES = FileUtil.StringPathDecodeEnvironmentVariables(config.GetValue("AYANOVA_FOLDER_USER_FILES")); //BackupFiles - AYANOVA_FOLDER_BACKUP_FILES = config.GetValue("AYANOVA_FOLDER_BACKUP_FILES"); + AYANOVA_FOLDER_BACKUP_FILES = FileUtil.StringPathDecodeEnvironmentVariables(config.GetValue("AYANOVA_FOLDER_BACKUP_FILES")); //TemporaryFiles - AYANOVA_FOLDER_TEMPORARY_SERVER_FILES = config.GetValue("AYANOVA_FOLDER_TEMPORARY_SERVER_FILES"); + AYANOVA_FOLDER_TEMPORARY_SERVER_FILES = FileUtil.StringPathDecodeEnvironmentVariables(config.GetValue("AYANOVA_FOLDER_TEMPORARY_SERVER_FILES")); //pgdump backup utility path - AYANOVA_BACKUP_PG_DUMP_PATH = config.GetValue("AYANOVA_BACKUP_PG_DUMP_PATH"); + AYANOVA_BACKUP_PG_DUMP_PATH = FileUtil.StringPathDecodeEnvironmentVariables(config.GetValue("AYANOVA_BACKUP_PG_DUMP_PATH")); //backdoor back door password superuser reset AYANOVA_SET_SUPERUSER_PW = config.GetValue("AYANOVA_SET_SUPERUSER_PW"); @@ -218,6 +218,7 @@ namespace AyaNova.Util } + //Fetch first url from list of urls (used by generator) internal static string FirstOfAyaNovaUseUrls {