mirror of
https://github.com/gotson/komga.git
synced 2026-05-06 03:27:08 +02: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> {
|
object : FileVisitor<Path> {
|
||||||
override fun preVisitDirectory(dir: Path, attrs: BasicFileAttributes?): FileVisitResult {
|
override fun preVisitDirectory(dir: Path, attrs: BasicFileAttributes?): FileVisitResult {
|
||||||
logger.trace { "preVisit: $dir" }
|
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)
|
dir.toString().contains(exclude, true)
|
||||||
}
|
}
|
||||||
) return FileVisitResult.SKIP_SUBTREE
|
) 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
|
@Test
|
||||||
fun `given directory structure with hidden files when scanning then hidden files are not returned`() {
|
fun `given directory structure with hidden files when scanning then hidden files are not returned`() {
|
||||||
Jimfs.newFileSystem(Configuration.unix()).use { fs ->
|
Jimfs.newFileSystem(Configuration.unix()).use { fs ->
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue