From 276bf07dacf87b22a95f96d25670c3560141905f Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Tue, 12 Oct 2021 20:57:49 -0700 Subject: [PATCH] GetRelativePath should check if path is already relative before calling [IO.Path]::GetRelativePath --- eng/common/scripts/Save-Package-Properties.ps1 | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/eng/common/scripts/Save-Package-Properties.ps1 b/eng/common/scripts/Save-Package-Properties.ps1 index 10cb4158c01f..1b543ba37c5d 100644 --- a/eng/common/scripts/Save-Package-Properties.ps1 +++ b/eng/common/scripts/Save-Package-Properties.ps1 @@ -73,6 +73,14 @@ function GetRelativePath($path) { if (!$path) { return '' } + + # If the path is already relative return the path. Calling `GetRelativePath` + # on a relative path converts the relative path to an absolute path based on + # the current working directory which can result in unexpected outputs. + if (![IO.Path]::IsPathRooted($path)) { + return $path + } + $relativeTo = Resolve-Path $PSScriptRoot/../../../ # Replace "\" with "/" so the path is valid across other platforms and tools $relativePath = [IO.Path]::GetRelativePath($relativeTo, $path) -replace "\\", '/'