From b66bf5f4c071b08e195c824cf6f9e419365bc076 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Mon, 7 Oct 2019 20:35:01 +0300 Subject: [PATCH] Ignore symbolic links for package examples --- platformio/package/manifest/parser.py | 6 +++++- tests/test_pkgmanifest.py | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/platformio/package/manifest/parser.py b/platformio/package/manifest/parser.py index 53586a98..0427d171 100644 --- a/platformio/package/manifest/parser.py +++ b/platformio/package/manifest/parser.py @@ -195,7 +195,11 @@ class BaseManifestParser(object): last_pio_project = None for root, _, files in os.walk(examples_dir): # skip hidden files and folders - files = [f for f in files if not f.startswith(".")] + files = [ + f + for f in files + if not f.startswith(".") and not os.path.islink(os.path.join(root, f)) + ] if os.path.basename(root).startswith(".") or not files: continue diff --git a/tests/test_pkgmanifest.py b/tests/test_pkgmanifest.py index cb3fc38c..675169d4 100644 --- a/tests/test_pkgmanifest.py +++ b/tests/test_pkgmanifest.py @@ -507,6 +507,9 @@ def test_examples_from_dir(tmpdir_factory): # PlatformIO project #1 pio_dir = examples_dir.mkdir("PlatformIO").mkdir("hello") pio_dir.join(".vimrc").write("") + pio_ini = pio_dir.join("platformio.ini") + pio_ini.write("") + pio_dir.join("platformio.ini.copy").mksymlinkto(pio_ini) pio_dir.join("platformio.ini").write("") pio_dir.mkdir("include").join("main.h").write("") pio_dir.mkdir("src").join("main.cpp").write("")