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; |