vizion.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. var ALL = {};
  2. var vizion = {};
  3. ALL.hg = require('./hg/hg.js');
  4. ALL.git = require('./git/git.js');
  5. ALL.svn = require('./svn/svn.js');
  6. // Add more revision control tools here
  7. var identify = require('./identify.js');
  8. vizion.analyze = function(argv, cb) {
  9. var _folder = (argv.folder != undefined) ? argv.folder : '.';
  10. identify(_folder, function(type, folder) {
  11. if (ALL[type])
  12. return ALL[type].parse(folder, cb);
  13. else
  14. return cb('Error vizion::analyze() for given folder: '+folder);
  15. });
  16. };
  17. vizion.isUpToDate = function(argv, cb) {
  18. var _folder = (argv.folder != undefined) ? argv.folder : '.';
  19. identify(_folder, function(type, folder) {
  20. if (ALL[type])
  21. return ALL[type].isUpdated(folder, cb);
  22. else
  23. return cb('Error vizion::isUpToDate() for given folder: '+folder);
  24. });
  25. };
  26. vizion.update = function(argv, cb) {
  27. var _folder = (argv.folder != undefined) ? argv.folder : '.';
  28. identify(_folder, function(type, folder) {
  29. if (ALL[type])
  30. return ALL[type].update(folder, cb);
  31. else
  32. return cb('Error vizion::update() for given folder: '+folder);
  33. });
  34. };
  35. vizion.revertTo = function(argv, cb) {
  36. var revision = (argv.revision) ? argv.revision : false;
  37. var _folder = (argv.folder != undefined) ? argv.folder : '.';
  38. if (!(revision && /^[A-Fa-f0-9]+$/.test(revision))) return cb({msg: 'Cannot revert to an invalid commit revision', path: _folder});
  39. identify(_folder, function(type, folder) {
  40. if (ALL[type])
  41. return ALL[type].revert({folder: folder, revision: revision}, cb);
  42. else
  43. return cb('Error vizion::analyze() for given folder: '+folder);
  44. });
  45. };
  46. vizion.prev = function(argv, cb) {
  47. var _folder = (argv.folder != undefined) ? argv.folder : '.';
  48. identify(_folder, function(type, folder) {
  49. if (ALL[type])
  50. return ALL[type].prev(folder, cb);
  51. else
  52. return cb('Error vizion::prev() for given folder: '+folder);
  53. });
  54. };
  55. vizion.next = function(argv, cb) {
  56. var _folder = (argv.folder != undefined) ? argv.folder : '.';
  57. identify(_folder, function(type, folder) {
  58. if (ALL[type])
  59. return ALL[type].next(folder, cb);
  60. else
  61. return cb('Error vizion::next() for given folder: '+folder);
  62. });
  63. };
  64. module.exports = vizion;