summaryrefslogtreecommitdiff
path: root/plugins/genpass
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/genpass')
-rw-r--r--plugins/genpass/genpass.plugin.zsh15
1 files changed, 13 insertions, 2 deletions
diff --git a/plugins/genpass/genpass.plugin.zsh b/plugins/genpass/genpass.plugin.zsh
index e7f86bf7a..e6a1cef34 100644
--- a/plugins/genpass/genpass.plugin.zsh
+++ b/plugins/genpass/genpass.plugin.zsh
@@ -73,8 +73,19 @@ genpass-monkey() {
genpass-xkcd() {
# Generates a 128-bit XKCD-style passphrase
- # EG, 9-mien-flood-Patti-buxom-dozes-ickier-pay-ailed-Foster
+ # e.g, 9-mien-flood-Patti-buxom-dozes-ickier-pay-ailed-Foster
# Can take a numerical argument for generating extra passwords
+
+ if (( ! $+commands[shuf] )); then
+ echo >&2 "$0: \`shuf\` command not found. Install coreutils (\`brew install coreutils\` on macOS)."
+ return 1
+ fi
+
+ if [[ ! -e /usr/share/dict/words ]]; then
+ echo >&2 "$0: no wordlist found in \`/usr/share/dict/words\`. Install one first."
+ return 1
+ fi
+
local -i i num
[[ $1 =~ '^[0-9]+$' ]] && num=$1 || num=1
@@ -90,6 +101,6 @@ genpass-xkcd() {
for i in {1..$num}; do
printf "$n-"
- printf "$dict" | shuf -n "$n" | paste -sd '-'
+ printf "$dict" | shuf -n "$n" | paste -sd '-' -
done
}