Skip to content

Commit d1163cb

Browse files
authored
Fix lib install --zip-path not preserving folders structure (#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

+2-10
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

+14
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)