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