From 60df63bc4912175a7dce7b24f787514af8431bcf Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Tue, 27 Oct 2020 13:05:42 +0000 Subject: [PATCH] feat(misc): add various rand-* commands for generating randomized data --- core/siren-core-modules.el | 1 + modules/misc/siren-rand.el | 42 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 modules/misc/siren-rand.el diff --git a/core/siren-core-modules.el b/core/siren-core-modules.el index df49970..32cb866 100644 --- a/core/siren-core-modules.el +++ b/core/siren-core-modules.el @@ -46,6 +46,7 @@ ;; Misc. (require 'siren-explain-pause) (require 'siren-grip) +(require 'siren-rand) (require 'siren-restart-emacs) (require 'siren-uuidgen) (require 'siren-zone) diff --git a/modules/misc/siren-rand.el b/modules/misc/siren-rand.el new file mode 100644 index 0000000..6e6988a --- /dev/null +++ b/modules/misc/siren-rand.el @@ -0,0 +1,42 @@ +;;; siren-rand.el --- jimeh's Emacs Siren: rand configuration. + +;;; Commentary: + +;; Basic configuration for rand. + +;;; Code: + +;; Borrowed from: +;; http://ergoemacs.org/emacs/elisp_insert_random_number_string.html + +;; seed random number +(random t) + +(defun rand-alphanumeric (NUM) + "Insert a random alphanumerics string of length NUM." + (interactive "P") + (let* ((charset (concat "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789")) + (baseCount (length charset))) + (dotimes (_ (if (numberp NUM) (abs NUM) 16)) + (insert (elt charset (random baseCount)))))) + +(defun rand-hex (NUM) + "Insert NUM random hexadecimal digits." + (interactive "P") + (let ((n (if (numberp NUM) (abs NUM) 6 ))) + (insert (format + (concat "%0" (number-to-string n) "x" ) + (random (1- (expt 16 n))))))) + +(defun rand-num (NUM) + "Insert NUM random digits." + (interactive "P") + (let ((charset "1234567890") + (baseCount 10)) + (dotimes (_ (if (numberp NUM) (abs NUM) 16 )) + (insert (elt charset (random baseCount)))))) + +(provide 'siren-rand) +;;; siren-rand.el ends here