diff --git a/source/dub/recipe/packagerecipe.d b/source/dub/recipe/packagerecipe.d index 5ecf3de..0eb1246 100644 --- a/source/dub/recipe/packagerecipe.d +++ b/source/dub/recipe/packagerecipe.d @@ -251,8 +251,11 @@ } foreach (d; dirEntries(path.toNativeString(), pattern, SpanMode.depth)) { - import std.path : baseName; - if (baseName(d.name)[0] == '.' || d.isDir) continue; + import std.path : baseName, pathSplitter; + import std.algorithm.searching: canFind; + if (baseName(d.name)[0] == '.' || d.isDir || + pathSplitter(d).canFind!(name => name[0] == '.')) + continue; auto src = NativePath(d.name).relativeTo(base_path); files ~= src.toNativeString(); } diff --git a/test/issue1372-ignore-files-in-hidden-dirs.sh b/test/issue1372-ignore-files-in-hidden-dirs.sh new file mode 100755 index 0000000..b670765 --- /dev/null +++ b/test/issue1372-ignore-files-in-hidden-dirs.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +cd ${CURR_DIR}/issue1372-ignore-files-in-hidden-dirs/ + +${DUB} build --force diff --git a/test/issue1372-ignore-files-in-hidden-dirs/dub.json b/test/issue1372-ignore-files-in-hidden-dirs/dub.json new file mode 100644 index 0000000..18062ec --- /dev/null +++ b/test/issue1372-ignore-files-in-hidden-dirs/dub.json @@ -0,0 +1,9 @@ +{ + "authors": [ + "--" + ], + "copyright": "Copyright © 2019, --", + "description": "--", + "license": "--", + "name": "issue1372-ignore-files-in-hidden-dirs" +} \ No newline at end of file diff --git a/test/issue1372-ignore-files-in-hidden-dirs/source/.AppleDouble/app.d b/test/issue1372-ignore-files-in-hidden-dirs/source/.AppleDouble/app.d new file mode 100644 index 0000000..ff89f4f --- /dev/null +++ b/test/issue1372-ignore-files-in-hidden-dirs/source/.AppleDouble/app.d @@ -0,0 +1,2 @@ +This file needs to contain something to show the issue up. +If it's empty, it'll get ignored. diff --git a/test/issue1372-ignore-files-in-hidden-dirs/source/app.d b/test/issue1372-ignore-files-in-hidden-dirs/source/app.d new file mode 100644 index 0000000..c3eec7f --- /dev/null +++ b/test/issue1372-ignore-files-in-hidden-dirs/source/app.d @@ -0,0 +1,6 @@ +import std.stdio; + +void main() +{ + writeln("Edit source/app.d to start your project."); +}