The previous fix ignored any pyenv command found in $PATH while on
WSL, regardless of whether it was correctly set up or not.
This change only ignores the pyenv command if it's proved to come
from pyenv-win by looking at its full path.
This change fixes the setting of $PATH for pyenv and its shims, while warning
the user about non-interactive shells.
Co-authored-by: Marc Cornellà <hello@mcornella.com>
Without this fix the confirmation prompt appears wherever the cursor is,
which means that it might appear in the command line when using a widget
that changes the directory without redrawing the prompt (an example of
this are the dircycle and dirhistory plugins).
Changed commands:
gcd: uses gitflow.branch.develop to get user-set development branch
gch: uses gitflow.prefix.hotfix to get user-set hotfix prefix
gcr: uses gitflow.prefix.release to get user-set release prefix
Co-authored-by: Fabio 'c0m3tx' Vitale <c0m3tx@gmail.com>
I thought it would be useful to add these aliases.
There are already aliases for `git commit -S` and `git commit -s` but there is none for both simultaneously =)
* Add first impl of samtools autocompletion
* Just autocomplete with files all the time
* Add init impl of bedtools completion
* Add readme.md for bedtools plugin
* Add readme for samtools
Co-authored-by: Rolf Schroeder <rolf.schroeder@centogene.com>
* Switch order of "apt" and "aptitude" for detection
"apt" is installed by default at Debian (maybe Ubuntu too), while "aptitude" does not seem to be installed by default.
For that, it may be better for most of the users to prefer "aptitude" if installed.
* plugins/debian/README: Change of order mirroded into documentation
* Test only for the presence of a .git directory in virtualenvwrapper
Instead of using both $(git rev-parse --show-toplevel) and a check for
a .git directory, use just the latter. As well as being redundant
the former does not work quite so well when using multiple worktrees;
each worktree will be treated as a separate project.
* Unset ENV_NAME & deactivate if no virtualenv found
This addresses #4603 without breaking current behaviour (where current
behaviour is correct).
When changing directories, if there is no environment matching
ENV_NAME, ENV_NAME is emptied and deactivate called if there is a
current environment active (based on CD_VIRTUAL_ENV).
* Use path comparison not string comparison for paths
This will solve part of issue #4255 where WORKON_HOME is defined with a
trailing slash or not normalised in some way, as well as instances
where symlinks are used, and any other instances where constructed
paths don't exactly match even though they go to the same file.
Co-authored-by: Robby Russell <robby@planetargon.com>
* `rdmd` is aliased to `rake db:migrate:down`
* `rdmu` is aliased to `rake db:migrate:up`
* These tasks allow you to run a specific migration up or down by
specifying the appropriate `VERSION` env variable, which contains
the numerical prefix of the migration's filename
* 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.
Using `fasd —-init auto` will first detect terminal and then call
fasd again to generate the final initialisation script. Caching that gives a more significant performance boost.
Current state: a user invokes `ipython` and is provided with the IPython
instance regarding the `$PATH`.
Proposed state: a user invokes `ipython` (which is a new alias in the
*python plugin*) and is provided with the proper IPython instance regarding
the currently activated virtualenv.
Example: the user's default Python is 2.7 with installed IPython 2.7. User
activates Python 3.5 virtualenv where he installs IPython 3.5. After
activating the environment, one expects `ipython` to run the version 3.5,
which does not happen by default. Instead, IPython 2.7 is used, which in
counter-intuitive and often causes problem.
Closes#5797
The statements for selecting a random theme in oh-my-zsh.sh and the themes
plugin are duplicate. Most people eventually settle on a theme, making those
lines in oh-my-zsh.sh superfluous. To address those, it may makes sense to put
the random theme functionality into a theme of its own (since themes are just
zsh scripts.
On a system with multiple batteries (like thinkpads) report percentage
and time remaining only for the active battery (the one being
discharged).
Ideally we should report all batteries, but acpi only shows time remaining
for the active battery. Also callers of these functions expect a single
return value. This is still better than reporting 596% remaining (like it
did on my laptop).
For the reference, the output of acpi command with multiple batteries looks
like this:
Battery 0: Unknown, 5%
Battery 1: Discharging, 86%, 03:14:04 remaining
- marks printed an error when $MARKPATH didn't exist or didn't have any marks
in it.
- The CTRL+G key binding overwrote an argument when it couldn't match it to
an existing mark.