mirror of
https://github.com/lidarr/Lidarr
synced 2024-12-25 17:17:02 +00:00
Cleaned up Environment.ApplicationPath
This commit is contained in:
parent
6778a6ed99
commit
115b06821e
2 changed files with 36 additions and 19 deletions
|
@ -44,28 +44,42 @@ public virtual string ApplicationPath
|
|||
{
|
||||
get
|
||||
{
|
||||
var dir = new DirectoryInfo(Environment.CurrentDirectory);
|
||||
string applicationPath;
|
||||
|
||||
while (!ContainsIIS(dir))
|
||||
{
|
||||
if (dir.Parent == null) break;
|
||||
dir = dir.Parent;
|
||||
}
|
||||
applicationPath = GetApplicationPath(Environment.CurrentDirectory);
|
||||
if (!string.IsNullOrWhiteSpace(applicationPath))
|
||||
return applicationPath;
|
||||
|
||||
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))
|
||||
{
|
||||
if (dir.Parent == null) throw new ApplicationException("Can't fine IISExpress folder.");
|
||||
dir = dir.Parent;
|
||||
}
|
||||
|
||||
return dir.FullName;
|
||||
throw new ApplicationException("Can't fine IISExpress folder.");
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
{
|
||||
|
@ -110,9 +124,14 @@ public virtual int NzbDroneProcessIdFromEnviroment
|
|||
}
|
||||
}
|
||||
|
||||
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.Diagnostics;
|
||||
using System.IO;
|
||||
using NLog;
|
||||
using Ninject;
|
||||
using NzbDrone.Common;
|
||||
using NzbDrone.Common.Model;
|
||||
|
||||
namespace NzbDrone.Providers
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue