1 | var formatMap = {
|
2 | commit: '"%H"',
|
3 | authorName: '"%an"',
|
4 | authorEmail: '"%ae"',
|
5 | committerName: '"%cn"',
|
6 | committerEmail: '"%ce"',
|
7 | authorDate: '"%at000"',
|
8 | committerDate: '"%ct000"',
|
9 | title: '"%f"'
|
10 | };
|
11 |
|
12 | var formatBuilder = function () {
|
13 | var params = [];
|
14 | return {
|
15 | withCommit: function (alias) {
|
16 | alias = alias || 'commit';
|
17 | params.push('"' + alias + '":' + formatMap.commit);
|
18 | return this;
|
19 | },
|
20 | withAuthorName: function (alias) {
|
21 | alias = alias || 'authorName';
|
22 | params.push('"' + alias + '":' + formatMap.authorName);
|
23 | return this;
|
24 | },
|
25 | withAuthorEmail: function (alias) {
|
26 | alias = alias || 'authorEmail';
|
27 | params.push('"' + alias + '":' + formatMap.authorEmail);
|
28 | return this;
|
29 | },
|
30 | withAuthorDate: function (alias) {
|
31 | alias = alias || 'authorDate';
|
32 | params.push('"' + alias + '":' + formatMap.authorDate);
|
33 | return this;
|
34 | },
|
35 | withCommitTerEmail: function (alias) {
|
36 | alias = alias || 'committerEmail';
|
37 | params.push('"' + alias + '":' + formatMap.committerEmail);
|
38 | return this;
|
39 | },
|
40 | withCommitterName: function (alias) {
|
41 | alias = alias || 'committerName';
|
42 | params.push('"' + alias + '":' + formatMap.committerName);
|
43 | return this;
|
44 | },
|
45 | withCommitterDate: function (alias) {
|
46 | alias = alias || 'committerDate';
|
47 | params.push('"' + alias + '":' + formatMap.committerDate);
|
48 | return this;
|
49 | },
|
50 | withTitle: function (alias) {
|
51 | alias = alias || 'title';
|
52 | params.push('"' + alias + '":' + formatMap.title);
|
53 | return this;
|
54 | },
|
55 | build: function () {
|
56 | if (params.length < 1) {
|
57 | return '';
|
58 | }
|
59 | if (this.isWindows()) {
|
60 | return '{' + params.toString().replace(/"/g, '"""') + '}';
|
61 | }
|
62 | return '\'{' + params.toString() + '}\'';
|
63 | },
|
64 | isWindows: function () {
|
65 | return /^win/.test(process.platform);
|
66 | }
|
67 | }
|
68 | };
|
69 | module.exports = formatBuilder; |
\ | No newline at end of file |