mirror of
https://github.com/Sonarr/Sonarr.git
synced 2025-03-29 22:06:56 +02:00
Cleaned up Environment.ApplicationPath
This commit is contained in:
parent
6778a6ed99
commit
115b06821e
@ -44,28 +44,42 @@ namespace NzbDrone.Common
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
var dir = new DirectoryInfo(Environment.CurrentDirectory);
|
string applicationPath;
|
||||||
|
|
||||||
while (!ContainsIIS(dir))
|
applicationPath = GetApplicationPath(Environment.CurrentDirectory);
|
||||||
{
|
if (!string.IsNullOrWhiteSpace(applicationPath))
|
||||||
if (dir.Parent == null) break;
|
return applicationPath;
|
||||||
dir = dir.Parent;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ContainsIIS(dir)) return dir.FullName;
|
applicationPath = GetApplicationPath(StartUpPath);
|
||||||
|
if (!string.IsNullOrWhiteSpace(applicationPath))
|
||||||
|
return applicationPath;
|
||||||
|
|
||||||
dir = new FileInfo(Assembly.GetExecutingAssembly().Location).Directory;
|
applicationPath = GetApplicationPath(NzbDronePathFromEnviroment);
|
||||||
|
if (!string.IsNullOrWhiteSpace(applicationPath))
|
||||||
|
return applicationPath;
|
||||||
|
|
||||||
while (!ContainsIIS(dir))
|
throw new ApplicationException("Can't fine IISExpress folder.");
|
||||||
{
|
|
||||||
if (dir.Parent == null) throw new ApplicationException("Can't fine IISExpress folder.");
|
|
||||||
dir = dir.Parent;
|
|
||||||
}
|
|
||||||
|
|
||||||
return dir.FullName;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string GetApplicationPath(string dir)
|
||||||
|
{
|
||||||
|
var directoryInfo = new DirectoryInfo(dir);
|
||||||
|
|
||||||
|
while (!ContainsIIS(directoryInfo))
|
||||||
|
{
|
||||||
|
if (directoryInfo.Parent == null) break;
|
||||||
|
directoryInfo = directoryInfo.Parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
return directoryInfo.FullName;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool ContainsIIS(DirectoryInfo dir)
|
||||||
|
{
|
||||||
|
return dir.GetDirectories(IIS_FOLDER_NAME).Length != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public virtual string StartUpPath
|
public virtual string StartUpPath
|
||||||
{
|
{
|
||||||
@ -110,9 +124,14 @@ namespace NzbDrone.Common
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool ContainsIIS(DirectoryInfo dir)
|
public virtual string NzbDronePathFromEnviroment
|
||||||
{
|
{
|
||||||
return dir.GetDirectories(IIS_FOLDER_NAME).Length != 0;
|
get
|
||||||
|
{
|
||||||
|
return Environment.GetEnvironmentVariable(NZBDRONE_PATH);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,10 +1,8 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
|
||||||
using NLog;
|
using NLog;
|
||||||
using Ninject;
|
using Ninject;
|
||||||
using NzbDrone.Common;
|
using NzbDrone.Common;
|
||||||
using NzbDrone.Common.Model;
|
|
||||||
|
|
||||||
namespace NzbDrone.Providers
|
namespace NzbDrone.Providers
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user