* ssh-agent: lock this script with a mkdir style mutex
This script is a kind of singleton pattern and is not reentrant.
If several shells are oppened in a fast sequence, then several
independent ssh-agents would be created, which is not acceptable.
A mutex is required.
Signed-off-by: Nuno Goncalves <nunojpg@gmail.com>
* ssh-agent: only start agent if .ssh dir exists
To use the same profile system-wide, it might happen
that the .ssh directory does not exist
(typically $HOME/.ssh/). This would trigger a error.
Creating the directory would be a option, but it
usually will not make sense to do so because it means
the user doesn't have ssh keys or config.
Signed-off-by: Nuno Goncalves <nunojpg@gmail.com>
* ssh-agent: adds lazy option to disable key loading on start
Option is documented on updated README.md
Signed-off-by: Nuno Goncalves <nunojpg@gmail.com>
* ssh-agent: simplify agent-forwarding checking
Signed-off-by: Nuno Goncalves <nunojpg@gmail.com>
Co-authored-by: Robby Russell <robby@planetargon.com>
By default, cargo provides alias for some commonly used functions. This patch
makes it that those alias will complete the same as their full commands.
Default alias:
b -> build
c -> check
t -> test
r -> run
Since cargo allows users to define custom alias it would be nice if
oh-my-zsh automatically detected those and preformed completions as such
but that would be a much more complex patch.
`pk-command-not-found` doesn't accept `--` as an argument. This is what happens when `--` is the first argument:
```
$ gem
zsh: --: command not found...
```
As documented in the README, `npm i -f` forces npm to install the specified packages from a remote
package registry, even if local copies exist on disk caches.
BREAKING CHANGE: the various update aliases will no longer run `abs` and `aur`, which are either
deprecated or nonexistent. See https://archlinux.org/news/deprecation-of-abs/ for more.
* Update VI_KEYMAP on zle-line-finish. Fixes next prompt draw.
* Also fix vi-mode prompt redraw in case previous prompt was canceled
* Do not redraw fix prompt if VI_MODE_RESET_PROMPT_ON_MODE_CHANGE is unset
* Use a local variable instead of global in function
* [docker-compose] Added alias for docker-compose up --build
Sometimes building images before starting the containers comes in handy.
Alias: `dcupb`
Command: `docker-compose up --build`
* Updated docker-compose/README.md
Added the alias definition in the readme
Co-authored-by: Robby Russell <robby@planetargon.com>
The sub-command `reclaim` is quite useful for freeing up disk space.
`reclaim` is a useful command that is missing from the list of completions in the plugin.
The description is for the `reclaim` sub-command is:
"port reclaim will find files that can be removed to reclaim disk space by uninstalling inactive ports on your system as well as unnecessary unrequested ports, and removing unneeded or unused installation files. The user is then provided interactive options for files to remove. No files are removed initially, until the user selects them from the provided list."
For all the details use this command on a system with Macports installed:
`port help reclaim`
BREAKING CHANGE: the key binding to open an editor to edit the command line has
been moved from being `v` (press v once) to being `vv` (press v twice). Now, the
action for `v` is the default `visual-mode`, as is in Vim.
Fixes#9573
- Added follow redirects curl flag to fix the 301 response
- Updated trusted users URL format
- Changed from `pgp.mit.edu` keyserver to `keyserver.ubuntu.com` keyserver
It wasn’t clear where I should set the `NVM_AUTOLOAD` variable. The clue was to be found in [the docs for another plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/fzf). It seems setting values need to come before Oh My Zsh is sourced.
Updated read me to reflect this, and the fact that one of the settings mentioned is specific to nvm, not this plugin.
BREAKING CHANGE: changes deprecated `brew cask reinstall $(...)` alias to use
`brew upgrade --cask` instead. If you don't have this command, run `brew update` to
get the latest Homebrew CLI version.
Co-authored-by: jakepez <jake@findjake.com>
*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% |
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
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>
* 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
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.
* 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 "@"
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>
This makes it work regardless of where nvm is loaded from. And it uses nvm's
version strings, which distinguish the "system" and "none" NVM environments,
instead of reporting the specific version of the system node.js or erroring,
respectively.
Fixes#4336Closes#4338
Closes#9122
The current check is assuming that the aws_completer is installed
globally, it then runs the command without that path
I have aws_completer in ~/.local/bin/aws_completer
This changes the check to see if the command exists instead of
concerning itself with where it in installed. This test matches the
behavior of just running the command.
* colorized-man-pages: Added hooks for commands dman and debman
`dman` and `debman` are tools from the package `debian-goodies` for
Debian systems (see https://packages.debian.org/stable/debian-goodies).
They can display man pages from manpages.debian.org or local debian
packages respectively.
README of the plugin is also updated.
* Simplify syntax for future changes
* Fix README syntax
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
* dotenv: add possibility to agree once for a given .env file
* refactor: fix code style
* Use :A modifier instead of readlink. Thanks Aloxaf
* Use grep and clean up allowed list check logic
* Simplify and reorder file; change default allowed list path
* Add new feature to README
* Make sure ZSH_CACHE_DIR is defined
* Resolve symlinks in $PWD before storing in allowed list
Co-authored-by: Aloxaf <bailong104@gmail.com>
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
* Added -g option to shrink-path plugin.
The new optins adds an asterix to the uniquely shortened name, such
that, if copy'n'pasted, zsh globbing will expand to the full path name
of the shortened path:
shrink-path -g:
"/net/software/modules/modulefiles" -> "/n*/s*/modules/m*"
shrink-path -l -g:
"/net/software/modules/modulefiles" -> "/n*/s*/modules/modulefiles"
* Updated also the README file with the new -g option.
* shrink-path: improved handling of special cases
This commits improves the handling of special cases in path strings:
- handling of white space in path names
- handling of single-letter path names
* Update plugins/shrink-path/README.md
Co-Authored-By: Jacob Tomaw <jacob.tomaw@gmail.com>
* Fix typo "Asterix" and replace with "asterisk"
* Add optional quoting support to shrink_path
Co-authored-by: Jacob Tomaw <jacob.tomaw@gmail.com>
[x] Updating `branch` command to be compatible with git-flow style branches by removing any prefix before attempting to go to the ticket number in Jira.
[x] Removing the switch between /browse/ and /issues/ based off of the `JIRA_RAPID_BOARD` setting - as all issues are under browse now it seems.
* Added support for local sdk versions
Added support for local versions (prefixed by '+'), so they are filtered out in _listInstallableVersions() and they are displayed correctly by _listAllVersion()
* Optimize sed calls
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
Summary
Make it get a list of installed interpreters, and add the
relevant local (HOME) site-packages directory to PYTHONPATH.
Reason
To easily add all relevant paths, initially, and between upgrades.
Add check for PYTHONUSERBASE
Summary
Check for a non-standard install directory, use it if one
exists, otherwise use ~/.local.
Reason
Allow users to specify their own installation directory, without
affecting functionality.
By sourcing brew files directly we can achieve a very high speed up.
This will not work if the user installed homebrew in a different
location than by default.
* Added minimum length and ellipsis symbol options for the shrink-path plugin.
* Replaced tab indentation with space indentation for the shrink-path plugin.
* Added handling of multicharacter ellipsis, and updated documentation and README for the shrink-path plugin.