uuid 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/usr/bin/env node
  2. var assert = require('assert');
  3. function usage() {
  4. console.log('Usage:');
  5. console.log(' uuid');
  6. console.log(' uuid v1');
  7. console.log(' uuid v4');
  8. console.log(' uuid v5 <name> <namespace uuid>');
  9. console.log(' uuid --help');
  10. console.log('\nNote: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC4122');
  11. }
  12. var args = process.argv.slice(2);
  13. if (args.indexOf('--help') >= 0) {
  14. usage();
  15. process.exit(0);
  16. }
  17. var version = args.shift() || 'v4';
  18. switch (version) {
  19. case 'v1':
  20. var uuidV1 = require('../v1');
  21. console.log(uuidV1());
  22. break;
  23. case 'v4':
  24. var uuidV4 = require('../v4');
  25. console.log(uuidV4());
  26. break;
  27. case 'v5':
  28. var uuidV5 = require('../v5');
  29. var name = args.shift();
  30. var namespace = args.shift();
  31. assert(name != null, 'v5 name not specified');
  32. assert(namespace != null, 'v5 namespace not specified');
  33. if (namespace == 'URL') namespace = uuidV5.URL;
  34. if (namespace == 'DNS') namespace = uuidV5.DNS;
  35. console.log(uuidV5(name, namespace));
  36. break;
  37. default:
  38. usage();
  39. process.exit(1);
  40. }