|
7 | 7 |
|
8 | 8 | (function() { |
9 | 9 |
|
| 10 | + var os = require('os'); |
| 11 | + var path = require('path'); |
| 12 | + |
10 | 13 | var diff2Html = require('diff2html').Diff2Html; |
11 | 14 |
|
12 | 15 | var log = require('./logger.js').Logger; |
13 | 16 | var http = require('./http-utils.js').HttpUtils; |
14 | 17 | var utils = require('./utils.js').Utils; |
15 | 18 |
|
| 19 | + var open = require('open'); |
| 20 | + var ncp = require("copy-paste"); |
| 21 | + |
16 | 22 | function Diff2HtmlInterface() { |
17 | 23 | } |
18 | 24 |
|
|
41 | 47 | if (gitArgsArr.length && gitArgsArr[0]) { |
42 | 48 | gitArgs = gitArgsArr.join(' '); |
43 | 49 | } else { |
44 | | - gitArgs = '-M HEAD~1'; |
| 50 | + gitArgs = '-M HEAD'; |
45 | 51 | } |
46 | 52 |
|
47 | 53 | var diffCommand = 'git diff ' + gitArgs; |
|
83 | 89 | }; |
84 | 90 |
|
85 | 91 | Diff2HtmlInterface.prototype._prepareHTML = function(content) { |
86 | | - var template = utils.readFileSync(__dirname + '/../dist/template.html'); |
| 92 | + var templatePath = path.resolve(__dirname, '..', 'dist', 'template.html'); |
| 93 | + var template = utils.readFileSync(templatePath); |
| 94 | + |
| 95 | + var cssFilePath = path.resolve(__dirname, '..', 'node_modules', 'diff2html', 'css', 'diff2html.css'); |
| 96 | + var cssFallbackPath = path.resolve(__dirname, '..', 'dist', 'diff2html.css'); |
87 | 97 |
|
88 | | - var cssFile = __dirname + '/../node_modules/diff2html/css/diff2html.css'; |
89 | | - var cssFallbackFile = __dirname + '/../dist/diff2html.css'; |
90 | | - if (utils.existsSync(cssFile)) cssFile = cssFallbackFile; |
| 98 | + if (!utils.existsSync(cssFilePath)) cssFilePath = cssFallbackPath; |
91 | 99 |
|
92 | | - var cssContent = utils.readFileSync(cssFile); |
| 100 | + var cssContent = utils.readFileSync(cssFilePath); |
93 | 101 |
|
94 | 102 | return template |
95 | 103 | .replace('<!--css-->', '<style>\n' + cssContent + '\n</style>') |
|
101 | 109 | */ |
102 | 110 |
|
103 | 111 | Diff2HtmlInterface.prototype.preview = function(content, format) { |
104 | | - var filePath = '/tmp/diff.' + format; |
| 112 | + var filename = 'diff.' + format; |
| 113 | + var filePath = path.resolve(os.tmpdir(), filename); |
105 | 114 | utils.writeFile(filePath, content); |
106 | | - utils.runCmd('open ' + filePath); |
| 115 | + open(filePath); |
107 | 116 | }; |
108 | 117 |
|
109 | | - Diff2HtmlInterface.prototype.postToDiffy = function(diff, postType) { |
| 118 | + Diff2HtmlInterface.prototype.postToDiffy = function(diff, postType, callback) { |
110 | 119 | var jsonParams = {udiff: diff}; |
111 | 120 |
|
112 | 121 | http.post('http://diffy.org/api/new', jsonParams, function(err, response) { |
|
120 | 129 | log.print(response.url); |
121 | 130 |
|
122 | 131 | if (postType === 'browser') { |
123 | | - utils.runCmd('open ' + response.url); |
| 132 | + open(response.url); |
| 133 | + return callback(null, response.url); |
124 | 134 | } else if (postType === 'pbcopy') { |
125 | | - utils.runCmd('echo "' + response.url + '" | pbcopy'); |
| 135 | + ncp.copy(response.url, function() { |
| 136 | + return callback(null, response.url); |
| 137 | + }); |
126 | 138 | } |
127 | 139 | } else { |
128 | 140 | log.error('Error: ' + message); |
|
0 commit comments