Check null for env (#8286)
As you see, the implementation of the 3 OS to check PATH is different. There is not too much to extract. And I tried to move the "contains a folder path in env:path?" to a method. But that method requires to pass in env:path, targetapath and path separator for different OS. This method has low value. And people still must remember to use this method. So I just added simple null check to the place I used GetEnvPath.
This commit is contained in:
parent
15725d7cac
commit
4e5188817b
3 changed files with 31 additions and 9 deletions
|
@ -48,8 +48,15 @@ namespace Microsoft.DotNet.ShellShim
|
|||
|
||||
private bool PackageExecutablePathExists()
|
||||
{
|
||||
return _environmentProvider
|
||||
.GetEnvironmentVariable(PathName)
|
||||
var environmentVariable = _environmentProvider
|
||||
.GetEnvironmentVariable(PathName);
|
||||
|
||||
if (environmentVariable == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return environmentVariable
|
||||
.Split(':').Contains(_packageExecutablePath.Path);
|
||||
}
|
||||
|
||||
|
|
|
@ -49,10 +49,15 @@ namespace Microsoft.DotNet.ShellShim
|
|||
|
||||
private bool PackageExecutablePathExists()
|
||||
{
|
||||
return _environmentProvider.GetEnvironmentVariable(PathName).Split(':')
|
||||
.Contains(_packageExecutablePath.PathWithTilde) ||
|
||||
_environmentProvider.GetEnvironmentVariable(PathName).Split(':')
|
||||
.Contains(_packageExecutablePath.Path);
|
||||
var environmentVariable = _environmentProvider.GetEnvironmentVariable(PathName);
|
||||
|
||||
if (environmentVariable == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return environmentVariable.Split(':').Contains(_packageExecutablePath.PathWithTilde)
|
||||
|| environmentVariable.Split(':').Contains(_packageExecutablePath.Path);
|
||||
}
|
||||
|
||||
public void PrintAddPathInstructionIfPathDoesNotExist()
|
||||
|
|
|
@ -40,9 +40,19 @@ namespace Microsoft.DotNet.ShellShim
|
|||
|
||||
private bool PackageExecutablePathExists()
|
||||
{
|
||||
return Environment.GetEnvironmentVariable(PathName, EnvironmentVariableTarget.User).Split(';').Contains(_packageExecutablePath)
|
||||
|| Environment.GetEnvironmentVariable(PathName, EnvironmentVariableTarget.Machine).Split(';').Contains(_packageExecutablePath)
|
||||
|| Environment.GetEnvironmentVariable(PathName, EnvironmentVariableTarget.Process).Split(';').Contains(_packageExecutablePath);
|
||||
return EnvironmentVariableConatinsPackageExecutablePath(Environment.GetEnvironmentVariable(PathName, EnvironmentVariableTarget.User))
|
||||
|| EnvironmentVariableConatinsPackageExecutablePath(Environment.GetEnvironmentVariable(PathName, EnvironmentVariableTarget.Machine))
|
||||
|| EnvironmentVariableConatinsPackageExecutablePath(Environment.GetEnvironmentVariable(PathName, EnvironmentVariableTarget.Process));
|
||||
}
|
||||
|
||||
private bool EnvironmentVariableConatinsPackageExecutablePath(string environmentVariable)
|
||||
{
|
||||
if (environmentVariable == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return environmentVariable.Split(';').Contains(_packageExecutablePath);
|
||||
}
|
||||
|
||||
public void PrintAddPathInstructionIfPathDoesNotExist()
|
||||
|
|
Loading…
Reference in a new issue