UNPKG

ggit

Version:

Local promise-returning git command wrappers

30 lines (25 loc) 726 B
var spawn = require('child_process').spawn; var check = require('check-types'); module.exports.getGitRootFolder = function (cb) { check.verify.fn(cb, 'expect callback function, not', cb); var git = spawn('git', ['rev-parse', '--show-toplevel']); var topLevelFolder = null; var err; git.stdout.setEncoding('utf-8'); git.stdout.on('data', function (data) { data.trim(); if (/fatal/.test(data)) { err = 'Could not determine git top folder\n' + data; return; } topLevelFolder = data.trim(); }); git.stderr.setEncoding('utf-8'); git.stderr.on('data', function (data) { err = 'Could not determine git top folder\n' + data; return; }); git.on('exit', function () { cb(err, topLevelFolder); }); };