3 ms·
Perhaps allowing the user to specify a word list, and defaulting to some value would be better than suggesting symlinks. On Tumbleweed, I have no /usr/share/di
by ragingrobot 5y ago
Perhaps allowing the user to specify a word list, and defaulting to some value would be better than suggesting symlinks.
On Tumbleweed, I have no /usr/share/dict/words, but /use/share/dict/american. Allowing the user to set would also be useful if multiple languages are installed, and doesn't change the number of lines of code.
I changed the first line to:
words=$(grep -Ex '\w{5}' "/usr/share/dict/${wordlist:=words}" | tr '[a-z]' '[A-Z]')
so I can invoke it
wordlist=american wordle.sh
You can also replace it with $1 (or any other positional parameter):
words=$(grep -Ex '\w{5}' "/usr/share/dict/${1:=words}" | tr '[a-z]' '[A-Z]')
And invoke it with
wordle.sh american
In either case, it defaults to /usr/share/dict/words if no list is given. Personally I'd go with the first as you use $1 for guesses, and higher numbered parameters get messy.
- berkes 5y agoIn more UNIXy tradition, I'd say either pipe in a file, or pick the default. That way people can use downloaded files too.
- ragingrobot 5y agounfortunately using a simple pipe is not going to work, because you're also looking for user input, and you can't do both easily with stdin.
- seanp2k2 5y agoIt’s possible to construct parallel (ish) pipeline processing in bash by using file descriptors above 2. See https://mywiki.wooledge.org/FileDescriptor https://mywiki.wooledge.org/FileDescriptor . It’s part of why I always liked Ruby’s .tap() : https://medium.com/aviabird/ruby-tap-that-method-90c8a801fd6a https://medium.com/aviabird/ruby-tap-that-method-90c8a801fd6...