diff options
author | ben <ben@nagy.contact> | 2025-05-03 14:41:13 -0700 |
---|---|---|
committer | ben <ben@nagy.contact> | 2025-05-03 14:41:13 -0700 |
commit | ea687c769521b3139c8547a2d4a839842fa7b0fe (patch) | |
tree | f4805588bb59ca15e96d8b71124c4aafd5dd40cb /scripts/util/pgen.sh | |
parent | 16725b034eeb7122f4174f08221ab7f07b6abbf1 (diff) |
added scripts
Diffstat (limited to 'scripts/util/pgen.sh')
-rwxr-xr-x | scripts/util/pgen.sh | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/scripts/util/pgen.sh b/scripts/util/pgen.sh new file mode 100755 index 0000000..f3a7976 --- /dev/null +++ b/scripts/util/pgen.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# A pseudorandom password generator + +LEN=16 # default length +SYMBOLS=true + +gen_psw() { + local len=$1 + local symbols=$2 + local charset="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + + [[ $symbols == true ]] && charset="${charset}!@#$%^&*()_+{}|:<>?" + + psw=$(< /dev/urandom tr -dc "$charset" | head -c "$len") + echo "$psw" +} + +while [[ "$#" -gt 0 ]]; do + case $1 in + -l|--length) LEN="$2"; shift ;; + -ns|--no-symbols) SYMBOLS=false ;; + *) echo "Unknown flag: $1"; exit 1 ;; + esac + shift +done + +PASSWORD=$(gen_psw "$LEN" "$SYMBOLS") +echo "$PASSWORD" + +if command -v xclip &> /dev/null; then + echo -n "$PASSWORD" | xclip -selection clipboard + printf '%s\n' "Password has been copied." | dzen2 -p 1 -bg white -fg black -x -305 -y 50 -w 455 -h 50 +fi |