diff --git a/arduino/libraries/librariesmanager/install.go b/arduino/libraries/librariesmanager/install.go index 4e69eb9323f..9132d68099f 100644 --- a/arduino/libraries/librariesmanager/install.go +++ b/arduino/libraries/librariesmanager/install.go @@ -144,16 +144,8 @@ func (lm *LibrariesManager) InstallZipLib(ctx context.Context, archivePath strin WithField("zip file", archivePath). Trace("Installing library") - files, err := tmpDir.Join(libraryName).ReadDirRecursive() - files.FilterOutDirs() - for _, f := range files { - finalPath := installPath.Join(f.Base()) - if err := finalPath.Parent().MkdirAll(); err != nil { - return fmt.Errorf("creating directory: %w", err) - } - if err := f.CopyTo(finalPath); err != nil { - return fmt.Errorf("copying library: %w", err) - } + if err := tmpDir.Join(libraryName).CopyDirTo(installPath); err != nil { + return fmt.Errorf("copying library: %w", err) } return nil diff --git a/test/test_lib.py b/test/test_lib.py index 77e03cd13c5..f5660efec7f 100644 --- a/test/test_lib.py +++ b/test/test_lib.py @@ -297,12 +297,26 @@ def test_install_with_zip_path(run_command, data_dir, downloads_dir): # Verifies library is installed in expected path assert lib_install_dir.exists() + files = list(lib_install_dir.glob("**/*")) + assert lib_install_dir / "examples" / "SimpleAudioPlayerZero" / "SimpleAudioPlayerZero.ino" in files + assert lib_install_dir / "src" / "AudioZero.h" in files + assert lib_install_dir / "src" / "AudioZero.cpp" in files + assert lib_install_dir / "keywords.txt" in files + assert lib_install_dir / "library.properties" in files + assert lib_install_dir / "README.adoc" in files # Reinstall library assert run_command(f"lib install --zip-path {zip_path}") # Verifies library remains installed assert lib_install_dir.exists() + files = list(lib_install_dir.glob("**/*")) + assert lib_install_dir / "examples" / "SimpleAudioPlayerZero" / "SimpleAudioPlayerZero.ino" in files + assert lib_install_dir / "src" / "AudioZero.h" in files + assert lib_install_dir / "src" / "AudioZero.cpp" in files + assert lib_install_dir / "keywords.txt" in files + assert lib_install_dir / "library.properties" in files + assert lib_install_dir / "README.adoc" in files def test_update_index(run_command):
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: