1 | {exec} = require 'child_process'
|
2 | debug = require('debug') "git"
|
3 |
|
4 | module.exports = (dir) ->
|
5 | debug "initialized for: #{dir}"
|
6 | options = { cwd: dir }
|
7 |
|
8 | dir: dir
|
9 |
|
10 | isClean: (callback) ->
|
11 | debug "isClean"
|
12 |
|
13 | exec 'git diff --exit-code', options, (error, stdout, stderror) ->
|
14 | callback(!error)
|
15 |
|
16 | getSha: (callback) ->
|
17 | debug 'getSha'
|
18 | exec 'git rev-parse HEAD', options, (error, stdout, stderror) ->
|
19 | callback(error, stdout?.trim())
|
20 |
|
21 | commit: (message, callback) ->
|
22 | debug "commit - #{message}"
|
23 |
|
24 | exec "git add CHANGELOG.md package.json && git commit -m '#{message}'", options, (error, stdout, stderror) ->
|
25 | callback(!error)
|
26 |
|
27 | diffSinceLastTag: (callback) ->
|
28 | debug "diffSinceLastTag"
|
29 |
|
30 | exec "git log --oneline $(git describe --tags --abbrev=0)..HEAD", options, (error, stdout, stderr) ->
|
31 | callback(error, stdout)
|
32 |
|
33 | tag: (tag, callback) ->
|
34 | debug "tag - #{tag}"
|
35 |
|
36 | exec "git tag -a #{tag} -m #{tag}", options, (error, stdout, stderror) ->
|
37 | callback(error)
|
38 |
|
39 | branch: (callback) ->
|
40 | debug "branch"
|
41 |
|
42 | exec "git rev-parse --abbrev-ref HEAD", options, (error, stdout, stderr) ->
|
43 | callback(error, stdout)
|
44 |
|
45 | push: (branch, callback) ->
|
46 | debug "push - #{branch}"
|
47 |
|
48 | exec "git push origin #{branch}", options, (error, stdout, stderror) ->
|
49 | callback(error)
|
50 |
|
51 | pushTag: (tag, callback) ->
|
52 | debug "pushTag - #{tag}"
|
53 |
|
54 | exec "git push origin tag #{tag}", options, (error, stdout, stderror) ->
|
55 | callback(error)
|
56 |
|