Make LibuvCopier work on CoreCLR even without DNX env variables

- This should fix our AppVeyor builds
This commit is contained in:
Stephen Halter 2015-10-13 12:17:16 -07:00
parent 6aaa3cbe06
commit 06e895b7b6
2 changed files with 30 additions and 14 deletions

View File

@ -1,12 +1,20 @@
using System;
using System.IO;
using System.Linq;
using Microsoft.Dnx.Runtime;
using Newtonsoft.Json.Linq;
namespace Microsoft.AspNet.Server.Kestrel.LibuvCopier
{
public class Program
{
private readonly IRuntimeEnvironment _runtimeEnv;
public Program(IRuntimeEnvironment runtimeEnv)
{
_runtimeEnv = runtimeEnv;
}
public void Main(string[] args)
{
try
@ -17,23 +25,12 @@ namespace Microsoft.AspNet.Server.Kestrel.LibuvCopier
{
var dnxFolder = Environment.GetEnvironmentVariable("DNX_HOME");
#if DNX451
// DNXCore,Version=v5.0 error CS0117: 'Environment' does not contain a definition for 'SpecialFolder'
// DNXCore,Version=v5.0 error CS0117: 'Environment' does not contain a definition for 'GetFolderPath'
if (string.IsNullOrEmpty(dnxFolder))
{
dnxFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".dnx");
dnxFolder = Path.Combine(GetHome(), ".dnx");
}
#endif
if (!string.IsNullOrEmpty(dnxFolder))
{
packagesFolder = Path.Combine(dnxFolder, "packages");
}
else
{
throw new Exception("DNX folder not found. Try setting the DNX_HOME and/or DNX_PACKAGES environment variables.");
}
packagesFolder = Path.Combine(dnxFolder, "packages");
}
packagesFolder = Environment.ExpandEnvironmentVariables(packagesFolder);
@ -59,5 +56,23 @@ namespace Microsoft.AspNet.Server.Kestrel.LibuvCopier
throw;
}
}
// Copied from DNX's DnuEnvironment.cs
private string GetHome()
{
#if DNX451
return Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
#else
if (_runtimeEnv.OperatingSystem == "Windows")
{
return Environment.GetEnvironmentVariable("USERPROFILE") ??
Environment.GetEnvironmentVariable("HOMEDRIVE") + Environment.GetEnvironmentVariable("HOMEPATH");
}
else
{
return Environment.GetEnvironmentVariable("HOME");
}
#endif
}
}
}

View File

@ -7,7 +7,8 @@
"licenseUrl": "",
"dependencies": {
"Newtonsoft.Json" : "7.0.1"
"Microsoft.Dnx.Runtime.Abstractions": "1.0.0-*",
"Newtonsoft.Json": "7.0.1"
},
"commands": {