1
0
mirror of https://github.com/arduino/Arduino.git synced 2025-01-17 06:52:18 +01:00

Allow library manager to install multiple libraries at once.

Libraries are split using a comma fx: --install-library "Kalman filter library,USB Host Shield Library 2.0"
This commit is contained in:
Kristian Sloth Lauszus 2015-04-09 15:08:11 +02:00
parent 87e2e68b85
commit 7d08b58222

View File

@ -368,28 +368,30 @@ public class Base {
indexer.setLibrariesFolders(BaseNoGui.getLibrariesPath());
installer.updateIndex();
String[] libraryToInstallParts = parser.getLibraryToInstall().split(":");
for (String library : parser.getLibraryToInstall().split(",")) {
String[] libraryToInstallParts = library.split(":");
ContributedLibrary selected=null;
if (libraryToInstallParts.length == 2) {
selected = indexer.getIndex().find(libraryToInstallParts[0], VersionHelper.valueOf(libraryToInstallParts[1]).toString());
} else if (libraryToInstallParts.length == 1) {
List<ContributedLibrary> librariesByName = indexer.getIndex().find(libraryToInstallParts[0]);
Collections.sort(librariesByName, new DownloadableContributionVersionComparator());
if (!librariesByName.isEmpty()) {
selected = librariesByName.get(librariesByName.size() - 1);
ContributedLibrary selected=null;
if (libraryToInstallParts.length == 2) {
selected = indexer.getIndex().find(libraryToInstallParts[0], VersionHelper.valueOf(libraryToInstallParts[1]).toString());
} else if (libraryToInstallParts.length == 1) {
List<ContributedLibrary> librariesByName = indexer.getIndex().find(libraryToInstallParts[0]);
Collections.sort(librariesByName, new DownloadableContributionVersionComparator());
if (!librariesByName.isEmpty()) {
selected = librariesByName.get(librariesByName.size() - 1);
}
}
if (selected == null) {
System.out.println(_("Selected library is not available"));
System.exit(1);
}
}
if (selected == null) {
System.out.println(_("Selected library is not available"));
System.exit(1);
}
ContributedLibrary installed = indexer.getIndex().getInstalled(libraryToInstallParts[0]);
if (selected.isReadOnly()) {
installer.remove(installed);
} else {
installer.install(selected, installed);
ContributedLibrary installed = indexer.getIndex().getInstalled(libraryToInstallParts[0]);
if (selected.isReadOnly()) {
installer.remove(installed);
} else {
installer.install(selected, installed);
}
}
System.exit(0);