Skip to content

Commit d1163cb

Browse files
authored
Fix lib install --zip-path not preserving folders structure (arduino#1158)
1 parent 1aa53c8 commit d1163cb

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

arduino/libraries/librariesmanager/install.go

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -144,16 +144,8 @@ func (lm *LibrariesManager) InstallZipLib(ctx context.Context, archivePath strin
144144
WithField("zip file", archivePath).
145145
Trace("Installing library")
146146

147-
files, err := tmpDir.Join(libraryName).ReadDirRecursive()
148-
files.FilterOutDirs()
149-
for _, f := range files {
150-
finalPath := installPath.Join(f.Base())
151-
if err := finalPath.Parent().MkdirAll(); err != nil {
152-
return fmt.Errorf("creating directory: %w", err)
153-
}
154-
if err := f.CopyTo(finalPath); err != nil {
155-
return fmt.Errorf("copying library: %w", err)
156-
}
147+
if err := tmpDir.Join(libraryName).CopyDirTo(installPath); err != nil {
148+
return fmt.Errorf("copying library: %w", err)
157149
}
158150

159151
return nil

test/test_lib.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,12 +297,26 @@ def test_install_with_zip_path(run_command, data_dir, downloads_dir):
297297

298298
# Verifies library is installed in expected path
299299
assert lib_install_dir.exists()
300+
files = list(lib_install_dir.glob("**/*"))
301+
assert lib_install_dir / "examples" / "SimpleAudioPlayerZero" / "SimpleAudioPlayerZero.ino" in files
302+
assert lib_install_dir / "src" / "AudioZero.h" in files
303+
assert lib_install_dir / "src" / "AudioZero.cpp" in files
304+
assert lib_install_dir / "keywords.txt" in files
305+
assert lib_install_dir / "library.properties" in files
306+
assert lib_install_dir / "README.adoc" in files
300307

301308
# Reinstall library
302309
assert run_command(f"lib install --zip-path {zip_path}")
303310

304311
# Verifies library remains installed
305312
assert lib_install_dir.exists()
313+
files = list(lib_install_dir.glob("**/*"))
314+
assert lib_install_dir / "examples" / "SimpleAudioPlayerZero" / "SimpleAudioPlayerZero.ino" in files
315+
assert lib_install_dir / "src" / "AudioZero.h" in files
316+
assert lib_install_dir / "src" / "AudioZero.cpp" in files
317+
assert lib_install_dir / "keywords.txt" in files
318+
assert lib_install_dir / "library.properties" in files
319+
assert lib_install_dir / "README.adoc" in files
306320

307321

308322
def test_update_index(run_command):

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy