angular.module('portainer.helpers') .factory('ImageHelper', [function ImageHelperFactory() { 'use strict'; var helper = {}; helper.extractImageAndRegistryFromTag = function(tag) { var slashCount = _.countBy(tag)['/']; var registry = null; var image = tag; if (slashCount > 1) { // assume something/some/thing[/...] var registryAndImage = _.split(tag, '/'); registry = registryAndImage[0]; image = registryAndImage[1]; } return { registry: registry, image: image }; }; function extractNameAndTag(imageName, registry) { var imageNameAndTag = imageName.split(':'); var image = imageNameAndTag[0]; var tag = imageNameAndTag[1] ? imageNameAndTag[1] : 'latest'; if (registry) { image = registry + '/' + imageNameAndTag[0]; } return { image: image, tag: tag }; } helper.createImageConfigForCommit = function(imageName, registry) { var imageAndTag = extractNameAndTag(imageName, registry); return { repo: imageAndTag.image, tag: imageAndTag.tag }; }; helper.createImageConfigForContainer = function (imageName, registry) { var imageAndTag = extractNameAndTag(imageName, registry); return { fromImage: imageAndTag.image, tag: imageAndTag.tag }; }; return helper; }]);