Skip to content

Commit

Permalink
lax
Browse files Browse the repository at this point in the history
- Filename does not match "<name>-<version>-<platform>.zip" convention
- IcoPathDark missing in package
  • Loading branch information
hlaueriksson committed Oct 5, 2024
1 parent 6b79994 commit a750920
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 2 deletions.
5 changes: 3 additions & 2 deletions src/Community.PowerToys.Run.Plugin.Lint/Rules.cs
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ public IEnumerable<string> Validate()
if (!PackageRegex().IsMatch(package.FileInfo.Name)) yield return $"Filename does not match {"<name>-<version>-<platform>.zip".ToQuote()} convention";
}

[GeneratedRegex(@"^\w+-\d+\.\d+\.\d+-(arm64|x64)\.zip$")]
[GeneratedRegex(@"^(?<name>[\w\.]+)-(?<version>\d+\.\d+\.\d+)-(?<platform>(?i:arm64|x64))\.zip$")]
private static partial Regex PackageRegex();
}

Expand Down Expand Up @@ -258,8 +258,9 @@ public IEnumerable<string> Validate()

string? RootFolder() => package.ZipArchive.Entries.Select(x => x.FullName.Split('\\', '/')[0]).Distinct().FirstOrDefault();
string? GetFilenameVersion() => FilenameVersionRegex().Match(package.FileInfo.Name).Value;
bool Exists(string path) => package.ZipArchive.Entries.Any(x => x.FullName.EndsWith(path, StringComparison.Ordinal));
bool Exists(string path) => package.ZipArchive.Entries.Any(x => NormalizePath(x.FullName).EndsWith(NormalizePath(path), StringComparison.Ordinal));
bool DynamicLoadingUnnecessary(bool enabled) => enabled && package.ZipArchive.Entries.Count(x => x.Name.EndsWith(".dll", StringComparison.Ordinal)) == 1;
string NormalizePath(string path) => path.Replace('\\', '/');
}

[GeneratedRegex(@"(\d+\.\d+\.\d+)")]
Expand Down
Binary file not shown.
Binary file not shown.
8 changes: 8 additions & 0 deletions tests/Community.PowerToys.Run.Plugin.Lint.Tests/RulesTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,9 @@ public void PackageRules_should_validate_Package()

subject = new PackageRules(new(new(), @"..\..\..\Packages\Valid-0.82.1-x64.zip"));
subject.Validate().Clean().Should().BeEmpty();

subject = new PackageRules(new(new(), @"..\..\..\Packages\Valid.Name-0.82.1-X64.zip"));
subject.Validate().Clean().Should().BeEmpty();
}

[Test]
Expand Down Expand Up @@ -264,6 +267,11 @@ public void PluginMetadataRules_should_validate_Package()
subject = new PluginMetadataRules(package, repository);
subject.Validate().Clean().Should().BeEmpty();

package = new Package(new(), @"..\..\..\Packages\ValidZipPathsWithSlash-0.82.1-x64.zip");
package.Load();
subject = new PluginMetadataRules(package, repository);
subject.Validate().Clean().Should().BeEmpty();

static void SetMetadata(Package package, Metadata metadata)
{
var property = package.GetType().GetProperty(nameof(Package.Metadata));
Expand Down

0 comments on commit a750920

Please sign in to comment.