Make LibuvCopier work on CoreCLR even without DNX env variables
- This should fix our AppVeyor builds
This commit is contained in:
parent
6aaa3cbe06
commit
06e895b7b6
|
|
@ -1,12 +1,20 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Microsoft.Dnx.Runtime;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Server.Kestrel.LibuvCopier
|
namespace Microsoft.AspNet.Server.Kestrel.LibuvCopier
|
||||||
{
|
{
|
||||||
public class Program
|
public class Program
|
||||||
{
|
{
|
||||||
|
private readonly IRuntimeEnvironment _runtimeEnv;
|
||||||
|
|
||||||
|
public Program(IRuntimeEnvironment runtimeEnv)
|
||||||
|
{
|
||||||
|
_runtimeEnv = runtimeEnv;
|
||||||
|
}
|
||||||
|
|
||||||
public void Main(string[] args)
|
public void Main(string[] args)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|
@ -17,23 +25,12 @@ namespace Microsoft.AspNet.Server.Kestrel.LibuvCopier
|
||||||
{
|
{
|
||||||
var dnxFolder = Environment.GetEnvironmentVariable("DNX_HOME");
|
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))
|
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");
|
||||||
{
|
|
||||||
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 = Environment.ExpandEnvironmentVariables(packagesFolder);
|
packagesFolder = Environment.ExpandEnvironmentVariables(packagesFolder);
|
||||||
|
|
@ -59,5 +56,23 @@ namespace Microsoft.AspNet.Server.Kestrel.LibuvCopier
|
||||||
throw;
|
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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,8 @@
|
||||||
"licenseUrl": "",
|
"licenseUrl": "",
|
||||||
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Newtonsoft.Json" : "7.0.1"
|
"Microsoft.Dnx.Runtime.Abstractions": "1.0.0-*",
|
||||||
|
"Newtonsoft.Json": "7.0.1"
|
||||||
},
|
},
|
||||||
|
|
||||||
"commands": {
|
"commands": {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue