Commit graph

3646 commits

Author SHA1 Message Date
Marc Cornellà
90ffda7ed2 fix(genpass): use log() instead of log2() for zsh < 5.6 (#9548)
Fixes #9548
2020-12-27 20:51:39 +01:00
Roman Perepelitsa
b28665aebb
fix(genpass): improve performance and usability and fix bugs (#9520)
*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-16 16:57:59 +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
Matt Lewin
2a0ae3315d
fix(genpass): fix grep regex in genpass-xkcd for FreeBSD version (#9514) 2020-12-13 22:28:22 +01:00
Aaron Toponce
f8e9339c87
fix(genpass): only use words with ASCII characters in genpass-xkcd (#9508) 2020-12-13 01:20:41 +01:00
Aaron Toponce
9d6b3984f9
feat(plugins): add genpass plugin with 3 distinct password generators (#9502) 2020-12-12 12:50:45 +01:00
Marc Cornellà
9181954255 fix(composer): autoload _cache_invalid for antigen compatibility
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-11 16:54:22 +01:00
Marc Cornellà
79d0182a26 refactor(hanami): change global aliases and clean up README 2020-12-10 20:38:19 +01:00
Marc Cornellà
e4082a951f
fix(common-aliases)!: don't overshadow fd if installed (#9162)
BREAKING CHANGE: in `common-aliases`, the `fd` alias won't be defined if `fd` is installed (https://github.com/sharkdp/fd).
2020-12-09 23:17:53 +01:00
Marc Cornellà
5feb2b6742 Document fd alias change in README 2020-12-09 23:11:31 +01:00
Rohit Goswami
fbee1ff8bd
fd: Rework command to be more idiomatic
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
2020-12-10 01:50:01 +05:30
Mark Mercado
e5af22cca6
feat(plugins): add grc plugin for Generic Colouriser (#9315)
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
2020-12-09 17:59:12 +01:00
Joseph Heyburn
e2f2489a66
fix(git): silently fail in git_main_branch if not in a git repo (#9484)
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
2020-12-08 18:25:42 +01:00
ratijas
865d2d8a53
refactor(archlinux): prevent leaking local variables (#9476)
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
2020-12-07 22:00:25 +01:00
Veesar
e48be7dfc8
feat(wp-cli): add aliases for DB management (#9469) 2020-12-07 21:23:55 +01:00
赵崇延
fa1911f89e
fix(command-not-found): show error in Ubuntu when no package is found (#9418) 2020-12-05 15:42:45 +01:00
Stimim Chen
1ac40cd445
fix(git-prompt): make gitstatus.py python3-compatible (#9186)
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-03 12:00:56 +01:00
Marc Cornellà
05e2956dc6
fix(git-auto-fetch): background git-fetch-all and other fixes (#9468) 2020-11-26 22:27:07 +01:00
Marc Cornellà
d88887195f
fix(magic-enter): fix various bugs in the plugin (#9466) 2020-11-25 20:14:28 +01:00
Eugéne Roux
7a76afd61e
style(ansible): minor style change (#8356) 2020-11-22 15:42:39 +01:00
Mohamed El Mouctar Haidara
88b3f028f4
feat(terraform): add autocompletion for Terraform 0.13 (#9226) 2020-11-20 18:45:31 +01:00
Septs
d57131dc49
fix(shell-proxy): change NAME env variable for WSL clash (#9447) 2020-11-20 12:42:51 +01:00
Felipe Contreras
e92a4667cb
feat(gitfast): update to git-completion 1.2 (#9458)
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2020-11-19 19:45:19 +01:00
Roman Danyk
ce836647e5
feat(aws): respect optional parameters from the AWS CLI config file (#9453) 2020-11-19 17:24:09 +01:00
ratijas
9b119866dd
refactor(colored-man-pages): move nroff wrapper and refactor logic in colored function (#9437) 2020-11-12 19:32:17 +01:00
Alisson B. Santos
51772732f5
feat(git): support trunk branches in git_main_branch (#9417) 2020-11-12 16:17:28 +01:00
Subhaditya Nath
874d83f7b8
feat(sudo): support aliases to $EDITOR (#9431)
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
2020-11-11 21:25:32 +01:00
Rob Vadai
1beac5958e
docs(aws): add config examples (#9422) 2020-11-11 16:14:57 +01:00
Marc Cornellà
dc4692b53e
fix(aws): fix acp function for MFA without role and other fixes (#9426)
* 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-10 23:20:51 +01:00
Nacho González-Garilleti
fc82aff77c
docs(thefuck): add description for enabling the plugin (#9433)
Add a description about adding thefuck to the plugins list
2020-11-10 17:15:54 +01:00
aimuz
5d8e1f8267
fix(battery): use pmset for battery percentage in macOS (#9364)
Returns the battery charge consistent with the system battery manager
2020-11-10 17:14:30 +01:00
Elyézer Rezende
fa780867d9
fix(fzf): consistently ignore .git directory in FZF_DEFAULT_COMMAND (#9421)
Be consistent and ignore contents of `.git` directory no matter how FZF_DEFAULT_COMMAND is set.
2020-11-09 12:09:10 +01:00
Maksym
3e6ee85a16
fix(aws): support MFA for profiles without role to assume (#9411)
Previously, the plugin only supported MFA for profiles that had a role to assume, specified in role_arn. Now, the plugin supports MFA for profiles without a role to assume.

Closes #9408

* refactor(aws plugin): remove dependency on jq

Previously, acp command relied on jq. Now that dependency has been removed, as well as some linter suggestions implemented.
2020-11-04 22:10:22 +01:00
Maksym
852a44094a
aws: split setting profile from changing profile (#9402)
the change to assume a role when it is specified in configuration broke some workflows. This fix addresses that

Fixes #9394
2020-10-29 22:13:36 +01:00
Setu Shah
77f7457051
aws: get and set session token if available (#9397) 2020-10-29 11:55:41 +01:00
spreiter
47d30784c5
colorize: add compatibility for zsh < 5.1 (#9400)
The direct assignment of a local array is not possible in older ZSH version, as used by RHEL/CentOS 7.
2020-10-29 11:54:29 +01:00
Felipe Contreras
d055445625
gitfast: fetch latest fixes from git-completion (#9390)
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2020-10-27 11:14:39 +01:00
Maksym
fcb6fa78a1
aws: add role delegation and MFA support as per IAM Best Practices (#8419)
* Added role delegation support and MFA support as per IAM Best Practices

* fix: grep with color enabled breaks profile parsing

* fix: compatible with MacOS basic sed

* docs: Added jq as a dependency

* feat: added variable session duration, if the role to be assumed permits it.

* bug: incorrect assigment for session length

* fix: profile extraction failed with some versions of sed

Fixed the issue that resulted from merging upstream changes to allow "." in the profile name

* fix: broken profile parsing when profile name contains "@"
2020-10-24 23:07:49 +02:00
Felipe Contreras
66f9fdabc1
gitfast: improve command aliases (#9385)
So that compdefs with dashes work as well as underscores:

  compdef _git gc=git_commit

Or:

  compdef _git gc=git-commit

The official Zsh Git completion uses dashes, and this way people don't
have to change their existing definitions.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2020-10-24 16:33:43 +02:00
Felipe Contreras
a32564e0ae
gitfast: update to latest upstream and more (#9382) 2020-10-24 14:12:23 +02:00
Marc Cornellà
3b1699b595
npx: deprecate plugin
Fixes #9366
2020-10-21 20:01:10 +02:00
Lucas Larson
80d2e4336b
Grammar: remove hyphens from predicate adjective “up to date” (#9356)
https://english.stackexchange.com/a/180617
https://web.archive.org/web/20190728053012id_/grammarist.com/usage/up-to-date/#text-60
2020-10-21 16:22:32 +02:00
Wenli Wan
bf5574fc93
kubectl: add aliases for serviceaccount, daemonsets and cronjob (#9344) 2020-10-21 16:09:54 +02:00
Marc Cornellà
7d73908223
fzf: add check for OpenSUSE and OpenBSD packages (#9327) 2020-10-20 23:48:59 +02:00
Marc Cornellà
176376cbc0 kubectl: check for empty cache completion file 2020-10-17 23:14:58 +02:00
IsThisTheMatrix
5b717ab3e4
kubectl: verify kubectl is installed before running compdef (#9346) 2020-10-16 00:52:34 +02:00
Marc Cornellà
53cbd658f5 globalias: use ${(z)var} to split into words using shell parsing 2020-10-14 17:23:03 +02:00
Patrick W. Healy
e75aa2875e
globalias: expand filtering to anywhere in the command (#9338) 2020-10-14 16:57:59 +02:00