Skip to content

Commit dd3f9fe

Browse files
author
Federico Fissore
committed
CLI: board manager install latest if version is not specified
1 parent 0925525 commit dd3f9fe

File tree

8 files changed

+47
-47
lines changed

8 files changed

+47
-47
lines changed

app/src/cc/arduino/contributions/libraries/ui/ContributedLibraryTableCell.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,15 @@
2929
package cc.arduino.contributions.libraries.ui;
3030

3131
import cc.arduino.contributions.VersionComparator;
32-
import cc.arduino.contributions.VersionHelper;
32+
import cc.arduino.contributions.filters.BuiltInPredicate;
3333
import cc.arduino.contributions.filters.InstalledPredicate;
3434
import cc.arduino.contributions.libraries.ContributedLibrary;
35-
import cc.arduino.contributions.libraries.ContributedLibraryComparator;
36-
import cc.arduino.contributions.filters.BuiltInPredicate;
3735
import cc.arduino.contributions.libraries.filters.OnlyUpstreamReleasePredicate;
36+
import cc.arduino.contributions.packages.DownloadableContribution;
37+
import cc.arduino.contributions.DownloadableContributionVersionComparator;
3838
import cc.arduino.contributions.ui.InstallerTableCell;
3939
import cc.arduino.contributions.ui.listeners.DelegatingKeyListener;
4040
import cc.arduino.utils.ReverseComparator;
41-
import com.github.zafarkhaja.semver.Version;
4241
import com.google.common.base.Function;
4342
import com.google.common.base.Predicates;
4443
import com.google.common.collect.Collections2;
@@ -257,18 +256,19 @@ public Component getTableCellEditorComponent(JTable table, Object value,
257256
uninstalledReleases.addAll(installedBuiltIn);
258257
}
259258

260-
Collections.sort(uninstalledReleases, new ReverseComparator<ContributedLibrary>(new ContributedLibraryComparator()));
259+
Collections.sort(uninstalledReleases, new ReverseComparator<DownloadableContribution>(new DownloadableContributionVersionComparator()));
261260

262261
downgradeChooser.removeAllItems();
263262
downgradeChooser.addItem(_("Select version"));
264263

265264
final List<ContributedLibrary> uninstalledPreviousReleases = Lists.newLinkedList();
266265
final List<ContributedLibrary> uninstalledNewerReleases = Lists.newLinkedList();
267266

267+
final VersionComparator versionComparator = new VersionComparator();
268268
Lists.newLinkedList(Lists.transform(uninstalledReleases, new Function<ContributedLibrary, ContributedLibrary>() {
269269
@Override
270270
public ContributedLibrary apply(ContributedLibrary input) {
271-
if (installed == null || VersionComparator.VERSION_COMPARATOR.greaterThan(installed.getParsedVersion(), input.getParsedVersion())) {
271+
if (installed == null || versionComparator.greaterThan(installed.getParsedVersion(), input.getParsedVersion())) {
272272
uninstalledPreviousReleases.add(input);
273273
} else {
274274
uninstalledNewerReleases.add(input);
@@ -319,7 +319,7 @@ private Component getUpdatedCellComponent(Object value, boolean isSelected, int
319319
} else {
320320
installable = false;
321321
removable = !installed.isReadOnly() && !hasBuiltInRelease;
322-
upgradable = new ContributedLibraryComparator().compare(selected, installed) > 0;
322+
upgradable = new DownloadableContributionVersionComparator().compare(selected, installed) > 0;
323323
}
324324
if (installable) {
325325
installButton.setText(_("Install"));

app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCell.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@
2929
package cc.arduino.contributions.packages.ui;
3030

3131
import cc.arduino.contributions.VersionComparator;
32-
import cc.arduino.contributions.VersionHelper;
3332
import cc.arduino.contributions.filters.InstalledPredicate;
3433
import cc.arduino.contributions.filters.BuiltInPredicate;
3534
import cc.arduino.contributions.packages.ContributedBoard;
3635
import cc.arduino.contributions.packages.ContributedPlatform;
37-
import cc.arduino.contributions.packages.ContributedPlatformComparator;
36+
import cc.arduino.contributions.packages.DownloadableContribution;
37+
import cc.arduino.contributions.DownloadableContributionVersionComparator;
3838
import cc.arduino.contributions.ui.InstallerTableCell;
3939
import cc.arduino.contributions.ui.listeners.DelegatingKeyListener;
4040
import cc.arduino.utils.ReverseComparator;
@@ -271,18 +271,19 @@ public Component getTableCellEditorComponent(JTable table, Object value,
271271
uninstalledReleases.addAll(installedBuiltIn);
272272
}
273273

274-
Collections.sort(uninstalledReleases, new ReverseComparator<ContributedPlatform>(new ContributedPlatformComparator()));
274+
Collections.sort(uninstalledReleases, new ReverseComparator<DownloadableContribution>(new DownloadableContributionVersionComparator()));
275275

276276
downgradeChooser.removeAllItems();
277277
downgradeChooser.addItem(_("Select version"));
278278

279279
final java.util.List<ContributedPlatform> uninstalledPreviousReleases = Lists.newLinkedList();
280280
final java.util.List<ContributedPlatform> uninstalledNewerReleases = Lists.newLinkedList();
281281

282+
final VersionComparator versionComparator = new VersionComparator();
282283
Lists.newLinkedList(Lists.transform(uninstalledReleases, new Function<ContributedPlatform, ContributedPlatform>() {
283284
@Override
284285
public ContributedPlatform apply(ContributedPlatform input) {
285-
if (installed == null || VersionComparator.VERSION_COMPARATOR.greaterThan(installed.getParsedVersion(), input.getParsedVersion())) {
286+
if (installed == null || versionComparator.greaterThan(installed.getParsedVersion(), input.getParsedVersion())) {
286287
uninstalledPreviousReleases.add(input);
287288
} else {
288289
uninstalledNewerReleases.add(input);
@@ -333,7 +334,7 @@ private Component getUpdatedCellComponent(Object value, boolean isSelected, int
333334
} else {
334335
installable = false;
335336
removable = !installed.isReadOnly() && !hasBuiltInRelease;
336-
upgradable = new ContributedPlatformComparator().compare(selected, installed) > 0;
337+
upgradable = new DownloadableContributionVersionComparator().compare(selected, installed) > 0;
337338
}
338339
if (installable) {
339340
installButton.setText(_("Install"));

app/src/cc/arduino/contributions/ui/FilteredAbstractTableModel.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,11 @@ public abstract class FilteredAbstractTableModel<T> extends AbstractTableModel {
4444

4545
protected static <T extends DownloadableContribution> T getLatestOf(List<T> contribs) {
4646
contribs = new LinkedList<T>(contribs);
47+
final VersionComparator versionComparator = new VersionComparator();
4748
Collections.sort(contribs, new Comparator<T>() {
4849
@Override
4950
public int compare(T contrib1, T contrib2) {
50-
return VersionComparator.VERSION_COMPARATOR.compare(contrib1.getParsedVersion(), contrib2.getParsedVersion());
51+
return versionComparator.compare(contrib1.getParsedVersion(), contrib2.getParsedVersion());
5152
}
5253
});
5354

app/src/processing/app/Base.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import cc.arduino.contributions.packages.ContributedPlatform;
3131
import cc.arduino.contributions.packages.ContributionInstaller;
3232
import cc.arduino.contributions.packages.ContributionsIndexer;
33+
import cc.arduino.contributions.DownloadableContributionVersionComparator;
3334
import cc.arduino.contributions.packages.ui.ContributionManagerUI;
3435
import cc.arduino.packages.DiscoveryManager;
3536
import cc.arduino.utils.Progress;
@@ -322,7 +323,16 @@ protected void onProgress(Progress progress) {
322323

323324
String[] boardToInstallParts = parser.getBoardToInstall().split(":");
324325

325-
ContributedPlatform selected = indexer.getIndex().findPlatform(boardToInstallParts[0], boardToInstallParts[1], VersionHelper.valueOf(boardToInstallParts[2]).toString());
326+
ContributedPlatform selected = null;
327+
if (boardToInstallParts.length == 3) {
328+
selected = indexer.getIndex().findPlatform(boardToInstallParts[0], boardToInstallParts[1], VersionHelper.valueOf(boardToInstallParts[2]).toString());
329+
} else if (boardToInstallParts.length == 2) {
330+
List<ContributedPlatform> platformsByName = indexer.getIndex().findPlatforms(boardToInstallParts[0], boardToInstallParts[1]);
331+
Collections.sort(platformsByName, new DownloadableContributionVersionComparator());
332+
if (!platformsByName.isEmpty()) {
333+
selected = platformsByName.get(platformsByName.size() - 1);
334+
}
335+
}
326336
if (selected == null) {
327337
System.out.println(_("Selected board is not available"));
328338
System.exit(1);
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package cc.arduino.contributions;
2+
3+
import cc.arduino.contributions.packages.DownloadableContribution;
4+
5+
import java.util.Comparator;
6+
7+
public class DownloadableContributionVersionComparator implements Comparator<DownloadableContribution> {
8+
9+
private final VersionComparator versionComparator;
10+
11+
public DownloadableContributionVersionComparator() {
12+
versionComparator = new VersionComparator();
13+
}
14+
15+
@Override
16+
public int compare(DownloadableContribution lib1, DownloadableContribution lib2) {
17+
return versionComparator.compare(lib1.getParsedVersion(), lib2.getParsedVersion());
18+
}
19+
20+
21+
}

arduino-core/src/cc/arduino/contributions/VersionComparator.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,6 @@
3434

3535
public class VersionComparator implements Comparator<String> {
3636

37-
// An handy pre-instatiated object
38-
public static final VersionComparator VERSION_COMPARATOR = new VersionComparator();
39-
4037
@Override
4138
public int compare(String a, String b) {
4239
// null is always less than any other value

arduino-core/src/cc/arduino/contributions/libraries/ContributedLibraryComparator.java

Lines changed: 0 additions & 15 deletions
This file was deleted.

arduino-core/src/cc/arduino/contributions/packages/ContributedPlatformComparator.java

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)