@@ -374,7 +374,7 @@ dtutils.libdoc.functions["deprecated"] = {
374
374
375
375
du.deprecated(script_name, removal_string)
376
376
script_name - name of the script being deprecated
377
- removal_strubg - a string explaining when the script will be removed]] ,
377
+ removal_string - a string explaining when the script will be removed]] ,
378
378
Description = [[ deprecated prints an error message saying the script is deprecated and when it will be removed]] ,
379
379
Return_Value = [[ ]] ,
380
380
Limitations = [[ ]] ,
@@ -391,5 +391,40 @@ function dtutils.deprecated(script_name, removal_string)
391
391
dt .print_error (" WARNING: " .. script_name .. " is deprecated and will be removed in " .. removal_string )
392
392
end
393
393
394
+ dtutils .libdoc .functions [" gen_uuid" ] = {
395
+ Name = [[ gen_uuid]] ,
396
+ Synopsis = [[ generate a UUID string]] ,
397
+ Usage = [[ local du = require "lib/dtutils"
398
+
399
+ uuid = du.gen_uuid(case)
400
+ case - "upper" or "lower" to specify the case of the UUID string]] ,
401
+ Description = [[ gen_uuid prints an error message saying the script is gen_uuid and when it will be removed]] ,
402
+ Return_Value = [[ uuid - string - a hexidecimal string representing the UUID in the requested case]] ,
403
+ Limitations = [[ ]] ,
404
+ Example = [[ ]] ,
405
+ See_Also = [[ ]] ,
406
+ Reference = [[ https://gist.github.com/jrus/3197011]] ,
407
+ License = [[ ]] ,
408
+ Copyright = [[ ]] ,
409
+ }
410
+
411
+ function dtutils .gen_uuid (case )
412
+ local template = ' xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
413
+
414
+ -- seed with os.time in seconds and add an extra degree of random for multiple calls in the same second
415
+ math.randomseed (os.time (), math.random (0 , 65536 ))
416
+
417
+ local uuid = string.gsub (template , ' [xy]' , function (c )
418
+ local v = (c == ' x' ) and math.random (0 , 0xf ) or math.random (8 , 0xb )
419
+ return string.format (' %x' , v )
420
+ end
421
+ )
422
+
423
+ if case and case == " upper" then
424
+ uuid = string.upper (uuid )
425
+ end
426
+
427
+ return uuid
428
+ end
394
429
395
430
return dtutils
0 commit comments