diff --git a/src/generate-helper-compact.js b/src/generate-helper-compact.js new file mode 100644 index 0000000000000000000000000000000000000000..dec3173080ca1ef44e68712bd860df1cd227a3aa --- /dev/null +++ b/src/generate-helper-compact.js @@ -0,0 +1,25 @@ +module.exports = function (generateEntry, generateComment) { + return function (data) { + var entries = {}; + data.hosts.forEach(function (block) { + block.items.forEach(function (item) { + if (item.comment === undefined) { + if (entries[item.ip] === undefined) entries[item.ip] = []; + if (item.domain !== undefined) entries[item.ip].push(item.domain); + else { + item.domains.forEach(function (domain) { + entries[item.ip].push(domain); + }); + } + } + }); + }); + var output = ''; + output += generateComment(data.header) + '\n'; + for (var ip in entries) { + output += generateEntry(ip, entries[ip]) + '\n'; + } + output += '\n' + generateComment(data.footer); + return output; + }; +}; diff --git a/src/generate-helper.js b/src/generate-helper.js index 42c41b0ad689e0e3c429aed50f5a2d9310540f69..5307edd314d17954e19a3bc76919a04cb32a65e4 100644 --- a/src/generate-helper.js +++ b/src/generate-helper.js @@ -1,4 +1,4 @@ -module.exports = function (generateEntry, generateComment, compact = false) { +module.exports = function (generateEntry, generateComment) { return function (data) { var output = '', blocks = []; output += generateComment(data.header) + '\n'; @@ -10,7 +10,6 @@ module.exports = function (generateEntry, generateComment, compact = false) { tmp += generateComment(item.comment); } else { if (item.domain !== undefined) tmp += generateEntry(item.ip, item.domain) + '\n'; - else if (compact) tmp += generateEntry(item.ip, item.domains) + '\n'; else { item.domains.forEach(function (domain) { tmp += generateEntry(item.ip, domain) + '\n'; diff --git a/src/generators/hosts-compact.js b/src/generators/hosts-compact.js index fc8c270dae394bc94794f38f9ca5ab9c1f05ec5b..d5cf439f750016c7da20e2ccac07c5a07c990e46 100644 --- a/src/generators/hosts-compact.js +++ b/src/generators/hosts-compact.js @@ -2,12 +2,11 @@ module.exports = { fileName: 'hosts-compact', generate: (function () { var generateEntry = function (ip, domain) { - if (Array.isArray(domain)) domain = domain.join(' '); - return `${ip}\t${domain}`; + return `${ip}\t${domain.join(' ')}`; }; var generateComment = function (data) { return data.replace(/^(.)/gm, '# $1'); }; - return require('../generate-helper')(generateEntry, generateComment, true); + return require('../generate-helper-compact')(generateEntry, generateComment); })() };