1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2024-12-14 11:23:42 +02:00
Sonarr/NzbDrone.Common/EnviromentProvider.cs

58 lines
1.5 KiB
C#
Raw Normal View History

using System;
using System.IO;
using System.Reflection;
namespace NzbDrone.Common
{
public class EnviromentProvider
{
public virtual String LogPath
{
get { return Environment.CurrentDirectory; }
}
public virtual bool IsUserInteractive
{
get { return Environment.UserInteractive; }
}
public virtual string ApplicationPath
{
get
{
2011-10-13 05:24:30 +03:00
var dir = new FileInfo(Environment.CurrentDirectory).Directory;
while (!ContainsIIS(dir))
{
2011-10-13 05:24:30 +03:00
if (dir.Parent == null) break;
dir = dir.Parent;
}
if (ContainsIIS(dir)) return dir.FullName;
2011-10-13 05:24:30 +03:00
dir = new FileInfo(Assembly.GetExecutingAssembly().Location).Directory;
while (!ContainsIIS(dir))
2011-10-13 05:24:30 +03:00
{
if (dir.Parent == null) throw new ApplicationException("Can't fine IISExpress folder.");
dir = dir.Parent;
}
return dir.FullName;
}
}
public virtual string StartUpPath
{
get
{
return new FileInfo(Assembly.GetExecutingAssembly().Location).Directory.FullName;
}
}
private static bool ContainsIIS(DirectoryInfo dir)
{
return dir.GetDirectories("iisexpress").Length != 0;
}
}
2011-10-07 09:57:43 +03:00
}