1 | var path = require('path');
|
2 | var exec = require('child_process').exec;
|
3 |
|
4 |
|
5 | exports.findGitRoot = function (callback) {
|
6 | exec('git rev-parse --show-toplevel', function (err, stderr) {
|
7 | if (err) {
|
8 | return callback(err);
|
9 | }
|
10 |
|
11 | callback(null, stderr.trim());
|
12 | });
|
13 | };
|
14 |
|
15 |
|
16 |
|
17 |
|
18 | exports.findProjectRoot = function (base) {
|
19 | base = base || __dirname;
|
20 | var dir = path.resolve(base, '..');
|
21 |
|
22 | if (path.basename(dir) !== 'node_modules') {
|
23 | return dir;
|
24 | }
|
25 |
|
26 | return exports.findProjectRoot(dir);
|
27 | };
|
28 |
|
29 | exports.findPackageJson = function () {
|
30 | var dir = exports.findProjectRoot();
|
31 |
|
32 | return path.join(dir, 'package.json');
|
33 | };
|