This utility method has been relocated in ST

This commit is contained in:
Matt Nadareski
2026-04-05 14:58:29 -04:00
parent fe0768dad7
commit f6f5818767
14 changed files with 2 additions and 184 deletions

View File

@@ -82,7 +82,6 @@ Below are a list of the included namespaces with links to their README files:
- [SabreTools.Data.Extensions](https://github.com/SabreTools/SabreTools.Serialization/tree/main/SabreTools.Data.Extensions)
- [SabreTools.Data.Models](https://github.com/SabreTools/SabreTools.Serialization/tree/main/SabreTools.Data.Models)
- [SabreTools.Metadata](https://github.com/SabreTools/SabreTools.Serialization/tree/main/SabreTools.Metadata)
- [SabreTools.Metadata.DatFiles](https://github.com/SabreTools/SabreTools.Serialization/tree/main/SabreTools.Metadata.DatFiles)
- [SabreTools.Metadata.DatItems](https://github.com/SabreTools/SabreTools.Serialization/tree/main/SabreTools.Metadata.Datitems)
- [SabreTools.Metadata.Filter](https://github.com/SabreTools/SabreTools.Serialization/tree/main/SabreTools.Metadata.Filter)

View File

@@ -16,7 +16,6 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SabreTools.Metadata\SabreTools.Metadata.csproj" />
<ProjectReference Include="..\SabreTools.Metadata.DatFiles\SabreTools.Metadata.DatFiles.csproj" />
<ProjectReference Include="..\SabreTools.Metadata.DatItems\SabreTools.Metadata.DatItems.csproj" />
</ItemGroup>

View File

@@ -36,7 +36,6 @@
<ItemGroup>
<ProjectReference Include="..\SabreTools.Data.Extensions\SabreTools.Data.Extensions.csproj" />
<ProjectReference Include="..\SabreTools.Metadata\SabreTools.Metadata.csproj" />
<ProjectReference Include="..\SabreTools.Metadata.DatItems\SabreTools.Metadata.DatItems.csproj" />
<ProjectReference Include="..\SabreTools.Metadata.Filter\SabreTools.Metadata.Filter.csproj" />
<ProjectReference Include="..\SabreTools.Serialization.CrossModel\SabreTools.Serialization.CrossModel.csproj" />

View File

@@ -38,7 +38,6 @@
<ItemGroup>
<ProjectReference Include="..\SabreTools.Data.Extensions\SabreTools.Data.Extensions.csproj" />
<ProjectReference Include="..\SabreTools.Metadata\SabreTools.Metadata.csproj" />
<ProjectReference Include="..\SabreTools.Metadata.Filter\SabreTools.Metadata.Filter.csproj" />
</ItemGroup>

View File

@@ -31,7 +31,8 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SabreTools.Metadata\SabreTools.Metadata.csproj" />
<ProjectReference Include="..\SabreTools.Data.Extensions\SabreTools.Data.Extensions.csproj" />
<ProjectReference Include="..\SabreTools.Data.Models\SabreTools.Data.Models.csproj" />
</ItemGroup>
<ItemGroup>

View File

@@ -1,21 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>
<IsPackable>false</IsPackable>
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="coverlet.collector" Version="8.0.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.3.0" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SabreTools.Metadata\SabreTools.Metadata.csproj" />
</ItemGroup>
</Project>

View File

@@ -1,32 +0,0 @@
using Xunit;
namespace SabreTools.Metadata.Test
{
public class UtilitiesTests
{
#region HasValidDatExtension
[Theory]
[InlineData(null, false)]
[InlineData("", false)]
[InlineData("no-extension", false)]
[InlineData("no-extension.", false)]
[InlineData("invalid.ext", false)]
[InlineData("invalid..ext", false)]
[InlineData("INVALID.EXT", false)]
[InlineData("INVALID..EXT", false)]
[InlineData(".dat", true)]
[InlineData(".DAT", true)]
[InlineData("valid_extension.dat", true)]
[InlineData("valid_extension..dat", true)]
[InlineData("valid_extension.DAT", true)]
[InlineData("valid_extension..DAT", true)]
public void HasValidDatExtensionTest(string? path, bool expected)
{
bool actual = Utilities.HasValidDatExtension(path);
Assert.Equal(expected, actual);
}
#endregion
}
}

View File

@@ -1,3 +0,0 @@
# SabreTools.Metadata
This library contains common code used across multiple metadata file operations.

View File

@@ -1,42 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- Assembly Properties -->
<TargetFrameworks>net20;net35;net40;net452;net462;net472;net48;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0;net10.0;netstandard2.0;netstandard2.1</TargetFrameworks>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<CheckEolTargetFramework>false</CheckEolTargetFramework>
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
<IncludeSymbols>true</IncludeSymbols>
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
<SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<Version>2.3.0</Version>
<!-- Package Properties -->
<Authors>Matt Nadareski</Authors>
<Description>Core functionality for metadata file processing</Description>
<Copyright>Copyright (c) Matt Nadareski 2016-2026</Copyright>
<PackageProjectUrl>https://github.com/SabreTools/</PackageProjectUrl>
<PackageReadmeFile>README.md</PackageReadmeFile>
<RepositoryUrl>https://github.com/SabreTools/SabreTools.Serialization</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageTags>metadata dat datfile</PackageTags>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SabreTools.Data.Extensions\SabreTools.Data.Extensions.csproj" />
<ProjectReference Include="..\SabreTools.Data.Models\SabreTools.Data.Models.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Net30.LinqBridge" Version="1.6.0.2" Condition="$(TargetFramework.StartsWith(`net2`))" />
</ItemGroup>
</Project>

View File

@@ -1,49 +0,0 @@
using System.IO;
namespace SabreTools.Metadata
{
/// <summary>
/// Static utility functions used throughout the library
/// </summary>
public static class Utilities
{
/// <summary>
/// Get if the given path has a valid DAT extension
/// </summary>
/// <param name="path">Path to check</param>
/// <returns>True if the extension is valid, false otherwise</returns>
public static bool HasValidDatExtension(string? path)
{
// If the path is null or empty, then we return false
if (string.IsNullOrEmpty(path))
return false;
// Get the extension from the path, if possible
string ext = Path.GetExtension(path).TrimStart('.').ToLowerInvariant();
// Check against the list of known DAT extensions
return ext switch
{
"csv" => true,
"dat" => true,
"json" => true,
"md2" => true,
"md4" => true,
"md5" => true,
"ripemd128" => true,
"ripemd160" => true,
"sfv" => true,
"sha1" => true,
"sha256" => true,
"sha384" => true,
"sha512" => true,
"spamsum" => true,
"ssv" => true,
"tsv" => true,
"txt" => true,
"xml" => true,
_ => false,
};
}
}
}

View File

@@ -35,12 +35,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Serialization.Re
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Serialization.Writers.Test", "SabreTools.Serialization.Writers.Test\SabreTools.Serialization.Writers.Test.csproj", "{99619CA9-6D7D-4653-BD1E-8F586F219607}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Metadata", "SabreTools.Metadata\SabreTools.Metadata.csproj", "{F4C9FAE7-6777-4C1A-BEE7-DA664CA3485B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Metadata.Filter", "SabreTools.Metadata.Filter\SabreTools.Metadata.Filter.csproj", "{76E096C6-72A9-4A5C-A250-95D2BBBFA5D1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Metadata.Test", "SabreTools.Metadata.Test\SabreTools.Metadata.Test.csproj", "{D817566C-C94F-4ADE-A36A-F67B3F644299}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Metadata.Filter.Test", "SabreTools.Metadata.Filter.Test\SabreTools.Metadata.Filter.Test.csproj", "{43D66007-FCAA-4F69-893B-562B0B61B8B1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Metadata.DatItems", "SabreTools.Metadata.DatItems\SabreTools.Metadata.DatItems.csproj", "{14931F5A-203A-4C22-A162-D38288B6A576}"
@@ -253,18 +249,6 @@ Global
{99619CA9-6D7D-4653-BD1E-8F586F219607}.Release|x64.Build.0 = Release|Any CPU
{99619CA9-6D7D-4653-BD1E-8F586F219607}.Release|x86.ActiveCfg = Release|Any CPU
{99619CA9-6D7D-4653-BD1E-8F586F219607}.Release|x86.Build.0 = Release|Any CPU
{F4C9FAE7-6777-4C1A-BEE7-DA664CA3485B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F4C9FAE7-6777-4C1A-BEE7-DA664CA3485B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F4C9FAE7-6777-4C1A-BEE7-DA664CA3485B}.Debug|x64.ActiveCfg = Debug|Any CPU
{F4C9FAE7-6777-4C1A-BEE7-DA664CA3485B}.Debug|x64.Build.0 = Debug|Any CPU
{F4C9FAE7-6777-4C1A-BEE7-DA664CA3485B}.Debug|x86.ActiveCfg = Debug|Any CPU
{F4C9FAE7-6777-4C1A-BEE7-DA664CA3485B}.Debug|x86.Build.0 = Debug|Any CPU
{F4C9FAE7-6777-4C1A-BEE7-DA664CA3485B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F4C9FAE7-6777-4C1A-BEE7-DA664CA3485B}.Release|Any CPU.Build.0 = Release|Any CPU
{F4C9FAE7-6777-4C1A-BEE7-DA664CA3485B}.Release|x64.ActiveCfg = Release|Any CPU
{F4C9FAE7-6777-4C1A-BEE7-DA664CA3485B}.Release|x64.Build.0 = Release|Any CPU
{F4C9FAE7-6777-4C1A-BEE7-DA664CA3485B}.Release|x86.ActiveCfg = Release|Any CPU
{F4C9FAE7-6777-4C1A-BEE7-DA664CA3485B}.Release|x86.Build.0 = Release|Any CPU
{76E096C6-72A9-4A5C-A250-95D2BBBFA5D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{76E096C6-72A9-4A5C-A250-95D2BBBFA5D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{76E096C6-72A9-4A5C-A250-95D2BBBFA5D1}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -277,18 +261,6 @@ Global
{76E096C6-72A9-4A5C-A250-95D2BBBFA5D1}.Release|x64.Build.0 = Release|Any CPU
{76E096C6-72A9-4A5C-A250-95D2BBBFA5D1}.Release|x86.ActiveCfg = Release|Any CPU
{76E096C6-72A9-4A5C-A250-95D2BBBFA5D1}.Release|x86.Build.0 = Release|Any CPU
{D817566C-C94F-4ADE-A36A-F67B3F644299}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D817566C-C94F-4ADE-A36A-F67B3F644299}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D817566C-C94F-4ADE-A36A-F67B3F644299}.Debug|x64.ActiveCfg = Debug|Any CPU
{D817566C-C94F-4ADE-A36A-F67B3F644299}.Debug|x64.Build.0 = Debug|Any CPU
{D817566C-C94F-4ADE-A36A-F67B3F644299}.Debug|x86.ActiveCfg = Debug|Any CPU
{D817566C-C94F-4ADE-A36A-F67B3F644299}.Debug|x86.Build.0 = Debug|Any CPU
{D817566C-C94F-4ADE-A36A-F67B3F644299}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D817566C-C94F-4ADE-A36A-F67B3F644299}.Release|Any CPU.Build.0 = Release|Any CPU
{D817566C-C94F-4ADE-A36A-F67B3F644299}.Release|x64.ActiveCfg = Release|Any CPU
{D817566C-C94F-4ADE-A36A-F67B3F644299}.Release|x64.Build.0 = Release|Any CPU
{D817566C-C94F-4ADE-A36A-F67B3F644299}.Release|x86.ActiveCfg = Release|Any CPU
{D817566C-C94F-4ADE-A36A-F67B3F644299}.Release|x86.Build.0 = Release|Any CPU
{43D66007-FCAA-4F69-893B-562B0B61B8B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{43D66007-FCAA-4F69-893B-562B0B61B8B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{43D66007-FCAA-4F69-893B-562B0B61B8B1}.Debug|x64.ActiveCfg = Debug|Any CPU

View File

@@ -41,8 +41,6 @@
<ItemGroup>
<Compile Include="..\SabreTools.Data.Extensions\*.cs" />
<Compile Include="..\SabreTools.Data.Models\**\*.cs" Exclude="..\SabreTools.Data.Models\obj\**\*.cs" />
<Compile Include="..\SabreTools.Metadata\*.cs" />
<Compile Include="..\SabreTools.Metadata\Tools\*.cs" />
<Compile Include="..\SabreTools.Metadata.DatFiles\*.cs" />
<Compile Include="..\SabreTools.Metadata.DatFiles\Formats\*.cs" />
<Compile Include="..\SabreTools.Metadata.DatItems\*.cs" />

View File

@@ -81,7 +81,6 @@ if [ $NO_BUILD = false ]; then
if [ $INCLUDE_UNPUBLISHED = true ]; then
dotnet pack SabreTools.Data.Extensions/SabreTools.Data.Extensions.csproj --output $BUILD_FOLDER
dotnet pack SabreTools.Data.Models/SabreTools.Data.Models.csproj --output $BUILD_FOLDER
dotnet pack SabreTools.Metadata/SabreTools.Metadata.csproj --output $BUILD_FOLDER
dotnet pack SabreTools.Metadata.DatFiles/SabreTools.Metadata.DatFiles.csproj --output $BUILD_FOLDER
dotnet pack SabreTools.Metadata.DatItems/SabreTools.Metadata.DatItems.csproj --output $BUILD_FOLDER
dotnet pack SabreTools.Metadata.Filter/SabreTools.Metadata.Filter.csproj --output $BUILD_FOLDER

View File

@@ -72,7 +72,6 @@ if (!$NO_BUILD.IsPresent) {
if ($INCLUDE_UNPUBLISHED.IsPresent) {
dotnet pack SabreTools.Data.Extensions\SabreTools.Data.Extensions.csproj --output $BUILD_FOLDER
dotnet pack SabreTools.Data.Models\SabreTools.Data.Models.csproj --output $BUILD_FOLDER
dotnet pack SabreTools.Metadata\SabreTools.Metadata.csproj --output $BUILD_FOLDER
dotnet pack SabreTools.Metadata.DatFiles\SabreTools.Metadata.DatFiles.csproj --output $BUILD_FOLDER
dotnet pack SabreTools.Metadata.DatItems\SabreTools.Metadata.DatItems.csproj --output $BUILD_FOLDER
dotnet pack SabreTools.Metadata.Filter\SabreTools.Metadata.Filter.csproj --output $BUILD_FOLDER