mirror of
https://github.com/gotson/komga.git
synced 2025-12-21 16:03:03 +01:00
fix: scanner would not ignore hidden directories properly
This commit is contained in:
parent
2d72b47cdf
commit
1cbcdaa0a1
2 changed files with 24 additions and 1 deletions
|
|
@ -45,7 +45,7 @@ class FileSystemScanner(
|
|||
object : FileVisitor<Path> {
|
||||
override fun preVisitDirectory(dir: Path, attrs: BasicFileAttributes?): FileVisitResult {
|
||||
logger.trace { "preVisit: $dir" }
|
||||
if (!Files.isHidden(dir) && komgaProperties.librariesScanDirectoryExclusions.any { exclude ->
|
||||
if (Files.isHidden(dir) || komgaProperties.librariesScanDirectoryExclusions.any { exclude ->
|
||||
dir.toString().contains(exclude, true)
|
||||
}
|
||||
) return FileVisitResult.SKIP_SUBTREE
|
||||
|
|
|
|||
|
|
@ -129,6 +129,29 @@ class FileSystemScannerTest {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `given directory structure with hidden directories when scanning then hidden directories are not returned`() {
|
||||
Jimfs.newFileSystem(Configuration.unix()).use { fs ->
|
||||
// given
|
||||
val root = fs.getPath("/root")
|
||||
Files.createDirectory(root)
|
||||
|
||||
val dir1 = makeSubDir(root, "dir1", listOf("comic.cbz"))
|
||||
makeSubDir(dir1, "subdir1", listOf("comic2.cbz"))
|
||||
val hidden = makeSubDir(root, ".hidden", listOf("hidden.cbz"))
|
||||
makeSubDir(hidden, "subhidden", listOf("hidden2.cbz"))
|
||||
|
||||
// when
|
||||
val scan = scanner.scanRootFolder(root)
|
||||
|
||||
// then
|
||||
assertThat(scan).hasSize(2)
|
||||
|
||||
assertThat(scan.keys.map { it.name }).containsExactlyInAnyOrder("dir1", "subdir1")
|
||||
assertThat(scan.values.flatMap { list -> list.map { it.name } }).containsExactlyInAnyOrder("comic", "comic2")
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `given directory structure with hidden files when scanning then hidden files are not returned`() {
|
||||
Jimfs.newFileSystem(Configuration.unix()).use { fs ->
|
||||
|
|
|
|||
Loading…
Reference in a new issue