summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-12-16fix(genpass): improve performance and usability and fix bugs (#9520)Roman Perepelitsa
*Bugs* The following bugs have been fixed: - All generators ignored errors from external commands. For example, if `/usr/share/dict/words` was unreadable, `genpass-xkcd` would print "0-" as a password and return success. - All generators silently ignored the argument if it wasn't a number. For example, `genpass-apple -2` was generating one password and not printing any errors. - All generators silently ignored extra arguments. For example, `genpass-apple -n 2` was generating one password and not printing any errors. - `genpass-xkcd` was generating passwords with less than 128 bits of security margin in contradiction to documentation. The smaller the dictionary size, the weaker the passwords it was generating. For a dictionary with 27 words, `genpass-xkcd` was generating passwords with 93 bits of security margin (`log2(27!)`). - The source of random data used by `genpass-xkcd` was not cryptographically secure in contradiction to documentation. See: https://www.gnu.org/software/coreutils/manual/html_node/Random-sources.html - `genpass-apple` could generate a password with non-ascii characters depending on user locale. For example, passwords could contain 'İ' for users with Turkish locale. - `genpass-apple` didn't work with `ksh_arrays` shell option. - `genpass-xkcd` was printing spurious errors with `ksh_arrays` shell option. - `genpass-xkcd` was producing too short (weak) or too strong (long) and/or printing errors when `IFS` was set to non-default value. - All generators were printing fewer passwords than requested and returning success when passed a very large number as an argument. *Usability* Generators are now implemented as self-contained executable files. They can be invoked from scripts with no additional setup. Generators no longer depend on external commands. The only dependencies are `/dev/urandom` and, for `genpass-xkcd`, `/usr/share/dict/words`. All generators used to silently ignore all arguments after the first and the first argument if it wasn't a number. For example, both `genpass-apple -2` and `genpass-apple -n 2` were generating one password and not printing any errors. Now these print an error and fail. *Performance* The time it takes to load the plugin has been greatly reduced. This translates into faster zsh startup when the plugin is enabled. Incidentally, two generators out of three have been sped up to a large degree while one generator (`genpass-xkcd`) has gotten slower. This is unlikely to matter one way or another unless generating a very large number of passwords. In the latter case `genpass-xkcd` is now also faster than it used to be. The following table shows benchmark results from Linux x86-64 on i9-7900X. The numbers in the second and third columns show how many times a given command could be executed per second. Higher numbers are better. command | before (Hz) | after (Hz) | speedup | ----------------------------|------------:|-----------:|--------:| `source genpass.plugin.zsh` | 4810 | 68700 | +1326% | `genpass-apple` | 30.3 | 893 | +2846% | `genpass-monkey` | 203 | 5290 | +2504% | `genpass-xkcd` | 34.4 | 14.5 | -58% | `genpass-xkcd 1000` | 0.145 | 0.804 | +454% |
2020-12-14fix(genpass): in `genpass-xkcd`, add warnings and make it compatible with macOSMarc Cornellà
Closes #9515 Closes #9516
2020-12-14fix(genpass): add compatibility for macOS paste commandPatrick Harrison
"paste" on macOS requires a '-' to signify that the standard input is used. Without the '-' character, the command errors out.
2020-12-14fix(genpass): warn if no wordlist is foundMarc Cornellà
2020-12-14fix(genpass): check for presence of shuf command.Patrick Harrison
"shuf" is not a standard command on MacOS and requires installation of the brew coreutils package
2020-12-13fix(genpass): fix grep regex in `genpass-xkcd` for FreeBSD version (#9514)Matt Lewin
2020-12-13fix(genpass): only use words with ASCII characters in `genpass-xkcd` (#9508)Aaron Toponce
2020-12-12fix(changelog): allow breaking change message to span multiple linesMarc Cornellà
This also allows the option to put extra paragraphs after the BREAKING CHANGE message while properly displaying the breaking change message. Useful, for example, to add signed-off or co-authored lines.
2020-12-12feat(updater): save version prior to updating so `omz changelog` just works™Marc Cornellà
Fixes #9505
2020-12-12feat(plugins): add genpass plugin with 3 distinct password generators (#9502)Aaron Toponce
2020-12-11fix(composer): autoload `_cache_invalid` for antigen compatibilityMarc Cornellà
Antigen doesn't call `compinit` until the user prompt is about to be shown, which means `_cache_invalid` isn't automatically autoloaded. This patch fixes that, though we should work towards a better caching mechanism. Fixes #9490
2020-12-10chore!: notify breaking change in `git_prompt_info`Marc Cornellà
BREAKING CHANGE: the git config option to skip running `git_prompt_info` has changed from `oh-my-zsh.hide-status` to `oh-my-zsh.hide-info` (#9188).
2020-12-10feat(lib): show upstream branch in `git_prompt_info` (#9188)Bruno Borges
Show the remote branch the local branch is tracking if `ZSH_THEME_GIT_SHOW_UPSTREAM` is set, like so: `ZSH_THEME_GIT_SHOW_UPSTREAM=1`. Co-authored-by: Marc Cornellà <marc.cornella@live.com>
2020-12-10refactor(hanami): change global aliases and clean up READMEMarc Cornellà
2020-12-09fix(common-aliases)!: don't overshadow `fd` if installed (#9162)Marc Cornellà
BREAKING CHANGE: in `common-aliases`, the `fd` alias won't be defined if `fd` is installed (https://github.com/sharkdp/fd).
2020-12-09Document fd alias change in READMEMarc Cornellà
2020-12-10fd: Rework command to be more idiomaticRohit Goswami
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
2020-12-09feat(plugins): add grc plugin for Generic Colouriser (#9315)Mark Mercado
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
2020-12-08fix(git): silently fail in `git_main_branch` if not in a git repo (#9484)Joseph Heyburn
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
2020-12-07chore: add Josh Medeski as `wp-cli` plugin maintainerMarc Cornellà
2020-12-07refactor(archlinux): prevent leaking local variables (#9476)ratijas
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
2020-12-07feat(wp-cli): add aliases for DB management (#9469)Veesar
2020-12-07feat(lib)!: soft-deprecate `upgrade_oh_my_zsh` function for everybodyMarc Cornellà
BREAKING CHANGE: the `upgrade_oh_my_zsh` function now calls `omz update` directly.
2020-12-07fix(changelog): fix assoc array syntax for zsh 5.4.2 and older (#9495)Marc Cornellà
Also fixed a call to a defunct display:type-header function in displaying breaking changes.
2020-12-07fix(updater): don't show changelog when running unattended update (#9495)Marc Cornellà
Fixes #9495
2020-12-05fix(command-not-found): show error in Ubuntu when no package is found (#9418)赵崇延
2020-12-04fix(changelog): fix highlight of codeblocks in subjectMarc Cornellà
2020-12-04feat(CLI): add `--unattended` flag to `omz update` to not reload zsh (#9187)Marc Cornellà
2020-12-04fix(updater): properly show changelog via `less`Marc Cornellà
2020-12-03fix(git-prompt): make `gitstatus.py` python3-compatible (#9186)Stimim Chen
check_output() in get_tagname_or_hash() returns bytes instead of str in python3. Decode the return value to utf-8, this works in both python2 and python3. Co-authored-by: Stimim Chen <stimim@google.com>
2020-12-02fix(updater): fix ignored variable name in readMarc Cornellà
I used _ which is a convention in other languages, but in shell scripting $_ is a special variable set by the shell, and in Zsh versions older than 5.0.6 it complains for being a `read-only variable`. Fixes #9482
2020-12-01fix(updater): make sure to run it with zshMarc Cornellà
2020-11-30feat(CLI): add `omz changelog` commandMarc Cornellà
2020-11-30feat(updater): add changelog display by parsing the commit listMarc Cornellà
2020-11-30fix(updater): correctly restart the zsh session when the update pulled changesMarc Cornellà
2020-11-30refactor(updater): switch to Zsh execution and fix git remote detection logicMarc Cornellà
2020-11-26fix(git-auto-fetch): background `git-fetch-all` and other fixes (#9468)Marc Cornellà
2020-11-25fix(magic-enter): fix various bugs in the plugin (#9466)Marc Cornellà
2020-11-22style(ansible): minor style change (#8356)Eugéne Roux
2020-11-21Merge remote-tracking branch 'origin/master'Tuowen Zhao
2020-11-20feat(terraform): add autocompletion for Terraform 0.13 (#9226)Mohamed El Mouctar Haidara
2020-11-20fix(shell-proxy): change NAME env variable for WSL clash (#9447)Septs
2020-11-19feat(gitfast): update to git-completion 1.2 (#9458)Felipe Contreras
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2020-11-19feat(aws): respect optional parameters from the AWS CLI config file (#9453)Roman Danyk
2020-11-12refactor(colored-man-pages): move nroff wrapper and refactor logic in ↵ratijas
`colored` function (#9437)
2020-11-12feat(git): support trunk branches in `git_main_branch` (#9417)Alisson B. Santos
2020-11-11feat(sudo): support aliases to $EDITOR (#9431)Subhaditya Nath
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
2020-11-11docs(aws): add config examples (#9422)Rob Vadai
2020-11-10fix(aws): fix acp function for MFA without role and other fixes (#9426)Marc Cornellà
* fix(aws): don't duplicate aws_prompt_info function in RPROMPT * refactor(aws): clean up logic in acp function and fix session duration input Fixes #9409
2020-11-10docs(thefuck): add description for enabling the plugin (#9433)Nacho González-Garilleti
Add a description about adding thefuck to the plugins list