mirror of
https://github.com/arduino/Arduino.git
synced 2025-01-31 20:52:13 +01:00
ContributionsIndexer now has bundled hardware path as a field
This commit is contained in:
parent
9669d67e16
commit
7008f6c57c
@ -344,13 +344,15 @@ public class Base {
|
|||||||
PreferencesData.save();
|
PreferencesData.save();
|
||||||
|
|
||||||
if (parser.isInstallBoard()) {
|
if (parser.isInstallBoard()) {
|
||||||
ContributionsIndexer indexer = new ContributionsIndexer(BaseNoGui.getSettingsFolder(), BaseNoGui.getPlatform(), new GPGDetachedSignatureVerifier());
|
ContributionsIndexer indexer = new ContributionsIndexer(
|
||||||
|
BaseNoGui.getSettingsFolder(), BaseNoGui.getHardwareFolder(),
|
||||||
|
BaseNoGui.getPlatform(), new GPGDetachedSignatureVerifier());
|
||||||
ProgressListener progressListener = new ConsoleProgressListener();
|
ProgressListener progressListener = new ConsoleProgressListener();
|
||||||
|
|
||||||
List<String> downloadedPackageIndexFiles = contributionInstaller.updateIndex(progressListener);
|
List<String> downloadedPackageIndexFiles = contributionInstaller.updateIndex(progressListener);
|
||||||
contributionInstaller.deleteUnknownFiles(downloadedPackageIndexFiles);
|
contributionInstaller.deleteUnknownFiles(downloadedPackageIndexFiles);
|
||||||
indexer.parseIndex();
|
indexer.parseIndex();
|
||||||
indexer.syncWithFilesystem(BaseNoGui.getHardwareFolder());
|
indexer.syncWithFilesystem();
|
||||||
|
|
||||||
String[] boardToInstallParts = parser.getBoardToInstall().split(":");
|
String[] boardToInstallParts = parser.getBoardToInstall().split(":");
|
||||||
|
|
||||||
|
@ -66,12 +66,14 @@ public class ContributionsIndexer {
|
|||||||
private final File packagesFolder;
|
private final File packagesFolder;
|
||||||
private final File stagingFolder;
|
private final File stagingFolder;
|
||||||
private final File preferencesFolder;
|
private final File preferencesFolder;
|
||||||
|
private final File builtInHardwareFolder;
|
||||||
private final Platform platform;
|
private final Platform platform;
|
||||||
private final SignatureVerifier signatureVerifier;
|
private final SignatureVerifier signatureVerifier;
|
||||||
private ContributionsIndex index;
|
private ContributionsIndex index;
|
||||||
|
|
||||||
public ContributionsIndexer(File preferencesFolder, Platform platform, SignatureVerifier signatureVerifier) {
|
public ContributionsIndexer(File preferencesFolder, File builtInHardwareFolder, Platform platform, SignatureVerifier signatureVerifier) {
|
||||||
this.preferencesFolder = preferencesFolder;
|
this.preferencesFolder = preferencesFolder;
|
||||||
|
this.builtInHardwareFolder = builtInHardwareFolder;
|
||||||
this.platform = platform;
|
this.platform = platform;
|
||||||
this.signatureVerifier = signatureVerifier;
|
this.signatureVerifier = signatureVerifier;
|
||||||
packagesFolder = new File(preferencesFolder, "packages");
|
packagesFolder = new File(preferencesFolder, "packages");
|
||||||
@ -188,22 +190,22 @@ public class ContributionsIndexer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void syncWithFilesystem(File hardwareFolder) throws IOException {
|
public void syncWithFilesystem() throws IOException {
|
||||||
syncBuiltInHardwareFolder(hardwareFolder);
|
syncBuiltInHardware();
|
||||||
|
|
||||||
syncLocalPackagesFolder();
|
syncLocalPackages();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void syncBuiltInHardwareFolder(File hardwareFolder) throws IOException {
|
private void syncBuiltInHardware() throws IOException {
|
||||||
if (index == null) {
|
if (index == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (File folder : hardwareFolder.listFiles(ONLY_DIRS)) {
|
for (File folder : builtInHardwareFolder.listFiles(ONLY_DIRS)) {
|
||||||
ContributedPackage pack = index.findPackage(folder.getName());
|
ContributedPackage pack = index.findPackage(folder.getName());
|
||||||
if (pack != null) {
|
if (pack != null) {
|
||||||
syncBuiltInPackageWithFilesystem(pack, folder);
|
syncBuiltInPackageWithFilesystem(pack, folder);
|
||||||
|
|
||||||
File toolsFolder = new File(hardwareFolder, "tools");
|
File toolsFolder = new File(builtInHardwareFolder, "tools");
|
||||||
if (toolsFolder.isDirectory()) {
|
if (toolsFolder.isDirectory()) {
|
||||||
for (File toolFolder : toolsFolder.listFiles(ONLY_DIRS)) {
|
for (File toolFolder : toolsFolder.listFiles(ONLY_DIRS)) {
|
||||||
File builtInToolsMetadata = new File(toolFolder, "builtin_tools_versions.txt");
|
File builtInToolsMetadata = new File(toolFolder, "builtin_tools_versions.txt");
|
||||||
@ -231,7 +233,7 @@ public class ContributionsIndexer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void syncLocalPackagesFolder() {
|
private void syncLocalPackages() {
|
||||||
if (!packagesFolder.isDirectory()) {
|
if (!packagesFolder.isDirectory()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -608,7 +608,8 @@ public class BaseNoGui {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static public void initPackages() throws Exception {
|
static public void initPackages() throws Exception {
|
||||||
indexer = new ContributionsIndexer(BaseNoGui.getSettingsFolder(), BaseNoGui.getPlatform(), new GPGDetachedSignatureVerifier());
|
indexer = new ContributionsIndexer(getSettingsFolder(), getHardwareFolder(), getPlatform(),
|
||||||
|
new GPGDetachedSignatureVerifier());
|
||||||
File indexFile = indexer.getIndexFile("package_index.json");
|
File indexFile = indexer.getIndexFile("package_index.json");
|
||||||
File defaultPackageJsonFile = new File(getContentFile("dist"), "package_index.json");
|
File defaultPackageJsonFile = new File(getContentFile("dist"), "package_index.json");
|
||||||
if (!indexFile.isFile() || (defaultPackageJsonFile.isFile() && defaultPackageJsonFile.lastModified() > indexFile.lastModified())) {
|
if (!indexFile.isFile() || (defaultPackageJsonFile.isFile() && defaultPackageJsonFile.lastModified() > indexFile.lastModified())) {
|
||||||
@ -637,7 +638,7 @@ public class BaseNoGui {
|
|||||||
FileUtils.deleteIfExists(indexSignatureFile);
|
FileUtils.deleteIfExists(indexSignatureFile);
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
indexer.syncWithFilesystem(getHardwareFolder());
|
indexer.syncWithFilesystem();
|
||||||
|
|
||||||
packages = new LinkedHashMap<String, TargetPackage>();
|
packages = new LinkedHashMap<String, TargetPackage>();
|
||||||
loadHardware(getHardwareFolder());
|
loadHardware(getHardwareFolder());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user