/**
|
* Calculates comparison statistics.
|
*/
|
module.exports = {
|
updateStatisticsBoth: function (entry1, entry2, same, reason, type, statistics, options) {
|
same ? statistics.equal++ : statistics.distinct++
|
if (type === 'file') {
|
same ? statistics.equalFiles++ : statistics.distinctFiles++
|
} else if (type === 'directory') {
|
same ? statistics.equalDirs++ : statistics.distinctDirs++
|
} else if (type === 'broken-link') {
|
statistics.brokenLinks.distinctBrokenLinks++
|
} else {
|
throw new Error('Unexpected type ' + type)
|
}
|
|
var isSymlink1 = entry1 ? entry1.isSymlink : false
|
var isSymlink2 = entry2 ? entry2.isSymlink : false
|
var isSymlink = isSymlink1 || isSymlink2
|
if (options.compareSymlink && isSymlink) {
|
var symlinks = statistics.symlinks
|
if (reason === 'different-symlink') {
|
symlinks.distinctSymlinks++
|
} else {
|
symlinks.equalSymlinks++
|
}
|
}
|
|
},
|
updateStatisticsLeft: function (entry1, type, statistics, options) {
|
statistics.left++
|
if (type === 'file') {
|
statistics.leftFiles++
|
} else if (type === 'directory') {
|
statistics.leftDirs++
|
} else if (type === 'broken-link') {
|
statistics.brokenLinks.leftBrokenLinks++
|
} else {
|
throw new Error('Unexpected type ' + type)
|
}
|
|
if (options.compareSymlink && entry1.isSymlink) {
|
statistics.symlinks.leftSymlinks++
|
}
|
},
|
updateStatisticsRight: function (entry2, type, statistics, options) {
|
statistics.right++
|
if (type === 'file') {
|
statistics.rightFiles++
|
} else if (type === 'directory') {
|
statistics.rightDirs++
|
} else if (type === 'broken-link') {
|
statistics.brokenLinks.rightBrokenLinks++
|
} else {
|
throw new Error('Unexpected type ' + type)
|
}
|
|
if (options.compareSymlink && entry2.isSymlink) {
|
statistics.symlinks.rightSymlinks++
|
}
|
},
|
}
|