diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/genpass/core.cljs | 18 | ||||
-rw-r--r-- | src/genpass/gen.cljc | 20 |
2 files changed, 38 insertions, 0 deletions
diff --git a/src/genpass/core.cljs b/src/genpass/core.cljs new file mode 100644 index 0000000..e6b33ca --- /dev/null +++ b/src/genpass/core.cljs @@ -0,0 +1,18 @@ +(ns genpass.core + (:require + [reagent.core :as r])) + +;; ------------------------- +;; Views + +(defn home-page [] + [:div [:h2 "Welcome to Reagent"]]) + +;; ------------------------- +;; Initialize app + +(defn mount-root [] + (r/render [home-page] (.getElementById js/document "app"))) + +(defn init! [] + (mount-root)) diff --git a/src/genpass/gen.cljc b/src/genpass/gen.cljc new file mode 100644 index 0000000..103734d --- /dev/null +++ b/src/genpass/gen.cljc @@ -0,0 +1,20 @@ +(ns genpass.gen) + +(def low-case [\a \b \c \d \e \f \g \h \i \j \k \l \m \n \o \p \q \r \s \t \u \v \W \x \Y \z]) +(def upper-case [\A \B \C \D \E \F \G \H \I \J \K \L \M \N \O \P \Q \R \S \T \U \V \W \X \Y \Z]) +(def number [\0 \1 \2 \3 \4 \5 \6 \7 \8 \9]) +(def special-char [\! \@ \# \% \^ \& \* \( \) \{ \} \[ \] \- \+ \= \~]) +(def all-char (into [] (concat low-case upper-case number special-char))) + +(defn rand-char [] + (nth all-char (rand-int (dec (count all-char))))) + +(defn genpwd + ([] (genpwd 12)) + ([length] + (genpwd length "")) + ([length pwd] + (if (>= 0 length) + pwd + (recur (dec length) + (str pwd (rand-char))))))
\ No newline at end of file |