blob: 3355fd55e5268e502a326217dd6648455def2cf8 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2015 Red Hat.
* All rights reserved. This program and the accompanying materials
* are 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 - Initial Contribution
*******************************************************************************/
package org.eclipse.linuxtools.internal.docker.ui.launch;
import java.io.File;
import java.util.regex.Matcher;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.linuxtools.internal.docker.core.DockerImage;
/**
* Utility class for building Docker Images
*/
public class BuildDockerImageUtils {
/**
* Computes the path that can be relative to the workspace or absolute.
*
* @param pathLocation
* the base location
* @param workspaceRelativeLocation
* flag to indicate if the path is relative to the workspace
* location or not.
* @return the path or <code>null</code> if it does not exist
*/
public static IPath getPath(final String pathLocation,
final boolean workspaceRelativeLocation) {
if (workspaceRelativeLocation) {
final IResource member = ResourcesPlugin.getWorkspace().getRoot()
.findMember(new Path(pathLocation));
if (member != null) {
return member.getLocation();
}
} else if (new File(pathLocation).exists()) {
return new Path(pathLocation);
}
return null;
}
/**
* Finds and returns the <code>name</code> part of the given full image
* name.
*
* @param imageName
* the full image name
* @return the <code>name</code> part of the given full name or
* <code>null</code> if it could not be found.
*/
public static String getRepository(final String imageName) {
final Matcher imageNameMatcher = DockerImage.imageNamePattern
.matcher(imageName);
if (imageNameMatcher.matches()) {
return imageNameMatcher.group("repository");
}
return null;
}
/**
* Finds and returns the <code>name</code> part of the given full image
* name.
*
* @param imageName
* the full image name
* @return the <code>name</code> part of the given full name or
* <code>null</code> if it could not be found.
*/
public static String getName(final String imageName) {
final Matcher imageNameMatcher = DockerImage.imageNamePattern
.matcher(imageName);
if (imageNameMatcher.matches()) {
return imageNameMatcher.group("name"); //$NON-NLS-1$
}
return null;
}
/**
* Finds and returns the <code>tag</code> part of the given full image name.
*
* @param imageName
* the full image name
* @return the <code>tag</code> part of the given full name or
* <code>null</code> if it could not be found.
*/
public static String getTag(final String imageName) {
final Matcher imageNameMatcher = DockerImage.imageNamePattern
.matcher(imageName);
if (imageNameMatcher.matches()) {
return imageNameMatcher.group("tag"); //$NON-NLS-1$
}
return null;
}
}