uuid (1579B)
1 #!/usr/bin/env node 2 var assert = require('assert'); 3 4 function usage() { 5 console.log('Usage:'); 6 console.log(' uuid'); 7 console.log(' uuid v1'); 8 console.log(' uuid v3 <name> <namespace uuid>'); 9 console.log(' uuid v4'); 10 console.log(' uuid v5 <name> <namespace uuid>'); 11 console.log(' uuid --help'); 12 console.log('\nNote: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC4122'); 13 } 14 15 var args = process.argv.slice(2); 16 17 if (args.indexOf('--help') >= 0) { 18 usage(); 19 process.exit(0); 20 } 21 var version = args.shift() || 'v4'; 22 23 switch (version) { 24 case 'v1': 25 var uuidV1 = require('../v1'); 26 console.log(uuidV1()); 27 break; 28 29 case 'v3': 30 var uuidV3 = require('../v3'); 31 32 var name = args.shift(); 33 var namespace = args.shift(); 34 assert(name != null, 'v3 name not specified'); 35 assert(namespace != null, 'v3 namespace not specified'); 36 37 if (namespace == 'URL') namespace = uuidV3.URL; 38 if (namespace == 'DNS') namespace = uuidV3.DNS; 39 40 console.log(uuidV3(name, namespace)); 41 break; 42 43 case 'v4': 44 var uuidV4 = require('../v4'); 45 console.log(uuidV4()); 46 break; 47 48 case 'v5': 49 var uuidV5 = require('../v5'); 50 51 var name = args.shift(); 52 var namespace = args.shift(); 53 assert(name != null, 'v5 name not specified'); 54 assert(namespace != null, 'v5 namespace not specified'); 55 56 if (namespace == 'URL') namespace = uuidV5.URL; 57 if (namespace == 'DNS') namespace = uuidV5.DNS; 58 59 console.log(uuidV5(name, namespace)); 60 break; 61 62 default: 63 usage(); 64 process.exit(1); 65 }