Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 3x 3x 3x 1x 1x 1x 1x 1x 1x 1x 1x 1x 3x 3x 3x 3x 3x 6x 6x 6x 6x 2x 6x 2x 2x 3x 3x 3x 3x 1x 1x 2x 2x 2x 2x 2x 1x 1x 2x 2x 2x 2x 2x 1x 1x | var fs = require('fs');
var ini = require('ini');
var p = require('path');
var svnInfo = require('svn-info');
/**
* Configuration generator for local repositories.
*
* @param {String} dir directory where the local repositories are located
* @class
*/
function Local(dir) {
this.dir = dir;
}
/**
* Generate Repoman configuration from local repositories.
* Only supports vanilla git clone (using git config),
* and subversion checkouts (using svn info).
*
* @param {Function} cb standard cb(err, result) callback
*/
Local.prototype.generate = function(cb) {
var self = this;
var config = {};
var repos = fs.readdirSync(this.dir);
repos.forEach(function(repo) {
var gitConfig = p.join(repo, '.git', 'config');
var svnEntries = p.join(repo, '.svn', 'entries');
if (fs.existsSync(gitConfig)) {
self._git(gitConfig, repo, config);
} else if (fs.existsSync(svnEntries)) {
self._svn(svnEntries, repo, config);
}
});
cb(null, config);
};
Local.prototype._git = function(gitConfig, repo, config) {
var info = ini.parse(fs.readFileSync(gitConfig, 'utf-8'));
if (info['remote "origin"'])
config[repo] = { type: 'git', url: info['remote "origin"'].url };
};
Local.prototype._svn = function(svnEntries, repo, config) {
var info = svnInfo.sync(repo);
var url = info.repositoryRoot;
config[repo] = { type: 'svn', url: url };
};
module.exports = Local;
|