forked from kentcdodds/bookshelf
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgit-diffs.js
35 lines (28 loc) · 934 Bytes
/
git-diffs.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
const {spawnSync, getVariants} = require('./utils')
const variants = getVariants()
const [, , end, start = 'exercise'] = process.argv
function getVariant(variant, requested) {
if (variant[requested]) return variant[requested]
return variant.extras.find(e => e.number === Number(requested))
}
function getFilesForVariant() {
return Object.values(variants)
.map(variant => {
const before = getVariant(variant, start)
const after = getVariant(variant, end)
return {
before: before ? before.file : null,
after: after ? after.file : null,
}
})
.filter(({before, after}) => before && after)
}
const files = getFilesForVariant()
const commands = files.map(
({before, after}) =>
`diff -u "${before}" "${after}" | delta --theme="night-owlish" --paging=never`,
)
console.log(commands.join('\n'), '\n\n')
for (const cmd of commands) {
spawnSync(cmd, {stdio: 'inherit'})
}