UNPKG

1.1 kBJavaScriptView Raw
1var la = require('lazy-ass')
2var check = require('check-more-types')
3var log = require('debug')('ggit')
4var _ = require('lodash')
5var R = require('ramda')
6
7function parseLine (line) {
8 var parts = line.trim().split(/\s+/)
9 var diff = parts[0]
10 if (diff === 'AM') {
11 diff = 'A'
12 }
13 return {
14 diff: diff,
15 name: parts[1]
16 }
17}
18
19function parseOutput (data) {
20 data = data.trim()
21
22 var lines = data.split('\n')
23 var modifications = lines
24 .filter(function (filename) {
25 return filename.length
26 })
27 .map(parseLine)
28
29 return modifications
30}
31
32function ensureUniq (list) {
33 la(check.array(list), 'expected list', list)
34 return _.uniq(list, 'name')
35}
36
37function groupByModification (parsedLines) {
38 return _.groupBy(parsedLines, 'diff')
39}
40
41function logFoundFiles (files) {
42 log('found changed files')
43 log(files)
44}
45
46function logGroupedFiles (grouped) {
47 log('grouped by modification')
48 log(grouped)
49}
50
51var stdoutToGrouped = R.pipe(
52 parseOutput,
53 ensureUniq,
54 R.tap(logFoundFiles),
55 groupByModification,
56 R.tap(logGroupedFiles)
57)
58
59module.exports = stdoutToGrouped