feat(misc): add various rand-* commands for generating randomized data

This commit is contained in:
2020-10-27 13:05:42 +00:00
parent 21fb1fbd91
commit 60df63bc49
2 changed files with 43 additions and 0 deletions

View File

@@ -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)

View File

@@ -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