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

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

Introduction

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

Prototype

public String getName() 

Source Link

Document

Get the name.

Usage

From source file:com.pclinuxos.rpm.util.FileUtils.java

/**
 * The method extracts a srpm into the default directory used by the program (/home/<user>/RCEB/srpms/tmp)
 * /*  www  .ja v  a  2s. c  o  m*/
 * @param srpm the srpm to extract
 * @return 0 if the extraction was successfully, -1 if a IOException occurred, -2 if a InterruptException
 *  occurred. Values > 0 for return codes of the rpm2cpio command.
 */
public static int extractSrpm(String srpm) {

    int returnCode = 0;

    try {

        Process extractProcess = Runtime.getRuntime()
                .exec("rpm2cpio " + FileConstants.SRCSRPMS.getAbsolutePath() + "/" + srpm);
        // 64kb buffer
        byte[] buffer = new byte[0xFFFF];
        InputStream inread = extractProcess.getInputStream();

        FileOutputStream out = new FileOutputStream(new File(FileConstants.F4SRPMEX + "archive.cpio"));

        while (inread.read(buffer) != -1) {

            out.write(buffer);
        }

        returnCode = extractProcess.waitFor();

        if (returnCode == 0) {

            CpioArchiveInputStream cpioIn = new CpioArchiveInputStream(
                    new FileInputStream(FileConstants.F4SRPMEX + "archive.cpio"));
            CpioArchiveEntry cpEntry;

            while ((cpEntry = cpioIn.getNextCPIOEntry()) != null) {

                FileOutputStream fOut = new FileOutputStream(FileConstants.F4SRPMEX + cpEntry.getName());
                // Do not make this buffer bigger it breaks the cpio decompression
                byte[] buffer2 = new byte[1];
                ArrayList<Byte> buf = new ArrayList<Byte>();

                while (cpioIn.read(buffer2) != -1) {

                    buf.add(buffer2[0]);
                }

                byte[] file = new byte[buf.size()];

                for (int i = 0; i < buf.size(); i++) {

                    file[i] = buf.get(i);
                }

                fOut.write(file);

                fOut.flush();
                fOut.close();
            }

            cpioIn.close();
        }
    } catch (IOException e) {

        returnCode = -1;
    } catch (InterruptedException e) {

        returnCode = -2;
    }

    new File(FileConstants.F4SRPMEX + "archive.cpio").delete();

    return returnCode;
}

From source file:ch.ledcom.assertj.CpioArchiveInputStreamAssert.java

public final void hasSingleEntry(String name) throws IOException {
    isNotNull();//  w  w  w .  ja va 2  s .co m

    int nbOfEntriesMatching = 0;
    CpioArchiveEntry cpioEntry;
    while ((cpioEntry = actual.getNextCPIOEntry()) != null) {
        if (cpioEntry.getName().equals(name)) {
            nbOfEntriesMatching++;
        }
    }

    if (nbOfEntriesMatching < 1) {
        failWithMessage("Expected entry <%s> was not found in archive.", name);
    } else if (nbOfEntriesMatching > 1) {
        failWithMessage("Expected entry <%s> was found more than once in archive.", name);
    }
}

From source file:de.dentrassi.rpm.tests.InputStreamTest.java

private void dumpEntry(final CpioArchiveEntry entry) {
    System.out.format("-----------------------------------%n");
    System.out.format(" %s%n", entry.getName());
    System.out.format(" Size: %s%n", entry.getSize());
}

From source file:ch.ledcom.jpreseed.InitrdRepacker.java

public final void repack(OutputStream out) throws IOException {
    // start new archive
    try (CpioArchiveInputStream cpioIn = new CpioArchiveInputStream(new GZIPInputStream(initrdGz));
            CpioArchiveOutputStream cpioOut = new CpioArchiveOutputStream(new GZIPOutputStream(out))) {
        CpioArchiveEntry cpioEntry;

        // add files from base archive
        while ((cpioEntry = cpioIn.getNextCPIOEntry()) != null) {
            if (!additionalFiles.keySet().contains(cpioEntry.getName())) {
                logger.info("Repacking [{}]", cpioEntry.getName());
                cpioOut.putArchiveEntry(cpioEntry);
                long bytesCopied = copy(cpioIn, cpioOut);
                cpioOut.closeArchiveEntry();
                logger.debug("Copied [{}] bytes", bytesCopied);
            }/*from   w  w  w.j a v a2s.  com*/
        }

        // additional files
        for (Map.Entry<String, File> entry : additionalFiles.entrySet()) {
            logger.info("Packing new file [{}]", entry.getKey());
            ArchiveEntry additionalEntry = cpioOut.createArchiveEntry(entry.getValue(), entry.getKey());
            cpioOut.putArchiveEntry(additionalEntry);
            try (InputStream in = new FileInputStream(entry.getValue())) {
                copy(in, cpioOut);
            }
            cpioOut.closeArchiveEntry();
        }
    }
}

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  w  w w .jav  a  2 s.com
        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:com.espringtran.compressor4j.processor.CpioProcessor.java

/**
 * Read from compressed file//from  w w w . j  a  va  2 s  .co m
 * 
 * @param srcPath
 *            path of compressed file
 * @param fileCompressor
 *            FileCompressor object
 * @throws Exception
 */
@Override
public void read(String srcPath, FileCompressor fileCompressor) throws Exception {
    long t1 = System.currentTimeMillis();
    byte[] data = FileUtil.convertFileToByte(srcPath);
    ByteArrayInputStream bais = new ByteArrayInputStream(data);
    CpioArchiveInputStream ais = new CpioArchiveInputStream(bais);
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    try {
        byte[] buffer = new byte[1024];
        int readByte;
        CpioArchiveEntry entry = ais.getNextCPIOEntry();
        while (entry != null && entry.getSize() > 0) {
            long t2 = System.currentTimeMillis();
            baos = new ByteArrayOutputStream();
            readByte = ais.read(buffer);
            while (readByte != -1) {
                baos.write(buffer, 0, readByte);
                readByte = ais.read(buffer);
            }
            BinaryFile binaryFile = new BinaryFile(entry.getName(), baos.toByteArray());
            fileCompressor.addBinaryFile(binaryFile);
            LogUtil.createAddFileLog(fileCompressor, binaryFile, t2, System.currentTimeMillis());
            entry = ais.getNextCPIOEntry();
        }
    } catch (Exception e) {
        FileCompressor.LOGGER.error("Error on get compressor file", e);
    } finally {
        baos.close();
        ais.close();
        bais.close();
    }
    LogUtil.createReadLog(fileCompressor, srcPath, data.length, t1, System.currentTimeMillis());
}

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 {/*from w  w w  .ja va  2s. c  om*/
        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.app.Dumper.java

private static void dumpEntry(final CpioArchiveEntry entry) {
    System.out.format("-----------------------------------%n");
    System.out.format(" %s%n", entry.getName());
    System.out.format(" Size: %s, Chksum: %016x, Align: %s, Inode: %016x, Mode: %08o, NoL: %s, Device: %s.%s%n",
            entry.getSize(), entry.getChksum(), entry.getAlignmentBoundary(), entry.getInode(), entry.getMode(),
            entry.getNumberOfLinks(), entry.getDeviceMaj(), entry.getDeviceMin());
}

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)));
    }//ww  w  .j  ava 2 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;
}

From source file:org.ysb33r.groovy.vfsplugin.cpio.CpioFileSystem.java

@Override
public void init() throws FileSystemException {
    super.init();

    // Build the index
    try {//from   w w  w  .  ja v  a  2  s . c  o m
        final List<CpioFileObject> strongRef = new ArrayList<CpioFileObject>(DEFAULT_INDEX_SIZE);
        CpioArchiveEntry entry;

        while ((entry = getCpioFile().getNextCPIOEntry()) != null) {
            final AbstractFileName name = (AbstractFileName) getFileSystemManager().resolveName(getRootName(),
                    UriParser.encode(entry.getName()));

            // Create the file
            CpioFileObject fileObj;
            if (entry.isDirectory() && getFileFromCache(name) != null) {
                fileObj = (CpioFileObject) getFileFromCache(name);
                fileObj.setCpioEntry(entry);
                continue;
            }

            fileObj = createCpioFileObject(name, entry);
            putFileToCache(fileObj);
            strongRef.add(fileObj);
            fileObj.holdObject(strongRef);

            // Make sure all ancestors exist
            // TODO - create these on demand
            CpioFileObject parent = null;
            for (AbstractFileName parentName = (AbstractFileName) name
                    .getParent(); parentName != null; fileObj = parent, parentName = (AbstractFileName) parentName
                            .getParent()) {
                // Locate the parent
                parent = (CpioFileObject) getFileFromCache(parentName);
                if (parent == null) {
                    parent = createCpioFileObject(parentName, null);
                    putFileToCache(parent);
                    strongRef.add(parent);
                    parent.holdObject(strongRef);
                }

                // Attach child to parent
                parent.attachChild(fileObj.getName());
            }
        }
    } catch (final IOException e) {
        throw new FileSystemException(e);
    } finally {
        closeCommunicationLink();
    }
}