Avoid modifying csproj globbing includes

Check if the found globbing include already matches the new path on
moving scripts to avoid modifying users' csproj files.
This commit is contained in:
Raul Santos 2021-10-26 13:02:56 +02:00
parent fa3fc6ff0d
commit ced4f3519d

View file

@ -77,6 +77,19 @@ namespace GodotTools.ProjectEditor
if (item == null)
return;
// Check if the found item include already matches the new path
var glob = MSBuildGlob.Parse(item.Include);
if (glob.IsMatch(normalizedNewInclude))
return;
// Otherwise, if the item include uses globbing it's better to add a new item instead of modifying
if (!string.IsNullOrEmpty(glob.WildcardDirectoryPart) || glob.FilenamePart.Contains("*"))
{
root.AddItem(itemType, normalizedNewInclude.RelativeToPath(dir).Replace("/", "\\"));
root.Save();
return;
}
item.Include = normalizedNewInclude.RelativeToPath(dir).Replace("/", "\\");
root.Save();
}