60 lines
1.3 KiB
JavaScript
60 lines
1.3 KiB
JavaScript
![]() |
const fs = require('fs')
|
||
|
const latestRun = fs.readFileSync('/tmp/circular-deps.txt','utf-8')
|
||
|
const knownCircular = fs.readFileSync('./known-circular.txt','utf-8')
|
||
|
|
||
|
function parseLine (line) {
|
||
|
let num = null
|
||
|
let depPath = null
|
||
|
const res = line.split(")",2)
|
||
|
if (res.length === 2) {
|
||
|
// should be a dep line
|
||
|
num = parseInt(res[0])
|
||
|
depPath = res[1]
|
||
|
}
|
||
|
return {
|
||
|
num,
|
||
|
depPath
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function makeDependencyHash (file) {
|
||
|
const deps = {}
|
||
|
file.split("\n").forEach((line)=>{
|
||
|
const {num, depPath} = parseLine(line)
|
||
|
if (depPath && !isNaN(num)) {
|
||
|
deps[depPath] = 1
|
||
|
}
|
||
|
})
|
||
|
return deps
|
||
|
}
|
||
|
|
||
|
const latestRunDepHash = makeDependencyHash(latestRun)
|
||
|
const knownDepHash = makeDependencyHash(knownCircular)
|
||
|
|
||
|
const dup1 = JSON.parse(JSON.stringify(latestRunDepHash))
|
||
|
const dup2 = JSON.parse(JSON.stringify(knownDepHash))
|
||
|
Object.keys(knownDepHash).forEach((key)=>{
|
||
|
delete dup1[key]
|
||
|
})
|
||
|
|
||
|
Object.keys(latestRunDepHash).forEach((key)=>{
|
||
|
delete dup2[key]
|
||
|
})
|
||
|
|
||
|
console.log(" ")
|
||
|
console.log("diff.js - line item diff")
|
||
|
console.log(" ")
|
||
|
console.log("Added(+)")
|
||
|
Object.keys(dup1).forEach((dep, index)=>{
|
||
|
console.log(`${index+1}) ${dep}`)
|
||
|
})
|
||
|
|
||
|
console.log(" ")
|
||
|
console.log("Removed(-)")
|
||
|
if (Object.keys(dup2).length === 0) {
|
||
|
console.log("None")
|
||
|
}
|
||
|
Object.keys(dup2).forEach((dep, index)=>{
|
||
|
console.log(`${index+1}) ${dep}`)
|
||
|
})
|