util.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. var program = require('commander')
  2. , sprintf = require('sprintf')
  3. , debug = require('debug')('crowi:console:util')
  4. , colors = require('colors')
  5. , crowi = new (require('../lib/crowi'))(__dirname + '/../', process.env)
  6. ;
  7. crowi.init()
  8. .then(function(app) {
  9. program
  10. .version(crowi.version);
  11. program
  12. .command('count-page-length')
  13. .action(function (cmd, env) {
  14. var Page = crowi.model('Page');
  15. var stream = Page.getStreamOfFindAll();
  16. var pages = [];
  17. stream.on('data', function (doc) {
  18. if (!doc.creator || !doc.revision) {
  19. return ;
  20. }
  21. pages.push({
  22. path: doc.path,
  23. body: doc.revision.body,
  24. author: doc.creator.username,
  25. });
  26. }).on('error', function (err) {
  27. // TODO: handle err
  28. debug('Error stream:', err);
  29. }).on('close', function () {
  30. // all done
  31. pages.forEach(function(page, i) {
  32. console.log('%d\t%s', page.body.length, page.path);
  33. });
  34. process.exit(0);
  35. });
  36. });
  37. program.parse(process.argv);
  38. }).catch(crowi.exitOnError);