Example usage for org.apache.commons.compress.archivers.cpio CpioArchiveEntry isRegularFile

List of usage examples for org.apache.commons.compress.archivers.cpio CpioArchiveEntry isRegularFile

Introduction

In this page you can find the example usage for org.apache.commons.compress.archivers.cpio CpioArchiveEntry isRegularFile.

Prototype

public boolean isRegularFile() 

Source Link

Document

Check if this entry represents a regular file.

Usage

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;
}