private static void findExtensionsInZips(ResourceFile[] archiveFiles,
			Set<ExtensionDetails> results) {
		for (ResourceFile file : archiveFiles) {
			ExtensionDetails extension = ExtensionUtils.createExtensionDetailsFromArchive(file);
			if (extension == null) {
				log.trace("Skipping archive file; not an extension: " + file);
				continue;
			}

			ExtensionDetails existingExtension = get(results, extension);
			if (existingExtension == null) {
				results.add(extension);
				continue;
			}

			//
			// The extension was already found; report the conflict.  This situation can easily
			// happen if users add multiple builds of the same extension to the extensions dir.
			//
			String name = extension.getName();
			String newZip = FilenameUtils.getBaseName(extension.getArchivePath());
			String existingZip = FilenameUtils.getBaseName(existingExtension.getArchivePath());
			ResourceFile dir = file.getParentFile();

			log.error("""
					Skipping extension '%s' found in zip '%s'. \
					Extension by that name already found in zip '%s'. \
					Archive dir %s
					""".formatted(name, newZip, existingZip, dir));
		}
	}
Returns all archive extensions. These are all the extensions found in
{@link ApplicationLayout#getExtensionArchiveDir}.   This are added to an installation as
part of the build processes.
<p>
Archived extensions may be zip files and directories.

@return set of archive extensions
Ghidra/Framework/Generic/src/main/java/ghidra/util/extensions/ExtensionUtils.java