List of usage examples for org.apache.commons.compress.archivers.cpio CpioArchiveEntry isRegularFile
public boolean isRegularFile()
From source file:de.dentrassi.pm.rpm.internal.RpmExtractor.java
private RpmInformation makeInformation(final RpmInputStream in) throws IOException { final RpmHeader<RpmTag> header = in.getPayloadHeader(); final RpmHeader<RpmSignatureTag> signature = in.getSignatureHeader(); try {//from ww w .j a v a 2 s. c o m final RpmInformation result = new RpmInformation(); result.setHeaderStart(header.getStart()); result.setHeaderEnd(header.getStart() + header.getLength()); result.setName(asString(header.getTag(RpmTag.NAME))); result.setArchitecture(asString(header.getTag(RpmTag.ARCH))); result.setSummary(asString(header.getTag(RpmTag.SUMMARY))); result.setDescription(asString(header.getTag(RpmTag.DESCRIPTION))); result.setPackager(asString(header.getTag(RpmTag.PACKAGER))); result.setUrl(asString(header.getTag(RpmTag.URL))); result.setLicense(asString(header.getTag(RpmTag.LICENSE))); result.setVendor(asString(header.getTag(RpmTag.VENDOR))); result.setGroup(asString(header.getTag(RpmTag.GROUP))); result.setBuildHost(asString(header.getTag(RpmTag.BUILDHOST))); result.setBuildTimestamp(asLong(header.getTag(RpmTag.BUILDTIME))); result.setSourcePackage(asString(header.getTag(RpmTag.SOURCE_PACKAGE))); result.setInstalledSize(asLong(header.getTag(RpmTag.INSTALLED_SIZE))); result.setArchiveSize(asLong(header.getTag(RpmTag.ARCHIVE_SIZE))); if (result.getArchiveSize() == null) { result.setArchiveSize(asLong(signature.getTag(RpmSignatureTag.PAYLOAD_SIZE))); } // version final RpmInformation.Version ver = new RpmInformation.Version(asString(header.getTag(RpmTag.VERSION)), asString(header.getTag(RpmTag.RELEASE)), asString(header.getTag(RpmTag.EPOCH))); result.setVersion(ver); // changelog final Object val = header.getTag(RpmTag.CHANGELOG_TIMESTAMP); if (val instanceof Long[]) { final Long[] ts = (Long[]) val; final String[] authors = (String[]) header.getTag(RpmTag.CHANGELOG_AUTHOR); final String[] texts = (String[]) header.getTag(RpmTag.CHANGELOG_TEXT); final List<RpmInformation.Changelog> changes = new ArrayList<>(ts.length); for (int i = 0; i < ts.length; i++) { changes.add(new RpmInformation.Changelog(ts[i], authors[i], texts[i])); } Collections.sort(changes, (o1, o2) -> Long.compare(o1.getTimestamp(), o2.getTimestamp())); result.setChangelog(changes); } // dependencies result.setProvides( makeDependencies(header, RpmTag.PROVIDE_NAME, RpmTag.PROVIDE_VERSION, RpmTag.PROVIDE_FLAGS)); result.setRequires( makeDependencies(header, RpmTag.REQUIRE_NAME, RpmTag.REQUIRE_VERSION, RpmTag.REQUIRE_FLAGS)); result.setConflicts( makeDependencies(header, RpmTag.CONFLICT_NAME, RpmTag.CONFLICT_VERSION, RpmTag.CONFLICT_FLAGS)); result.setObsoletes( makeDependencies(header, RpmTag.OBSOLETE_NAME, RpmTag.OBSOLETE_VERSION, RpmTag.OBSOLETE_FLAGS)); // files final CpioArchiveInputStream cpio = in.getCpioStream(); CpioArchiveEntry cpioEntry; while ((cpioEntry = cpio.getNextCPIOEntry()) != null) { final String name = normalize(cpioEntry.getName()); if (cpioEntry.isRegularFile()) { result.getFiles().add(name); } else if (cpioEntry.isDirectory()) { result.getDirectories().add(name); } } return result; } catch (final Exception e) { logger.info("Failed to create RPM information", e); return null; } }
From source file:org.eclipse.packagedrone.repo.adapter.rpm.internal.RpmExtractor.java
private RpmInformation makeInformation(final RpmInputStream in) throws IOException { final RpmHeader<RpmTag> header = in.getPayloadHeader(); final RpmHeader<RpmSignatureTag> signature = in.getSignatureHeader(); try {/* ww w. ja va 2 s.c o m*/ final RpmInformation result = new RpmInformation(); result.setHeaderStart(header.getStart()); result.setHeaderEnd(header.getStart() + header.getLength()); result.setName(asString(header.getTag(RpmTag.NAME))); result.setArchitecture(asString(header.getTag(RpmTag.ARCH))); result.setSummary(asString(header.getTag(RpmTag.SUMMARY))); result.setDescription(asString(header.getTag(RpmTag.DESCRIPTION))); result.setPackager(asString(header.getTag(RpmTag.PACKAGER))); result.setUrl(asString(header.getTag(RpmTag.URL))); result.setLicense(asString(header.getTag(RpmTag.LICENSE))); result.setVendor(asString(header.getTag(RpmTag.VENDOR))); result.setGroup(asString(header.getTag(RpmTag.GROUP))); result.setBuildHost(asString(header.getTag(RpmTag.BUILDHOST))); result.setBuildTimestamp(asLong(header.getTag(RpmTag.BUILDTIME))); result.setSourcePackage(asString(header.getTag(RpmTag.SOURCE_PACKAGE))); result.setInstalledSize(asLong(header.getTag(RpmTag.INSTALLED_SIZE))); result.setArchiveSize(asLong(header.getTag(RpmTag.ARCHIVE_SIZE))); if (result.getArchiveSize() == null) { result.setArchiveSize(asLong(signature.getTag(RpmSignatureTag.PAYLOAD_SIZE))); } // version final RpmInformation.Version ver = new RpmInformation.Version(asString(header.getTag(RpmTag.VERSION)), asString(header.getTag(RpmTag.RELEASE)), asString(header.getTag(RpmTag.EPOCH))); result.setVersion(ver); // changelog final Object val = header.getTag(RpmTag.CHANGELOG_TIMESTAMP); if (val instanceof Long[]) { final Long[] ts = (Long[]) val; final String[] authors = (String[]) header.getTag(RpmTag.CHANGELOG_AUTHOR); final String[] texts = (String[]) header.getTag(RpmTag.CHANGELOG_TEXT); final List<RpmInformation.Changelog> changes = new ArrayList<>(ts.length); for (int i = 0; i < ts.length; i++) { changes.add(new RpmInformation.Changelog(ts[i], authors[i], texts[i])); } Collections.sort(changes, (o1, o2) -> Long.compare(o1.getTimestamp(), o2.getTimestamp())); result.setChangelog(changes); } // dependencies result.setProvides( makeDependencies(header, RpmTag.PROVIDE_NAME, RpmTag.PROVIDE_VERSION, RpmTag.PROVIDE_FLAGS)); result.setRequires( makeDependencies(header, RpmTag.REQUIRE_NAME, RpmTag.REQUIRE_VERSION, RpmTag.REQUIRE_FLAGS)); result.setConflicts( makeDependencies(header, RpmTag.CONFLICT_NAME, RpmTag.CONFLICT_VERSION, RpmTag.CONFLICT_FLAGS)); result.setObsoletes( makeDependencies(header, RpmTag.OBSOLETE_NAME, RpmTag.OBSOLETE_VERSION, RpmTag.OBSOLETE_FLAGS)); // files final CpioArchiveInputStream cpio = in.getCpioStream(); CpioArchiveEntry cpioEntry; while ((cpioEntry = cpio.getNextCPIOEntry()) != null) { final String name = normalize(cpioEntry.getName()); if (cpioEntry.isRegularFile()) { result.getFiles().add(name); } else if (cpioEntry.isDirectory()) { result.getDirectories().add(name); } } cpio.close(); return result; } catch (final Exception e) { logger.info("Failed to create RPM information", e); return null; } }
From source file:org.eclipse.packagedrone.utils.rpm.info.RpmInformations.java
public static RpmInformation makeInformation(final RpmInputStream in) throws IOException { final InputHeader<RpmTag> header = in.getPayloadHeader(); final InputHeader<RpmSignatureTag> signature = in.getSignatureHeader(); final RpmInformation result = new RpmInformation(); result.setHeaderStart(header.getStart()); result.setHeaderEnd(header.getStart() + header.getLength()); result.setName(asString(header.getTag(RpmTag.NAME))); result.setArchitecture(asString(header.getTag(RpmTag.ARCH))); result.setSummary(asString(header.getTag(RpmTag.SUMMARY))); result.setDescription(asString(header.getTag(RpmTag.DESCRIPTION))); result.setPackager(asString(header.getTag(RpmTag.PACKAGER))); result.setUrl(asString(header.getTag(RpmTag.URL))); result.setLicense(asString(header.getTag(RpmTag.LICENSE))); result.setVendor(asString(header.getTag(RpmTag.VENDOR))); result.setGroup(asString(header.getTag(RpmTag.GROUP))); result.setBuildHost(asString(header.getTag(RpmTag.BUILDHOST))); result.setBuildTimestamp(asLong(header.getTag(RpmTag.BUILDTIME))); result.setSourcePackage(asString(header.getTag(RpmTag.SOURCE_PACKAGE))); result.setInstalledSize(asLong(header.getTag(RpmTag.SIZE))); result.setArchiveSize(asLong(header.getTag(RpmTag.ARCHIVE_SIZE))); if (result.getArchiveSize() == null) { result.setArchiveSize(asLong(signature.getTag(RpmSignatureTag.PAYLOAD_SIZE))); }//from www. ja va2 s .com // version final RpmInformation.Version ver = new RpmInformation.Version(asString(header.getTag(RpmTag.VERSION)), asString(header.getTag(RpmTag.RELEASE)), asString(header.getTag(RpmTag.EPOCH))); result.setVersion(ver); // changelog final Object val = header.getTag(RpmTag.CHANGELOG_TIMESTAMP); if (val instanceof Long[]) { final Long[] ts = (Long[]) val; final String[] authors = (String[]) header.getTag(RpmTag.CHANGELOG_AUTHOR); final String[] texts = (String[]) header.getTag(RpmTag.CHANGELOG_TEXT); final List<RpmInformation.Changelog> changes = new ArrayList<>(ts.length); for (int i = 0; i < ts.length; i++) { changes.add(new RpmInformation.Changelog(ts[i], authors[i], texts[i])); } Collections.sort(changes, (o1, o2) -> Long.compare(o1.getTimestamp(), o2.getTimestamp())); result.setChangelog(changes); } // dependencies result.setProvides( makeDependencies(header, RpmTag.PROVIDE_NAME, RpmTag.PROVIDE_VERSION, RpmTag.PROVIDE_FLAGS)); result.setRequires( makeDependencies(header, RpmTag.REQUIRE_NAME, RpmTag.REQUIRE_VERSION, RpmTag.REQUIRE_FLAGS)); result.setConflicts( makeDependencies(header, RpmTag.CONFLICT_NAME, RpmTag.CONFLICT_VERSION, RpmTag.CONFLICT_FLAGS)); result.setObsoletes( makeDependencies(header, RpmTag.OBSOLETE_NAME, RpmTag.OBSOLETE_VERSION, RpmTag.OBSOLETE_FLAGS)); // files final CpioArchiveInputStream cpio = in.getCpioStream(); CpioArchiveEntry cpioEntry; while ((cpioEntry = cpio.getNextCPIOEntry()) != null) { final String name = normalize(cpioEntry.getName()); if (cpioEntry.isRegularFile()) { result.getFiles().add(name); } else if (cpioEntry.isDirectory()) { result.getDirectories().add(name); } } cpio.close(); return result; }