Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
42 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,50 @@ | ||
#!/usr/bin/env node | ||
var assert = require('assert'); | ||
|
||
var path = require('path'); | ||
var uuid = require(path.join(__dirname, '..')); | ||
function usage() { | ||
console.log('Usage:'); | ||
console.log(' uuid'); | ||
console.log(' uuid v1'); | ||
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 arg = process.argv[2]; | ||
var args = process.argv.slice(2); | ||
|
||
if ('--help' === arg) { | ||
console.log('\n USAGE: uuid [version] [options]\n\n'); | ||
console.log(' options:\n'); | ||
console.log(' --help Display this message and exit\n'); | ||
if (args.indexOf('--help') >= 0) { | ||
usage(); | ||
process.exit(0); | ||
} | ||
var version = args.shift() || 'v4'; | ||
|
||
if (null == arg) { | ||
console.log(uuid()); | ||
process.exit(0); | ||
} | ||
switch (version) { | ||
case 'v1': | ||
var uuidV1 = require('../v1'); | ||
console.log(uuidV1()); | ||
break; | ||
|
||
if ('v1' !== arg && 'v4' !== arg) { | ||
console.error('Version must be RFC4122 version 1 or version 4, denoted as "v1" or "v4"'); | ||
process.exit(1); | ||
} | ||
case 'v4': | ||
var uuidV4 = require('../v4'); | ||
console.log(uuidV4()); | ||
break; | ||
|
||
case 'v5': | ||
var uuidV5 = require('../v5'); | ||
|
||
console.log(uuid[arg]()); | ||
process.exit(0); | ||
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); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters