diff --git a/src/Ombi/ClientApp/src/main.ts b/src/Ombi/ClientApp/src/main.ts
index 85668688d..14d0d41bf 100644
--- a/src/Ombi/ClientApp/src/main.ts
+++ b/src/Ombi/ClientApp/src/main.ts
@@ -15,9 +15,7 @@ import { AppModule } from "./app/app.module";
import { hmrBootstrap } from "./hmr";
declare var module: any;
-// declare var __webpack_require__: any;
-// __webpack_require__.p = '/ombi';
-// __webpack_require__ = '/ombi';
+
if (environment.production) {
enableProdMode();
}
diff --git a/src/Ombi/Ombi.csproj b/src/Ombi/Ombi.csproj
index 9ac73264c..00bdc9f4c 100644
--- a/src/Ombi/Ombi.csproj
+++ b/src/Ombi/Ombi.csproj
@@ -64,7 +64,7 @@
-
+
diff --git a/src/Ombi/Program.cs b/src/Ombi/Program.cs
index 46b5c8559..8f77657dc 100644
--- a/src/Ombi/Program.cs
+++ b/src/Ombi/Program.cs
@@ -13,6 +13,10 @@ using Ombi.Extensions;
using Ombi.Helpers;
using System.Threading.Tasks;
using System.Collections.Generic;
+using Newtonsoft.Json;
+using Ombi.Settings.Settings.Models;
+using System.Diagnostics;
+using System.IO;
namespace Ombi
{
@@ -46,7 +50,10 @@ namespace Ombi
});
Console.WriteLine(HelpOutput(result));
-
+ if (baseUrl.HasValue())
+ {
+ Console.WriteLine($"Base Url: {baseUrl}");
+ }
UrlArgs = host;
var urlValue = string.Empty;
@@ -61,14 +68,14 @@ namespace Ombi
using (var provider = services.BuildServiceProvider())
{
var settingsDb = provider.GetRequiredService
();
+ var ombiDb = provider.GetRequiredService();
if (migrate)
{
Console.WriteLine("Migrate in progress...");
-
+
var migrationTasks = new List();
var externalDb = provider.GetRequiredService();
- var ombiDb = provider.GetRequiredService();
migrationTasks.Add(settingsDb.Database.MigrateAsync());
migrationTasks.Add(ombiDb.Database.MigrateAsync());
migrationTasks.Add(externalDb.Database.MigrateAsync());
@@ -81,7 +88,7 @@ namespace Ombi
var config = await settingsDb.ApplicationConfigurations.ToListAsync();
var url = config.FirstOrDefault(x => x.Type == ConfigurationTypes.Url);
- var dbBaseUrl = config.FirstOrDefault(x => x.Type == ConfigurationTypes.BaseUrl);
+ var ombiSettingsContent = await settingsDb.Settings.FirstOrDefaultAsync(x => x.SettingsName == "OmbiSettings");
var securityToken = config.FirstOrDefault(x => x.Type == ConfigurationTypes.SecurityToken);
await CheckSecurityToken(securityToken, settingsDb, instance);
if (url == null)
@@ -118,34 +125,7 @@ namespace Ombi
urlValue = host;
}
- if (dbBaseUrl == null)
- {
- if (baseUrl.HasValue() && baseUrl.StartsWith("/"))
- {
- dbBaseUrl = new ApplicationConfiguration
- {
- Type = ConfigurationTypes.BaseUrl,
- Value = baseUrl
- };
-
- using (var tran = await settingsDb.Database.BeginTransactionAsync())
- {
- settingsDb.ApplicationConfigurations.Add(dbBaseUrl);
- await settingsDb.SaveChangesAsync();
- await tran.CommitAsync();
- }
- }
- }
- else if (baseUrl.HasValue() && !baseUrl.Equals(dbBaseUrl.Value))
- {
- dbBaseUrl.Value = baseUrl;
-
- using (var tran = await settingsDb.Database.BeginTransactionAsync())
- {
- await settingsDb.SaveChangesAsync();
- await tran.CommitAsync();
- }
- }
+ await SortOutBaseUrl(baseUrl, settingsDb, ombiSettingsContent);
Console.WriteLine($"We are running on {urlValue}");
@@ -197,6 +177,80 @@ namespace Ombi
return result.ToString();
}
+
+ private static async Task SortOutBaseUrl(string baseUrl, SettingsContext settingsDb, GlobalSettings ombiSettingsContent)
+ {
+ var setBaseUrl = false;
+ if (ombiSettingsContent == null)
+ {
+ Console.WriteLine("Creating new Settings entity");
+ ombiSettingsContent = new GlobalSettings
+ {
+ SettingsName = "OmbiSettings",
+ Content = JsonConvert.SerializeObject(new OmbiSettings())
+ };
+ using (var tran = await settingsDb.Database.BeginTransactionAsync())
+ {
+ settingsDb.Add(ombiSettingsContent);
+ await settingsDb.SaveChangesAsync();
+ await tran.CommitAsync();
+ }
+ }
+ var ombiSettings = JsonConvert.DeserializeObject(ombiSettingsContent.Content);
+ if (ombiSettings == null)
+ {
+ if (baseUrl.HasValue() && baseUrl.StartsWith("/"))
+ {
+ setBaseUrl = true;
+ ombiSettings = new OmbiSettings
+ {
+ BaseUrl = baseUrl
+ };
+
+ ombiSettingsContent.Content = JsonConvert.SerializeObject(ombiSettings);
+ using (var tran = await settingsDb.Database.BeginTransactionAsync())
+ {
+ settingsDb.Update(ombiSettingsContent);
+ await settingsDb.SaveChangesAsync();
+ await tran.CommitAsync();
+ }
+ }
+ }
+ else if (baseUrl.HasValue() && !baseUrl.Equals(ombiSettings.BaseUrl))
+ {
+ setBaseUrl = true;
+ ombiSettings.BaseUrl = baseUrl;
+
+ ombiSettingsContent.Content = JsonConvert.SerializeObject(ombiSettings);
+ using (var tran = await settingsDb.Database.BeginTransactionAsync())
+ {
+ settingsDb.Update(ombiSettingsContent);
+ await settingsDb.SaveChangesAsync();
+ await tran.CommitAsync();
+ }
+ }
+
+
+ if (setBaseUrl)
+ {
+ var process = Process.GetCurrentProcess().MainModule.FileName;
+ var ombiInstalledDir = Path.GetDirectoryName(process);
+ var indexPath = Path.Combine(ombiInstalledDir, "ClientApp", "dist", "index.html");
+ if (!File.Exists(indexPath))
+ {
+ var error = $"Can't set the base URL because we cannot find the file at {indexPath}, if you are trying to set a base url please report this on Github!";
+ Console.WriteLine(error);
+ throw new Exception(error);
+ }
+ var indexHtml = await File.ReadAllTextAsync(indexPath);
+ indexHtml = indexHtml.Replace(""
+ , $"", StringComparison.InvariantCultureIgnoreCase);
+
+ await File.WriteAllTextAsync(indexPath, indexHtml);
+
+ Console.WriteLine($"Wrote new baseurl at {indexPath}");
+ }
+ }
}
public class Options
diff --git a/src/Ombi/Startup.cs b/src/Ombi/Startup.cs
index 49227a344..804abb840 100644
--- a/src/Ombi/Startup.cs
+++ b/src/Ombi/Startup.cs
@@ -153,25 +153,6 @@ namespace Ombi
ombiService.SaveSettings(settings);
}
- if (!settings.Set)
- {
- settings.Set = true;
- settings.CollectAnalyticData = true;
- ombiService.SaveSettings(settings);
- }
-
- // Check if it's in the startup args
- var appConfig = serviceProvider.GetService();
- var baseUrl = appConfig.Get(ConfigurationTypes.BaseUrl);
- if (baseUrl != null)
- {
- if (baseUrl.Value.HasValue())
- {
- settings.BaseUrl = baseUrl.Value;
- ombiService.SaveSettings(settings);
- }
- }
-
if (settings.BaseUrl.HasValue())
{
app.UsePathBase(settings.BaseUrl);
@@ -233,8 +214,8 @@ namespace Ombi
app.UseSpa(spa =>
{
-#if DEBUG
spa.Options.SourcePath = "ClientApp";
+#if DEBUG
spa.UseProxyToSpaDevelopmentServer("http://localhost:3578");
#endif
});