mirror of https://github.com/portainer/portainer
56 lines
1.3 KiB
JavaScript
56 lines
1.3 KiB
JavaScript
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;
|
|
}]);
|