Example #1
0
var path = require('path');
var fs = require('fs');
var async = require('async');
var exists = fs.exists ? fs.exists.bind(fs) : path.exists.bind(path);

var vc = exports.vc = function(conf, cb) {
  var superCb = cb;
  async.waterfall([
  function(cb) {
    exists('.git', function(is_exists) {
      if (is_exists) {
        var Git = require('./vc/Git').Git;
        var gitConf = conf.Git || {};
        return superCb(null, new Git(gitConf));
      } else {
        return cb(null);
      }
    });
  },
  function(cb) {
    exists('.hg', function(is_exists) {
      if (is_exists) {
        var Hg = require('./vc/Hg').Hg;
        var hgConf = conf.Hg || {};
        return superCb(null, new Hg(hgConf));
      } else {
        cb(new Error('Supported VCS not found'));
      }
    });
  }], function(err) {
    superCb(err);
		fs.exists = function() {
			return path.exists.apply(path, arguments);
		};