diff --git a/NzbDrone.Api/Client/ClientSettings.cs b/NzbDrone.Api/Client/ClientSettings.cs new file mode 100644 index 000000000..40cc49550 --- /dev/null +++ b/NzbDrone.Api/Client/ClientSettings.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using NzbDrone.Common; +using NzbDrone.Common.Messaging; +using NzbDrone.Core.Lifecycle; + +namespace NzbDrone.Api.Client +{ + public class ClientSettings : IHandle + { + private readonly EnvironmentProvider _environmentProvider; + + private static readonly Regex VersionRegex = new Regex(@"(?<=Version:\s')(.*)(?=')", RegexOptions.IgnoreCase | RegexOptions.Compiled); + + public ClientSettings(EnvironmentProvider environmentProvider) + { + _environmentProvider = environmentProvider; + } + + public void Handle(ApplicationStartedEvent message) + { + //TODO: Update the APIKey (when we have it) + + var appFile = Path.Combine(_environmentProvider.StartUpPath, "UI", "app.js"); + var contents = File.ReadAllText(appFile); + var version = _environmentProvider.Version; + + contents = VersionRegex.Replace(contents, version.ToString()); + + File.WriteAllText(appFile, contents); + } + } +} diff --git a/NzbDrone.Api/NzbDrone.Api.csproj b/NzbDrone.Api/NzbDrone.Api.csproj index 83e5fd8fa..3deec7e7c 100644 --- a/NzbDrone.Api/NzbDrone.Api.csproj +++ b/NzbDrone.Api/NzbDrone.Api.csproj @@ -98,6 +98,7 @@ + diff --git a/UI/Shared/Footer/View.js b/UI/Shared/Footer/View.js index 03512522c..7933baaf3 100644 --- a/UI/Shared/Footer/View.js +++ b/UI/Shared/Footer/View.js @@ -7,7 +7,7 @@ define(['app', initialize: function () { this.model = new NzbDrone.Shared.Footer.Model(); - this.model.version = NzbDrone.Constants.Version; + this.model.set('version', NzbDrone.Constants.Version); } });