aboutsummaryrefslogtreecommitdiff
path: root/scripts/util/pgen.sh
diff options
context:
space:
mode:
authorben <ben@nagy.contact>2025-01-10 11:14:29 -0800
committerben <ben@nagy.contact>2025-01-10 11:14:29 -0800
commitfb4f206e21cc2853e904e8e548b3d4450b208c8d (patch)
tree92044e436174b598bbb831473412ee4382a05396 /scripts/util/pgen.sh
parent7339a5dae5f48ba37d44094f8aaa9915695f86e5 (diff)
added scriptsmain
Diffstat (limited to 'scripts/util/pgen.sh')
-rwxr-xr-xscripts/util/pgen.sh34
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