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.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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@
|
|||
"licenseUrl": "",
|
||||
|
||||
"dependencies": {
|
||||
"Newtonsoft.Json" : "7.0.1"
|
||||
"Microsoft.Dnx.Runtime.Abstractions": "1.0.0-*",
|
||||
"Newtonsoft.Json": "7.0.1"
|
||||
},
|
||||
|
||||
"commands": {
|
||||
|
|
|
|||
Loading…
Reference in New Issue