#!/usr/bin/env node 
 | 
var assert = require('assert'); 
 | 
  
 | 
function usage() { 
 | 
  console.log('Usage:'); 
 | 
  console.log('  uuid'); 
 | 
  console.log('  uuid v1'); 
 | 
  console.log('  uuid v3 <name> <namespace uuid>'); 
 | 
  console.log('  uuid v4'); 
 | 
  console.log('  uuid v5 <name> <namespace uuid>'); 
 | 
  console.log('  uuid --help'); 
 | 
  console.log('\nNote: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC4122'); 
 | 
} 
 | 
  
 | 
var args = process.argv.slice(2); 
 | 
  
 | 
if (args.indexOf('--help') >= 0) { 
 | 
  usage(); 
 | 
  process.exit(0); 
 | 
} 
 | 
var version = args.shift() || 'v4'; 
 | 
  
 | 
switch (version) { 
 | 
  case 'v1': 
 | 
    var uuidV1 = require('../v1'); 
 | 
    console.log(uuidV1()); 
 | 
    break; 
 | 
  
 | 
  case 'v3': 
 | 
    var uuidV3 = require('../v3'); 
 | 
  
 | 
    var name = args.shift(); 
 | 
    var namespace = args.shift(); 
 | 
    assert(name != null, 'v3 name not specified'); 
 | 
    assert(namespace != null, 'v3 namespace not specified'); 
 | 
  
 | 
    if (namespace == 'URL') namespace = uuidV3.URL; 
 | 
    if (namespace == 'DNS') namespace = uuidV3.DNS; 
 | 
  
 | 
    console.log(uuidV3(name, namespace)); 
 | 
    break; 
 | 
  
 | 
  case 'v4': 
 | 
    var uuidV4 = require('../v4'); 
 | 
    console.log(uuidV4()); 
 | 
    break; 
 | 
  
 | 
  case 'v5': 
 | 
    var uuidV5 = require('../v5'); 
 | 
  
 | 
    var name = args.shift(); 
 | 
    var namespace = args.shift(); 
 | 
    assert(name != null, 'v5 name not specified'); 
 | 
    assert(namespace != null, 'v5 namespace not specified'); 
 | 
  
 | 
    if (namespace == 'URL') namespace = uuidV5.URL; 
 | 
    if (namespace == 'DNS') namespace = uuidV5.DNS; 
 | 
  
 | 
    console.log(uuidV5(name, namespace)); 
 | 
    break; 
 | 
  
 | 
  default: 
 | 
    usage(); 
 | 
    process.exit(1); 
 | 
} 
 |