Commit graph

710 commits

Author SHA1 Message Date
Marc Cornellà e1a9d0ce3e
fix(cli): allow omz commands to be used in a script (#10645)
The commands `omz plugin {enable,disable}` and `omz theme set`
automatically reload the zsh session on success. With this
change, the CLI checks whether the commands are run in an
interactive session before reloading the zsh session.

This change also conditionally sets the completion function
for `omz` so that it's not done in a non-interactive session.
2022-02-02 23:02:23 +01:00
Marc Cornellà f64cabc780
fix(cli): make sure to run zsh command if an alias exists (#9737)
Fixes #9737
2022-01-24 17:38:32 +01:00
Marc Cornellà 84931adcd4
fix: do not call chpwd hooks in subshells 2022-01-22 22:07:09 +01:00
Marc Cornellà 567bd59395
refactor(cli): use self-referencing in subcommand functions 2022-01-17 13:18:10 +01:00
Marc Cornellà 035c856c2c
fix: get branch name first in omz version and changelog 2022-01-13 17:46:09 +01:00
Marc Cornellà a92ee838f3
fix(cli): follow symlinks in plugin or theme completions 2022-01-09 20:27:22 +01:00
Marc Cornellà 5b076eab9b
fix(lib): quote % in nvm_prompt_info 2022-01-03 13:50:50 +01:00
Marc Cornellà 304af0a577
fix(lib): quote % in git_remote_status 2022-01-03 13:50:50 +01:00
Marc Cornellà 8ae373130c
fix(cli): respect ZDOTDIR in plugin/theme change commands (#10520)
Fixes #10520
2021-12-21 17:01:56 +01:00
Marc Cornellà 4b4cc9a4a5
fix(cli): fix plugin and theme suggestions in completion for older zsh versions 2021-12-16 10:50:34 +01:00
Marc Cornellà 9a3d853481
fix: quote % characters in ruby prompt info functions 2021-12-13 17:43:32 +01:00
Marc Cornellà 428f815169
fix(lib): %-quote git prompt functions 2021-12-13 11:26:55 +01:00
Marc Cornellà f0f792fa6b
feat(cli): add omz version command 2021-11-30 10:13:23 +01:00
Paul Scott 0314604384
fix(lib): don't error if INSIDE_EMACS is not defined (#10443) 2021-11-25 23:55:21 +01:00
Marc Cornellà a263cdac9c
fix(lib): fix potential command injection in title and spectrum functions
The `title` function unsafely prints its input without sanitization, which if used
with custom user code that calls it, it could trigger command injection.

The `spectrum_ls` and `spectrum_bls` could similarly be exploited if a variable is
changed in the user's shell environment with a carefully crafted value. This is
highly unlikely to occur (and if possible, other methods would be used instead),
but with this change the exploit of these two functions is now impossible.
2021-11-11 22:45:11 +01:00
Marc Cornellà 6cb41b70a6
fix(lib): fix omz_urldecode unsafe eval bug
The `omz_urldecode` function uses an eval to decode the input which can be
exploited to inject commands. This is used only in the svn plugin and it
requires a complex process to exploit, so it is highly unlikely to have been
used by an attacker.
2021-11-11 22:44:18 +01:00
Marc Cornellà 1d166eaaa1
fix(cli): avoid git -C for compatibility with git < v1.8.5 (#10404) 2021-11-10 11:35:17 +01:00
Marc Cornellà 9a11b34101
fix(cli): fix check for completion files in omz plugin load 2021-11-09 12:03:59 +01:00
Kevin Burke e86c6f5e7f
style: use -n flag in head and tail commands (#10391)
Co-authored-by: Marc Cornellà <hello@mcornella.com>
2021-11-09 09:04:10 +01:00
Richard Mitchell bf88ff3f90
fix(lib): fix 1 alias to cd to directory 1 in stack (#10370) 2021-11-02 12:05:37 +01:00
Sina Tak Tehrani 1e5e834e0f
fix(cli): exit omz update with correct error code (#10342) 2021-10-25 20:28:22 +02:00
michael-yuji f82aa81931
fix(lib): fix diff --color argument check for BSD systems (#10269) 2021-10-10 19:15:24 +02:00
Pooya Vahidi 07cdd7a539
fix(lib): fix status exit code check in git_prompt_status (#10275) 2021-10-09 12:02:49 +02:00
Marc Cornellà b621eee21f
fix(cli): fix zsh array syntax for szh 5.0.2 2021-10-05 11:58:39 +02:00
Monson Shao be4a952972
feat(cli)!: add omz reload command and deprecate zsh_reload plugin (#9078)
BREAKING CHANGE: the `zsh_reload` plugin is deprecated. Instead of using its `src`
function, use `omz reload` or `exec zsh` to reload zsh after making changes to
your `.zshrc` file.

Closes #9078
2021-10-04 16:24:05 +02:00
Marc Cornellà 3c209b00d6
feat(cli): show current theme in omz theme list
Fixes #9540
2021-09-30 15:45:12 +02:00
Marc Cornellà 5f99eb5afd
fix(cli): get branch and tags from OMZ folder in omz changelog completion 2021-09-30 10:18:53 +02:00
Celestino Gomes c7a55086e1
feat(lib): don't correct su command arguments (#10214) 2021-09-29 18:07:25 +02:00
Marc Cornellà 54e3e8ef54
fix(lib): fix automatic title abort inside Emacs (#10124)
Closes #10124

Co-authored-by: Paul Schorfheide <pschorf2@gmail.com>
Co-authored-by: Alastair Rankine <alastair@girtby.net>
2021-09-29 17:19:25 +02:00
Simon Rogers 16de514047
feat(lib): allow setting custom completion dots sequence (#9424)
Closes #9424
Closes #9703

Co-authored-by: mortezadadgar <mortezadadgar97@gmail.com>
Co-authored-by: Marc Cornellà <hello@mcornella.com>
2021-09-22 11:30:07 +02:00
Marc Cornellà cbb534267a
feat(cli): add theme set subcommand to change theme in .zshrc
Fixes #9087
2021-08-18 16:58:36 +02:00
Marc Cornellà 8dedf26294
style(cli): print usage messages to stderr 2021-08-18 12:50:22 +02:00
Marc Cornellà 7a4f4ad91e
fix(lib): fix clipboard copy on Termux 2021-08-17 17:38:31 +02:00
Marc Cornellà bc7ce982dd
style(cli): fill rows in column output in theme and plugin list commands 2021-08-17 12:53:09 +02:00
Marc Cornellà bf888680ea
refactor(cli): extract substitution awk script in plugin disable 2021-08-17 12:44:53 +02:00
Marc Cornellà 708bbe12c5
fix(cli): fix multiple errors in plugin disable/enable 2021-08-17 12:31:37 +02:00
pollyduan 4455c13e06
feat(cli): add subcommands for plugin enable and disable (#9869)
Co-authored-by: Marc Cornellà <hello@mcornella.com>
2021-08-17 12:10:54 +02:00
James Eapen 6e4c9df4a4
feat(cli): add plugin load subcommand (#9872)
Fixes #9672

Co-authored-by: Marc Cornellà <hello@mcornella.com>
2021-08-13 12:33:30 +02:00
Marc Cornellà 7eeb1e193d
refactor(lib): refactor take functions 2021-08-10 21:09:21 +02:00
Marc Cornellà c249288151
feat(lib): add mkcd as equivalent to takedir (#9749)
Fixes #9749
2021-08-10 21:06:46 +02:00
Marc Cornellà e32d4b1e19
fix(lib): remove kubectx stub prompt function from lib
Fixes #9974
2021-06-17 18:54:52 +02:00
Stanisław Szydło 5152d381bb
feat(kubectx): adding a new plugin for 'kubectx' (#6114)
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
Co-authored-by: Robby Russell <robby@planetargon.com>
2021-06-13 08:23:13 -07:00
Mitchel Humpherys f68d65d32a
feat(take): add support to `take' for taking remote urls (#2029)
Download, extract, and cd into the resulting directory.

Co-authored-by: Mitchel Humpherys <mitchelh@codeaurora.org>
2021-06-11 21:09:08 -07:00
Marc Cornellà 02d07f3e3d
fix: use $USERNAME guaranteed to always be defined in zsh
Fixes #9701
2021-03-25 12:08:00 +01:00
Vlad Korolev 0ab87c26c1
fix(terraform): use faster method to get workspace (#9709)
Also add tf_prompt_info to the list of prompt functions so theme writers are aware of it
2021-03-08 10:46:42 +01:00
Cai Cooper 6fbad5bf72
fix(update): don't error on upgrade no-op (#9685)
* Don't error on upgrade no-op

No error code is required for a non failure scenario.

* Manually check whether changes were pulled in `omz update`

Co-authored-by: Marc Cornellà <hello@mcornella.com>
2021-03-01 08:17:54 +01:00
Marc Cornellà 8b37f817c2 fix(lib): use -N syntax in head and tail to support Solaris (#6391)
Closes #6391

Co-authored-by: Sergey Mashkov <cy6erGn0m@gmail.com>
2021-01-16 18:59:24 +01:00
Kyle Gerard Felker c9bf8b4a84
fix(lib): update Emacs terminal detection in title function (#9577)
Environment variable EMACS was replaced by INSIDE_EMACS
2021-01-07 20:55:18 +01:00
Marc Cornellà 6b57839292 fix(CLI): show symlinked themes in omz theme list 2021-01-05 19:09:57 +01:00
Fernando Crespo 9e5f280f87
feat(CLI): add plugin info subcommand (#9452)
Co-authored-by: Fernando Crespo <fxcrespo@iMac-44054.local>
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
2021-01-03 13:55:57 +01:00
Seamile 88ffc2f666
fix(lib): mark changes as MODIFIED on 'MM' in git_prompt_status (#9552)
In the output of `git status -sb`, 'MM' indicates there are both added and modified changes.
This change marks that case as MODIFIED instead of ADDED.
2021-01-02 11:57:06 +01:00
Marc Cornellà 0f6836701d fix(CLI): properly get zsh command in omz update (#9558)
Zsh versions older than 5.3 don't have ZSH_ARGZERO, so use an alternative
method to get the zsh command.

Fixes #9558
2020-12-31 23:20:24 +01:00
Marc Cornellà 28265812f8 chore!: notify breaking change in git_prompt_info
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-10 20:48:40 +01:00
Bruno Borges 2f39c68ab0
feat(lib): show upstream branch in git_prompt_info (#9188)
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-10 20:44:08 +01:00
Marc Cornellà 4b7dba5b75 feat(lib)!: soft-deprecate upgrade_oh_my_zsh function for everybody
BREAKING CHANGE: the `upgrade_oh_my_zsh` function now calls `omz update` directly.
2020-12-07 20:58:12 +01:00
Marc Cornellà 5a888ff4ac fix(updater): don't show changelog when running unattended update (#9495)
Fixes #9495
2020-12-07 20:58:12 +01:00
Marc Cornellà 1aa2b18e29 feat(CLI): add --unattended flag to omz update to not reload zsh (#9187) 2020-12-04 12:34:01 +01:00
Marc Cornellà 7712da89ee feat(CLI): add omz changelog command 2020-11-30 15:48:46 +01:00
Marc Cornellà e093a4cf62 fix(updater): correctly restart the zsh session when the update pulled changes 2020-11-30 15:48:46 +01:00
Marc Cornellà 889cd7acf3 refactor(updater): switch to Zsh execution and fix git remote detection logic 2020-11-30 15:48:46 +01:00
Marc Cornellà a3e0f4f2af fix(lib): make opts local in omz_urlencode to fix scoping bug
Fixes error message when using zplug, due to $opts having been declared
as an associative array:

  omz_urlencode:2: bad set of key/value pairs for associative array

Fixes #9429
2020-11-09 18:33:59 +01:00
Marc Cornellà 28ed2880c7 Revert "lib: remove share_history"
This reverts commit 2376022890.

Fixes #9430
2020-11-09 12:00:15 +01:00
Marc Cornellà bad9ee0004 lib: delete zsh session history list
NOTE: it still lives somewhere in the current zsh process. Run `fc -P` to
restore it.
2020-10-27 10:33:21 +01:00
Marc Cornellà 3f42700c0d Revert "lib: treat _ and - as part of a word"
This reverts commit 50dc4ab357.

The community has spoken:
- https://github.com/ohmyzsh/ohmyzsh/issues/9367
- https://github.com/ohmyzsh/ohmyzsh/issues/8743

Fixes #9367
2020-10-21 16:02:34 +02:00
Marc Cornellà f9f45ca222 lib: follow symlinked plugins in plugin list CLI command
See https://github.com/ohmyzsh/ohmyzsh/issues/9087#issuecomment-712460275
2020-10-20 15:57:11 +02:00
Marc Cornellà 7525b1d533 lib: allow bare output in theme and plugins list command 2020-10-18 21:25:03 +02:00
Marc Cornellà 902954d1cc lib: use column to format plugin and theme list CLI commands 2020-10-18 21:24:48 +02:00
Marc Cornellà 6e7b861675 lib: fix regex bug in git_prompt_status
Fixes #9326
2020-10-10 19:14:30 +02:00
Marc Cornellà 2376022890 lib: remove share_history
Related: #2537, #9324
2020-10-10 12:38:17 +02:00
Marc Cornellà 75ae0e905f lib: fix omz help and reword 2020-10-10 12:12:22 +02:00
Marc Cornellà 982d010be5 lib: fix fmt removing ESC characters in theme and plugin list CLI commands 2020-10-10 11:47:09 +02:00
Marc Cornellà d8cb670235 nvm: simplify nvm.sh and bash completion loading 2020-10-09 17:21:03 +02:00
Andrew Janke ef44416df2 nvm: use nvm current in nvm_prompt_info and look in alternate install locations
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 #4336
Closes #4338
2020-10-09 17:21:03 +02:00
Marc Cornellà fc6c9ca4b4 lib: fix formatting in omz pr clean CLI command 2020-10-09 15:03:03 +02:00
Marc Cornellà 1bb402190d lib: add plugin and theme subcommands and fix omz pr clean
- Add plugin and theme subcommand

  Fixes #8961

- Add confirmation prompt to `omz pr clean` command

- Correct behavior on invalid answers on confirmation prompts

  If an invalid option is supplied, don't proceed with the potentially
  destructive action.

Co-authored-by: Rishabh Bohra <rishabhbohra01@gmail.com>
2020-10-09 13:55:56 +02:00
Marc Cornellà 865f6572d5 Fix performance drop of iterating over lines and other stuff
- Fix 'STASHED' key and unsupported syntax in 5.0.2
- Optimise `if` statement to make it more idiomatic.
2020-10-09 13:44:50 +02:00
Billy Conn 45a954cb0f git_prompt_status now uses hash lookups instead of multiple greps 2020-10-09 13:24:37 +02:00
Michał Dębski 297238b739 lib: hide git_prompt_status when hide-status is set
Closes #4912
Closes #5137
Closes #8071
2020-10-09 13:14:44 +02:00
Michele Bologna 58ff4e1d2e
lib: follow standards in window title (#9320)
In Ubuntu and Debian, in scp, and in rsync the prompt is by default specified as in

  user@hostname:/path/to/directory

while the previous title in ohmyzsh was

  user@hostname: /path/to/directory
2020-10-08 19:20:47 +02:00
Marc Cornellà 274df9dc29 lib: support simple terminal in title function
Fixes #9295
2020-09-29 18:34:35 +02:00
Marc Cornellà 4ec055b890 lib: support alacritty $TERM in title function 2020-09-28 22:25:10 +02:00
Marc Cornellà 765966606d lib: correct :q syntax in title function for clarity 2020-09-27 14:15:50 +02:00
Marc Cornellà caff704f41 lib: clean up zsh_stats function 2020-09-26 12:17:12 +02:00
Marc Cornellà 50dc4ab357 lib: treat _ and - as part of a word
Fixes #8743
2020-09-04 21:54:05 +02:00
Marc Cornellà 89400f156a Remove zsh session restart on omz update and upgrade_oh_my_zsh 2020-08-18 19:51:19 +02:00
Marc Cornellà 7deda85f8c Fix upgrade_oh_my_zsh function deprecation 2020-08-17 22:11:02 +02:00
Marc Cornellà 079e7bb5e0 lib: remove CTRL-Backspace key binding altogether
It conflicts with normal Backspace behavior. Fixes #9155
2020-08-06 08:55:29 +02:00
Marc Cornellà 39c0073225 lib: remove CTRL-Backspace binding for vi keymaps 2020-08-05 14:34:14 +02:00
Dario Vladović 3935ccce64
cli: add update command (#9094)
Co-authored-by: Marc Cornellà <marc.cornella@live.com>
2020-08-04 17:48:29 +02:00
Marc Cornellà cf347ef3e4 lib: bind to all keymaps when COMPLETION_WAITING_DOTS is set
Fixes #9050
2020-08-04 17:30:07 +02:00
Marc Cornellà e04564d528 lib: add CTRL-backspace and CTRL-delete to delete whole words
Fixes #7609
Closes #8191

Co-authored-by: Michal Grňo <m93a.cz@gmail.com>
2020-08-04 17:16:54 +02:00
Marc Cornellà ec70c0c393 lib: bind keys to viins and vicmd keymaps and clean up file
Fixes #8468
2020-08-04 17:16:19 +02:00
Marc Cornellà f6bc949c05 lib: substitute COMPLETION_WAITING_DOTS for ellipsis
Closes #8342
2020-08-02 20:49:26 +02:00
Marc Cornellà 9521837240 lib: support mlterm-256color
Co-authored-by: Peter J. Schroeder <peterjschroeder@gmail.com>
2020-07-23 12:55:22 +02:00
Robert Estelle 1c58a746af
lib: safety fix and speed-ups for git.zsh prompt functions (#7804) 2020-07-06 17:31:40 +02:00
Marc Cornellà d0d01c0bbf lib: prefix diff call with command to bypass diff aliases
See https://github.com/ohmyzsh/ohmyzsh/pull/8807#issuecomment-652697704
2020-07-06 17:17:40 +02:00
Marc Cornellà a15f0f0e9f cli: beauty touches on 'omz pr test' command 2020-07-03 19:05:40 +02:00
Monson Shao 62648d71bb
lib: enable diff color (#8807) 2020-07-01 20:51:13 +02:00
Patrick Moore e606ac7051
Handle unset variables in various parts of the codebase (#8944)
DISABLE_UNTRACKED_FILES_DIRTY, DISABLE_AUTO_TITLE, GIT_STATUS_IGNORE_SUBMODULES are not set
Handle these variables not being set with conditional access.

If the user has set -u option to report attempts to use undeclared / unassigned variable, accessing the variables needs to be conditional.
2020-06-30 18:54:27 +02:00
joshuashaffer b706a91917
core: add title support for mlterm (#8303) 2020-06-19 23:16:31 +02:00