UNPKG

1.49 kBtext/coffeescriptView Raw
1{exec} = require 'child_process'
2debug = require('debug') "git"
3
4module.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