From 0fc3d224ab74f24bc9fb5acc255b7e20a692a780 Mon Sep 17 00:00:00 2001 From: flightlevel Date: Sat, 28 May 2016 19:40:55 +1000 Subject: [PATCH] Allow Custom Data Folder (#355) Allow Custom Data Folder --- src/Jackett.Console/ConsoleOptions.cs | 3 +++ src/Jackett.Console/Program.cs | 7 +++++++ src/Jackett/Services/ConfigurationService.cs | 5 +++++ src/Jackett/Startup.cs | 6 ++++++ 4 files changed, 21 insertions(+) diff --git a/src/Jackett.Console/ConsoleOptions.cs b/src/Jackett.Console/ConsoleOptions.cs index 74982506b..42eb80be4 100644 --- a/src/Jackett.Console/ConsoleOptions.cs +++ b/src/Jackett.Console/ConsoleOptions.cs @@ -60,6 +60,9 @@ namespace Jackett.Console [Option('n', "IgnoreSslErrors", HelpText = "[true/false] Linux Libcurl - Ignores invalid SSL certificates")] public bool? IgnoreSslErrors { get; set; } + [Option('d', "DataFolder", HelpText = "Specify the location of the data folder (Must be admin on Windows) eg. --DataFolder=\"D:\\Your Data\\Jackett\\\"")] + public string DataFolder { get; set; } + [ParserState] public IParserState LastParserState { get; set; } } diff --git a/src/Jackett.Console/Program.cs b/src/Jackett.Console/Program.cs index f5a3e8d70..707057476 100644 --- a/src/Jackett.Console/Program.cs +++ b/src/Jackett.Console/Program.cs @@ -99,6 +99,13 @@ namespace JackettConsole Engine.Logger.Info("Curl will ignore SSL certificate errors."); } + // Choose Data Folder + if (!string.IsNullOrWhiteSpace(options.DataFolder)) + { + Startup.CustomDataFolder = options.DataFolder.Replace("\"", string.Empty).Replace("'", string.Empty).Replace(@"\\", @"\"); + Engine.Logger.Info("Jackett Data will be stored in: " + Startup.CustomDataFolder); + } + /* ====== Actions ===== */ // Install service diff --git a/src/Jackett/Services/ConfigurationService.cs b/src/Jackett/Services/ConfigurationService.cs index 6c9b78216..1e366913e 100644 --- a/src/Jackett/Services/ConfigurationService.cs +++ b/src/Jackett/Services/ConfigurationService.cs @@ -213,6 +213,11 @@ namespace Jackett.Services /// public static string GetAppDataFolderStatic() { + if (!string.IsNullOrWhiteSpace(Startup.CustomDataFolder)) + { + return Startup.CustomDataFolder; + } + if (System.Environment.OSVersion.Platform == PlatformID.Unix) { return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Jackett"); diff --git a/src/Jackett/Startup.cs b/src/Jackett/Startup.cs index 3fb1814ba..52e24dbbc 100644 --- a/src/Jackett/Startup.cs +++ b/src/Jackett/Startup.cs @@ -58,6 +58,12 @@ namespace Jackett set; } + public static string CustomDataFolder + { + get; + set; + } + public static string BasePath { get;