1
0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2025-12-12 15:34:50 +08:00

Compare commits

...

4 Commits

Author SHA1 Message Date
Marc Cornellà
f2a4b2b17b fix(genpass): in genpass-xkcd, add warnings and make it compatible with macOS
Closes #9515
Closes #9516
2020-12-14 15:52:32 +01:00
Patrick Harrison
2db42c6ce7 fix(genpass): add compatibility for macOS paste command
"paste" on macOS requires a '-' to signify that the standard input is used.
Without the '-' character, the command errors out.
2020-12-14 15:52:32 +01:00
Marc Cornellà
076f7f1eb1 fix(genpass): warn if no wordlist is found 2020-12-14 15:52:30 +01:00
Patrick Harrison
619097cc2a fix(genpass): check for presence of shuf command.
"shuf" is not a standard command on MacOS and requires installation of the brew coreutils package
2020-12-14 15:52:14 +01:00

View File

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