All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.openshift.client.utils.TarFileUtils Maven / Gradle / Ivy

/******************************************************************************* 
 * Copyright (c) 2014 Red Hat, Inc. 
 * Distributed under license by Red Hat, Inc. All rights reserved. 
 * This program is made available under the terms of the 
 * Eclipse Public License v1.0 which accompanies this distribution, 
 * and is available at http://www.eclipse.org/legal/epl-v10.html 
 * 
 * Contributors: 
 * Red Hat, Inc. - initial API and implementation 
 ******************************************************************************/
package com.openshift.client.utils;

import java.io.IOException;
import java.io.InputStream;

import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;

import com.openshift.internal.client.utils.StreamUtils;

/**
 * @author Andre Dietisheim
 */
public class TarFileUtils {

	private static final String GIT_FOLDER_NAME = "git";

	private TarFileUtils() {
		// inhibit instantiation
	}

	public static boolean hasGitFolder(InputStream inputStream) throws IOException {
		TarArchiveInputStream tarInputStream = null;
		try {
			boolean gitFolderPresent = false;
			tarInputStream = new TarArchiveInputStream(new GzipCompressorInputStream(inputStream));
			for (TarArchiveEntry entry = null; (entry = tarInputStream.getNextTarEntry()) != null;) {
				if (GIT_FOLDER_NAME.equals(entry.getName())
						&& entry.isDirectory()) {
					gitFolderPresent = true;
					break;
				}
			}
			return gitFolderPresent;
		} finally {
			StreamUtils.close(tarInputStream);
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy