Cleaned up Environment.ApplicationPath

pull/4/head
kay.one 13 years ago
parent 6778a6ed99
commit 115b06821e

@ -44,26 +44,40 @@ 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;
} applicationPath = GetApplicationPath(StartUpPath);
if (!string.IsNullOrWhiteSpace(applicationPath))
return applicationPath;
if (ContainsIIS(dir)) return dir.FullName; applicationPath = GetApplicationPath(NzbDronePathFromEnviroment);
if (!string.IsNullOrWhiteSpace(applicationPath))
return applicationPath;
dir = new FileInfo(Assembly.GetExecutingAssembly().Location).Directory; throw new ApplicationException("Can't fine IISExpress folder.");
}
}
while (!ContainsIIS(dir)) private string GetApplicationPath(string dir)
{ {
if (dir.Parent == null) throw new ApplicationException("Can't fine IISExpress folder."); var directoryInfo = new DirectoryInfo(dir);
dir = dir.Parent;
while (!ContainsIIS(directoryInfo))
{
if (directoryInfo.Parent == null) break;
directoryInfo = directoryInfo.Parent;
} }
return dir.FullName; return directoryInfo.FullName;
} }
private static bool ContainsIIS(DirectoryInfo dir)
{
return dir.GetDirectories(IIS_FOLDER_NAME).Length != 0;
} }
@ -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…
Cancel
Save