mirror of https://github.com/ansible/ansible.git
Docs on parameterized roles, make document generation output less noisy
parent
7037023aa8
commit
148d8859ba
@ -0,0 +1,106 @@
|
||||
angular.module('ansibleApp', []).filter('moduleVersion', function() {
|
||||
return function(modules, version) {
|
||||
|
||||
var parseVersionString = function (str) {
|
||||
if (typeof(str) != 'string') { return false; }
|
||||
var x = str.split('.');
|
||||
// parse from string or default to 0 if can't parse
|
||||
var maj = parseInt(x[0]) || 0;
|
||||
var min = parseInt(x[1]) || 0;
|
||||
var pat = parseInt(x[2]) || 0;
|
||||
return {
|
||||
major: maj,
|
||||
minor: min,
|
||||
patch: pat
|
||||
}
|
||||
}
|
||||
|
||||
var vMinMet = function(vmin, vcurrent) {
|
||||
minimum = parseVersionString(vmin);
|
||||
running = parseVersionString(vcurrent);
|
||||
if (running.major != minimum.major)
|
||||
return (running.major > minimum.major);
|
||||
else {
|
||||
if (running.minor != minimum.minor)
|
||||
return (running.minor > minimum.minor);
|
||||
else {
|
||||
if (running.patch != minimum.patch)
|
||||
return (running.patch > minimum.patch);
|
||||
else
|
||||
return true;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var result = [];
|
||||
if (!version) {
|
||||
return modules;
|
||||
}
|
||||
for (var i = 0; i < modules.length; i++) {
|
||||
if (vMinMet(modules[i].version_added, version)) {
|
||||
result[result.length] = modules[i];
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
}).filter('uniqueVersion', function() {
|
||||
return function(modules) {
|
||||
var result = [];
|
||||
var inArray = function (needle, haystack) {
|
||||
var length = haystack.length;
|
||||
for(var i = 0; i < length; i++) {
|
||||
if(haystack[i] == needle) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
var parseVersionString = function (str) {
|
||||
if (typeof(str) != 'string') { return false; }
|
||||
var x = str.split('.');
|
||||
// parse from string or default to 0 if can't parse
|
||||
var maj = parseInt(x[0]) || 0;
|
||||
var min = parseInt(x[1]) || 0;
|
||||
var pat = parseInt(x[2]) || 0;
|
||||
return {
|
||||
major: maj,
|
||||
minor: min,
|
||||
patch: pat
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < modules.length; i++) {
|
||||
if (!inArray(modules[i].version_added, result)) {
|
||||
// Some module do not define version
|
||||
if (modules[i].version_added) {
|
||||
result[result.length] = "" + modules[i].version_added;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
result.sort(
|
||||
function (a, b) {
|
||||
ao = parseVersionString(a);
|
||||
bo = parseVersionString(b);
|
||||
if (ao.major == bo.major) {
|
||||
if (ao.minor == bo.minor) {
|
||||
if (ao.patch == bo.patch) {
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
return (ao.patch > bo.patch) ? 1 : -1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return (ao.minor > bo.minor) ? 1 : -1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return (ao.major > bo.major) ? 1 : -1;
|
||||
}
|
||||
});
|
||||
|
||||
return result;
|
||||
};
|
||||
});
|
||||
|
Loading…
Reference in New Issue