UNPKG

lmd

Version:

LMD: Lazy Module Declaration

71 lines (53 loc) 1.64 kB
require('colors'); var fs = require('fs'), path = require('path'), init = require(__dirname + '/init.js'), create = require(__dirname + '/create.js'), common = require(__dirname + '/../../lib/lmd_common.js'); var reLmdFile = common.RE_LMD_FILE; function printHelp(cli, errorMessage) { var help = [ 'Usage:'.bold.white.underline, '', ' lmd list', '' ]; cli.help(help, errorMessage); } function builds(cwd) { var lmdDir = path.join(cwd, '.lmd'); return fs.readdirSync(lmdDir) .filter(function (name) { return fs.statSync(path.join(lmdDir, name)).isFile() && reLmdFile.test(name); }); } function listOfFiles(cli, cwd) { var lmdDir = path.join(cwd, '.lmd'); var files = builds(cwd); if (!files.length) { cli.ok(''); cli.ok('No LMD builds. Type lmd create for more info'); cli.ok(''); return; } cli.ok(''); cli.ok('Available builds'.white.bold.underline); cli.ok(''); var longestName = files.reduce(function (max, current) { return current.length > max ? current.length : max; }, 0); files.forEach(function (name) { var extraSpaces = new Array(longestName - name.length + 3).join(' '), buildName = common.readConfig(lmdDir, name).name || ''; name = name.replace(reLmdFile, ''); cli.ok(name.cyan + extraSpaces + buildName); }); cli.ok(''); } module.exports = function (cli, argv, cwd) { if (!init.check(cli, cwd)) { return; } listOfFiles(cli, cwd); }; module.exports.builds = builds;