From 90903779b942a12d273e8d158ad97b252dc74360 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Mon, 8 Nov 2021 14:01:34 +0100 Subject: refactor(percol): fix style, bind keys for vi-mode and remove dependencies --- plugins/percol/README.md | 23 ++++++++++++---------- plugins/percol/percol.plugin.zsh | 41 +++++++++++++++++++++------------------- 2 files changed, 35 insertions(+), 29 deletions(-) diff --git a/plugins/percol/README.md b/plugins/percol/README.md index ec5de4f86..78c881f55 100644 --- a/plugins/percol/README.md +++ b/plugins/percol/README.md @@ -1,20 +1,23 @@ -## percol +# percol -Provides some useful function to make [percol](https://github.com/mooz/percol) work with zsh history and [jump plugin](https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/jump/jump.plugin.zsh) +Provides some useful function to make [percol](https://github.com/mooz/percol) work with zsh history and +the [jump plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/jump), optionally. -### Requirements +To use it, add `percol` to the plugins array in your zshrc: -```shell -pip install percol +```zsh +plugins=(... percol) ``` -And [jump](https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/jump/jump.plugin.zsh) for `oh-my-zsh` is a optional requirement. +## Requirements -### Usage +- `percol`: install with `pip install percol`. -For default +- (_Optional_) [`jump`](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/jump) plugin: needs to be + enabled before the `percol` plugin. -- `^-r` bind to `percol_select_history`.You can use it to grep your history with percol. +## Usage -- `^-b` bind to `percol_select_marks`.You can use it to grep your bookmarks with percol. +- CTRL-R (bound to `percol_select_history`): you can use it to grep your history with percol. +- CTRL-B (bound to `percol_select_marks`): you can use it to grep your jump bookmarks with percol. diff --git a/plugins/percol/percol.plugin.zsh b/plugins/percol/percol.plugin.zsh index c6adf4e1e..b78383eee 100644 --- a/plugins/percol/percol.plugin.zsh +++ b/plugins/percol/percol.plugin.zsh @@ -1,22 +1,25 @@ -if which percol &> /dev/null; then - function percol_select_history() { - local tac - which gtac &> /dev/null && tac="gtac" || { which tac &> /dev/null && tac="tac" || { tac="tail -r" } } - BUFFER=$(fc -l -n 1 | eval $tac | percol --query "$LBUFFER") - CURSOR=$#BUFFER - zle -R -c - } +(( ${+commands[percol]} )) || return - zle -N percol_select_history - bindkey '^R' percol_select_history +function percol_select_history() { + # print history in reverse order (from -1 (latest) to 1 (oldest)) + BUFFER=$(fc -l -n -1 1 | percol --query "$LBUFFER") + CURSOR=$#BUFFER + zle -R -c +} +zle -N percol_select_history +bindkey -M emacs '^R' percol_select_history +bindkey -M viins '^R' percol_select_history +bindkey -M vicmd '^R' percol_select_history - if which marks &> /dev/null; then - function percol_select_marks() { - BUFFER=$(marks | percol --query "$LBUFFER" | awk '{print $3}') - CURSOR=$#BUFFER # move cursor - zle -R -c # refresh - } - zle -N percol_select_marks - bindkey '^B' percol_select_marks - fi +if (( ${+functions[marks]} )); then + function percol_select_marks() { + # parse directory from marks output (markname -> path) and quote if necessary + BUFFER=${(q)"$(marks | percol --query "$LBUFFER")"##*-> } + CURSOR=$#BUFFER + zle -R -c + } + zle -N percol_select_marks + bindkey -M emacs '^B' percol_select_marks + bindkey -M viins '^B' percol_select_marks + bindkey -M vicmd '^B' percol_select_marks fi -- cgit v1.2.3-70-g09d2 From 55682e36920e2ab7633fc6eee11466d3faed0bf8 Mon Sep 17 00:00:00 2001 From: Shahin Sorkh Date: Mon, 8 Nov 2021 18:02:09 +0330 Subject: feat(tmux): set session name with `ZSH_TMUX_DEFAULT_SESSION_NAME` (#9063) --- plugins/tmux/README.md | 1 + plugins/tmux/tmux.plugin.zsh | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/tmux/README.md b/plugins/tmux/README.md index 2ceaf1ad5..551814a39 100644 --- a/plugins/tmux/README.md +++ b/plugins/tmux/README.md @@ -39,3 +39,4 @@ The plugin also supports the following: | `ZSH_TMUX_FIXTERM_WITH_256COLOR` | `$TERM` to use for 256-color terminals (default: `screen-256color` | | `ZSH_TMUX_CONFIG` | Set the configuration path (default: `$HOME/.tmux.conf`) | | `ZSH_TMUX_UNICODE` | Set `tmux -u` option to support unicode | +| `ZSH_TMUX_DEFAULT_SESSION_NAME` | Set tmux default session name when autostart is enabled | diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index e52443a71..0ea3aa02a 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -76,7 +76,11 @@ function _zsh_tmux_plugin_run() { elif [[ -e "$ZSH_TMUX_CONFIG" ]]; then tmux_cmd+=(-f "$ZSH_TMUX_CONFIG") fi - $tmux_cmd new-session + if [[ -n "$ZSH_TMUX_DEFAULT_SESSION_NAME" ]]; then + $tmux_cmd new-session -s $ZSH_TMUX_DEFAULT_SESSION_NAME + else + $tmux_cmd new-session + fi fi if [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]]; then -- cgit v1.2.3-70-g09d2 From e86c6f5e7fc9f024a427e2870ab70644b5454725 Mon Sep 17 00:00:00 2001 From: Kevin Burke Date: Tue, 9 Nov 2021 00:04:10 -0800 Subject: style: use `-n` flag in `head` and `tail` commands (#10391) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Marc Cornellà --- lib/diagnostics.zsh | 2 +- lib/directories.zsh | 2 +- lib/functions.zsh | 4 ++-- lib/git.zsh | 2 +- plugins/scd/scd | 2 +- plugins/systemadmin/README.md | 4 ++-- plugins/systemadmin/systemadmin.plugin.zsh | 12 ++++++------ tools/install.sh | 2 +- 8 files changed, 15 insertions(+), 15 deletions(-) diff --git a/lib/diagnostics.zsh b/lib/diagnostics.zsh index 650520797..eaeba7d23 100644 --- a/lib/diagnostics.zsh +++ b/lib/diagnostics.zsh @@ -335,7 +335,7 @@ function _omz_diag_dump_os_specific_version() { builtin echo "OS Version: $osname $osver build $(sw_vers -buildVersion)" ;; cygwin) - command systeminfo | command head -4 | command tail -2 + command systeminfo | command head -n 4 | command tail -n 2 ;; esac diff --git a/lib/directories.zsh b/lib/directories.zsh index 6696854b0..c62f56468 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -26,7 +26,7 @@ function d () { if [[ -n $1 ]]; then dirs "$@" else - dirs -v | head -10 + dirs -v | head -n 10 fi } compdef _dirs d diff --git a/lib/functions.zsh b/lib/functions.zsh index 73b491a59..fc53611b8 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -1,7 +1,7 @@ function zsh_stats() { fc -l 1 \ | awk '{ CMD[$2]++; count++; } END { for (a in CMD) print CMD[a] " " CMD[a]*100/count "% " a }' \ - | grep -v "./" | sort -nr | head -20 | column -c3 -s " " -t | nl + | grep -v "./" | sort -nr | head -n 20 | column -c3 -s " " -t | nl } function uninstall_oh_my_zsh() { @@ -45,7 +45,7 @@ function takeurl() { data="$(mktemp)" curl -L "$1" > "$data" tar xf "$data" - thedir="$(tar tf "$data" | head -1)" + thedir="$(tar tf "$data" | head -n 1)" rm "$data" cd "$thedir" } diff --git a/lib/git.zsh b/lib/git.zsh index 9a615e77b..8623473b0 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -51,7 +51,7 @@ function parse_git_dirty() { FLAGS+="--ignore-submodules=${GIT_STATUS_IGNORE_SUBMODULES:-dirty}" ;; esac - STATUS=$(__git_prompt_git status ${FLAGS} 2> /dev/null | tail -1) + STATUS=$(__git_prompt_git status ${FLAGS} 2> /dev/null | tail -n 1) fi if [[ -n $STATUS ]]; then echo "$ZSH_THEME_GIT_PROMPT_DIRTY" diff --git a/plugins/scd/scd b/plugins/scd/scd index a7db6c265..7e9654b44 100755 --- a/plugins/scd/scd +++ b/plugins/scd/scd @@ -270,7 +270,7 @@ fi # Determine the last recorded directory if [[ -s ${SCD_HISTFILE} ]]; then - last_directory=${"$(tail -1 ${SCD_HISTFILE})"#*;} + last_directory=${"$(tail -n 1 ${SCD_HISTFILE})"#*;} fi # The "record" function adds its arguments to the directory index. diff --git a/plugins/systemadmin/README.md b/plugins/systemadmin/README.md index 052fc6edc..146b58605 100644 --- a/plugins/systemadmin/README.md +++ b/plugins/systemadmin/README.md @@ -17,9 +17,9 @@ plugins=(... systemadmin) | path | `print -l $path` | Displays PATH with each entry on a separate line | | mkdir | `mkdir -pv` | Automatically create parent directories and display verbose output | | psmem | `ps -e -orss=,args= \| sort -b -k1 -nr` | Display the processes using the most memory | -| psmem10 | `ps -e -orss=,args= \| sort -b -k1 -nr \| head -10` | Display the top 10 processes using the most memory | +| psmem10 | `ps -e -orss=,args= \| sort -b -k1 -nr \| head -n 10` | Display the top 10 processes using the most memory | | pscpu | `ps -e -o pcpu,cpu,nice,state,cputime,args \|sort -k1 -nr` | Display the top processes using the most CPU | -| pscpu10 | `ps -e -o pcpu,cpu,nice,state,cputime,args \|sort -k1 -nr \| head -10` | Display the top 10 processes using the most CPU | +| pscpu10 | `ps -e -o pcpu,cpu,nice,state,cputime,args \|sort -k1 -nr \| head -n 10` | Display the top 10 processes using the most CPU | | hist10 | `print -l ${(o)history%% *} \| uniq -c \| sort -nr \| head -n 10` | Display the top 10 most used commands in the history | ## Functions diff --git a/plugins/systemadmin/systemadmin.plugin.zsh b/plugins/systemadmin/systemadmin.plugin.zsh index a77f0069b..2f9d1ef35 100644 --- a/plugins/systemadmin/systemadmin.plugin.zsh +++ b/plugins/systemadmin/systemadmin.plugin.zsh @@ -26,10 +26,10 @@ alias path='print -l $path' alias mkdir='mkdir -pv' # get top process eating memory alias psmem='ps -e -orss=,args= | sort -b -k1 -nr' -alias psmem10='ps -e -orss=,args= | sort -b -k1 -nr | head -10' +alias psmem10='ps -e -orss=,args= | sort -b -k1 -nr | head -n 10' # get top process eating cpu if not work try excute : export LC_ALL='C' alias pscpu='ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr' -alias pscpu10='ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr | head -10' +alias pscpu10='ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr | head -n 10' # top10 of the history alias hist10='print -l ${(o)history%% *} | uniq -c | sort -nr | head -n 10' @@ -74,7 +74,7 @@ req20() { # top20 of Using tcpdump port 80 access to view http20() { - sudo tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -20 + sudo tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -n 20 } # top20 of Find time_wait connection @@ -99,14 +99,14 @@ accessip10() { # top20 of Most Visited file or page visitpage20() { - awk '{print $11}' "$(retlog)"|sort|uniq -c|sort -nr|head -20 + awk '{print $11}' "$(retlog)"|sort|uniq -c|sort -nr|head -n 20 } # top100 of Page lists the most time-consuming (more than 60 seconds) as well as the corresponding page number of occurrences consume100() { - awk '($NF > 60 && $7~/\.php/){print $7}' "$(retlog)" |sort -n|uniq -c|sort -nr|head -100 + awk '($NF > 60 && $7~/\.php/){print $7}' "$(retlog)" |sort -n|uniq -c|sort -nr|head -n 100 # if django website or other webiste make by no suffix language - # awk '{print $7}' "$(retlog)" |sort -n|uniq -c|sort -nr|head -100 + # awk '{print $7}' "$(retlog)" |sort -n|uniq -c|sort -nr|head -n 100 } # Website traffic statistics (G) diff --git a/tools/install.sh b/tools/install.sh index 7704107c8..ca996f8a7 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -311,7 +311,7 @@ EOF # 1. Use the most preceding one based on $PATH, then check that it's in the shells file # 2. If that fails, get a zsh path from the shells file, then check it actually exists if ! zsh=$(command -v zsh) || ! grep -qx "$zsh" "$shells_file"; then - if ! zsh=$(grep '^/.*/zsh$' "$shells_file" | tail -1) || [ ! -f "$zsh" ]; then + if ! zsh=$(grep '^/.*/zsh$' "$shells_file" | tail -n 1) || [ ! -f "$zsh" ]; then fmt_error "no zsh binary found or not present in '$shells_file'" fmt_error "change your default shell manually." return -- cgit v1.2.3-70-g09d2 From 4a74349635cf30d305766b459c7cc3246831676e Mon Sep 17 00:00:00 2001 From: Janusz Mordarski Date: Tue, 9 Nov 2021 09:50:25 +0100 Subject: feat(refined): allow selecting git branch by changing prefix to `:` (#10400) --- themes/refined.zsh-theme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/refined.zsh-theme b/themes/refined.zsh-theme index 2a4188c9d..5d39bd757 100644 --- a/themes/refined.zsh-theme +++ b/themes/refined.zsh-theme @@ -33,8 +33,8 @@ autoload -Uz vcs_info zstyle ':vcs_info:*' enable hg bzr git zstyle ':vcs_info:*:*' unstagedstr '!' zstyle ':vcs_info:*:*' stagedstr '+' -zstyle ':vcs_info:*:*' formats "$FX[bold]%r$FX[no-bold]/%S" "%s/%b" "%%u%c" -zstyle ':vcs_info:*:*' actionformats "$FX[bold]%r$FX[no-bold]/%S" "%s/%b" "%u%c (%a)" +zstyle ':vcs_info:*:*' formats "$FX[bold]%r$FX[no-bold]/%S" "%s:%b" "%%u%c" +zstyle ':vcs_info:*:*' actionformats "$FX[bold]%r$FX[no-bold]/%S" "%s:%b" "%u%c (%a)" zstyle ':vcs_info:*:*' nvcsformats "%~" "" "" # Fastest possible way to check if repo is dirty -- cgit v1.2.3-70-g09d2 From 3dc66bd3676a564e3864fb5ccf5641c65fd42c6f Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 9 Nov 2021 10:25:23 +0100 Subject: fix(emotty): fix glyphs output width in emotty theme --- themes/emotty.zsh-theme | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/themes/emotty.zsh-theme b/themes/emotty.zsh-theme index 13adad78d..044b317e8 100644 --- a/themes/emotty.zsh-theme +++ b/themes/emotty.zsh-theme @@ -51,9 +51,9 @@ root_prompt="$emoji[skull]" warn_prompt="$emoji[collision_symbol]" vcs_unstaged_glyph="%{$emoji[circled_latin_capital_letter_m]$emoji2[emoji_style] %2G%}" -vcs_staged_glyph="%{$emoji[high_voltage_sign] %2G%}" -vcs_branch_glyph=$(print -P $'\Ue0a0') #  -vcs_action_glyph=$(print -P $'\U276f') # ❯ +vcs_staged_glyph="%{$emoji[high_voltage_sign]%2G%}" +vcs_branch_glyph=$'\Ue0a0' #  +vcs_action_glyph=$'\U276f' # ❯ red="$FG[001]" yellow="$FG[003]" -- cgit v1.2.3-70-g09d2 From 9a11b34101a218532f5133b78e55e48e3dbeb2e5 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 9 Nov 2021 12:03:59 +0100 Subject: fix(cli): fix check for completion files in `omz plugin load` --- lib/cli.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/cli.zsh b/lib/cli.zsh index 0b6bbc6cb..2975acb91 100644 --- a/lib/cli.zsh +++ b/lib/cli.zsh @@ -446,9 +446,9 @@ function _omz::plugin::load { fi # Check if it has completion to reload compinit - if [[ -f "$base/_$plugin" ]]; then - has_completion=1 - fi + local -a comp_files + comp_files=($base/_*(N)) + has_completion=$(( $#comp_files > 0 )) # Load the plugin if [[ -f "$base/$plugin.plugin.zsh" ]]; then -- cgit v1.2.3-70-g09d2 From 5c2440cb0c2ee70afb33bda3954a93abe37c34f2 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 9 Nov 2021 12:07:23 +0100 Subject: style(frontend-search): rename completion file to `_frontend` --- plugins/frontend-search/_frontend | 161 ++++++++++++++++++++++++++++ plugins/frontend-search/_frontend-search.sh | 161 ---------------------------- 2 files changed, 161 insertions(+), 161 deletions(-) create mode 100644 plugins/frontend-search/_frontend delete mode 100644 plugins/frontend-search/_frontend-search.sh diff --git a/plugins/frontend-search/_frontend b/plugins/frontend-search/_frontend new file mode 100644 index 000000000..15f8d239d --- /dev/null +++ b/plugins/frontend-search/_frontend @@ -0,0 +1,161 @@ +#compdef frontend + +zstyle ':completion:*:descriptions' format '%B%d%b' +zstyle ':completion::complete:frontend:*:commands' group-name commands +zstyle ':completion::complete:frontend:*:frontend_points' group-name frontend_points +zstyle ':completion::complete:frontend::' list-grouped + +zmodload zsh/mapfile + +function _frontend() { + local CONFIG=$HOME/.frontend-search + local ret=1 + + local -a commands + local -a frontend_points + + frontend_points=( "${(f)mapfile[$CONFIG]//$HOME/~}" ) + + commands=( + 'angular: Search in Angular.io website' + 'angularjs: Search in docs.angularjs.org website' + 'bem: Search in BEM website' + 'bootsnipp: Search in bootsnipp website' + 'bundlephobia: Search in Bundlephobia website' + 'caniuse: Search in Can I Use website' + 'codepen: Search in codepen website' + 'compassdoc: Search in COMPASS website' + 'cssflow: Search in cssflow website' + 'dartlang: Search in Dart website' + 'emberjs: Search in Ember website' + 'flowtype: Search in Flowtype website' + 'fontello: Search in fontello website' + 'github: Search in GitHub website' + 'html5please: Search in HTML5 Please website' + 'jestjs: Search in Jest website' + 'jquery: Search in jQuery website' + 'lodash: Search in Lo-Dash website' + 'mdn: Search in MDN website' + 'nodejs: Search in NodeJS website' + 'npmjs: Search in NPMJS website' + 'packagephobia: Search in Packagephobia website' + 'qunit: Search in Qunit website' + 'reactjs: Search in React website' + 'smacss: Search in SMACSS website' + 'stackoverflow: Search in StackOverflow website' + 'typescript: Search in TypeScript website' + 'unheap: Search in unheap website' + 'vuejs: Search in VueJS website' + ) + + _arguments -C \ + '1: :->first_arg' \ + '2: :->second_arg' && ret=0 + + case $state in + first_arg) + _describe -t frontend_points "Warp points" frontend_points && ret=0 + _describe -t commands "Commands" commands && ret=0 + ;; + second_arg) + case $words[2] in + jquery) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + mdn) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + compassdoc) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + html5please) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + caniuse) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + dartlang) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + lodash) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + qunit) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + fontello) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + github) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + bootsnipp) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + cssflow) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + codepen) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + unheap) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + bem) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + smacss) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + angularjs) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + reactjs) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + emberjs) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + stackoverflow) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + npmjs) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + bundlephobia) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + packagephobia) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + flowtype) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + typescript) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + vuejs) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + nodejs) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + jestjs) + _describe -t points "Warp points" frontend_points && ret=0 + ;; + esac + ;; + esac + + return $ret +} + +_frontend "$@" + +# Local Variables: +# mode: Shell-Script +# sh-indentation: 2 +# indent-tabs-mode: nil +# sh-basic-offset: 2 +# End: +# vim: ft=zsh sw=2 ts=2 et diff --git a/plugins/frontend-search/_frontend-search.sh b/plugins/frontend-search/_frontend-search.sh deleted file mode 100644 index 15f8d239d..000000000 --- a/plugins/frontend-search/_frontend-search.sh +++ /dev/null @@ -1,161 +0,0 @@ -#compdef frontend - -zstyle ':completion:*:descriptions' format '%B%d%b' -zstyle ':completion::complete:frontend:*:commands' group-name commands -zstyle ':completion::complete:frontend:*:frontend_points' group-name frontend_points -zstyle ':completion::complete:frontend::' list-grouped - -zmodload zsh/mapfile - -function _frontend() { - local CONFIG=$HOME/.frontend-search - local ret=1 - - local -a commands - local -a frontend_points - - frontend_points=( "${(f)mapfile[$CONFIG]//$HOME/~}" ) - - commands=( - 'angular: Search in Angular.io website' - 'angularjs: Search in docs.angularjs.org website' - 'bem: Search in BEM website' - 'bootsnipp: Search in bootsnipp website' - 'bundlephobia: Search in Bundlephobia website' - 'caniuse: Search in Can I Use website' - 'codepen: Search in codepen website' - 'compassdoc: Search in COMPASS website' - 'cssflow: Search in cssflow website' - 'dartlang: Search in Dart website' - 'emberjs: Search in Ember website' - 'flowtype: Search in Flowtype website' - 'fontello: Search in fontello website' - 'github: Search in GitHub website' - 'html5please: Search in HTML5 Please website' - 'jestjs: Search in Jest website' - 'jquery: Search in jQuery website' - 'lodash: Search in Lo-Dash website' - 'mdn: Search in MDN website' - 'nodejs: Search in NodeJS website' - 'npmjs: Search in NPMJS website' - 'packagephobia: Search in Packagephobia website' - 'qunit: Search in Qunit website' - 'reactjs: Search in React website' - 'smacss: Search in SMACSS website' - 'stackoverflow: Search in StackOverflow website' - 'typescript: Search in TypeScript website' - 'unheap: Search in unheap website' - 'vuejs: Search in VueJS website' - ) - - _arguments -C \ - '1: :->first_arg' \ - '2: :->second_arg' && ret=0 - - case $state in - first_arg) - _describe -t frontend_points "Warp points" frontend_points && ret=0 - _describe -t commands "Commands" commands && ret=0 - ;; - second_arg) - case $words[2] in - jquery) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - mdn) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - compassdoc) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - html5please) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - caniuse) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - dartlang) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - lodash) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - qunit) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - fontello) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - github) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - bootsnipp) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - cssflow) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - codepen) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - unheap) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - bem) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - smacss) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - angularjs) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - reactjs) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - emberjs) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - stackoverflow) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - npmjs) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - bundlephobia) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - packagephobia) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - flowtype) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - typescript) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - vuejs) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - nodejs) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - jestjs) - _describe -t points "Warp points" frontend_points && ret=0 - ;; - esac - ;; - esac - - return $ret -} - -_frontend "$@" - -# Local Variables: -# mode: Shell-Script -# sh-indentation: 2 -# indent-tabs-mode: nil -# sh-basic-offset: 2 -# End: -# vim: ft=zsh sw=2 ts=2 et -- cgit v1.2.3-70-g09d2 From db19589fcf03690a443f1a206361963b47809b93 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 9 Nov 2021 19:27:43 +0100 Subject: refactor(updater): simplify check for available updates --- tools/check_for_upgrade.sh | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index 8264762b6..70cd21f84 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -58,23 +58,20 @@ function is_update_available() { local local_head local_head=$(git -C "$ZSH" rev-parse $branch 2>/dev/null) || return 0 - # Get remote HEAD. If we can't get it assume there are updates unless there is no connection: - # - curl: 6 (could not resolve) or 7 (could not connect) - # - wget: 4 (network unreachable) - # - fetch: 1 (no route to host) - local remote_head ret + # Get remote HEAD. If no suitable command is found assume there are updates + # On any other error, skip the update (connection may be down) + local remote_head remote_head=$( - curl -fsSL -H 'Accept: application/vnd.github.v3.sha' $api_url 2>/dev/null || { - [[ $? -eq 6 || $? -eq 7 ]] && exit 1 - } || wget -O- --header='Accept: application/vnd.github.v3.sha' $api_url 2>/dev/null || { - [[ $? -eq 4 ]] && exit 1 - } || HTTP_ACCEPT='Accept: application/vnd.github.v3.sha' fetch -o - $api_url 2>/dev/null || { - [[ $? -eq 1 ]] && exit 1 - } || exit 0 - ) - - # If can't fetch remote HEAD, return exit code - ret=$?; [[ -n "$remote_head" ]] || return $ret + if (( ${+commands[curl]} )); then + curl -fsSL -H 'Accept: application/vnd.github.v3.sha' $api_url 2>/dev/null + elif (( ${+commands[wget]} )); then + wget -O- --header='Accept: application/vnd.github.v3.sha' $api_url 2>/dev/null + elif (( ${+commands[fetch]} )); then + HTTP_ACCEPT='Accept: application/vnd.github.v3.sha' fetch -o - $api_url 2>/dev/null + else + exit 0 + fi + ) || return 1 # Compare local and remote HEADs [[ "$local_head" != "$remote_head" ]] -- cgit v1.2.3-70-g09d2 From e3f7b8aa570a09186a7e3d1877b36d7e43d39197 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Wed, 10 Nov 2021 11:21:59 +0100 Subject: fix(updater): avoid `git -C` for compatibility with git < v1.8.5 (#10404) Fixes #10404 --- tools/check_for_upgrade.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index 70cd21f84..a6fdf4659 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -34,11 +34,11 @@ function current_epoch() { function is_update_available() { local branch - branch=${"$(git -C "$ZSH" config --local oh-my-zsh.branch)":-master} + branch=${"$(cd "$ZSH"; git config --local oh-my-zsh.branch)":-master} local remote remote_url remote_repo - remote=${"$(git -C "$ZSH" config --local oh-my-zsh.remote)":-origin} - remote_url=$(git -C "$ZSH" config remote.$remote.url) + remote=${"$(cd "$ZSH"; git config --local oh-my-zsh.remote)":-origin} + remote_url=$(cd "$ZSH"; git config remote.$remote.url) local repo case "$remote_url" in @@ -56,7 +56,7 @@ function is_update_available() { # Get local HEAD. If this fails assume there are updates local local_head - local_head=$(git -C "$ZSH" rev-parse $branch 2>/dev/null) || return 0 + local_head=$(cd "$ZSH"; git rev-parse $branch 2>/dev/null) || return 0 # Get remote HEAD. If no suitable command is found assume there are updates # On any other error, skip the update (connection may be down) -- cgit v1.2.3-70-g09d2 From 1d166eaaa138d7413365205c61412ccb68286b3a Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Wed, 10 Nov 2021 11:35:17 +0100 Subject: fix(cli): avoid `git -C` for compatibility with git < v1.8.5 (#10404) --- lib/cli.zsh | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/cli.zsh b/lib/cli.zsh index 2975acb91..d90cc6469 100644 --- a/lib/cli.zsh +++ b/lib/cli.zsh @@ -36,7 +36,7 @@ function _omz { elif (( CURRENT == 3 )); then case "$words[2]" in changelog) local -a refs - refs=("${(@f)$(command git -C "$ZSH" for-each-ref --format="%(refname:short):%(subject)" refs/heads refs/tags)}") + refs=("${(@f)$(cd "$ZSH"; command git for-each-ref --format="%(refname:short):%(subject)" refs/heads refs/tags)}") _describe 'command' refs ;; plugin) subcmds=( 'disable:Disable plugin(s)' @@ -171,9 +171,12 @@ EOF function _omz::changelog { local version=${1:-HEAD} format=${3:-"--text"} - if ! command git -C "$ZSH" show-ref --verify refs/heads/$version &>/dev/null && \ - ! command git -C "$ZSH" show-ref --verify refs/tags/$version &>/dev/null && \ - ! command git -C "$ZSH" rev-parse --verify "${version}^{commit}" &>/dev/null; then + if ( + cd "$ZSH" + ! command git show-ref --verify refs/heads/$version && \ + ! command git show-ref --verify refs/tags/$version && \ + ! command git rev-parse --verify "${version}^{commit}" + ) &>/dev/null; then cat >&2 < Date: Wed, 10 Nov 2021 17:03:38 +0300 Subject: fix(command-not-found): pass arguments correctly in Termux (#10403) --- plugins/command-not-found/command-not-found.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/command-not-found/command-not-found.plugin.zsh b/plugins/command-not-found/command-not-found.plugin.zsh index cb96fe063..e46350604 100644 --- a/plugins/command-not-found/command-not-found.plugin.zsh +++ b/plugins/command-not-found/command-not-found.plugin.zsh @@ -57,6 +57,6 @@ fi # Termux: https://github.com/termux/command-not-found if [[ -x /data/data/com.termux/files/usr/libexec/termux/command-not-found ]]; then command_not_found_handler() { - /data/data/com.termux/files/usr/libexec/termux/command-not-found -- "$1" + /data/data/com.termux/files/usr/libexec/termux/command-not-found "$1" } fi -- cgit v1.2.3-70-g09d2 From 1448d234d6d9c25f64a48b16379b34db28a36898 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Thu, 11 Nov 2021 17:20:07 +0100 Subject: fix(dirhistory): fix Up/Down key bindings for Terminal.app Reference: https://github.com/ohmyzsh/ohmyzsh/commit/7f49494#commitcomment-60117011 --- plugins/dirhistory/dirhistory.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/dirhistory/dirhistory.plugin.zsh b/plugins/dirhistory/dirhistory.plugin.zsh index 26ef07494..971eb6540 100644 --- a/plugins/dirhistory/dirhistory.plugin.zsh +++ b/plugins/dirhistory/dirhistory.plugin.zsh @@ -182,7 +182,7 @@ bindkey "\e\e[A" dirhistory_zle_dirhistory_up # Putty bindkey "\eO3A" dirhistory_zle_dirhistory_up # GNU screen case "$TERM_PROGRAM" in iTerm.app) bindkey "^[^[[A" dirhistory_zle_dirhistory_up ;; # iTerm2 -Apple_Terminal) bindkey "^[OA" dirhistory_zle_dirhistory_up ;; # Terminal.app +Apple_Terminal) bindkey "^[[A" dirhistory_zle_dirhistory_up ;; # Terminal.app esac if (( ${+terminfo[kcuu1]} )); then bindkey "^[${terminfo[kcuu1]}" dirhistory_zle_dirhistory_up # urxvt @@ -195,7 +195,7 @@ bindkey "\e\e[B" dirhistory_zle_dirhistory_down # Putty bindkey "\eO3B" dirhistory_zle_dirhistory_down # GNU screen case "$TERM_PROGRAM" in iTerm.app) bindkey "^[^[[B" dirhistory_zle_dirhistory_down ;; # iTerm2 -Apple_Terminal) bindkey "^[OB" dirhistory_zle_dirhistory_down ;; # Terminal.app +Apple_Terminal) bindkey "^[[B" dirhistory_zle_dirhistory_down ;; # Terminal.app esac if (( ${+terminfo[kcud1]} )); then bindkey "^[${terminfo[kcud1]}" dirhistory_zle_dirhistory_down # urxvt -- cgit v1.2.3-70-g09d2 From 6cb41b70a6d04301fd50cd5862ecd705ba226c0e Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Mon, 8 Nov 2021 17:46:14 +0100 Subject: 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. --- lib/functions.zsh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/functions.zsh b/lib/functions.zsh index fc53611b8..61f4dd49e 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -237,12 +237,11 @@ function omz_urldecode { tmp=${tmp:gs/\\/\\\\/} # Handle %-escapes by turning them into `\xXX` printf escapes tmp=${tmp:gs/%/\\x/} - local decoded - eval "decoded=\$'$tmp'" + local decoded="$(printf -- "$tmp")" # Now we have a UTF-8 encoded string in the variable. We need to re-encode # it if caller is in a non-UTF-8 locale. - local safe_encodings + local -a safe_encodings safe_encodings=(UTF-8 utf8 US-ASCII) if [[ -z ${safe_encodings[(r)$caller_encoding]} ]]; then decoded=$(echo -E "$decoded" | iconv -f UTF-8 -t $caller_encoding) -- cgit v1.2.3-70-g09d2 From 06fc5fb12900d7ee5821a5f20b47be2c4b894ac0 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 9 Nov 2021 15:05:53 +0100 Subject: fix(dirhistory): fix unsafe eval bug in back and forward widgets The plugin unsafely processes directory paths in pop_past and pop_future. This commit fixes that. --- plugins/dirhistory/dirhistory.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/dirhistory/dirhistory.plugin.zsh b/plugins/dirhistory/dirhistory.plugin.zsh index 971eb6540..e3f45ee99 100644 --- a/plugins/dirhistory/dirhistory.plugin.zsh +++ b/plugins/dirhistory/dirhistory.plugin.zsh @@ -19,14 +19,14 @@ export DIRHISTORY_SIZE=30 # Returns the element if the array was not empty, # otherwise returns empty string. function pop_past() { - eval "$1='$dirhistory_past[$#dirhistory_past]'" + eval "$1=${(q)dirhistory_past[$#dirhistory_past]}" if [[ $#dirhistory_past -gt 0 ]]; then dirhistory_past[$#dirhistory_past]=() fi } function pop_future() { - eval "$1='$dirhistory_future[$#dirhistory_future]'" + eval "$1=${(q)dirhistory_future[$#dirhistory_future]}" if [[ $#dirhistory_future -gt 0 ]]; then dirhistory_future[$#dirhistory_future]=() fi -- cgit v1.2.3-70-g09d2 From a263cdac9c15de4003d3289a53cad1d19c8cfb3f Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 9 Nov 2021 09:08:18 +0100 Subject: 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. --- lib/spectrum.zsh | 6 ++++-- lib/termsupport.zsh | 13 ++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/lib/spectrum.zsh b/lib/spectrum.zsh index d5c22a8c5..97f5c360a 100644 --- a/lib/spectrum.zsh +++ b/lib/spectrum.zsh @@ -20,16 +20,18 @@ done # Show all 256 colors with color number function spectrum_ls() { + setopt localoptions nopromptsubst local ZSH_SPECTRUM_TEXT=${ZSH_SPECTRUM_TEXT:-Arma virumque cano Troiae qui primus ab oris} for code in {000..255}; do - print -P -- "$code: $FG[$code]$ZSH_SPECTRUM_TEXT%{$reset_color%}" + print -P -- "$code: ${FG[$code]}${ZSH_SPECTRUM_TEXT}%{$reset_color%}" done } # Show all 256 colors where the background is set to specific color function spectrum_bls() { + setopt localoptions nopromptsubst local ZSH_SPECTRUM_TEXT=${ZSH_SPECTRUM_TEXT:-Arma virumque cano Troiae qui primus ab oris} for code in {000..255}; do - print -P -- "$code: $BG[$code]$ZSH_SPECTRUM_TEXT%{$reset_color%}" + print -P -- "$code: ${BG[$code]}${ZSH_SPECTRUM_TEXT}%{$reset_color%}" done } diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index ef0d78895..49f64400b 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -7,8 +7,7 @@ # (In screen, only short_tab_title is used) # Limited support for Apple Terminal (Terminal can't set window and tab separately) function title { - emulate -L zsh - setopt prompt_subst + setopt localoptions nopromptsubst # Don't set the title if inside emacs, unless using vterm [[ -n "$INSIDE_EMACS" && "$INSIDE_EMACS" != vterm ]] && return @@ -48,13 +47,13 @@ fi # Runs before showing the prompt function omz_termsupport_precmd { - [[ "${DISABLE_AUTO_TITLE:-}" == true ]] && return - title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE + [[ "${DISABLE_AUTO_TITLE:-}" != true ]] || return + title "$ZSH_THEME_TERM_TAB_TITLE_IDLE" "$ZSH_THEME_TERM_TITLE_IDLE" } # Runs before executing the command function omz_termsupport_preexec { - [[ "${DISABLE_AUTO_TITLE:-}" == true ]] && return + [[ "${DISABLE_AUTO_TITLE:-}" != true ]] || return emulate -L zsh setopt extended_glob @@ -97,10 +96,10 @@ function omz_termsupport_preexec { fi # cmd name only, or if this is sudo or ssh, the next cmd - local CMD=${1[(wr)^(*=*|sudo|ssh|mosh|rake|-*)]:gs/%/%%} + local CMD="${1[(wr)^(*=*|sudo|ssh|mosh|rake|-*)]:gs/%/%%}" local LINE="${2:gs/%/%%}" - title '$CMD' '%100>...>$LINE%<<' + title "$CMD" "%100>...>${LINE}%<<" } autoload -Uz add-zsh-hook -- cgit v1.2.3-70-g09d2 From 72928432f1ddaa244e02067dd7fc14948a4a5ce4 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 9 Nov 2021 09:31:09 +0100 Subject: fix(plugins): fix potential command injection in `rand-quote` and `hitokoto` The `rand-quote` plugin uses quotationspage.com and prints part of its content to the shell without sanitization, which could trigger command injection. There is no evidence that this has been exploited, but this commit removes all possibility for exploit. Similarly, the `hitokoto` plugin uses the hitokoto.cn website to print quotes to the shell, also without sanitization. Furthermore, there is also no evidence that this has been exploited, but with this change it is now impossible. --- plugins/hitokoto/hitokoto.plugin.zsh | 18 +++++++++++------- plugins/rand-quote/rand-quote.plugin.zsh | 23 ++++++++++++++++------- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/plugins/hitokoto/hitokoto.plugin.zsh b/plugins/hitokoto/hitokoto.plugin.zsh index 8646ebf3b..e346d18c5 100644 --- a/plugins/hitokoto/hitokoto.plugin.zsh +++ b/plugins/hitokoto/hitokoto.plugin.zsh @@ -1,14 +1,18 @@ if ! (( $+commands[curl] )); then - echo "hitokoto plugin needs curl to work" >&2 - return + echo "hitokoto plugin needs curl to work" >&2 + return fi function hitokoto { - emulate -L zsh - Q=$(curl -s --connect-timeout 2 "https://v1.hitokoto.cn" | jq -j '.hitokoto+"\t"+.from') + setopt localoptions nopromptsubst - TXT=$(echo "$Q" | awk -F '\t' '{print $1}') - WHO=$(echo "$Q" | awk -F '\t' '{print $2}') + # Get hitokoto data + local -a data + data=("${(ps:\n:)"$(command curl -s --connect-timeout 2 "https://v1.hitokoto.cn" | command jq -j '.hitokoto+"\n"+.from')"}") - [[ -n "$WHO" && -n "$TXT" ]] && print -P "%F{3}${WHO}%f: “%F{5}${TXT}%f”" + # Exit if could not fetch hitokoto + [[ -n "$data" ]] || return 0 + + local quote="${data[1]}" author="${data[2]}" + print -P "%F{3}${author}%f: “%F{5}${quote}%f”" } diff --git a/plugins/rand-quote/rand-quote.plugin.zsh b/plugins/rand-quote/rand-quote.plugin.zsh index 371b997d3..23c21dc8f 100644 --- a/plugins/rand-quote/rand-quote.plugin.zsh +++ b/plugins/rand-quote/rand-quote.plugin.zsh @@ -1,14 +1,23 @@ if ! (( $+commands[curl] )); then - echo "rand-quote plugin needs curl to work" >&2 - return + echo "rand-quote plugin needs curl to work" >&2 + return fi function quote { - emulate -L zsh - Q=$(curl -s --connect-timeout 2 "http://www.quotationspage.com/random.php" | iconv -c -f ISO-8859-1 -t UTF-8 | grep -m 1 "dt ") + setopt localoptions nopromptsubst - TXT=$(echo "$Q" | sed -e 's/<\/dt>.*//g' -e 's/.*html//g' -e 's/^[^a-zA-Z]*//' -e 's/<\/a..*$//g') - WHO=$(echo "$Q" | sed -e 's/.*\/quotes\///g' -e 's/<.*//g' -e 's/.*">//g') + # Get random quote data + local data + data="$(command curl -s --connect-timeout 2 "http://www.quotationspage.com/random.php" \ + | iconv -c -f ISO-8859-1 -t UTF-8 \ + | command grep -a -m 1 'dt class="quote"')" - [[ -n "$WHO" && -n "$TXT" ]] && print -P "%F{3}${WHO}%f: “%F{5}${TXT}%f”" + # Exit if could not fetch random quote + [[ -n "$data" ]] || return 0 + + local quote author + quote=$(sed -e 's|.*||g' -e 's|.*html||g' -e 's|^[^a-zA-Z]*||' -e 's|||g' <<< "$data") + + print -P "%F{3}${author}%f: “%F{5}${quote}%f”" } -- cgit v1.2.3-70-g09d2 From b3ba9978cc42a5031c7b68e3cf917ec2e64643bc Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 9 Nov 2021 09:54:21 +0100 Subject: fix(themes): fix potential command injection in `pygmalion`, `pygmalion-virtualenv` and `refined` The pygmalion and pygmalion-virtualenv themes unsafely handle git prompt information which results in a double evaluation of this information, so a malicious git repository could trigger a command injection if the user cloned and entered the repository. A similar method could be used in the refined theme. All themes have been patched against this vulnerability. --- themes/pygmalion-virtualenv.zsh-theme | 11 ++++++----- themes/pygmalion.zsh-theme | 6 +++--- themes/refined.zsh-theme | 1 + 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/themes/pygmalion-virtualenv.zsh-theme b/themes/pygmalion-virtualenv.zsh-theme index 47b0b4fb1..c2ab7f4e6 100644 --- a/themes/pygmalion-virtualenv.zsh-theme +++ b/themes/pygmalion-virtualenv.zsh-theme @@ -35,19 +35,20 @@ prompt_setup_pygmalion(){ } prompt_pygmalion_precmd(){ - setopt localoptions extendedglob + setopt localoptions nopromptsubst extendedglob local gitinfo=$(git_prompt_info) local gitinfo_nocolor=${gitinfo//\%\{[^\}]##\}} - local exp_nocolor="$(print -P \"$base_prompt_nocolor$gitinfo_nocolor$post_prompt_nocolor\")" + local exp_nocolor="$(print -P \"${base_prompt_nocolor}${gitinfo_nocolor}${post_prompt_nocolor}\")" local prompt_length=${#exp_nocolor} + # add new line on prompt longer than 40 characters local nl="" - if [[ $prompt_length -gt 40 ]]; then - nl=$'\n%{\r%}'; + nl=$'\n%{\r%}' fi - PROMPT="$base_prompt$gitinfo$nl$post_prompt" + + PROMPT="${base_prompt}\$(git_prompt_info)${nl}${post_prompt}" } prompt_setup_pygmalion diff --git a/themes/pygmalion.zsh-theme b/themes/pygmalion.zsh-theme index b13adfd5f..be9ca3889 100644 --- a/themes/pygmalion.zsh-theme +++ b/themes/pygmalion.zsh-theme @@ -19,14 +19,14 @@ prompt_setup_pygmalion(){ } prompt_pygmalion_precmd(){ - setopt localoptions extendedglob + setopt localoptions nopromptsubst extendedglob local gitinfo=$(git_prompt_info) local gitinfo_nocolor=${gitinfo//\%\{[^\}]##\}} - local exp_nocolor="$(print -P \"$base_prompt_nocolor$gitinfo_nocolor$post_prompt_nocolor\")" + local exp_nocolor="$(print -P \"${base_prompt_nocolor}${gitinfo_nocolor}${post_prompt_nocolor}\")" local prompt_length=${#exp_nocolor} - PROMPT="${base_prompt}${gitinfo}${post_prompt}" + PROMPT="${base_prompt}\$(git_prompt_info)${post_prompt}" } prompt_setup_pygmalion diff --git a/themes/refined.zsh-theme b/themes/refined.zsh-theme index 5d39bd757..5e2de7a87 100644 --- a/themes/refined.zsh-theme +++ b/themes/refined.zsh-theme @@ -70,6 +70,7 @@ preexec() { # Output additional information about paths, repos and exec time # precmd() { + setopt localoptions nopromptsubst vcs_info # Get version control info before we start outputting stuff print -P "\n$(repo_information) %F{yellow}$(cmd_exec_time)%f" unset cmd_timestamp #Reset cmd exec time. -- cgit v1.2.3-70-g09d2 From 2c06852546f52330c389b53a1b81348e62f64423 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 16 Nov 2021 17:18:07 +0100 Subject: style(dirhistory): remove use of `eval` completely --- plugins/dirhistory/dirhistory.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/dirhistory/dirhistory.plugin.zsh b/plugins/dirhistory/dirhistory.plugin.zsh index e3f45ee99..9f39264cf 100644 --- a/plugins/dirhistory/dirhistory.plugin.zsh +++ b/plugins/dirhistory/dirhistory.plugin.zsh @@ -19,14 +19,14 @@ export DIRHISTORY_SIZE=30 # Returns the element if the array was not empty, # otherwise returns empty string. function pop_past() { - eval "$1=${(q)dirhistory_past[$#dirhistory_past]}" + print -v $1 "${dirhistory_past[$#dirhistory_past]}" if [[ $#dirhistory_past -gt 0 ]]; then dirhistory_past[$#dirhistory_past]=() fi } function pop_future() { - eval "$1=${(q)dirhistory_future[$#dirhistory_future]}" + print -v $1 "${dirhistory_future[$#dirhistory_future]}" if [[ $#dirhistory_future -gt 0 ]]; then dirhistory_future[$#dirhistory_future]=() fi -- cgit v1.2.3-70-g09d2 From fb12e4135311b9c4189a7e4556be619922052f6b Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 16 Nov 2021 18:38:59 +0100 Subject: fix(install): fix backslash in `printf` when showing logo (#10422) Fixes #10422 --- tools/install.sh | 10 +++++----- tools/upgrade.sh | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index ca996f8a7..47166059d 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -339,11 +339,11 @@ EOF # shellcheck disable=SC2183 # printf string has more %s than arguments ($RAINBOW expands to multiple arguments) print_success() { - printf '%s %s__ %s %s %s %s %s__ %s\n' $RAINBOW $RESET - printf '%s ____ %s/ /_ %s ____ ___ %s__ __ %s ____ %s_____%s/ /_ %s\n' $RAINBOW $RESET - printf '%s / __ \%s/ __ \ %s / __ `__ \%s/ / / / %s /_ / %s/ ___/%s __ \ %s\n' $RAINBOW $RESET - printf '%s/ /_/ /%s / / / %s / / / / / /%s /_/ / %s / /_%s(__ )%s / / / %s\n' $RAINBOW $RESET - printf '%s\____/%s_/ /_/ %s /_/ /_/ /_/%s\__, / %s /___/%s____/%s_/ /_/ %s\n' $RAINBOW $RESET + printf '%s %s__ %s %s %s %s %s__ %s\n' $RAINBOW $RESET + printf '%s ____ %s/ /_ %s ____ ___ %s__ __ %s ____ %s_____%s/ /_ %s\n' $RAINBOW $RESET + printf '%s / __ \\%s/ __ \\ %s / __ `__ \\%s/ / / / %s /_ / %s/ ___/%s __ \\ %s\n' $RAINBOW $RESET + printf '%s/ /_/ /%s / / / %s / / / / / /%s /_/ / %s / /_%s(__ )%s / / / %s\n' $RAINBOW $RESET + printf '%s\\____/%s_/ /_/ %s /_/ /_/ /_/%s\\__, / %s /___/%s____/%s_/ /_/ %s\n' $RAINBOW $RESET printf '%s %s %s %s /____/ %s %s %s %s....is now installed!%s\n' $RAINBOW $GREEN $RESET printf '\n' printf '\n' diff --git a/tools/upgrade.sh b/tools/upgrade.sh index 7642858fe..994ffe9c9 100755 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -182,12 +182,12 @@ if git pull --rebase --stat $remote $branch; then printf "${BLUE}%s \`${BOLD}%s${RESET}${BLUE}\`${RESET}\n" "You can see the changelog with" "omz changelog" fi - printf '%s %s__ %s %s %s %s %s__ %s\n' $RAINBOW $RESET - printf '%s ____ %s/ /_ %s ____ ___ %s__ __ %s ____ %s_____%s/ /_ %s\n' $RAINBOW $RESET - printf '%s / __ \%s/ __ \ %s / __ `__ \%s/ / / / %s /_ / %s/ ___/%s __ \ %s\n' $RAINBOW $RESET - printf '%s/ /_/ /%s / / / %s / / / / / /%s /_/ / %s / /_%s(__ )%s / / / %s\n' $RAINBOW $RESET - printf '%s\____/%s_/ /_/ %s /_/ /_/ /_/%s\__, / %s /___/%s____/%s_/ /_/ %s\n' $RAINBOW $RESET - printf '%s %s %s %s /____/ %s %s %s %s\n' $RAINBOW $RESET + printf '%s %s__ %s %s %s %s %s__ %s\n' $RAINBOW $RESET + printf '%s ____ %s/ /_ %s ____ ___ %s__ __ %s ____ %s_____%s/ /_ %s\n' $RAINBOW $RESET + printf '%s / __ \\%s/ __ \\ %s / __ `__ \\%s/ / / / %s /_ / %s/ ___/%s __ \\ %s\n' $RAINBOW $RESET + printf '%s/ /_/ /%s / / / %s / / / / / /%s /_/ / %s / /_%s(__ )%s / / / %s\n' $RAINBOW $RESET + printf '%s\\____/%s_/ /_/ %s /_/ /_/ /_/%s\\__, / %s /___/%s____/%s_/ /_/ %s\n' $RAINBOW $RESET + printf '%s %s %s %s /____/ %s %s %s %s\n' $RAINBOW $RESET printf '\n' printf "${BLUE}%s${RESET}\n\n" "$message" printf "${BLUE}${BOLD}%s %s${RESET}\n" "To keep up with the latest news and updates, follow us on Twitter:" "$(fmt_link @ohmyzsh https://twitter.com/ohmyzsh)" -- cgit v1.2.3-70-g09d2 From 60b89cd264a5d889573704f5116cefc8e690062c Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Wed, 17 Nov 2021 09:55:39 +0100 Subject: feat(ssh-agent): add `quiet` option to silence plugin (#9659) Closes #9659 Co-authored-by: Jeff Warner --- plugins/ssh-agent/README.md | 56 ++++++++++++++++++++-------------- plugins/ssh-agent/ssh-agent.plugin.zsh | 12 +++----- 2 files changed, 38 insertions(+), 30 deletions(-) diff --git a/plugins/ssh-agent/README.md b/plugins/ssh-agent/README.md index 1d6914ec6..fa6a996d4 100644 --- a/plugins/ssh-agent/README.md +++ b/plugins/ssh-agent/README.md @@ -13,28 +13,24 @@ plugins=(... ssh-agent) **IMPORTANT: put these settings _before_ the line that sources oh-my-zsh** +### `agent-forwarding` + To enable **agent forwarding support** add the following to your zshrc file: ```zsh -zstyle :omz:plugins:ssh-agent agent-forwarding on +zstyle :omz:plugins:ssh-agent agent-forwarding yes ``` ----- +### `helper` -To **NOT load any identities on start** use the `lazy` setting. This is particularly -useful when combined with the `AddKeysToAgent` setting (available since OpenSSH 7.2), -since it allows to enter the password only on first use. _NOTE: you can know your -OpenSSH version with `ssh -V`._ +To set an **external helper** to ask for the passwords and possibly store +them in the system keychain use the `helper` style. For example: ```zsh -zstyle :omz:plugins:ssh-agent lazy yes +zstyle :omz:plugins:ssh-agent helper ksshaskpass ``` -You can enable `AddKeysToAgent` by passing `-o AddKeysToAgent=yes` to the `ssh` command, -or by adding `AddKeysToAgent yes` to your `~/.ssh/config` file [1]. -See the [OpenSSH 7.2 Release Notes](http://www.openssh.com/txt/release-7.2). - ----- +### `identities` To **load multiple identities** use the `identities` style (**this has no effect if the `lazy` setting is enabled**). For example: @@ -52,7 +48,22 @@ zstyle :omz:plugins:ssh-agent identities ~/.config/ssh/id_rsa ~/.config/ssh/id_r zstyle :omz:plugins:ssh-agent identities ~/.config/ssh/{id_rsa,id_rsa2,id_github} ``` ----- +### `lazy` + +To **NOT load any identities on start** use the `lazy` setting. This is particularly +useful when combined with the `AddKeysToAgent` setting (available since OpenSSH 7.2), +since it allows to enter the password only on first use. _NOTE: you can know your +OpenSSH version with `ssh -V`._ + +```zsh +zstyle :omz:plugins:ssh-agent lazy yes +``` + +You can enable `AddKeysToAgent` by passing `-o AddKeysToAgent=yes` to the `ssh` command, +or by adding `AddKeysToAgent yes` to your `~/.ssh/config` file [1]. +See the [OpenSSH 7.2 Release Notes](http://www.openssh.com/txt/release-7.2). + +### `lifetime` To **set the maximum lifetime of the identities**, use the `lifetime` style. The lifetime may be specified in seconds or as described in sshd_config(5) @@ -62,7 +73,15 @@ The lifetime may be specified in seconds or as described in sshd_config(5) zstyle :omz:plugins:ssh-agent lifetime 4h ``` ----- +### `quiet` + +To silence the plugin, use the following setting: + +```zsh +zstyle :omz:plugins:ssh-agent quiet yes +``` + +### `ssh-add-args` To **pass arguments to the `ssh-add` command** that adds the identities on startup, use the `ssh-add-args` setting. You can pass multiple arguments separated by spaces: @@ -80,15 +99,6 @@ ssh-add -K -c -a /run/user/1000/ssh-auth For valid `ssh-add` arguments run `ssh-add --help` or `man ssh-add`. ----- - -To set an **external helper** to ask for the passwords and possibly store -them in the system keychain use the `helper` style. For example: - -```zsh -zstyle :omz:plugins:ssh-agent helper ksshaskpass -``` - ## Credits Based on code from Joseph M. Reagle: https://www.cygwin.com/ml/cygwin/2001-06/msg00537.html diff --git a/plugins/ssh-agent/ssh-agent.plugin.zsh b/plugins/ssh-agent/ssh-agent.plugin.zsh index 47dfef5b0..0d6a35b35 100644 --- a/plugins/ssh-agent/ssh-agent.plugin.zsh +++ b/plugins/ssh-agent/ssh-agent.plugin.zsh @@ -18,7 +18,7 @@ function _start_agent() { zstyle -s :omz:plugins:ssh-agent lifetime lifetime # start ssh-agent and setup environment - echo Starting ssh-agent... + zstyle -t :omz:plugins:ssh-agent quiet || echo >&2 "Starting ssh-agent ..." ssh-agent -s ${lifetime:+-t} ${lifetime} | sed '/^echo/d' >! "$ssh_env_cache" chmod 600 "$ssh_env_cache" . "$ssh_env_cache" > /dev/null @@ -78,7 +78,7 @@ function _add_identities() { if [[ -n "$helper" ]]; then if [[ -z "${commands[$helper]}" ]]; then - echo "ssh-agent: the helper '$helper' has not been found." + echo >&2 "ssh-agent: the helper '$helper' has not been found." else SSH_ASKPASS="$helper" ssh-add "${args[@]}" ${^not_loaded} < /dev/null return $? @@ -88,11 +88,9 @@ function _add_identities() { ssh-add "${args[@]}" ${^not_loaded} } -# test if agent-forwarding is enabled -zstyle -b :omz:plugins:ssh-agent agent-forwarding agent_forwarding - -# Add a nifty symlink for screen/tmux if agent forwarding -if [[ $agent_forwarding = "yes" && -n "$SSH_AUTH_SOCK" && ! -L "$SSH_AUTH_SOCK" ]]; then +# Add a nifty symlink for screen/tmux if agent forwarding is enabled +if zstyle -t :omz:plugins:ssh-agent agent-forwarding \ + && [[ -n "$SSH_AUTH_SOCK" && ! -L "$SSH_AUTH_SOCK" ]]; then ln -sf "$SSH_AUTH_SOCK" /tmp/ssh-agent-$USERNAME-screen else _start_agent -- cgit v1.2.3-70-g09d2 From 2b379ec42c8675d6076737e1373767c160f5ae70 Mon Sep 17 00:00:00 2001 From: Brian Tannous Date: Wed, 17 Nov 2021 01:33:48 -0800 Subject: feat(kn): add plugin for `kn` completion (#8927) --- plugins/kn/README.md | 17 +++++++++++++++++ plugins/kn/kn.plugin.zsh | 8 ++++++++ 2 files changed, 25 insertions(+) create mode 100644 plugins/kn/README.md create mode 100644 plugins/kn/kn.plugin.zsh diff --git a/plugins/kn/README.md b/plugins/kn/README.md new file mode 100644 index 000000000..d2eb9b31d --- /dev/null +++ b/plugins/kn/README.md @@ -0,0 +1,17 @@ +# kn - Knative CLI + +This plugin provides autocompletion for [kn](https://knative.dev/docs/install/client/install-kn/) operations. + +To use it, add `kn` to the plugins array of your zshrc file: + +```zsh +plugins=(... kn) +``` + +## See Also + ++ [kn/client](https://github.com/knative/client) + +## Contributors + ++ [btannous](https://github.com/btannous) - Plugin Author diff --git a/plugins/kn/kn.plugin.zsh b/plugins/kn/kn.plugin.zsh new file mode 100644 index 000000000..f60177dd9 --- /dev/null +++ b/plugins/kn/kn.plugin.zsh @@ -0,0 +1,8 @@ +# Autocompletion for kn, the command line interface for knative +# +# Author: https://github.com/btannous + +if [ $commands[kn] ]; then + source <(kn completion zsh) + compdef _kn kn +fi -- cgit v1.2.3-70-g09d2 From b60b3f184275c39800dd7284d6904fcf295b3956 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Wed, 17 Nov 2021 10:53:17 +0100 Subject: fix(osx): deprecate `osx` plugin without symlink (#10428) Fixes #10428 --- plugins/macos/macos.plugin.zsh | 6 ------ plugins/macos/osx.plugin.zsh | 1 - plugins/osx | 1 - plugins/osx/README.md | 3 +++ plugins/osx/osx.plugin.zsh | 5 +++++ 5 files changed, 8 insertions(+), 8 deletions(-) delete mode 120000 plugins/macos/osx.plugin.zsh delete mode 120000 plugins/osx create mode 100644 plugins/osx/README.md create mode 100644 plugins/osx/osx.plugin.zsh diff --git a/plugins/macos/macos.plugin.zsh b/plugins/macos/macos.plugin.zsh index 4bcbbaead..6a91be336 100644 --- a/plugins/macos/macos.plugin.zsh +++ b/plugins/macos/macos.plugin.zsh @@ -1,9 +1,3 @@ -# Check if 'osx' is still in the plugins list and prompt to change to 'macos' -if [[ -n "${plugins[(r)osx]}" ]]; then - print ${(%):-"%F{yellow}The \`osx\` plugin is deprecated and has been renamed to \`macos\`."} - print ${(%):-"Please update your .zshrc to use the \`%Bmacos%b\` plugin instead.%f"} -fi - # Open the current directory in a Finder window alias ofd='open_command $PWD' diff --git a/plugins/macos/osx.plugin.zsh b/plugins/macos/osx.plugin.zsh deleted file mode 120000 index 73d718d43..000000000 --- a/plugins/macos/osx.plugin.zsh +++ /dev/null @@ -1 +0,0 @@ -macos.plugin.zsh \ No newline at end of file diff --git a/plugins/osx b/plugins/osx deleted file mode 120000 index a8d0f9c48..000000000 --- a/plugins/osx +++ /dev/null @@ -1 +0,0 @@ -macos \ No newline at end of file diff --git a/plugins/osx/README.md b/plugins/osx/README.md new file mode 100644 index 000000000..98d859545 --- /dev/null +++ b/plugins/osx/README.md @@ -0,0 +1,3 @@ +# osx plugin + +**Deprecated: use the [`macos`](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/macos) plugin instead.** diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh new file mode 100644 index 000000000..9304e7f32 --- /dev/null +++ b/plugins/osx/osx.plugin.zsh @@ -0,0 +1,5 @@ +print ${(%):-'%F{yellow}The `osx` plugin is deprecated and has been renamed to `macos`.'} +print ${(%):-'Please update your .zshrc to use the `%Bmacos%b` plugin instead.%f'} + +(( ${fpath[(Ie)$ZSH/plugins/macos]} )) || fpath=("$ZSH/plugins/macos" $fpath) +source "$ZSH/plugins/macos/macos.plugin.zsh" -- cgit v1.2.3-70-g09d2 From 88e72e8a5482db677a1d07722293a3a4f8f71342 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Wed, 17 Nov 2021 10:35:32 +0100 Subject: fix(docker-compose)!: check for old command instead of calling `docker` (#10409) BREAKING CHANGE: the plugin now checks for the `docker-compose` command instead of trying whether `docker compose` is a valid command. This means that if the old command is still installed it will be used instead. To use `docker compose`, uninstall any old copies of `docker-compose`. Fixes #10409 --- plugins/docker-compose/docker-compose.plugin.zsh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/docker-compose/docker-compose.plugin.zsh b/plugins/docker-compose/docker-compose.plugin.zsh index 13985fc82..b8a4b067d 100644 --- a/plugins/docker-compose/docker-compose.plugin.zsh +++ b/plugins/docker-compose/docker-compose.plugin.zsh @@ -1,7 +1,5 @@ # support Compose v2 as docker CLI plugin -DOCKER_CONTEXT=default command docker compose &>/dev/null \ - && dccmd='docker compose' \ - || dccmd='docker-compose' +(( ${+commands[docker-compose]} )) && dccmd='docker-compose' || dccmd='docker compose' alias dco="$dccmd" alias dcb="$dccmd build" -- cgit v1.2.3-70-g09d2 From ff09151d6b82fef7af4ced774a416a36e7835b8a Mon Sep 17 00:00:00 2001 From: Aurora Date: Wed, 17 Nov 2021 11:44:04 +0100 Subject: fix(bgnotify): avoid permission prompts by checking frontmost app ID (#10318) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Marc Cornellà --- plugins/bgnotify/bgnotify.plugin.zsh | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index aecde20ea..479796dbe 100644 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -20,6 +20,12 @@ if ! (type bgnotify_formatted | grep -q 'function'); then ## allow custom functi } fi +currentAppId () { + if (( $+commands[osascript] )); then + osascript -e 'tell application (path to frontmost application as text) to id' 2>/dev/null + fi +} + currentWindowId () { if hash osascript 2>/dev/null; then #osx osascript -e 'tell application (path to frontmost application as text) to id of front window' 2&> /dev/null || echo "0" @@ -32,11 +38,20 @@ currentWindowId () { bgnotify () { ## args: (title, subtitle) if hash terminal-notifier 2>/dev/null; then #osx - [[ "$TERM_PROGRAM" == 'iTerm.app' ]] && term_id='com.googlecode.iterm2'; - [[ "$TERM_PROGRAM" == 'Apple_Terminal' ]] && term_id='com.apple.terminal'; + local term_id="$bgnotify_appid" + if [[ -z "$term_id" ]]; then + case "$TERM_PROGRAM" in + iTerm.app) term_id='com.googlecode.iterm2' ;; + Apple_Terminal) term_id='com.apple.terminal' ;; + esac + fi + ## now call terminal-notifier, (hopefully with $term_id!) - [ -z "$term_id" ] && terminal-notifier -message "$2" -title "$1" >/dev/null || - terminal-notifier -message "$2" -title "$1" -activate "$term_id" -sender "$term_id" >/dev/null + if [[ -z "$term_id" ]]; then + terminal-notifier -message "$2" -title "$1" >/dev/null + else + terminal-notifier -message "$2" -title "$1" -activate "$term_id" -sender "$term_id" >/dev/null + fi elif hash growlnotify 2>/dev/null; then #osx growl growlnotify -m "$1" "$2" elif hash notify-send 2>/dev/null; then #ubuntu gnome! @@ -54,6 +69,7 @@ bgnotify () { ## args: (title, subtitle) bgnotify_begin() { bgnotify_timestamp=$EPOCHSECONDS bgnotify_lastcmd="${1:-$2}" + bgnotify_appid="$(currentAppId)" bgnotify_windowid=$(currentWindowId) } @@ -62,7 +78,7 @@ bgnotify_end() { elapsed=$(( EPOCHSECONDS - bgnotify_timestamp )) past_threshold=$(( elapsed >= bgnotify_threshold )) if (( bgnotify_timestamp > 0 )) && (( past_threshold )); then - if [ $(currentWindowId) != "$bgnotify_windowid" ]; then + if [[ $(currentAppId) != "$bgnotify_appid" || $(currentWindowId) != "$bgnotify_windowid" ]]; then print -n "\a" bgnotify_formatted "$didexit" "$bgnotify_lastcmd" "$elapsed" fi -- cgit v1.2.3-70-g09d2 From 98b48015486bc638ba8f989af9285b73c413f9e6 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Wed, 17 Nov 2021 12:35:23 +0100 Subject: fix(bundler): use BUNDLE_JOBS in `bi` to avoid config file change When calling `bundle install` with `--jobs=`, bundle persists this argument in `.bundle/config`. If we run `BUNDLE_JOBS= bundle install` instead, this is not persisted. Fixes #10425 --- plugins/bundler/bundler.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index 6293dc28a..c93d4869e 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -40,7 +40,7 @@ bundle_install() { else local cores_num="$(nproc)" fi - bundle install --jobs="$cores_num" "$@" + BUNDLE_JOBS="$cores_num" bundle install "$@" } ## Gem wrapper -- cgit v1.2.3-70-g09d2 From 15fd9c84deae400ba52451d75548fb8f6ec26bcf Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 9 Nov 2021 15:07:09 +0100 Subject: style(bundler): simplify `bundled_commands` array operations --- plugins/bundler/bundler.plugin.zsh | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index c93d4869e..c1cbb13dd 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -81,14 +81,12 @@ bundled_commands=( ) # Remove $UNBUNDLED_COMMANDS from the bundled_commands list -for cmd in $UNBUNDLED_COMMANDS; do - bundled_commands=(${bundled_commands#$cmd}); -done +bundled_commands=(${bundled_commands:|UNBUNDLED_COMMANDS}) +unset UNBUNDLED_COMMANDS # Add $BUNDLED_COMMANDS to the bundled_commands list -for cmd in $BUNDLED_COMMANDS; do - bundled_commands+=($cmd); -done +bundled_commands+=($BUNDLED_COMMANDS) +unset BUNDLED_COMMANDS # Check if in the root or a subdirectory of a bundled project _within-bundled-project() { @@ -126,5 +124,4 @@ for cmd in $bundled_commands; do compdef "_$cmd" "bundled_$cmd"="$cmd" fi done - unset cmd bundled_commands -- cgit v1.2.3-70-g09d2 From 2b96b7c54bbc86743d5550196e31f14b1b3d4951 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Thu, 25 Nov 2021 11:46:37 +0100 Subject: fix(updater): stop update if `$ZSH` is not a git repository (#10448) Fixes #10448 --- tools/check_for_upgrade.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index a6fdf4659..b6625a395 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -133,6 +133,12 @@ function update_ohmyzsh() { return fi + # Test if Oh My Zsh directory is a git repository + if ! (cd "$ZSH" && LANG= git rev-parse &>/dev/null); then + echo >&2 "[oh-my-zsh] Can't update: not a git repository." + return + fi + # Check if there are updates available before proceeding if ! is_update_available; then return -- cgit v1.2.3-70-g09d2 From 0314604384529fb535825bf1d93c6fdb3c5ccbbe Mon Sep 17 00:00:00 2001 From: Paul Scott Date: Thu, 25 Nov 2021 22:55:21 +0000 Subject: fix(lib): don't error if `INSIDE_EMACS` is not defined (#10443) --- lib/termsupport.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 49f64400b..4035d10a1 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -10,7 +10,7 @@ function title { setopt localoptions nopromptsubst # Don't set the title if inside emacs, unless using vterm - [[ -n "$INSIDE_EMACS" && "$INSIDE_EMACS" != vterm ]] && return + [[ -n "${INSIDE_EMACS:-}" && "$INSIDE_EMACS" != vterm ]] && return # if $2 is unset use $1 as default # if it is set and empty, leave it as is -- cgit v1.2.3-70-g09d2 From 452ddff763ebbaba40a060006e8290d497e2993a Mon Sep 17 00:00:00 2001 From: Kyle <43724855+Kyle-Ye@users.noreply.github.com> Date: Fri, 26 Nov 2021 06:57:08 +0800 Subject: feat(xcode): support `.swiftpm` as project file in `xc` (#10434) --- plugins/xcode/README.md | 2 +- plugins/xcode/xcode.plugin.zsh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/xcode/README.md b/plugins/xcode/README.md index 664a063a3..27d6a228b 100644 --- a/plugins/xcode/README.md +++ b/plugins/xcode/README.md @@ -26,7 +26,7 @@ plugins=(... xcode) ### `xc` -Opens the current directory in Xcode as an Xcode project or a Swift package. This will open one of the `.xcworkspace`, `.xcodeproj` and `Package.swift` files that it can find in the current working directory. You can also specify a directory to look in for the Xcode files. +Opens the current directory in Xcode as an Xcode project or a Swift package. This will open one of the `.xcworkspace`, `.xcodeproj`, `.swiftpm` and `Package.swift` files that it can find in the current working directory. You can also specify a directory to look in for the Xcode files. Returns 1 if it didn't find any relevant files. ### `xx` diff --git a/plugins/xcode/xcode.plugin.zsh b/plugins/xcode/xcode.plugin.zsh index 41b9e37e4..3bd12cdec 100644 --- a/plugins/xcode/xcode.plugin.zsh +++ b/plugins/xcode/xcode.plugin.zsh @@ -7,7 +7,7 @@ alias xcsel='sudo xcode-select --switch' # source: https://gist.github.com/subdigital/5420709 function xc { local xcode_files - xcode_files=(${1:-.}/{*.{xcworkspace,xcodeproj},Package.swift}(N)) + xcode_files=(${1:-.}/{*.{xcworkspace,xcodeproj,swiftpm},Package.swift}(N)) if [[ ${#xcode_files} -eq 0 ]]; then echo "No Xcode files found in ${1:-the current directory}." >&2 -- cgit v1.2.3-70-g09d2 From 8e5f3db305bb1fc363d3fe98c2d1177f0027a5bc Mon Sep 17 00:00:00 2001 From: Adam Cwyk <8567636+acwyk@users.noreply.github.com> Date: Sat, 27 Nov 2021 12:23:08 +1100 Subject: feat(dotnet): add alias for `dotnet build` command (#10435) Co-authored-by: Adam Cwyk --- plugins/dotnet/README.md | 1 + plugins/dotnet/dotnet.plugin.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/dotnet/README.md b/plugins/dotnet/README.md index 7554b4e3c..87dfd8f8d 100644 --- a/plugins/dotnet/README.md +++ b/plugins/dotnet/README.md @@ -21,3 +21,4 @@ plugins=(... dotnet) | da | dotnet add | Add a package or reference to a .NET project. | | dp | dotnet pack | Create a NuGet package. | | dng | dotnet nuget | Provides additional NuGet commands. | +| db | dotnet build | Build a .NET project | diff --git a/plugins/dotnet/dotnet.plugin.zsh b/plugins/dotnet/dotnet.plugin.zsh index 6bd4b7af8..5bc1587c5 100644 --- a/plugins/dotnet/dotnet.plugin.zsh +++ b/plugins/dotnet/dotnet.plugin.zsh @@ -30,3 +30,4 @@ alias ds='dotnet sln' alias da='dotnet add' alias dp='dotnet pack' alias dng='dotnet nuget' +alias db='dotnet build' -- cgit v1.2.3-70-g09d2 From 58478d0888aa842adc71aded80009cba5be190ec Mon Sep 17 00:00:00 2001 From: Markus Hofbauer Date: Sat, 27 Nov 2021 20:30:03 +0100 Subject: feat(git): Add alias for rebasing to origin/main-branch (#10445) --- plugins/git/README.md | 1 + plugins/git/git.plugin.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/git/README.md b/plugins/git/README.md index 113080874..b9af3488f 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -130,6 +130,7 @@ plugins=(... git) | grbd | git rebase $(git_develop_branch) | | grbi | git rebase -i | | grbm | git rebase $(git_main_branch) | +| grbom | git rebase origin/$(git_main_branch) | | grbo | git rebase --onto | | grbs | git rebase --skip | | grev | git revert | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 5a3c98287..648fa0a33 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -251,6 +251,7 @@ alias grbc='git rebase --continue' alias grbd='git rebase $(git_develop_branch)' alias grbi='git rebase -i' alias grbm='git rebase $(git_main_branch)' +alias grbom='git rebase origin/$(git_main_branch)' alias grbo='git rebase --onto' alias grbs='git rebase --skip' alias grev='git revert' -- cgit v1.2.3-70-g09d2 From bf303965e685489f2f1b764d5d22dc4766ca78c8 Mon Sep 17 00:00:00 2001 From: Nicholas Hawkes Date: Sat, 27 Nov 2021 15:34:47 -0500 Subject: feat(aws): Adds the login option for AWS SSO (#9921) --- plugins/aws/README.md | 1 + plugins/aws/aws.plugin.zsh | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/plugins/aws/README.md b/plugins/aws/README.md index 011bbd8b4..24c6429dd 100644 --- a/plugins/aws/README.md +++ b/plugins/aws/README.md @@ -14,6 +14,7 @@ plugins=(... aws) * `asp []`: sets `$AWS_PROFILE` and `$AWS_DEFAULT_PROFILE` (legacy) to ``. It also sets `$AWS_EB_PROFILE` to `` for the Elastic Beanstalk CLI. Run `asp` without arguments to clear the profile. +* `asp [] login`: If AWS SSO has been configured in your aws profile, it will run the `aws sso login` command following profile selection. * `acp []`: in addition to `asp` functionality, it actually changes the profile by assuming the role specified in the `` configuration. It supports MFA and sets diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index 2d095635b..3a3a111b4 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -21,6 +21,10 @@ function asp() { export AWS_DEFAULT_PROFILE=$1 export AWS_PROFILE=$1 export AWS_EB_PROFILE=$1 + + if [[ "$2" == "login" ]]; then + aws sso login + fi } # AWS profile switch -- cgit v1.2.3-70-g09d2 From f0f792fa6b207bc72453ae55011b6b44f678fb78 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 30 Nov 2021 10:13:23 +0100 Subject: feat(cli): add `omz version` command --- lib/cli.zsh | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/lib/cli.zsh b/lib/cli.zsh index d90cc6469..aed84e08f 100644 --- a/lib/cli.zsh +++ b/lib/cli.zsh @@ -29,6 +29,7 @@ function _omz { 'reload:Reload the current zsh session' 'theme:Manage themes' 'update:Update Oh My Zsh' + 'version:Show the version' ) if (( CURRENT == 2 )); then @@ -164,6 +165,7 @@ Available commands: reload Reload the current zsh session theme Manage themes update Update Oh My Zsh + version Show the version EOF } @@ -777,3 +779,24 @@ function _omz::update { [[ "$zsh" = -* || -o login ]] && exec -l "${zsh#-}" || exec "$zsh" fi } + +function _omz::version { + ( + cd "$ZSH" + + # Get the version name: + # 1) try tag-like version + # 2) try name-rev + # 3) try branch name + local version + version=$(command git describe --tags HEAD 2>/dev/null) \ + || version=$(command git name-rev --no-undefined --name-only --exclude="remotes/*" HEAD 2>/dev/null) \ + || version=$(command git symbolic-ref --quiet --short HEAD 2>/dev/null) + + # Get short hash for the current HEAD + local commit=$(command git rev-parse --short HEAD 2>/dev/null) + + # Show version and commit hash + printf "%s (%s)\n" "$version" "$commit" + ) +} -- cgit v1.2.3-70-g09d2 From 1c1d74c5ec49e5ab7e2d664e557c61745d1995e6 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 30 Nov 2021 10:19:21 +0100 Subject: chore: update new issue templates --- .github/ISSUE_TEMPLATE/bug_report.yml | 15 +++--- .github/ISSUE_TEMPLATE/bug_report_omz.yml | 77 ++++++++++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.yml | 7 ++- 3 files changed, 90 insertions(+), 9 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report_omz.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index af2973fec..98f66b1d2 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,12 +1,11 @@ -name: Bug report -description: Create a report to help us improve Oh My Zsh -labels: 'Bug' +name: Report a bug +description: Report a bug that isn't caused by Oh My Zsh. If unsure, use this form body: - type: markdown attributes: value: | ## Self Check - - Try searching existing [GitHub Issues](https://github.com/ohmyzsh/ohmyzsh/issues?q=is%3Aissue) (open or closed) for similar issues. + - Look for similar errors in existing [GitHub Issues](https://github.com/ohmyzsh/ohmyzsh/issues?q=is%3Aissue) (open or closed). - Try reaching out on the [Discord server](https://discord.gg/ohmyzsh) for help. - type: textarea validations: @@ -41,21 +40,21 @@ body: validations: required: true attributes: - label: OS / Distro - placeholder: e.g. Windows 10, Ubuntu 20.04, Arch Linux, macOS 10.15... + label: OS / Linux distribution + placeholder: Windows 10, Ubuntu 20.04, Arch Linux, macOS 10.15... - type: input validations: required: true attributes: label: Zsh version description: Run `echo $ZSH_VERSION` to check. - placeholder: e.g. 5.6 + placeholder: "5.6" - type: input validations: required: true attributes: label: Terminal emulator - placeholder: e.g. iTerm2, Gnome Terminal... + placeholder: iTerm2, GNOME Terminal, Terminal.app... - type: dropdown attributes: label: If using WSL on Windows, which version of WSL diff --git a/.github/ISSUE_TEMPLATE/bug_report_omz.yml b/.github/ISSUE_TEMPLATE/bug_report_omz.yml new file mode 100644 index 000000000..96f5ad934 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report_omz.yml @@ -0,0 +1,77 @@ +name: Report a bug in Oh My Zsh +description: Create a report to help us improve Oh My Zsh +labels: ['Bug'] +body: + - type: markdown + attributes: + value: | + ## Self Check + - **Make sure this bug only happens with Oh My Zsh enabled**. + - Look for similar errors in existing [GitHub Issues](https://github.com/ohmyzsh/ohmyzsh/issues?q=is%3Aissue) (open or closed). + - Try reaching out on the [Discord server](https://discord.gg/ohmyzsh) for help. + - type: textarea + validations: + required: true + attributes: + label: Describe the bug + description: A clear description of what the bug is. + - type: textarea + validations: + required: true + attributes: + label: Steps to reproduce + description: | + Steps to reproduce the problem. + placeholder: | + For example: + 1. Enable plugin '...' + 2. Run command '...' or try to complete command '...' + 3. See error + - type: textarea + validations: + required: true + attributes: + label: Expected behavior + description: A brief description of what should happen. + - type: textarea + attributes: + label: Screenshots and recordings + description: | + If applicable, add screenshots to help explain your problem. You can also record an asciinema session: https://asciinema.org/ + - type: input + validations: + required: true + attributes: + label: OS / Linux distribution + placeholder: Windows 10, Ubuntu 20.04, Arch Linux, macOS 10.15... + - type: input + validations: + required: true + attributes: + label: Zsh version + description: Run `echo $ZSH_VERSION` to check. + placeholder: "5.6" + - type: input + validations: + required: true + attributes: + label: Oh My Zsh version + description: Run `omz version` to check. + placeholder: master (bf303965) + - type: input + validations: + required: true + attributes: + label: Terminal emulator + placeholder: iTerm2, GNOME Terminal, Terminal.app... + - type: dropdown + attributes: + label: If using WSL on Windows, which version of WSL + description: Run `wsl -l -v` to check. + options: + - WSL1 + - WSL2 + - type: textarea + attributes: + label: Additional context + description: Add any other context about the problem here. This can be themes, plugins, custom settings... diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index dc4baf2b1..ac966dfd9 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,7 +1,12 @@ name: Feature request description: Suggest a feature for Oh My Zsh -labels: 'Feature' +labels: ["Feature"] body: + - type: markdown + attributes: + value: | + ## Self Check + - Look for similar features in existing [GitHub Issues](https://github.com/ohmyzsh/ohmyzsh/issues?q=is%3Aissue) (open or closed). - type: input attributes: label: If the feature request is for a plugin or theme, specify it here. -- cgit v1.2.3-70-g09d2 From 0e41181d547e2f89ffc503a7afc8b0f3991dd1a8 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Wed, 1 Dec 2021 06:20:31 -0500 Subject: chore: fix spelling errors across the project (#10459) Co-authored-by: Josh Soref --- plugins/aliases/cheatsheet.py | 8 ++++---- plugins/aliases/termcolor.py | 2 +- plugins/bower/bower.plugin.zsh | 8 ++++---- plugins/catimg/catimg.plugin.zsh | 2 +- plugins/catimg/catimg.sh | 2 +- plugins/chucknorris/fortunes/chucknorris | 10 +++++----- plugins/colorize/colorize.plugin.zsh | 2 +- plugins/cpanm/_cpanm | 2 +- plugins/docker-machine/_docker-machine | 6 +++--- plugins/dotnet/dotnet.plugin.zsh | 2 +- plugins/emoji/emoji.plugin.zsh | 2 +- plugins/fastfile/fastfile.plugin.zsh | 12 ++++++------ plugins/fd/README.md | 2 +- plugins/flutter/README.md | 2 +- plugins/fzf/README.md | 2 +- plugins/gitfast/git-completion.bash | 2 +- plugins/grails/grails.plugin.zsh | 2 +- plugins/grunt/grunt.plugin.zsh | 4 ++-- .../history-substring-search/history-substring-search.zsh | 4 ++-- plugins/ipfs/_ipfs | 2 +- plugins/iterm2/iterm2.plugin.zsh | 2 +- plugins/jenv/README.md | 2 +- plugins/macos/spotify | 2 +- plugins/mercurial/README.md | 2 +- plugins/npm/README.md | 2 +- plugins/pep8/_pep8 | 2 +- plugins/please/README.md | 2 +- plugins/pm2/_pm2 | 4 ++-- plugins/powify/_powify | 2 +- plugins/rake/rake.plugin.zsh | 2 +- plugins/rebar/_rebar | 2 +- plugins/redis-cli/_redis-cli | 10 +++++----- plugins/salt/_salt | 2 +- plugins/scala/_scala | 2 +- plugins/sfdx/_sfdx | 2 +- plugins/sprunge/README.md | 2 +- plugins/supervisor/_supervisorctl | 10 +++++----- plugins/supervisor/supervisor.plugin.zsh | 2 +- plugins/suse/README.md | 2 +- plugins/symfony2/README.md | 2 +- plugins/systemadmin/systemadmin.plugin.zsh | 4 ++-- plugins/terminitor/_terminitor | 2 +- plugins/ubuntu/README.md | 2 +- plugins/vault/_vault | 4 ++-- plugins/yarn/_yarn | 2 +- plugins/yum/yum.plugin.zsh | 2 +- themes/dallas.zsh-theme | 2 +- themes/essembeh.zsh-theme | 2 +- themes/nicoulaj.zsh-theme | 2 +- 49 files changed, 79 insertions(+), 79 deletions(-) diff --git a/plugins/aliases/cheatsheet.py b/plugins/aliases/cheatsheet.py index d6d507b92..694afd31c 100644 --- a/plugins/aliases/cheatsheet.py +++ b/plugins/aliases/cheatsheet.py @@ -26,16 +26,16 @@ def cheatsheet(lines): target_aliases.extend(group_list) return cheatsheet -def pretty_print_group(key, aliases, hightlight=None): +def pretty_print_group(key, aliases, highlight=None): if len(aliases) == 0: return group_hl_formatter = lambda g, hl: termcolor.colored(hl, 'yellow').join([termcolor.colored(part, 'red') for part in ('[%s]' % g).split(hl)]) alias_hl_formatter = lambda alias, hl: termcolor.colored(hl, 'yellow').join([termcolor.colored(part, 'green') for part in ('\t%s = %s' % alias[0:2]).split(hl)]) group_formatter = lambda g: termcolor.colored('[%s]' % g, 'red') alias_formatter = lambda alias: termcolor.colored('\t%s = %s' % alias[0:2], 'green') - if hightlight and len(hightlight)>0: - print (group_hl_formatter(key, hightlight)) - print ('\n'.join([alias_hl_formatter(alias, hightlight) for alias in aliases])) + if highlight and len(highlight)>0: + print (group_hl_formatter(key, highlight)) + print ('\n'.join([alias_hl_formatter(alias, highlight) for alias in aliases])) else: print (group_formatter(key)) print ('\n'.join([alias_formatter(alias) for alias in aliases])) diff --git a/plugins/aliases/termcolor.py b/plugins/aliases/termcolor.py index f11b824b2..bb725e905 100644 --- a/plugins/aliases/termcolor.py +++ b/plugins/aliases/termcolor.py @@ -21,7 +21,7 @@ # # Author: Konstantin Lepa -"""ANSII Color formatting for output in terminal.""" +"""ANSI Color formatting for output in terminal.""" from __future__ import print_function import os diff --git a/plugins/bower/bower.plugin.zsh b/plugins/bower/bower.plugin.zsh index 3a40b3af0..c4f71c2ae 100644 --- a/plugins/bower/bower.plugin.zsh +++ b/plugins/bower/bower.plugin.zsh @@ -9,7 +9,7 @@ _bower_installed_packages () { } _bower () { - local -a _1st_arguments _no_color _dopts _save_dev _force_lastest _production + local -a _1st_arguments _no_color _dopts _save_dev _force_latest _production local expl typeset -A opt_args @@ -22,7 +22,7 @@ _bower () _save_dev=('(--save-dev)--save-dev[Save installed packages into the project"s bower.json devDependencies]') - _force_lastest=('(--force-latest)--force-latest[Force latest version on conflict]') + _force_latest=('(--force-latest)--force-latest[Force latest version on conflict]') _production=('(--production)--production[Do not install project devDependencies]') @@ -54,7 +54,7 @@ _bower () _arguments \ $_dopts \ $_save_dev \ - $_force_lastest \ + $_force_latest \ $_no_color \ $_production ;; @@ -62,7 +62,7 @@ _bower () _arguments \ $_dopts \ $_no_color \ - $_force_lastest + $_force_latest _bower_installed_packages compadd "$@" $(echo $bower_package_list) ;; diff --git a/plugins/catimg/catimg.plugin.zsh b/plugins/catimg/catimg.plugin.zsh index ca46444cc..f4ff6f856 100644 --- a/plugins/catimg/catimg.plugin.zsh +++ b/plugins/catimg/catimg.plugin.zsh @@ -2,7 +2,7 @@ # catimg script by Eduardo San Martin Morote aka Posva # # https://posva.net # # # -# Ouput the content of an image to the stdout using the 256 colors of the # +# Output the content of an image to the stdout using the 256 colors of the # # terminal. # # GitHub: https://github.com/posva/catimg # ################################################################################ diff --git a/plugins/catimg/catimg.sh b/plugins/catimg/catimg.sh index 713a03291..f58392428 100644 --- a/plugins/catimg/catimg.sh +++ b/plugins/catimg/catimg.sh @@ -2,7 +2,7 @@ # catimg script by Eduardo San Martin Morote aka Posva # # https://posva.net # # # -# Ouput the content of an image to the stdout using the 256 colors of the # +# Output the content of an image to the stdout using the 256 colors of the # # terminal. # # GitHub: https://github.com/posva/catimg # ################################################################################ diff --git a/plugins/chucknorris/fortunes/chucknorris b/plugins/chucknorris/fortunes/chucknorris index 6ba5bb9b5..9e36ce89a 100644 --- a/plugins/chucknorris/fortunes/chucknorris +++ b/plugins/chucknorris/fortunes/chucknorris @@ -228,7 +228,7 @@ Chuck Norris once punched the ground to stop an earthquake. The resulting afters % Chuck Norris once round-house kicked a salesman. Over the phone. % -Chuck Norris once rounhouse kicked a football. The astronomical society now considers it a planet. +Chuck Norris once roundhouse kicked a football. The astronomical society now considers it a planet. % Chuck Norris once thought he was wrong. He was, however, mistaken. % @@ -342,7 +342,7 @@ Every time there's an earthquake, you know Chuck Norris is hungry. The earthquak % Evolution's driving mechanism is nature's desperate attempt to escape Chuck Norris. % -Fear of spiders is arachnaphobia. Fear of tight spaces is claustrophobia. Fear of Chuck Norris is called Logic. +Fear of spiders is arachnophobia. Fear of tight spaces is claustrophobia. Fear of Chuck Norris is called Logic. % Fool me once, shame on you. Fool Chuck Norris once and he will roundhouse you in the face. % @@ -426,7 +426,7 @@ Some people ask for a Kleenex when they sneeze, Chuck Norris asks for a body bag % Someone once videotaped Chuck Norris getting pissed off. It was called Walker: Texas Chain Saw Massacre. % -Staring at Chuck Norris for extended periods of time without proper eye protection will cause blindess, and possibly foot sized brusies on the face. +Staring at Chuck Norris for extended periods of time without proper eye protection will cause blindness, and possibly foot sized bruises on the face. % Taking Karate Lessons = $100, Buying MMA DVD's = $150, Subscribing to a UFC event = $50, Getting a Roundhouse Kick from Chuck Norris = PRICELESS. % @@ -452,7 +452,7 @@ The best part of waking up is not Folgers in your cup. it's knowing that Chuck N % The chief export of Chuck Norris is pain. % -The dictionary references Chuck Norris several times, he is metioned under Fear, Law, Order and Chucktatorship. +The dictionary references Chuck Norris several times, he is mentioned under Fear, Law, Order and Chucktatorship. % The leading causes of death in the United States are: 1. Heart Disease 2. Chuck Norris 3. Cancer. % @@ -468,7 +468,7 @@ The only way sharks will come near CN underwater is when CN is inside of a cage. % The only word that rhymes with orange is Chuck Norris. % -The producers of the movie "The Last Airbender" are now in talks with Chuck Norris in Order to star him in their next sequal "The Last Skull Bender". +The producers of the movie "The Last Airbender" are now in talks with Chuck Norris in Order to star him in their next sequel "The Last Skull Bender". % The quickest way to a man's heart is with Chuck Norris' fist. % diff --git a/plugins/colorize/colorize.plugin.zsh b/plugins/colorize/colorize.plugin.zsh index 8ea98f80a..a9da6cf83 100644 --- a/plugins/colorize/colorize.plugin.zsh +++ b/plugins/colorize/colorize.plugin.zsh @@ -82,7 +82,7 @@ colorize_less() { # This variable tells less to pipe every file through the specified command # (see the man page of less INPUT PREPROCESSOR). # 'zsh -ic "colorize_cat %s 2> /dev/null"' would not work for huge files like - # the ~/.zsh_history. For such files the tty of the preprocessor will be supended. + # the ~/.zsh_history. For such files the tty of the preprocessor will be suspended. # Therefore we must source this file to make colorize_cat available in the # preprocessor without the interactive mode. # `2>/dev/null` will suppress the error for large files 'broken pipe' of the python diff --git a/plugins/cpanm/_cpanm b/plugins/cpanm/_cpanm index ff9ae1c15..f328dd997 100644 --- a/plugins/cpanm/_cpanm +++ b/plugins/cpanm/_cpanm @@ -36,7 +36,7 @@ arguments=( '--reinstall[Reinstall the distribution even if you already have the latest version installed]' '--interactive[Turn on interactive configure]' - '--scandeps[Scan the depencencies of given modules and output the tree in a text format]' + '--scandeps[Scan the dependencies of given modules and output the tree in a text format]' '--format[Specify what format to display the scanned dependency tree]:scandeps format:(tree json yaml dists)' '--save-dists[Specify the optional directory path to copy downloaded tarballs]' diff --git a/plugins/docker-machine/_docker-machine b/plugins/docker-machine/_docker-machine index 7c19ba8e7..fbd36d7c6 100644 --- a/plugins/docker-machine/_docker-machine +++ b/plugins/docker-machine/_docker-machine @@ -90,7 +90,7 @@ __docker-machine_filters() { } __get_swarm_discovery() { - declare -a masters serivces + declare -a masters services local service services=() masters=($(docker-machine ls -f {{.Swarm}} |grep '(master)' |awk '{print $1}')) @@ -169,7 +169,7 @@ __get_create_argument() { __docker-machine_subcommand() { local -a opts_help opts_help=("(- :)--help[Print usage]") - local -a opts_only_host opts_driver opts_storage_driver opts_stragery + local -a opts_only_host opts_driver opts_storage_driver opts_state opts_only_host=( "$opts_help" "*:host:__docker-machine_hosts_all" @@ -330,7 +330,7 @@ _docker-machine() { _arguments -C \ "(- :)"{-h,--help}"[Show help]" \ "(-D --debug)"{-D,--debug}"[Enable debug mode]" \ - '(-s --stroage-path)'{-s,--storage-path}'[Configures storage path]:file:_files' \ + '(-s --storage-path)'{-s,--storage-path}'[Configures storage path]:file:_files' \ '--tls-ca-cert[CA to verify remotes against]:file:_files' \ '--tls-ca-key[Private key to generate certificates]:file:_files' \ '--tls-client-cert[Client cert to use for TLS]:file:_files' \ diff --git a/plugins/dotnet/dotnet.plugin.zsh b/plugins/dotnet/dotnet.plugin.zsh index 5bc1587c5..8ea31cdbd 100644 --- a/plugins/dotnet/dotnet.plugin.zsh +++ b/plugins/dotnet/dotnet.plugin.zsh @@ -12,7 +12,7 @@ _dotnet_zsh_complete() return fi - # This is not a variable assigment, don't remove spaces! + # This is not a variable assignment, don't remove spaces! _values = "${(ps:\n:)completions}" } diff --git a/plugins/emoji/emoji.plugin.zsh b/plugins/emoji/emoji.plugin.zsh index 7876f1c89..f70e09320 100644 --- a/plugins/emoji/emoji.plugin.zsh +++ b/plugins/emoji/emoji.plugin.zsh @@ -20,7 +20,7 @@ unset _omz_emoji_plugin_dir # These additional emoji are not in the definition file, but are useful in conjunction with it -# This is a combinin character that can be placed after any other character to surround +# This is a combining character that can be placed after any other character to surround # it in a "keycap" symbol. # The digits 0-9 are already in the emoji table as keycap_digit_, keycap_ten, etc. # It's unclear whether this should be in the $emoji array, because those characters are all ones diff --git a/plugins/fastfile/fastfile.plugin.zsh b/plugins/fastfile/fastfile.plugin.zsh index ccbbce3b2..6288bb275 100644 --- a/plugins/fastfile/fastfile.plugin.zsh +++ b/plugins/fastfile/fastfile.plugin.zsh @@ -18,7 +18,7 @@ default fastfile_var_prefix "§" # 1. name - The name of the shortcut (default: name of the file) # 2. file - The file or directory to make the shortcut for # STDOUT: -# => fastfle_print +# => fastfile_print # function fastfile() { test "$2" || 2="." @@ -75,14 +75,14 @@ function fastfile_print() { # List all shortcuts # # STDOUT: -# (=> fastfle_print) for each shortcut +# (=> fastfile_print) for each shortcut # function fastfile_ls() { for f in "${fastfile_dir}"/*(NF); do - file=`basename "$f"` # To enable simpler handeling of spaces in file names + file=`basename "$f"` # To enable simpler handling of spaces in file names varkey=`echo "$file" | tr " " "_"` - # Special format for colums + # Special format for columns echo "${fastfile_var_prefix}${varkey}|->|$(fastfile_get "$file")" done | column -t -s "|" } @@ -93,7 +93,7 @@ function fastfile_ls() { # Arguments: # 1. name - The name of the shortcut (default: name of the file) # STDOUT: -# => fastfle_print +# => fastfile_print # function fastfile_rm() { fastfile_print "$1" @@ -105,7 +105,7 @@ function fastfile_rm() { # function fastfile_sync() { for f in "${fastfile_dir}"/*(NF); do - file=`basename "$f"` # To enable simpler handeling of spaces in file names + file=`basename "$f"` # To enable simpler handling of spaces in file names varkey=`echo "$file" | tr " " "_"` alias -g "${fastfile_var_prefix}${varkey}"="'$(fastfile_get "$file")'" diff --git a/plugins/fd/README.md b/plugins/fd/README.md index aabd624b8..4d9cf190f 100644 --- a/plugins/fd/README.md +++ b/plugins/fd/README.md @@ -10,4 +10,4 @@ plugins=(... fd) Completion is taken from the fd release [`7.3.0`](https://github.com/sharkdp/fd/releases/tag/v7.3.0). -Updated on Febrary 13th, 2019. +Updated on February 13th, 2019. diff --git a/plugins/flutter/README.md b/plugins/flutter/README.md index be419144f..9c8169afc 100644 --- a/plugins/flutter/README.md +++ b/plugins/flutter/README.md @@ -18,4 +18,4 @@ plugins=(... flutter) | `flb` | `flutter build` | Build flutter application | | `flattach` | `flutter attach` | Attaches flutter to a running flutter application with enabled observatory | | `flget` | `flutter packages get` | Installs dependencies | -| `flc` | `flutter clean` | Cleans flutter porject | +| `flc` | `flutter clean` | Cleans flutter project | diff --git a/plugins/fzf/README.md b/plugins/fzf/README.md index 791a3eb6f..15d4d31f3 100644 --- a/plugins/fzf/README.md +++ b/plugins/fzf/README.md @@ -26,7 +26,7 @@ export FZF_BASE=/path/to/fzf/install/dir Set default command to use when input is tty: ```zsh -export FZF_DEFAULT_COMMAND='' +export FZF_DEFAULT_COMMAND='' ``` If not set, the plugin will try to set it to these, in the order in which they're found: diff --git a/plugins/gitfast/git-completion.bash b/plugins/gitfast/git-completion.bash index 4497a294f..f7b09b2c1 100644 --- a/plugins/gitfast/git-completion.bash +++ b/plugins/gitfast/git-completion.bash @@ -3383,7 +3383,7 @@ _git_worktree () # Here we are not completing an --option, it's either the # path or a ref. case "$prev" in - -b|-B) # Complete refs for branch to be created/reseted. + -b|-B) # Complete refs for branch to be created/reset. __git_complete_refs ;; -*) # The previous word is an -o|--option without an diff --git a/plugins/grails/grails.plugin.zsh b/plugins/grails/grails.plugin.zsh index 11777738c..ddc257428 100644 --- a/plugins/grails/grails.plugin.zsh +++ b/plugins/grails/grails.plugin.zsh @@ -1,5 +1,5 @@ _enumerateGrailsScripts() { - # Default directoryies + # Default directories directories=($GRAILS_HOME/scripts ~/.grails/scripts ./scripts) # Check all of the plugins directories, if they exist diff --git a/plugins/grunt/grunt.plugin.zsh b/plugins/grunt/grunt.plugin.zsh index 3f9695177..a89469a59 100644 --- a/plugins/grunt/grunt.plugin.zsh +++ b/plugins/grunt/grunt.plugin.zsh @@ -82,7 +82,7 @@ function __grunt() { update_msg=' (cache updated)' fi - # Make optioins completion. + # Make options completion. if [[ ${#__grunt_opts} -gt 0 ]]; then opts+=("${__grunt_opts[@]}") fi @@ -161,7 +161,7 @@ function __grunt_update_cache() { fi if [[ $is_updating -ne 0 ]]; then - # Update caceh. + # Update cache. __grunt_version=$version __grunt_gruntfile=$gruntfile is_updating=1 diff --git a/plugins/history-substring-search/history-substring-search.zsh b/plugins/history-substring-search/history-substring-search.zsh index a791cc4da..c326778d4 100644 --- a/plugins/history-substring-search/history-substring-search.zsh +++ b/plugins/history-substring-search/history-substring-search.zsh @@ -243,8 +243,8 @@ _history-substring-search-begin() { fi # - # Escape and join query parts with wildcard character '*' as seperator - # `(j:CHAR:)` join array to string with CHAR as seperator + # Escape and join query parts with wildcard character '*' as separator + # `(j:CHAR:)` join array to string with CHAR as separator # local search_pattern="*${(j:*:)_history_substring_search_query_parts[@]//(#m)[\][()|\\*?#<>~^]/\\$MATCH}*" diff --git a/plugins/ipfs/_ipfs b/plugins/ipfs/_ipfs index 9ee8bd79c..90c0a61c8 100644 --- a/plugins/ipfs/_ipfs +++ b/plugins/ipfs/_ipfs @@ -596,7 +596,7 @@ case $MAIN_SUBCOMMAND in '(-v --headers)'{-v,--headers}'[Print table headers (Hash, Size, Name).]' \ '--resolve-type[Resolve linked objects to find out their types. Default: true.]' \ '--size[Resolve linked objects to find out their file size. Default: true.]' \ - '(-s --stream)'{-s,--stream}'[Enable exprimental streaming of directory entries as they are traversed.]' \ + '(-s --stream)'{-s,--stream}'[Enable experimental streaming of directory entries as they are traversed.]' \ ;; (mount) _arguments \ diff --git a/plugins/iterm2/iterm2.plugin.zsh b/plugins/iterm2/iterm2.plugin.zsh index e4ac72ee3..9d8e40bf6 100644 --- a/plugins/iterm2/iterm2.plugin.zsh +++ b/plugins/iterm2/iterm2.plugin.zsh @@ -8,7 +8,7 @@ if [[ "$OSTYPE" == darwin* ]] && [[ -n "$ITERM_SESSION_ID" ]] ; then ### - # Executes an arbitrary iTerm2 command via an escape code sequce. + # Executes an arbitrary iTerm2 command via an escape code sequence. # See https://iterm2.com/documentation-escape-codes.html for all supported commands. # Example: $ _iterm2_command "1337;StealFocus" function _iterm2_command() { diff --git a/plugins/jenv/README.md b/plugins/jenv/README.md index c043c626e..148794197 100644 --- a/plugins/jenv/README.md +++ b/plugins/jenv/README.md @@ -1,6 +1,6 @@ # jenv plugin -[jenv](https://www.jenv.be/) is a Java version manager similiar to [rbenv](https://github.com/rbenv/rbenv) +[jenv](https://www.jenv.be/) is a Java version manager similar to [rbenv](https://github.com/rbenv/rbenv) and [pyenv](https://github.com/yyuu/pyenv). This plugin initializes jenv and provides the `jenv_prompt_info` function to add Java diff --git a/plugins/macos/spotify b/plugins/macos/spotify index 663215a74..491a60686 100644 --- a/plugins/macos/spotify +++ b/plugins/macos/spotify @@ -191,7 +191,7 @@ while [ $# -gt 0 ]; do -d "grant_type=client_credentials" \ ) if ! [[ "${SPOTIFY_TOKEN_RESPONSE_DATA}" =~ "access_token" ]]; then - cecho "Autorization failed, please check ${USER_CONFG_FILE}" + cecho "Authorization failed, please check ${USER_CONFG_FILE}" cecho "${SPOTIFY_TOKEN_RESPONSE_DATA}" showAPIHelp return 1 diff --git a/plugins/mercurial/README.md b/plugins/mercurial/README.md index 756964896..4beee0a95 100644 --- a/plugins/mercurial/README.md +++ b/plugins/mercurial/README.md @@ -61,7 +61,7 @@ ZSH_THEME_HG_PROMPT_CLEAN="%{$fg[magenta]%})" This is the same as git plugin does. **Note**: additional changes to `.zshrc`, or using a theme designed to use `hg_prompt_info`, are required in order for this to work. -## Mantainers +## Maintainers - [ptrv](https://github.com/ptrv): original creator - [oshybystyi](https://github.com/oshybystyi) diff --git a/plugins/npm/README.md b/plugins/npm/README.md index 47d153619..e970c3c7a 100644 --- a/plugins/npm/README.md +++ b/plugins/npm/README.md @@ -10,7 +10,7 @@ plugins=(... npm) ## Aliases -| Alias | Command | Descripton | +| Alias | Command | Description | |:------ |:-----------------------------|:----------------------------------------------------------------| | `npmg` | `npm i -g` | Install dependencies globally | | `npmS` | `npm i -S` | Install and save to dependencies in your package.json | diff --git a/plugins/pep8/_pep8 b/plugins/pep8/_pep8 index ce19951dc..27b7fc544 100644 --- a/plugins/pep8/_pep8 +++ b/plugins/pep8/_pep8 @@ -29,6 +29,6 @@ _arguments -s -S \ "--max-line-length[set maximum allowed line length (default: 79)]::n:_files" \ "--format[set the error format \[default|pylint|\]]::format:_files" \ "--diff[report only lines changed according to the unified diff received on STDIN]" \ - "--benchmark[measure processing speed are read from the \[pep8\] section of the tox.ini fg file located in any parent folder of the path(s) llowed options are: exclude, filename, select, ngth, count, format, quiet, show-pep8, show-source, .]" \ + "--benchmark[measure processing speed are read from the \[pep8\] section of the tox.ini fg file located in any parent folder of the path(s) allowed options are: exclude, filename, select, ngth, count, format, quiet, show-pep8, show-source, .]" \ "--config[user config file location (default: /home/gsemet/.config/pep8)]::path:_files" \ "*::args:_files" diff --git a/plugins/please/README.md b/plugins/please/README.md index 89bfbf105..0a33f897b 100644 --- a/plugins/please/README.md +++ b/plugins/please/README.md @@ -1,7 +1,7 @@ # please plugin [Please](https://please.build) is a cross-language build system with an emphasis on -high performance, extensibility and reproduceability. It supports a number of popular +high performance, extensibility and reproducibility. It supports a number of popular languages and can automate nearly any aspect of your build process. This plugin adds autocomplete and major aliases for `plz`, the command line tool for diff --git a/plugins/pm2/_pm2 b/plugins/pm2/_pm2 index 6f1e89df5..86412aef1 100644 --- a/plugins/pm2/_pm2 +++ b/plugins/pm2/_pm2 @@ -124,7 +124,7 @@ logs_options=( '--out[only shows standard output]' '--lines[output the last N lines, instead of the last 15 by default]' '--timestamp[add timestamps (default format YYYY-MM-DD-HH:mm:ss)]' - '--nostream[print logs without lauching the log stream]' + '--nostream[print logs without launching the log stream]' '(-h --help)'{-h,--help}'[output usage information]' $id_all_comp ) @@ -139,7 +139,7 @@ case "$words[1]" in stop|restart|delete|reload|reset) _arguments $id_all_comp && return 0 ;; - env|inspect|monitor|unmonitor|discribe) + env|inspect|monitor|unmonitor|describe) _arguments $id_comp && return 0 ;; deploy|startOrRestart|startOrReload) diff --git a/plugins/powify/_powify b/plugins/powify/_powify index 9507f400e..57042aa63 100644 --- a/plugins/powify/_powify +++ b/plugins/powify/_powify @@ -15,7 +15,7 @@ _1st_arguments=( 'restart:restarts the pow app linked to the current directory' 'always_restart:reload the pow app after each request' 'always_restart_off:do not reload the pow app after each request' - 'rename:rename the current pow app to [NAME] or renmae [OLD] to [NEW]' + 'rename:rename the current pow app to [NAME] or rename [OLD] to [NEW]' 'environment:run the this pow app in a different environment (aliased `env`)' 'browse:opens and navigates the default browser to this app' 'logs:tail the application logs' diff --git a/plugins/rake/rake.plugin.zsh b/plugins/rake/rake.plugin.zsh index 121150017..3ceb20fea 100644 --- a/plugins/rake/rake.plugin.zsh +++ b/plugins/rake/rake.plugin.zsh @@ -2,7 +2,7 @@ # over the years. We will miss you dearly. alias jimweirich="rake" -alias rake="noglob rake" # allows square brackts for rake task invocation +alias rake="noglob rake" # allows square brackets for rake task invocation alias brake='noglob bundle exec rake' # execute the bundled rake gem alias srake='noglob sudo rake' # noglob must come before sudo alias sbrake='noglob sudo bundle exec rake' # altogether now ... diff --git a/plugins/rebar/_rebar b/plugins/rebar/_rebar index 7ac5a510c..ea0d8a674 100644 --- a/plugins/rebar/_rebar +++ b/plugins/rebar/_rebar @@ -32,7 +32,7 @@ _rebar () { 'create[Create skel based on template and vars]' \ 'create-app[Create simple app skel]' \ 'create-node[Create simple node skel]' \ - 'list-template[List avaiavle templates]' \ + 'list-template[List available templates]' \ 'doc[Generate Erlang program documentation]' \ 'check-deps[Display to be fetched dependencies]' \ 'get-deps[Fetch dependencies]' \ diff --git a/plugins/redis-cli/_redis-cli b/plugins/redis-cli/_redis-cli index 1569f2916..f93624565 100644 --- a/plugins/redis-cli/_redis-cli +++ b/plugins/redis-cli/_redis-cli @@ -8,7 +8,7 @@ _1st_arguments=( 'append:append a value to a key' 'auth:authenticate to the server' 'bgrewriteeaof:asynchronously rewrite the append-only file' - 'bgsave:asynchornously save the dataset to disk' + 'bgsave:asynchronously save the dataset to disk' 'blpop:remove and get the first element in a list, or block until one is available' 'brpop:remove and get the last element in a list, or block until one is available' 'brpoplpush:pop a value from a list, push it to another list and return it; or block until one is available' @@ -17,9 +17,9 @@ _1st_arguments=( # 'config resetstat: reset the stats returned by INFO' 'dbsize:return the number of keys in the selected database' # 'debug object:get debugging information about a key' - # 'debug setgfault:make the server crash' + # 'debug segfault:make the server crash' 'decr:decrement the integer value of a key by one' - 'decrby:decrement the integet value of a key by the given number' + 'decrby:decrement the integer value of a key by the given number' 'del:delete a key' 'discard:discard all commands issued after MULTI' 'echo:echo the given string' @@ -63,7 +63,7 @@ _1st_arguments=( 'mget:get the values of all the given keys' 'monitor:listen for all requests received by the server in real time' 'move:move a key to another database' - 'mset:set multiple keys to muliple values' + 'mset:set multiple keys to multiple values' 'msetnx:set multiple keys tom ultiple values, only if none of the keys exist' 'multi:mark the start of a transaction block' 'object:inspect the internals of Redis objects' @@ -122,7 +122,7 @@ _1st_arguments=( 'zrem:remove a member from a sorted set' 'zremrangebyrank:remove all members in a sorted set within the given indexes' 'zremrangebyscore:remove all members in a sorted set within the given scores' - 'zrevrange:return a range of membrs in a sorted set, by index, with scores ordered from high to low' + 'zrevrange:return a range of members in a sorted set, by index, with scores ordered from high to low' 'zrevrangebyscore:return a range of members in a sorted set, by score, with scores ordered from high to low' 'zrevrank:determine the index of a member in a sorted set, with scores ordered from high to low' 'zscore:get the score associated with the given member in a sorted set' diff --git a/plugins/salt/_salt b/plugins/salt/_salt index 78d8611d2..a1c55f350 100644 --- a/plugins/salt/_salt +++ b/plugins/salt/_salt @@ -145,7 +145,7 @@ _master_options=( '(-v --verbose)'{-v,--verbose}'[Turn on command verbosity, display jid and active job queries]' '--hide-timeout[Hide minions that timeout]' '(-b --batch --batch-size)'{-b,--batch,--batch-size}'[Execute the salt job in batch mode, pass number or percentage to batch.]:Batch Size:' - '(-a --auth --eauth --extrenal-auth)'{-a,--auth,--eauth,--external-auth}'[Specify an external authentication system to use.]:eauth:' + '(-a --auth --eauth --external-auth)'{-a,--auth,--eauth,--external-auth}'[Specify an external authentication system to use.]:eauth:' '(-T --make-token)'{-T,--make-token}'[Generate and save an authentication token for re-use.]' '--return[Set an alternative return method.]:Returners:_path_files -W "$salt_dir/returners" -g "[^_]*.py(\:r)"' '(-d --doc --documentation)'{-d,--doc,--documentation}'[Return the documentation for the specified module]' diff --git a/plugins/scala/_scala b/plugins/scala/_scala index f7511a647..ba7ac3874 100644 --- a/plugins/scala/_scala +++ b/plugins/scala/_scala @@ -190,7 +190,7 @@ Y_opts=( "-Yshow-symkinds[Print abbreviated symbol kinds next to symbol names]" "-Yshow-trees[Print detailed ASTs (requires -Xprint\:phase)]" "-Yshow-trees-compact[Print detailed ASTs in compact form (requires -Xprint\:)]" - "-Yshow-trees-stringified[Print stringifications along with detailed ASTs (requires -Xprint\:)]" + "-Yshow-trees-stringified[Print stringification along with detailed ASTs (requires -Xprint\:)]" "-Ystatistics[Print compiler statistics]" "-Ystruct-dispatch\:-[Structural method dispatch policy (default\: poly-cache)]:policy name:(no-cache mono-cache poly-cache invoke-dynamic)" diff --git a/plugins/sfdx/_sfdx b/plugins/sfdx/_sfdx index 42ee55970..3a441f257 100644 --- a/plugins/sfdx/_sfdx +++ b/plugins/sfdx/_sfdx @@ -900,7 +900,7 @@ case "$words[1]" in force:data:tree:export) _command_args=( '(-q|--query)'{-q,--query}'[soql query, or filepath of file containing a soql query, to retrieve records]' \ - '(-p|--plan)'{-p,--plan}'[generate mulitple sobject tree files and a plan definition file for aggregated import]' \ + '(-p|--plan)'{-p,--plan}'[generate multiple sobject tree files and a plan definition file for aggregated import]' \ '(-x|--prefix)'{-x,--prefix}'[prefix of generated files]' \ '(-d|--outputdir)'{-d,--outputdir}'[directory to store files]:file:_files' \ '(-u|--targetusername)'{-u,--targetusername}'[username or alias for the target org; overrides default target org]' \ diff --git a/plugins/sprunge/README.md b/plugins/sprunge/README.md index 28ed1834a..fb70d42eb 100644 --- a/plugins/sprunge/README.md +++ b/plugins/sprunge/README.md @@ -28,5 +28,5 @@ http://sprunge.us/XxjnKz - Sprunge accepts piped data, stdin redirection, text strings as input or filenames. Only one of these can be used at a time. - Argument precedence goes as follows: stdin > piped input > text strings. -- If a filename is mispelled or doesn't have the necessary path description, it will NOT +- If a filename is misspelled or doesn't have the necessary path description, it will NOT generate an error, but instead treat it as a text string. diff --git a/plugins/supervisor/_supervisorctl b/plugins/supervisor/_supervisorctl index 9f576c0c0..87cffab86 100644 --- a/plugins/supervisor/_supervisorctl +++ b/plugins/supervisor/_supervisorctl @@ -109,27 +109,27 @@ _supervisorctl_maintail() { _supervisorctl_start() { # TODO: add 'all' _arguments -s \ - '*::supvervisor process:_get_supervisor_procs' + '*::supervisor process:_get_supervisor_procs' } (( $+functions[_supervisorctl_restart] )) || _supervisorctl_restart() { # TODO: add 'all' _arguments -s \ - '*::supvervisor process:_get_supervisor_procs' + '*::supervisor process:_get_supervisor_procs' } (( $+functions[_supervisorctl_status] )) || _supervisorctl_status() { _arguments \ - '*::supvervisor process:_get_supervisor_procs' + '*::supervisor process:_get_supervisor_procs' } (( $+functions[_supervisorctl_stop] )) || _supervisorctl_stop() { # TODO: add 'all' _arguments -s \ - '*::supvervisor process:_get_supervisor_procs' + '*::supervisor process:_get_supervisor_procs' } (( $+functions[_supervisorctl_tail] )) || @@ -137,7 +137,7 @@ _supervisorctl_tail() { # TODO: add 'stderr' _arguments -s \ '-f[Continuous tail of named process stdout Ctrl-C to exit.]' \ - '*::supvervisor process:_get_supervisor_procs' + '*::supervisor process:_get_supervisor_procs' } _supervisorctl "$@" diff --git a/plugins/supervisor/supervisor.plugin.zsh b/plugins/supervisor/supervisor.plugin.zsh index f11f0ed3f..ad5430275 100644 --- a/plugins/supervisor/supervisor.plugin.zsh +++ b/plugins/supervisor/supervisor.plugin.zsh @@ -1,4 +1,4 @@ -# DECLARION: This plugin was created by hhatto. What I did is just making a portal from https://bitbucket.org/hhatto/zshcompfunc4supervisor. +# DECLARATION: This plugin was created by hhatto. What I did is just making a portal from https://bitbucket.org/hhatto/zshcompfunc4supervisor. alias sup='sudo supervisorctl' alias supad='sudo supervisorctl add' diff --git a/plugins/suse/README.md b/plugins/suse/README.md index 06c6d9ef5..f37ec1695 100644 --- a/plugins/suse/README.md +++ b/plugins/suse/README.md @@ -62,7 +62,7 @@ plugins=(... suse) NOTE: `--no-refresh` is passed to zypper for speeding up the calls and avoid errors due to lack of root privileges. If you need to refresh the repositories, call `sudo zypper ref` (`zref` alias) -before runing these aliases. +before running these aliases. Related: [#9798](https://github.com/ohmyzsh/ohmyzsh/pull/9798). diff --git a/plugins/symfony2/README.md b/plugins/symfony2/README.md index 2946d0937..76233472f 100644 --- a/plugins/symfony2/README.md +++ b/plugins/symfony2/README.md @@ -17,7 +17,7 @@ plugins=(... symfony2) | `sfsr` | sf server:run | Run the dev server | | `sfcw` | sf cache:warmup | Use the Bundles warmer | | `sfroute` | sf debug:router | Show the different routes | -| `sfcontainer` | sf debug:contaner | List the different services | +| `sfcontainer` | sf debug:container | List the different services | | `sfgb` | sf generate:bundle | Generate a bundle | | `sfgc` | sf generate:controller | Generate a controller | | `sfgcom` | sf generate:command | Generate a command | diff --git a/plugins/systemadmin/systemadmin.plugin.zsh b/plugins/systemadmin/systemadmin.plugin.zsh index 2f9d1ef35..9a2129060 100644 --- a/plugins/systemadmin/systemadmin.plugin.zsh +++ b/plugins/systemadmin/systemadmin.plugin.zsh @@ -27,7 +27,7 @@ alias mkdir='mkdir -pv' # get top process eating memory alias psmem='ps -e -orss=,args= | sort -b -k1 -nr' alias psmem10='ps -e -orss=,args= | sort -b -k1 -nr | head -n 10' -# get top process eating cpu if not work try excute : export LC_ALL='C' +# get top process eating cpu if not work try execute : export LC_ALL='C' alias pscpu='ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr' alias pscpu10='ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr | head -n 10' # top10 of the history @@ -105,7 +105,7 @@ visitpage20() { # top100 of Page lists the most time-consuming (more than 60 seconds) as well as the corresponding page number of occurrences consume100() { awk '($NF > 60 && $7~/\.php/){print $7}' "$(retlog)" |sort -n|uniq -c|sort -nr|head -n 100 - # if django website or other webiste make by no suffix language + # if django website or other website make by no suffix language # awk '{print $7}' "$(retlog)" |sort -n|uniq -c|sort -nr|head -n 100 } diff --git a/plugins/terminitor/_terminitor b/plugins/terminitor/_terminitor index 1ce87c3ad..3615350e2 100644 --- a/plugins/terminitor/_terminitor +++ b/plugins/terminitor/_terminitor @@ -11,7 +11,7 @@ local -a _1st_arguments _1st_arguments=( 'create:create a Termfile in directory' 'delete:delete terminitor script' - 'edit:open termitor script' + 'edit:open terminitor script' 'fetch:clone the designated repo and run setup' 'help:Describe available tasks or one specific task' 'init:create initial root terminitor folder' diff --git a/plugins/ubuntu/README.md b/plugins/ubuntu/README.md index f72182f5c..9efef0732 100644 --- a/plugins/ubuntu/README.md +++ b/plugins/ubuntu/README.md @@ -19,7 +19,7 @@ Commands that use `$APT` will use `apt` if installed or defer to `apt-get` other | acp | `apt-cache policy` | Display the package source priorities | | afs | `apt-file search --regexp` | Perform a regular expression apt-file search | | afu | `sudo apt-file update` | Generates or updates the apt-file package database | -| aga | `sudo $APT autoclean` | Clears out the local reposityory of retrieved package files that can no longer be downloaded | +| aga | `sudo $APT autoclean` | Clears out the local repository of retrieved package files that can no longer be downloaded | | agb | `sudo $APT build-dep ` | Installs/Removes packages to satisfy the dependencies of a specified build pkg | | agc | `sudo $APT clean` | Clears out the local repository of retrieved package files leaving everything from the lock files | | agd | `sudo $APT dselect-upgrade` | Follows dselect choices for package installation | diff --git a/plugins/vault/_vault b/plugins/vault/_vault index c5338dffa..f6bd3517e 100644 --- a/plugins/vault/_vault +++ b/plugins/vault/_vault @@ -53,7 +53,7 @@ mount_tune_args=( typeset -a mount_args mount_args=( $mount_tune_args - '(-path)-path=-[Mount point for the logical backend. This defauls to the type of the mount.]:path:' + '(-path)-path=-[Mount point for the logical backend. This defaults to the type of the mount.]:path:' '(-description)-description=-[Human-friendly description of the purpose for the mount. This shows up in the mounts command.]:description:' ) @@ -189,7 +189,7 @@ _vault_mounts() { } _vault_mount() { - # to find out how many types of backens are there + # to find out how many types of backends are there _arguments : \ ${general_args[@]} \ ${mount_args[@]} \ diff --git a/plugins/yarn/_yarn b/plugins/yarn/_yarn index 70ed55929..9173eca20 100644 --- a/plugins/yarn/_yarn +++ b/plugins/yarn/_yarn @@ -157,7 +157,7 @@ _yarn() { '(--emoji)--no-emoji[disable emoji in output]' \ '(--disable-pnp)'{--enable-pnp,--pnp}"[enable the Plug'n'Play installation]" \ '--flat[only allow one version of a package]' \ - '--focus[Focus on a single workspace by installing remote copies of its sibiling workspaces]' \ + '--focus[Focus on a single workspace by installing remote copies of its sibling workspaces]' \ '--force[install and build packages even if they were built before, overwrite lockfile]' \ "--frozen-lockfile[don't generate a lockfile and fail if an update is needed]" \ '--global-folder=[modules folder]:folder:_files -/' \ diff --git a/plugins/yum/yum.plugin.zsh b/plugins/yum/yum.plugin.zsh index 69abfc4ce..d36571133 100644 --- a/plugins/yum/yum.plugin.zsh +++ b/plugins/yum/yum.plugin.zsh @@ -7,7 +7,7 @@ alias ygl="yum grouplist" # list package groups alias yli="yum list installed" # print all installed packages alias ymc="yum makecache" # rebuilds the yum package list -alias yu="sudo yum update" # upgrate packages +alias yu="sudo yum update" # upgrade packages alias yi="sudo yum install" # install package alias ygi="sudo yum groupinstall" # install package group alias yr="sudo yum remove" # remove package diff --git a/themes/dallas.zsh-theme b/themes/dallas.zsh-theme index d6c417fc3..4f8be20d3 100644 --- a/themes/dallas.zsh-theme +++ b/themes/dallas.zsh-theme @@ -9,7 +9,7 @@ DALLAS_CURRENT_MACH_="%{$fg[green]%}%m%{$fg[white]%}:%{$reset_color%}" DALLAS_CURRENT_LOCA_="%{$fg[cyan]%}%~\$(git_prompt_info)%{$reset_color%}\$(parse_git_dirty)" # Grab the current username: dallas DALLAS_CURRENT_USER_="%{$fg[red]%}%n%{$reset_color%}" -# Use a % for normal users and a # for privelaged (root) users. +# Use a % for normal users and a # for privileged (root) users. DALLAS_PROMPT_CHAR_="%{$fg[white]%}%(!.#.%%)%{$reset_color%}" # For the git prompt, use a white @ and blue text for the branch name ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[white]%}@%{$fg[blue]%}" diff --git a/themes/essembeh.zsh-theme b/themes/essembeh.zsh-theme index f34f36f8a..43d4093b1 100644 --- a/themes/essembeh.zsh-theme +++ b/themes/essembeh.zsh-theme @@ -39,7 +39,7 @@ elif [[ -r /etc/debian_chroot ]]; then # prefix prompt in case of chroot ZSH_ESSEMBEH_PREFIX="%{$fg[yellow]%}[chroot:$(cat /etc/debian_chroot)]%{$reset_color%} " elif [[ -r /.dockerenv ]]; then - # also prefix prompt inside a docker contrainer + # also prefix prompt inside a docker container ZSH_ESSEMBEH_PREFIX="%{$fg[yellow]%}[docker]%{$reset_color%} " fi if [[ $UID = 0 ]]; then diff --git a/themes/nicoulaj.zsh-theme b/themes/nicoulaj.zsh-theme index 333aa5e70..685cd1ade 100644 --- a/themes/nicoulaj.zsh-theme +++ b/themes/nicoulaj.zsh-theme @@ -6,7 +6,7 @@ # * Only shows the path on the left prompt by default. # * Crops the path to a defined length and only shows the path relative to # the current VCS repository root. -# * Wears a different color wether the last command succeeded/failed. +# * Wears a different color whether the last command succeeded/failed. # * Shows user@hostname if connected through SSH. # * Shows if logged in as root or not. # ------------------------------------------------------------------------------ -- cgit v1.2.3-70-g09d2 From aef393bdce523ed5e5754721965fab2da8080119 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Wed, 1 Dec 2021 12:18:32 +0100 Subject: ci: add `check-spelling` GitHub Action --- .github/actions/spelling/README.md | 15 +++++++++++++++ .github/actions/spelling/advice.md | 27 +++++++++++++++++++++++++++ .github/actions/spelling/allow.txt | 0 .github/actions/spelling/excludes.txt | 17 +++++++++++++++++ .github/actions/spelling/expect.txt | 2 ++ .github/actions/spelling/patterns.txt | 4 ++++ .github/actions/spelling/reject.txt | 6 ++++++ .github/workflows/spelling.yml | 31 +++++++++++++++++++++++++++++++ 8 files changed, 102 insertions(+) create mode 100644 .github/actions/spelling/README.md create mode 100644 .github/actions/spelling/advice.md create mode 100644 .github/actions/spelling/allow.txt create mode 100644 .github/actions/spelling/excludes.txt create mode 100644 .github/actions/spelling/expect.txt create mode 100644 .github/actions/spelling/patterns.txt create mode 100644 .github/actions/spelling/reject.txt create mode 100644 .github/workflows/spelling.yml diff --git a/.github/actions/spelling/README.md b/.github/actions/spelling/README.md new file mode 100644 index 000000000..1bd7d4412 --- /dev/null +++ b/.github/actions/spelling/README.md @@ -0,0 +1,15 @@ +# check-spelling/check-spelling configuration + +| File | Purpose | Format | Info | +| -------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| [dictionary.txt](dictionary.txt) | Replacement dictionary (creating this file will override the default dictionary) | one word per line | [dictionary](https://github.com/check-spelling/check-spelling/wiki/Configuration#dictionary) | +| [allow.txt](allow.txt) | Add words to the dictionary | one word per line (only letters and `'`s allowed) | [allow](https://github.com/check-spelling/check-spelling/wiki/Configuration#allow) | +| [reject.txt](reject.txt) | Remove words from the dictionary (after allow) | grep pattern matching whole dictionary words | [reject](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-reject) | +| [excludes.txt](excludes.txt) | Files to ignore entirely | perl regular expression | [excludes](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-excludes) | +| [only.txt](only.txt) | Only check matching files (applied after excludes) | perl regular expression | [only](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-only) | +| [patterns.txt](patterns.txt) | Patterns to ignore from checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns) | +| [expect.txt](expect.txt) | Expected words that aren't in the dictionary | one word per line (sorted, alphabetically) | [expect](https://github.com/check-spelling/check-spelling/wiki/Configuration#expect) | +| [advice.md](advice.md) | Supplement for GitHub comment when unrecognized words are found | GitHub Markdown | [advice](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice) | + +Note: you can replace any of these files with a directory by the same name (minus the suffix) +and then include multiple files inside that directory (with that suffix) to merge multiple files together. diff --git a/.github/actions/spelling/advice.md b/.github/actions/spelling/advice.md new file mode 100644 index 000000000..2a32b6520 --- /dev/null +++ b/.github/actions/spelling/advice.md @@ -0,0 +1,27 @@ + +
If you see a bunch of garbage + +If it relates to a ... +
well-formed pattern + +See if there's a [pattern](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns) that would match it. + +If not, try writing one and adding it to the `patterns.txt` file. + +Patterns are Perl 5 Regular Expressions - you can [test]( +https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your lines. + +Note that patterns can't match multiline strings. +
+
binary-ish string + +Please add a file path to the `excludes.txt` file instead of just accepting the garbage. + +File paths are Perl 5 Regular Expressions - you can [test]( +https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your files. + +`^` refers to the file's path from the root of the repository, so `^README\.md$` would exclude [README.md]( +../tree/HEAD/README.md) (on whichever branch you're using). +
+ +
diff --git a/.github/actions/spelling/allow.txt b/.github/actions/spelling/allow.txt new file mode 100644 index 000000000..e69de29bb diff --git a/.github/actions/spelling/excludes.txt b/.github/actions/spelling/excludes.txt new file mode 100644 index 000000000..ce9f3b99a --- /dev/null +++ b/.github/actions/spelling/excludes.txt @@ -0,0 +1,17 @@ +# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes +(?:^|/)(?i)COPYRIGHT +(?:^|/)(?i)LICEN[CS]E +(?:^|/)package(?:-lock|)\.json$ +(?:^|/)vendor/ +ignore$ +\.avi$ +\.ico$ +\.jpe?g$ +\.lock$ +\.map$ +\.min\. +\.mod$ +\.mp[34]$ +\.png$ +\.wav$ +^\.github/ diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt new file mode 100644 index 000000000..d69fa3882 --- /dev/null +++ b/.github/actions/spelling/expect.txt @@ -0,0 +1,2 @@ +ohmyzsh +oh-my-zsh diff --git a/.github/actions/spelling/patterns.txt b/.github/actions/spelling/patterns.txt new file mode 100644 index 000000000..d39d09e97 --- /dev/null +++ b/.github/actions/spelling/patterns.txt @@ -0,0 +1,4 @@ +# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns + +# ignore long runs of a single character: +\b([A-Za-z])\g{-1}{3,}\b diff --git a/.github/actions/spelling/reject.txt b/.github/actions/spelling/reject.txt new file mode 100644 index 000000000..67e0ad79b --- /dev/null +++ b/.github/actions/spelling/reject.txt @@ -0,0 +1,6 @@ +^attache$ +occurence +Sorce +^[Ss]pae +^untill +^wether diff --git a/.github/workflows/spelling.yml b/.github/workflows/spelling.yml new file mode 100644 index 000000000..06a8b74c9 --- /dev/null +++ b/.github/workflows/spelling.yml @@ -0,0 +1,31 @@ +name: Spell checking +on: + pull_request_target: + push: + issue_comment: + types: [created] + +jobs: + spelling: + name: Spell checking + runs-on: ubuntu-latest + steps: + - name: checkout-merge + if: "contains(github.event_name, 'pull_request')" + uses: actions/checkout@v2 + with: + ref: refs/pull/${{github.event.pull_request.number}}/merge + - name: checkout + if: ${{ github.event_name == 'push' || + ( + contains(github.event.comment.body, '@check-spelling-bot apply') + ) }} + uses: actions/checkout@v2 + - uses: check-spelling/check-spelling@main + id: spelling + if: ${{ github.event_name != 'issue_comment' || + ( + contains(github.event.comment.body, '@check-spelling-bot apply') + ) }} + with: + experimental_apply_changes_via_bot: 1 -- cgit v1.2.3-70-g09d2 From e253661a9b3d8bba3acc90bc06c211f14ab8d587 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Wed, 1 Dec 2021 12:25:58 +0100 Subject: Revert "ci: add `check-spelling` GitHub Action" This reverts commit aef393bdce523ed5e5754721965fab2da8080119. --- .github/actions/spelling/README.md | 15 --------------- .github/actions/spelling/advice.md | 27 --------------------------- .github/actions/spelling/allow.txt | 0 .github/actions/spelling/excludes.txt | 17 ----------------- .github/actions/spelling/expect.txt | 2 -- .github/actions/spelling/patterns.txt | 4 ---- .github/actions/spelling/reject.txt | 6 ------ .github/workflows/spelling.yml | 31 ------------------------------- 8 files changed, 102 deletions(-) delete mode 100644 .github/actions/spelling/README.md delete mode 100644 .github/actions/spelling/advice.md delete mode 100644 .github/actions/spelling/allow.txt delete mode 100644 .github/actions/spelling/excludes.txt delete mode 100644 .github/actions/spelling/expect.txt delete mode 100644 .github/actions/spelling/patterns.txt delete mode 100644 .github/actions/spelling/reject.txt delete mode 100644 .github/workflows/spelling.yml diff --git a/.github/actions/spelling/README.md b/.github/actions/spelling/README.md deleted file mode 100644 index 1bd7d4412..000000000 --- a/.github/actions/spelling/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# check-spelling/check-spelling configuration - -| File | Purpose | Format | Info | -| -------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| [dictionary.txt](dictionary.txt) | Replacement dictionary (creating this file will override the default dictionary) | one word per line | [dictionary](https://github.com/check-spelling/check-spelling/wiki/Configuration#dictionary) | -| [allow.txt](allow.txt) | Add words to the dictionary | one word per line (only letters and `'`s allowed) | [allow](https://github.com/check-spelling/check-spelling/wiki/Configuration#allow) | -| [reject.txt](reject.txt) | Remove words from the dictionary (after allow) | grep pattern matching whole dictionary words | [reject](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-reject) | -| [excludes.txt](excludes.txt) | Files to ignore entirely | perl regular expression | [excludes](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-excludes) | -| [only.txt](only.txt) | Only check matching files (applied after excludes) | perl regular expression | [only](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-only) | -| [patterns.txt](patterns.txt) | Patterns to ignore from checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns) | -| [expect.txt](expect.txt) | Expected words that aren't in the dictionary | one word per line (sorted, alphabetically) | [expect](https://github.com/check-spelling/check-spelling/wiki/Configuration#expect) | -| [advice.md](advice.md) | Supplement for GitHub comment when unrecognized words are found | GitHub Markdown | [advice](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice) | - -Note: you can replace any of these files with a directory by the same name (minus the suffix) -and then include multiple files inside that directory (with that suffix) to merge multiple files together. diff --git a/.github/actions/spelling/advice.md b/.github/actions/spelling/advice.md deleted file mode 100644 index 2a32b6520..000000000 --- a/.github/actions/spelling/advice.md +++ /dev/null @@ -1,27 +0,0 @@ - -
If you see a bunch of garbage - -If it relates to a ... -
well-formed pattern - -See if there's a [pattern](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns) that would match it. - -If not, try writing one and adding it to the `patterns.txt` file. - -Patterns are Perl 5 Regular Expressions - you can [test]( -https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your lines. - -Note that patterns can't match multiline strings. -
-
binary-ish string - -Please add a file path to the `excludes.txt` file instead of just accepting the garbage. - -File paths are Perl 5 Regular Expressions - you can [test]( -https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your files. - -`^` refers to the file's path from the root of the repository, so `^README\.md$` would exclude [README.md]( -../tree/HEAD/README.md) (on whichever branch you're using). -
- -
diff --git a/.github/actions/spelling/allow.txt b/.github/actions/spelling/allow.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/.github/actions/spelling/excludes.txt b/.github/actions/spelling/excludes.txt deleted file mode 100644 index ce9f3b99a..000000000 --- a/.github/actions/spelling/excludes.txt +++ /dev/null @@ -1,17 +0,0 @@ -# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes -(?:^|/)(?i)COPYRIGHT -(?:^|/)(?i)LICEN[CS]E -(?:^|/)package(?:-lock|)\.json$ -(?:^|/)vendor/ -ignore$ -\.avi$ -\.ico$ -\.jpe?g$ -\.lock$ -\.map$ -\.min\. -\.mod$ -\.mp[34]$ -\.png$ -\.wav$ -^\.github/ diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt deleted file mode 100644 index d69fa3882..000000000 --- a/.github/actions/spelling/expect.txt +++ /dev/null @@ -1,2 +0,0 @@ -ohmyzsh -oh-my-zsh diff --git a/.github/actions/spelling/patterns.txt b/.github/actions/spelling/patterns.txt deleted file mode 100644 index d39d09e97..000000000 --- a/.github/actions/spelling/patterns.txt +++ /dev/null @@ -1,4 +0,0 @@ -# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns - -# ignore long runs of a single character: -\b([A-Za-z])\g{-1}{3,}\b diff --git a/.github/actions/spelling/reject.txt b/.github/actions/spelling/reject.txt deleted file mode 100644 index 67e0ad79b..000000000 --- a/.github/actions/spelling/reject.txt +++ /dev/null @@ -1,6 +0,0 @@ -^attache$ -occurence -Sorce -^[Ss]pae -^untill -^wether diff --git a/.github/workflows/spelling.yml b/.github/workflows/spelling.yml deleted file mode 100644 index 06a8b74c9..000000000 --- a/.github/workflows/spelling.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Spell checking -on: - pull_request_target: - push: - issue_comment: - types: [created] - -jobs: - spelling: - name: Spell checking - runs-on: ubuntu-latest - steps: - - name: checkout-merge - if: "contains(github.event_name, 'pull_request')" - uses: actions/checkout@v2 - with: - ref: refs/pull/${{github.event.pull_request.number}}/merge - - name: checkout - if: ${{ github.event_name == 'push' || - ( - contains(github.event.comment.body, '@check-spelling-bot apply') - ) }} - uses: actions/checkout@v2 - - uses: check-spelling/check-spelling@main - id: spelling - if: ${{ github.event_name != 'issue_comment' || - ( - contains(github.event.comment.body, '@check-spelling-bot apply') - ) }} - with: - experimental_apply_changes_via_bot: 1 -- cgit v1.2.3-70-g09d2 From c66fc00401a8d6a6bd6da39ec890dfdc0e6bd878 Mon Sep 17 00:00:00 2001 From: Nick Aldwin Date: Wed, 1 Dec 2021 06:44:15 -0500 Subject: feat(updater): show command to update when update skipped (#10465) --- tools/check_for_upgrade.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index b6625a395..293f48edf 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -160,7 +160,8 @@ function update_ohmyzsh() { [[ "$option" != $'\n' ]] && echo case "$option" in [yY$'\n']) update_ohmyzsh ;; - [nN]) update_last_updated_file ;; + [nN]) update_last_updated_file ;& + *) echo "[oh-my-zsh] You can update manually by running \`omz update\`" ;; esac fi } -- cgit v1.2.3-70-g09d2 From 46e63340eef243f25890e2178931919125c58aae Mon Sep 17 00:00:00 2001 From: whoami Date: Wed, 1 Dec 2021 19:49:42 +0300 Subject: feat(branch): show mercurial bookmarks if used (#9948) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Marc Cornellà --- plugins/branch/README.md | 48 ++++++++++++++++++++++++++-------------- plugins/branch/branch.plugin.zsh | 44 +++++++++++++++++++----------------- 2 files changed, 56 insertions(+), 36 deletions(-) diff --git a/plugins/branch/README.md b/plugins/branch/README.md index 56ab8da4b..a15dd22df 100644 --- a/plugins/branch/README.md +++ b/plugins/branch/README.md @@ -1,31 +1,47 @@ -# Branch +# Branch plugin -Displays the current Git or Mercurial branch fast. +This plugin displays the current Git or Mercurial branch, fast. If in a Mercurial repository, +also display the current bookmark, if present. + +To use it, add `branch` to the plugins array in your zshrc file: + +```zsh +plugins=(... branch) +``` ## Speed test -### Mercurial +- `hg branch`: -```shell -$ time hg branch -0.11s user 0.14s system 70% cpu 0.355 total -``` + ```console + $ time hg branch + 0.11s user 0.14s system 70% cpu 0.355 total + ``` -### Branch plugin +- branch plugin: -```shell -$ time zsh /tmp/branch_prompt_info_test.zsh -0.00s user 0.01s system 78% cpu 0.014 total -``` + ```console + $ time zsh /tmp/branch_prompt_info_test.zsh + 0.00s user 0.01s system 78% cpu 0.014 total + ``` ## Usage -Edit your theme file (eg.: `~/.oh-my-zsh/theme/robbyrussell.zsh-theme`) -adding `$(branch_prompt_info)` in your prompt like this: +Copy your theme to `$ZSH_CUSTOM/themes/` and modify it to add `$(branch_prompt_info)` in your prompt. +This example is for the `robbyrussell` theme: ```diff -- PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' -+ PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)$(branch_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' +diff --git a/themes/robbyrussell.zsh-theme b/themes/robbyrussell.zsh-theme +index 2fd5f2cd..9d89a464 100644 +--- a/themes/robbyrussell.zsh-theme ++++ b/themes/robbyrussell.zsh-theme +@@ -1,5 +1,5 @@ + PROMPT="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )" +-PROMPT+=' %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)' ++PROMPT+=' %{$fg[cyan]%}%c%{$reset_color%} $(branch_prompt_info)' + + ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}" + ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} " ``` ## Maintainer diff --git a/plugins/branch/branch.plugin.zsh b/plugins/branch/branch.plugin.zsh index 2e5659bdf..dd5871fdc 100644 --- a/plugins/branch/branch.plugin.zsh +++ b/plugins/branch/branch.plugin.zsh @@ -3,29 +3,33 @@ # Oct 2, 2015 function branch_prompt_info() { - # Defines path as current directory - local current_dir=$PWD - # While current path is not root path - while [[ $current_dir != '/' ]] - do - # Git repository - if [[ -d "${current_dir}/.git" ]] - then - echo '±' ${"$(<"$current_dir/.git/HEAD")"##*/} - return; + # Start checking in current working directory + local branch="" dir="$PWD" + while [[ "$dir" != '/' ]]; do + # Found .git directory + if [[ -d "${dir}/.git" ]]; then + branch="${"$(<"${dir}/.git/HEAD")"##*/}" + echo '±' "${branch:gs/%/%%}" + return fi - # Mercurial repository - if [[ -d "${current_dir}/.hg" ]] - then - if [[ -f "$current_dir/.hg/branch" ]] - then - echo '☿' $(<"$current_dir/.hg/branch") + + # Found .hg directory + if [[ -d "${dir}/.hg" ]]; then + if [[ -f "${dir}/.hg/branch" ]]; then + branch="$(<"${dir}/.hg/branch")" else - echo '☿ default' + branch="default" + fi + + if [[ -f "${dir}/.hg/bookmarks.current" ]]; then + branch="${branch}/$(<"${dir}/.hg/bookmarks.current")" fi - return; + + echo '☿' "${branch:gs/%/%%}" + return fi - # Defines path as parent directory and keeps looking for :) - current_dir="${current_dir:h}" + + # Check parent directory + dir="${dir:h}" done } -- cgit v1.2.3-70-g09d2 From 841f3cb0bb7663fa1062ffc59acb7b4581dc1d0f Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 2 Dec 2021 06:17:00 -0500 Subject: ci: add `check-spelling` action (#10470) Co-authored-by: Josh Soref --- .github/actions/spelling/README.md | 15 + .github/actions/spelling/advice.md | 25 + .github/actions/spelling/allow.txt | 0 .github/actions/spelling/excludes.txt | 41 + .github/actions/spelling/expect.txt | 4489 +++++++++++++++++++++++++++++++++ .github/actions/spelling/patterns.txt | 73 + .github/actions/spelling/reject.txt | 7 + .github/workflows/spelling.yml | 95 + 8 files changed, 4745 insertions(+) create mode 100644 .github/actions/spelling/README.md create mode 100644 .github/actions/spelling/advice.md create mode 100644 .github/actions/spelling/allow.txt create mode 100644 .github/actions/spelling/excludes.txt create mode 100644 .github/actions/spelling/expect.txt create mode 100644 .github/actions/spelling/patterns.txt create mode 100644 .github/actions/spelling/reject.txt create mode 100644 .github/workflows/spelling.yml diff --git a/.github/actions/spelling/README.md b/.github/actions/spelling/README.md new file mode 100644 index 000000000..dcd237ba2 --- /dev/null +++ b/.github/actions/spelling/README.md @@ -0,0 +1,15 @@ +# check-spelling/check-spelling configuration + +File | Purpose | Format | Info +-|-|-|- +[dictionary.txt](dictionary.txt) | Replacement dictionary (creating this file will override the default dictionary) | one word per line | [dictionary](https://github.com/check-spelling/check-spelling/wiki/Configuration#dictionary) +[allow.txt](allow.txt) | Add words to the dictionary | one word per line (only letters and `'`s allowed) | [allow](https://github.com/check-spelling/check-spelling/wiki/Configuration#allow) +[reject.txt](reject.txt) | Remove words from the dictionary (after allow) | grep pattern matching whole dictionary words | [reject](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-reject) +[excludes.txt](excludes.txt) | Files to ignore entirely | perl regular expression | [excludes](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-excludes) +[only.txt](only.txt) | Only check matching files (applied after excludes) | perl regular expression | [only](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-only) +[patterns.txt](patterns.txt) | Patterns to ignore from checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns) +[expect.txt](expect.txt) | Expected words that aren't in the dictionary | one word per line (sorted, alphabetically) | [expect](https://github.com/check-spelling/check-spelling/wiki/Configuration#expect) +[advice.md](advice.md) | Supplement for GitHub comment when unrecognized words are found | GitHub Markdown | [advice](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice) + +Note: you can replace any of these files with a directory by the same name (minus the suffix) +and then include multiple files inside that directory (with that suffix) to merge multiple files together. diff --git a/.github/actions/spelling/advice.md b/.github/actions/spelling/advice.md new file mode 100644 index 000000000..c83423a8e --- /dev/null +++ b/.github/actions/spelling/advice.md @@ -0,0 +1,25 @@ + +
If the flagged items do not appear to be text + +If items relate to a ... +* well-formed pattern. + + If you can write a [pattern](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns) that would match it, + try adding it to the `patterns.txt` file. + + Patterns are Perl 5 Regular Expressions - you can [test]( +https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your lines. + + Note that patterns can't match multiline strings. + +* binary file. + + Please add a file path to the `excludes.txt` file matching the containing file. + + File paths are Perl 5 Regular Expressions - you can [test]( +https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your files. + + `^` refers to the file's path from the root of the repository, so `^README\.md$` would exclude [README.md]( +../tree/HEAD/README.md) (on whichever branch you're using). + +
diff --git a/.github/actions/spelling/allow.txt b/.github/actions/spelling/allow.txt new file mode 100644 index 000000000..e69de29bb diff --git a/.github/actions/spelling/excludes.txt b/.github/actions/spelling/excludes.txt new file mode 100644 index 000000000..f1cfeefbb --- /dev/null +++ b/.github/actions/spelling/excludes.txt @@ -0,0 +1,41 @@ +# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes +(?:^|/)(?i)COPYRIGHT +(?:^|/)(?i)LICEN[CS]E +(?:^|/)package(?:-lock|)\.json$ +(?:^|/)vendor/ +ignore$ +\.avi$ +\.ico$ +\.jpe?g$ +\.lock$ +\.map$ +\.min\.. +\.mod$ +\.mp[34]$ +\.png$ +\.wav$ +^\.github/ +^\Qplugins/archlinux/archlinux.plugin.zsh\E$ +^\Qplugins/cp/cp.plugin.zsh\E$ +^\Qplugins/extract/_extract\E$ +^\Qplugins/genpass/genpass.plugin.zsh\E$ +^\Qplugins/gitignore/gitignore.plugin.zsh\E$ +^\Qplugins/gnu-utils/gnu-utils.plugin.zsh\E$ +^\Qplugins/hitchhiker/fortunes/hitchhiker\E$ +^\Qplugins/jhbuild/jhbuild.plugin.zsh\E$ +^\Qplugins/jhbuild/README.md\E$ +^\Qplugins/jruby/jruby.plugin.zsh\E$ +^\Qplugins/kubectl/kubectl.plugin.zsh\E$ +^\Qplugins/lol/lol.plugin.zsh\E$ +^\Qplugins/mosh/mosh.plugin.zsh\E$ +^\Qplugins/npx/npx.plugin.zsh\E$ +^\Qplugins/powder/_powder\E$ +^\Qplugins/suse/suse.plugin.zsh\E$ +^\Qplugins/thor/_thor\E$ +^\Qplugins/universalarchive/_universalarchive\E$ +^\Qplugins/vagrant/vagrant.plugin.zsh\E$ +^\Qplugins/wp-cli/README.md\E$ +^\Qplugins/wp-cli/wp-cli.plugin.zsh\E$ +^\Qthemes/clean.zsh-theme\E$ +^\Qthemes/philips.zsh-theme\E$ +^\Qthemes/tonotdo.zsh-theme\E$ diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt new file mode 100644 index 000000000..fc764f57a --- /dev/null +++ b/.github/actions/spelling/expect.txt @@ -0,0 +1,4489 @@ +AAAAC +aac +aar +abcdefghjkmnpqrstvwxyz +ABRT +absorbgitdirs +abspath +abtvfr +acceptorthreads +accessip +ACDIM +acking +ackmate +ackup +ACLs +acon +aconf +acp +acpi +acpitool +acr +acroread +acs +acsc +acsp +actionformats +Adamantium +adb +adbd +adben +addgroups +addhistory +addon +addprincipals +addrport +addrs +addusergroups +addwin +adelcampo +adg +ADK +adminalias +adminport +Admins +adoc +adu +aeiouy +afh +afind +afmagic +afs +afu +agb +agc +agd +agentpath +agi +agignore +agli +aglu +agnoster +agp +agrimaldi +ags +agu +agud +agug +aguu +AHg +ainv +aip +Airbender +ajp +ajs +Akinori +akoenig +alacritty +albers +alberto +alertmanager +alex +alexandre +aliasfiletype +aliaspassword +allexport +alloc +allocstatus +allownoncomponentcallers +allpkgs +alnum +ALRM +altchar +Altoid +alwayz +amanda +amazonaws +amazonec +ambyj +amd +amqp +AMRD +anche +andi +andrewrdwyer +angularjs +anley +anlp +annots +anonymize +anotherfolder +ansible +antrun +anycommand +apexcodefile +apextests +api +apidocs +apiversion +apjanke +apk +apklib +aplaybook +appid +applica +applist +appname +apps +appup +aps +apull +arachnophobia +araxis +ARCHFLAGS +archimport +archlinux +arci +arcizan +ard +ardc +ardnu +ardnupc +ardp +ardpc +ARGC +args +argset +argslist +argu +argv +ARGZERO +arh +arinit +arl +arli +arpa +arquillian +artifactory +asadmin +asc +asciicast +asciidoc +asciidoctor +asciinema +asdeps +asdf +askpass +asm +asmo +asrc +assem +associatewiththread +ASTs +asyncreplication +atlassian +attr +ATTRIBUTENAME +aufs +auin +auinsd +auloc +auls +aulst +aumir +auown +auownloc +auownls +aur +aure +aurem +aurep +aurinsd +aurph +aurrep +authmethods +authorizationdb +authpriv +authrealmname +authz +autoapplyenabled +autoclean +autocomplete +autocompleted +autocompletion +AUTOCONNECT +autocrlf +autodetermine +autodie +autoenv +autohadboverride +autoipd +autojump +autoload +autolock +autolocking +autopep +AUTOQUIT +autoreload +autoreloading +autoremove +autorun +autoscale +autoscaling +autoselect +autoshortened +autosquash +autostart +autostash +autoupdate +auupd +auupg +availabilityenabled +avh +avi +AVIT +avivrosenberg +avneet +avz +avzu +aws +awscli +awslogs +babakks +backend +backendconfig +backtick +backupconfig +backupdir +backupfile +backuptheme +bactrian +baidu +bamshuf +bamtobed +bamtofastq +Barsi +Basecamp +basedir +basedn +basefile +baseurl +basevmdk +bashcompinit +bashdefault +bashrc +batchid +baz +bazel +bazelbuild +bbd +bbdiff +bbedit +BBM +bbpb +bcc +bcdfghjklmnpqrstvwxz +bck +bcn +bcubc +bcubo +beaglidx +becc +bedcov +BEDGRAPH +BEDPE +bedpetobam +bedtobam +bedtools +Belarus +bem +benchmarker +benchmem +benchtime +bento +benwilcock +berks +Bertinelli +bgnotify +bgrewriteeaof +bgsave +binarynights +bindaddress +binded +bindir +bindkey +binpack +binstub +bintray +bip +bira +bisd +bitboxer +bitbucket +bitswap +blkio +blockprofile +blockprofilerate +blod +blog +blogger +blogspot +blpop +bluebox +Bluetooth +bobwilliams +bodycc +Bonetti +bookmarked +booknames +bootclasspath +bootscript +bootsnipp +borland +borrowck +Boudreau +Boushh +Bouvet +BPtmux +bpython +bqr +brainstormr +Brainville +branchformat +branchname +branchrefs +brewp +brewsp +briancarper +bringz +Broadcom +Brodersen +brpop +brpoplpush +btannous +btih +btn +btrestart +btrfs +btw +bubc +bubu +buf +buffersizebytes +buflines +bugfix +bugfixes +bugreport +bugsnag +Buildfile +buildinstance +buildnumber +buildpackage +buildpacks +buildscript +builtins +bundlephobia +bunzip +Burkina +Busybox +bwaht +Bxegedabagacad +bypjyp +bytebuffertype +bytecode +bytewise +byznis +bzip +bzr +cabextract +CACERT +cacertfile +cacheinfo +cachename +caiifr +Cakefile +cakephp +callvim +calmd +calways +caname +caniuse +cano +capath +Capfile +capify +capistrano +capistranorb +capit +CARETCOLOR +caserta +Caskroom +catimg +catserver +catspeak +cbr +ccat +cccmd +ccflags +ccl +ccomp +ccp +cdargs +cdcmd +cdo +CDPATH +cdu +cdx +cdylib +cecho +cehlrtx +celerybeat +celeryev +celerymon +celeryproject +Celso +celsomiranda +certfile +certname +certs +cfa +cfap +cfbpk +cfbs +cfc +cfdel +cfdm +cfdor +cfds +cfe +cfev +cfg +cfgfile +cfhu +cfl +cflg +cflr +cfp +cfpc +cfpm +cfr +cfsc +cfsh +cfsp +cfsrt +cfsrtall +cfstg +cfstp +cfstpall +cft +cfup +cfus +cget +cgi +cgit +cgr +cgrm +cgroup +cgroupns +cgu +changelog +changepassword +changeset +charmap +charset +chaselinks +chcid +chdir +cheatsheet +checkin +checkinit +checkonly +checkports +checkstyle +cheeseshops +Chesal +chiark +childlogdir +chlrtx +chmod +chown +chpwd +chroot +chruby +chrubydirs +chsh +chucknorris +chucknorrisfacts +Chucktatorship +Chucktober +chunker +cidfile +cidr +CIDs +cidv +ciici +cim +cirw +citool +civis +cjk +clamav +classfile +classloaders +classloading +classmap +classname +classpath +CLDR +cleardump +cless +CLICOLOR +clientauthenabled +clientid +clipcmd +clipcopy +clippaste +Clipperton +clj +Clojure +closelim +cloudfoundry +cloudproviders +CLOUDSDK +clrz +clustertype +cmdargs +cmdline +cmds +Cmp +CMR +cms +cmt +cnorm +cobertura +cocoapods +codebase +codeclimate +codecompare +codecoverage +codegen +codepen +coderwall +CODESET +codium +coffeescript +colemak +Colindres +collectstatic +colorbool +colorcoded +colorcoding +colorify +colorized +colorls +colorpair +colorset +colorspec +colourised +Colouriser +colsearch +COMMANDLINE +commandlinefu +committerdate +Comoros +compadd +comparguments +compassdoc +compaudit +compbiome +compcall +compctl +compdef +compdescribe +compdump +compfiles +compfix +compgen +compgroups +compilemessages +compinit +compl +completemarks +completionsdir +complist +componentname +compopt +compquote +COMPREPLY +COMPRESSSPARSESTATE +compset +compstate +comptags +comptry +compvalues +CONDA +CONFG +config +configfile +confighelp +configmap +configstoretype +connectiondefinition +connectionpoolid +conssec +Consts +contacto +containerd +contenttype +contextinitialization +contextroot +contoroll +contreras +controlargs +conventionalcommits +COOKBOOKNAME +cookbookversion +coproc +copybuffer +copydir +copyfile +copypaste +copypasteable +cordova +coreutil +cors +cowsay +cowthink +cpan +cpanm +cpanminus +cpantesters +cpio +cpp +cprint +cprof +cpuprofile +cpuset +cpv +createcachetable +createdlastdays +createsuperuser +createtables +creationretryattempts +creationretryinterval +cription +crlf +crm +crockford +cron +cronjob +crt +cseuckr +cseucpkdfmtjapanese +csh +csibm +csiso +csisolatin +cskoi +csksc +css +cssflow +cssh +csshiftjis +csu +csv +csvfile +ctag +ctl +ctlseqs +ctx +ctype +culater +Cunha +curcontext +curdir +curhistsize +curkeyword +curpath +currentartist +currentdir +currenttrack +cursored +curtheme +Customisation +CUTBUFFER +cvccvc +cvf +cvhs +cvjf +cvs +cvsexportcommit +cvsimport +cvsserver +cvvis +cvzf +cwd +cword +cxx +cya +cycledleft +cycledright +cygpath +cygstart +cygwin +cygwyn +czf +daemonize +daemonized +daemonizing +daemonset +dalias +dango +danielcsgomes +darcs +dartdoc +dartlang +dashdoc +DATABAGNAME +datafieldenc +datasift +datasourceclassname +datastore +datestamp +datetime +daylerees +dbbolton +dbconsole +dbfile +dbhome +dbhost +dbport +dbshell +dbsize +dburl +dbus +dbuser +dbvendor +dbvendorname +dccmd +dcdn +dce +dck +dcl +dclf +dco +dcom +dcommit +dcps +dcpull +dcr +dcrestart +dcrm +dcstart +dcstop +dcup +dcupb +dcupd +ddg +ddl +deadwyler +debian +debman +debuginfo +debuglevel +decr +decrby +DECSCUSR +defaultleasettl +defaultpackagedir +Defaultsfdx +defaultvs +defaultwebmodule +definitionfile +definitionjson +deinit +deinstall +delwin +denable +deno +dependencyfile +deploydir +deployers +deploymentplan +deps +depthfrom +dequote +dequoted +deref +derek +descr +dest +DESTDIR +destroot +desttype +devcenter +devdocs +devfolder +devicehost +devicemapper +deviceport +devlog +devops +devpath +dfa +dffx +dflt +dfmt +dfs +dhcp +dhcpd +dhcpip +dht +dhtrc +dhtt +diagdump +didexit +diffcore +diffmerge +diffs +diffsettings +difftool +digitalocean +diiirrrty +dijcaf +dircolors +dircycle +direnv +dirhistory +dirname +dirpath +dirpersist +dirs +dirstack +DIRSTACKSIZE +dirstat +dirver +disablemasking +disksize +diskutil +displayconfiguration +displayname +distcache +distcheck +distclean +distro +dists +django +djangojs +djangoproject +djangopypi +djview +djvu +dli +dlist +dls +dman +dmatching +dmesg +dmg +dna +dnf +dnfc +dnfgi +dnfgl +dnfgr +dnfi +dnfl +dnfli +dnfmc +dnfp +dnfr +dnfu +dng +dnote +dns +dnsmasq +dnsrr +doap +docck +dockerd +dockerdaemon +dockerenv +Dockerfile +dockerport +dockersearch +docopt +docset +docstring +doctl +doctorjellyface +dogenpunk +doitclient +domaindir +domainname +domainproperties +domterm +Donenfeld +dongweiming +donotwant +dopts +dotall +dotenv +dotest +dotfile +dotnet +doubledash +doublequotes +dowant +dpkg +drca +drcb +drcg +drcj +drcm +drcml +drcr +drct +drcv +drdmp +dren +dreurmail +drf +drfi +drfr +drfra +drfu +Driessen +drif +dris +driverclassname +drn +drnew +droid +dropandcreatetables +dropindexes +droplr +dropreplace +droptables +drpm +drpu +drst +drup +drush +drushrc +drv +drvd +drvg +drw +dsa +dselect +dsl +dssh +dst +dsupport +Dtest +dtrace +dts +duckduckgo +duf +dumpconfig +dumpdata +dumpfiles +duplessis +durationdays +durrheimer +dutchcoders +dvd +dvi +dwim +dwr +dylib +eal +eastermonday +eauth +ebuild +ecd +ecdsa +echotc +echoti +ecma +ecmerge +ecosia +ecto +editorcmd +edu +eecms +eed +eeval +efforted +efile +eframe +egrep +ein +Eisentraut +ejb +ekzsh +Eley +ELGNRCIS +elidable +elif +elim +elisp +elllen +elot +emacs +emacsclient +emacsfun +emacswiki +emails +emberjs +Emelianenko +emoji +emotty +enablesnoop +enacs +endswith +ent +entrypoint +enum +envsubst +envvar +enwom +eocw +EOH +eol +eoq +eow +eoww +eoy +EPOCHREALTIME +epochseconds +eprof +eread +erl +errlog +Errored +esac +escripts +essembeh +etcd +ethanschoonover +ets +etwlogs +euc +EUID +EULAs +eunit +evals +evalstatus +evan +eventlet +eventname +Evernote +Evt +exe +executables +execv +exfxcxdxbxbxbxbxbxbxbx +exfxcxdxbxegedabagacad +existentials +exitcode +exoscale +expandvars +expaning +expireat +expl +explaintypes +explicitouter +expn +expr +exps +exs +extcmd +extdirs +extendedglob +externalid +extmethods +fabfile +facebook +factoryclass +faidx +failconnection +failfast +failurefatal +fakeroot +faqs +fargs +Faroe +fasd +FASTA +fastcgi +fastfile +fastprint +FASTQ +favlist +fbterm +fcap +Fcart +fcgi +Fcrt +fcss +fdfind +fdlimit +feditor +fedoraproject +felipe +felixr +ffls +ffp +ffrm +ffsync +fghijk +fgrep +Fiala +fieldlist +Filemode +filepath +filesize +filestore +filesystem +filetype +filevaultmaster +FILLBAR +filtername +findpeer +findprovs +finetune +firefox +firewalld +firewalls +firstline +fishshell +fitzpatrick +fixmate +fixme +fixperms +FIXTERM +fizsh +fjs +flagstat +flatlist +flattach +flc +fldoc +flget +flickr +flowgraph +flowtype +flr +fluentd +flup +flushall +flushdb +flv +fnd +fnm +fns +Fnv +Folgers +fontello +foodcritic +foqtam +forall +forceoverwrite +forceupgrade +foreach +forrest +fortunecity +forw +fosmid +fotqoh +fpath +fprof +fqn +framep +frecency +frecent +freebsd +freenode +freqs +fri +Friesel +fromaddress +frontend +frontmost +fsc +fscache +fsck +fsl +fsmonitor +FSsh +fstgpy +ftp +fts +fucnul +func +funcsourcetrace +functrace +funtoo +Futuna +futuret +fwl +fwp +fwr +fwrp +fzf +fzfdirs +gaa +gallifrey +gamc +Gamera +gamscp +gapt +gasconfig +Gatorade +gatsbyjs +gav +gba +gbd +gbda +gbk +gbl +gbnm +gbr +gbs +gbsb +gbsg +gbsr +gca +gcam +gcan +gcasm +gcb +gcc +gccd +gccgo +gccgoflags +gcf +gcflags +gch +gcl +gclean +gcloud +gcm +gcmsg +gcn +gco +gcor +gcount +gcp +gcpa +gcpc +gcplogs +gcr +gcs +gcsm +gcssm +gdc +gdca +gdct +gdcw +gdd +gdm +gdnolock +gdt +gdup +gdv +gdw +geca +gecb +gecho +geclup +gecr +geeknote +gegi +geh +gei +geiall +gelcyv +gelf +geli +gemb +gemfile +gemoji +gemp +gemset +gemspec +gemy +generatekey +generatermistubs +genomecov +genpass +genpaths +genzshcomp +geoe +geoff +geoffgarside +getattr +getbit +getcomposer +getdir +geteip +getenv +getfasta +getgb +getip +getline +getln +getopt +getrange +getset +gettext +geun +gevent +Geza +gezalore +gfa +gfg +gfl +gflf +gflff +gflfp +gflfpll +gflh +gflhf +gflhp +gfli +gflr +gflrf +gflrp +gfo +gga +ggf +ggfl +ggl +ggp +ggpnp +ggpull +ggpur +ggpush +ggsup +ggu +ghci +ghf +ghff +ghfh +ghfr +ghfu +ghh +ghostrevery +gignore +gignored +gimmeh +giobi +gistcomment +gitbranch +gitbranchsize +gitcomp +gitcompadd +gitcompappend +gitcompletion +gitdir +gitex +gitfast +gitflow +github +gitignore +gitinfo +gitk +gitmodules +gitpod +GITSS +gitstatus +gitstring +gitweb +givero +gke +gkrellmd +glfsi +glfsls +glfsmi +glfst +glg +glgg +glgga +glgm +glgp +glidenote +glo +globalias +globals +globbing +globsubst +glods +glog +gloga +glol +glola +glp +gls +gma +gmail +gmom +gmtl +gmtlvim +gmum +Gneat +Gniazdowski +gnore +gnupg +goc +godoc +Godzilla +gof +gofa +gofmt +goga +Gohr +golang +gom +GOMAXPROCS +Gomes +Gonz +goodreads +google +googlecode +gop +gopath +gopb +GOROOT +goroutine +gota +gpf +gpg +gpgconf +gplfs +GPLv +gpoat +gpr +gpristine +gpsup +gpu +gpv +gradle +gradlew +graphviz +grb +grba +grbc +grbd +grbi +grbm +grbo +grbom +grc +greenend +greer +grename +grep +grepping +grev +grh +grhh +GRIMALDI +grk +Grlm +grm +grmc +grml +grmv +groh +grok +Grosenbach +groupby +groupinstall +grouplist +groupremove +groupsmap +growlnotify +grrm +grset +grss +grst +grt +gru +gruntfile +grup +grv +gsb +gsd +gsemet +gsh +gsi +gsps +gsr +gss +gst +gsta +gstaa +gstall +gstc +gstd +gstl +gstp +gstu +gsu +gsub +gsw +gswc +gswd +gswm +gtb +gtfo +gtl +gts +gtv +gua +Guake +Guerci +gui +guidovansteen +guitool +gulpfile +gulpjs +gunignore +gunwip +gunzip +gupa +gupav +gupv +gvim +gvimdiff +gwc +gwch +gwip +gwt +Gxfxcxdxbxegedabagacad +gxvx +gyazo +Gyver +gzip +Hackage +Hacktoberfest +hackzor +hacluster +hadouken +hai +haldaemon +Halis +Hamelink +hammertest +hanami +hanamirb +har +hardcoded +hardlinks +hardstatus +harishnarayanan +hashh +Hashicorp +haskell +haskellstack +Hasklig +hawaga +hax +HBAR +hbm +Hcode +hda +hdc +hdd +hdel +hdp +hdrs +hdtp +hdv +hea +healthcheck +healthcheckerinterval +healthcheckertimeout +healthcheckerurl +heduled +heg +Helens +helpmojo +heroku +hexdocs +hexdump +hexists +hga +hgb +hgba +hgbk +hgc +hgca +hgchangeset +hgco +hgd +hged +hget +hgetall +hgi +hgic +hgl +hglg +hglgp +hglr +hgm +hgo +hgoc +hgp +hgrc +hgrep +hgs +hgsl +hgun +hhatto +hhh +hidefiles +highlighter +hincrby +HISTCMD +HISTFILE +HISTNO +historywords +histsize +histsubstrsrch +hitokoto +hkeys +hkscs +hlen +hmget +hmset +Hocevar +hocho +hoeg +Homeboy +homepage +hostip +hostname +hostpath +hotfix +hotfixes +hotlist +hotpink +howto +howtorun +hpodder +href +hrg +hscolour +hscroll +hset +hsetnx +hsi +hsp +hsqldb +htm +html +htmlsingle +htop +htslib +HTT +http +httpd +httpie +httplisteners +httpparams +httpsrouting +httpstatus +hubflow +hukkan +humza +huyy +hvals +hyperlink +hypermedia +hyperv +hypervisor +iam +ian +ianchesal +ibest +icanhas +icanhazip +icba +icbi +icc +icode +icpaa +icpai +icpra +icpri +icra +icri +icrosoft +icrsa +icrsi +idlekeytimeoutseconds +idletimeout +idmv +idx +idxstats +ietf +ifargs +ifconfig +iflist +iglob +ignoredescriptoritem +ignoreerrors +ignorenonexistent +ignorewarnings +igv +ihasbucket +iiop +iiopport +ilikenwf +ilkka +ima +imageshack +imap +imatch +imatches +img +imgur +iminurbase +imnp +imonit +impl +implicits +importpath +inbox +incrby +indexopts +inet +infocmp +ini +initsql +inkytonik +inl +inliner +inlining +inplace +inprogress +Inproper +inputenc +inr +insecureskipverify +insns +inspectdb +inspr +instagram +Installable +installationkey +installationkeybypass +installdeps +installdir +installsuffix +instancealias +instanceport +instanceurl +instaweb +instrs +integ +Intellij +interactivecomments +interdiff +interfacename +interoperability +interp +Intf +inur +invicem +iojs +iokit +ionescu +ionicframework +iops +ioreg +ipa +ipaddr +ipam +ipamdriver +ipapp +ipc +ipcidr +ipe +ipfs +ipld +ipns +IPREFIX +ipsw +iptables +ipv +ipython +irb +irc +IRTY +isconnectvalidatereq +isdefaultprovider +isdeleted +isearch +isfile +isisolationguaranteed +isodate +isodatesec +isolationlevel +isredeploy +istio +ISUFFIX +isundeploy +iterm +itertools +itunes +ivan +Ivoire +ixfuk +izakaya +ize +jacc +jaccard +jaddr +jaischeema +jakefile +jakejs +Janke +japvyz +jarfile +JARIN +jarsigner +javabootclasspath +javac +javadoc +javaextdirs +javamail +javap +javascript +javax +jbm +jboss +jcon +jdbc +jdc +jdcds +jde +jdeps +JDK +jdkinternals +jdl +jdlr +jdm +jdmds +jdwp +jeb +jecdyq +ject +Jedis +jeffmhubbard +jenv +jenvdir +jepgad +jerryling +jestjs +jex +jexec +jfrog +jgitflow +jgpagent +jid +jimhester +jimweirich +jira +jis +jisse +jkc +jkenabled +JLine +jlist +jmc +jmsdbpassword +jmsdest +jmx +jndi +jndilookupname +jnrowe +jobid +jobspec +jobstates +jobtexts +jof +johnhamelink +joly +jonas +jonmosco +jorge +journald +jpeg +jpg +jpo +jprofile +jql +jquery +jra +jraw +jrel +jreld +jrm +jrmds +jrmrel +jrmsas +jrp +jrs +jrspec +jruby +jsa +jsh +jshc +jshm +json +jsonfunc +jsonpath +jsontool +jsp +jspa +jssl +jst +jstj +jsu +jsw +jukie +junegunn +junex +junit +junkbust +JUNKFOOD +Juraj +jvenant +jvm +jvmargs +jvmoptions +jwt +jwtkeyfile +jxr +kajrod +kalsi +kapeli +kapow +kate +Kaving +kbd +kca +kcbt +kccc +kcdc +kcgc +kclean +kcn +kcp +kcsc +kcub +kcuc +kcud +kcuf +kcuu +kdch +kdcj +kdcm +kdd +kde +kdel +kdelcj +kdelcm +kdeld +kdelf +kdeli +kdelno +kdelns +kdelp +kdelpvc +kdelsa +kdelsec +kdelss +kdi +kdialog +kdiff +kdm +kdno +kdns +kdp +kdpvc +kds +kdsa +kdsec +Keanu +kecj +kecm +keds +keepfailedstubs +keepreposdir +keepstate +kei +kepvc +kerndeb +kes +keti +kevinkirkup +kexec +kextload +kextunload +keybindings +keycap +keychain +keyfile +keygen +keymap +keymetrics +keypair +keyring +keyshares +keysize +keyspace +keythreshold +KEYTIMEOUT +keytooloptions +keywordisfresh +keywordmsg +keywordquickly +kga +kgaa +kgcj +kgcm +kgd +kgdsw +kgdw +kgdwide +kgi +kgno +kgns +kgp +kgpl +kgpn +kgpvc +kgpvcw +kgpw +kgpwide +kgrs +kgs +kgsec +kgssw +kgsswide +kgsw +kgswide +Khas +khome +killall +killit +Kindergarteners +Kitts +kiwiirc +kiwish +kjx +klf +Klingberg +knative +kni +knifecmd +knifesubcmd +knp +knu +koenig +Kombat +kompare +konsole +kotlin +kotlintest +kpf +kphoen +kpkg +kpp +kres +krh +Krivitsky +krsd +krsss +kru +ksc +ksd +ksh +ksharrays +kshautoload +kshglob +kshoptionprint +ksshaskpass +ksss +kthxbai +kts +kube +kubeconfig +kubectl +kubectx +kubens +kubeoff +kubeon +kubernetes +kungfoo +Kurapati +kwargs +kypkvcw +Kyrgyzstan +Lacheze +lambdalift +lando +langinfo +laravel +lart +lastcategory +lastcmd +lastfull +lastrun +lastsave +launchctl +lazyconnectionassociation +lazyconnectionenlistment +lazyvals +lbenableallapplications +lbenableallinstances +lbenabled +lblue +lbname +lbpolicy +lbpolicymodule +lbtargets +lbuf +LBUFFER +lbweight +lcmd +ldap +ldflags +ldot +leakreclaim +leaktimeout +leavebrowseropen +lein +leiningen +lemy +len +Lengyel +leonhartx +LESSCLOSE +lesskey +LESSKEYIN +LESSOPEN +letcat +leter +lexduv +lexer +lfs +lho +lhs +libc +libedit +libexec +libnotify +libp +libreadline +libsecret +lifecycle +lighthouseapp +limegreen +lindex +linearizer +linewords +linkcheck +linkname +linsert +linux +linuxcommando +linuxcontainers +linuxmain +liquibase +listeneraddress +listenerport +livecheck +liveserver +llc +LLCORNER +llen +llr +llvm +lmnop +lname +loadconfig +loaddata +loadorder +localhost +localonly +localoptions +localtime +localtraps +lockdown +lockfile +lodash +logcat +logdriver +logentries +logfile +logid +loginurl +loglevel +logname +logreportederrors +logrotate +logtype +lol +lowerip +lpop +lpr +lpush +lpushx +lrange +lrbu +LRCORNER +lrem +lrh +lrp +lrt +lrunzip +lrz +lrzip +lrzuntar +lsa +lsb +lscolors +lset +lsof +lstheme +lstrip +lto +ltrim +lubs +lucentbeing +lvi +lways +lwc +lwd +lxc +lxd +lzcat +lzip +lzma +lzo +lzop +LZW +Maarten +macos +macports +macromates +Maeda +Magento +magerun +magicequalsubst +magick +mailhost +mailinfo +mailmap +mailnull +mailrc +mailsplit +mailuser +mainporcelain +maintail +maintainership +makecache +MAKEFLAGS +makemessages +makemigrations +makewindows +managedreleased +managepy +manni +manpage +manpath +mapcar +mapfile +mappedpassword +mappedusername +markname +markpath +maskfasta +maskray +masq +massimiliano +matchconnections +mathfunc +Mattern +Matth +matthewratzloff +matthr +maxbytes +maxchildren +maxconnectionscount +maxconnectionusagecount +maxdepth +maxleasettl +maxpoolsize +maxqueuesize +maxrank +maxrate +maxrequests +maxspare +maxtasksperchild +maxthreadpoolsize +maxwait +Mayen +Mayra +mbean +mbegin +mbologna +mbox +mboxrd +mbp +mca +mcl +mcm +mco +mcornella +mct +mdapi +mdb +mde +mdi +mdn +mds +meanlife +mediawiki +megazord +meh +Mek +mekanics +memprofile +memprofilerate +memq +menuselect +MENUSIZE +mergetool +mergewebxml +merkledag +Mery +messagebus +messagestoretype +metacpan +metadata +metricscollector +mfa +mfaerevaag +mfs +mget +miam +michelebologna +microk +microsoft +middleware +midsommar +midsommarafton +mikeh +millis +mindepth +minfds +minidisc +minikube +minlogprob +minprocs +minspare +minthreadpoolsize +mirko +mirrorlist +mixin +mkcd +mkdir +mktag +mktemp +mktree +mkv +mkvirtualenv +mla +mldonkey +Mleb +MLH +mli +mlo +mlog +mlp +mls +mlterm +MMA +mmap +mmin +mng +mnt +moar +modded +modifiedlastdays +modulename +Moldova +mongocli +mongodb +monit +monitorable +monokai +Morote +Mosco +mosh +mostfrequent +MOTD +mountpoint +mov +moyai +mozilla +mpa +mpeg +mpileup +mpkg +mplayer +mplex +mpr +mputniorz +mqhost +mqpassword +mqport +mquser +mre +mrp +mset +msetnx +msgnum +msgs +msh +msil +msp +mst +msvs +msw +msys +msysgit +mtime +mtu +Mudkipz +multiaddresses +multibase +multicastaddress +multicastport +multicov +multihashes +multiinter +multiline +multios +multiset +mumpub +munication +MURI +muscato +mutex +muxer +mvim +mvn +mvnag +mvnboot +mvnc +mvncd +mvnce +mvnci +mvncie +mvncini +mvncist +mvncisto +mvncom +mvncp +mvnct +mvncv +mvncvst +mvnd +mvndocs +mvndt +mvne +mvnfmt +mvnjetty +mvnp +mvnqdev +mvnsrc +mvnt +mvntc +mvnw +Mvt +Myanmar +myapp +myargs +myd +mydeb +myers +myfile +myfirstnamemylastname +mygit +myissues +mymark +myns +myprop +mypy +myrole +myserver +mysql +mysqladmin +mysqlrestart +mysqlstart +mysqlstatus +mysqlstop +mytime +myuser +myvalue +myvirtualenv +myzsh +nables +nagios +naliases +nameddirs +namespace +namesys +nanoant +nanoc +Narayanan +Naruto +nativelibrarypath +ncd +ncipe +NCOLOR +ncpu +ncs +ncv +ndjson +NDUw +NEm +nenv +neovim +netbsd +netdump +netloc +netmask +netstat +networkdriver +networklisteners +neuralsandwich +newcons +newpl +newvol +nextgenthemes +nfsnobody +nfunctions +nginx +ngnix +ngth +nhelp +nhistory +nhughes +nicoulaj +Nicoulaud +nixos +nkeywords +nkill +nle +nlinux +nlist +nmap +nmatches +Nmh +Nms +Nmw +noacl +noancestors +noargs +noautonamedirs +noautopushd +noblock +nobootcp +nobreak +nocache +nochunk +nocleanup +nocolor +nocopy +nocorrect +nodaemon +nodedir +nodefaultpolicy +nodegroup +nodehost +nodeid +nodejs +nodense +nodestatus +noexec +noexpand +noglob +noheading +nohelpers +nohup +noinput +nojline +noksh +nomadproject +nomnom +nomz +nonamespace +nondistributable +nongnu +NONINFRINGEMENT +nonomatch +NONSELECTABLE +nontransactionalconnections +nopassword +noposixbuiltins +noprofile +noprompt +nopromptsubst +noptions +nopushdminus +norc +noreload +NORMARG +NORRIS +noshortloops +noshwordsplit +nospace +nosplash +nostatic +nostatus +nostream +notactive +notailcalls +notest +nothreading +notifu +notnull +nounit +noverbose +nowai +nowarn +noword +noyes +NPAGE +npanelize +npm +npmd +npmg +npmi +npmjs +npmrc +npmst +npmt +npr +nproc +npu +npx +nroff +nscd +nsu +nthemes +ntlp +ntp +ntu +nubxa +nuc +nuget +numstat +nvcsformats +nvie +nvimdiff +nvm +nvmrc +Oakv +oanward +oathtool +OAuth +objectname +objectsize +objecttype +obsrun +obtw +octocat +octozen +oden +ofd +ogg +ogm +ohmyz +ohmyzsh +oid +oldp +oldpatmat +OLDPWD +OMITSPARSESTATE +OMMIT +omz +omztemp +onbehalfof +oneline +onlyrepos +onoz +ooanward +oom +openbsd +opendiff +openr +openshift +opensource +openssh +openstack +opensuse +openvpn +openw +OPTARG +optimisations +OPTIND +orderby +orgdir +orgs +oris +ority +orm +ornicar +orss +osascript +osname +osscan +ostype +osver +osx +oth +otp +otpcode +Ouellet +oug +outfh +outfile +outfilebase +outfilename +outlog +outputdir +outputtedto +Outputters +pacac +pacaur +pacdisowned +pacfiles +pacfileupg +pacin +pacinsd +packagecreaterequestid +packageid +packagekitd +packagename +packageobjects +packagephobia +packagetype +packageversionid +paclist +pacloc +pacls +paclsorphans +pacman +pacmanallkeys +pacmansignkeys +pacmir +pacoc +pacown +pacre +pacrem +pacrep +pacrmorphans +pacupd +pacupg +pacweb +pagage +pagename +painsd +pairtobed +pairtopair +paloc +palst +pamc +pame +pamf +pamfa +pamir +pamj +paml +pamm +pamn +pamp +pampp +pamr +pamt +panelize +paorph +paperclips +paqf +paqft +paql +paqr +paqt +paqw +paralint +params +parem +parep +PARGON +parhaat +paroc +parseable +parseopt +parwok +passivepopup +passphrase +passthrough +passthru +passwd +passwordstore +pastebin +pasu +patchformat +pathspec +patmat +patshead +paupd +paupg +pausedservices +pavic +paypal +paypalobjects +pbcopy +pbi +pbl +pbo +pbpaste +pbs +pbu +pcap +pch +pchk +pcl +pcmode +pcpu +PCR +pcre +pdf +PDoc +peb +peepcode +peerid +pem +percol +perflog +perl +perlbrew +perldoc +permset +permsetname +petere +peterhoeg +Pfenniger +pfs +pgp +pgpkeys +pgr +pgrep +pgs +phab +phing +phome +php +phx +pid +pidev +pidfile +pidof +pigz +pipenv +pipestatus +pipfile +pipir +piplist +pipreq +pipunall +pipupall +Pitcairn +pjdb +pjo +PKGBUILD +pkgfile +plaetinck +planetargon +playlists +playpause +ple +pleted +plist +Plug'n +plugin +pluginsdir +plz +pmat +pmd +pmin +pmset +png +pnp +podfile +podspec +policyconfigfactoryclass +policyproviderclass +polipo +polkitd +poo +poolname +poolresize +Poorter +popd +Popen +porcheron +portbase +portdir +Portfile +portlist +portname +posix +possen +posteo +posterasure +postgres +postinstallurl +posva +powd +powed +Powerline +poweroff +powershell +powify +powit +PPAGE +ppap +ppid +ppy +precache +precaire +precmd +precompilejsp +precompilewait +predef +preexec +prefetching +prefiltered +prefork +preload +premajor +preminor +prepatch +prepends +prepopulate +prettylist +previewer +prevword +pri +princ +principalsmap +printenv +printf +printflags +printprompt +privhist +privoxy +procfs +procs +prodlog +progfile +projectname +PROMPTCOLOR +PROMPTPREFIX +promptsize +promptsubst +promptvars +propget +proplist +protobuf +providertype +prun +pscpu +pseudoword +psgrep +psh +psmem +psprint +pstadler +pstree +psu +psubscribe +psy +psykorebase +pthree +ptot +ptree +pubgrub +publishwait +pubsub +puni +punsubscribe +puo +pushd +pushdefault +pushdf +pushdignoredups +pushdminus +pushdsilent +pushln +pushremote +pushurl +Putniorz +pvc +pvenv +pvm +pwd +PWDCASECORRECT +PWDLEN +pwdsize +pwdx +pwgen +pwh +pwned +pxd +pxy +pybundles +pyc +pycache +pyclean +pyenv +pyenvdirs +pyfind +pygmentize +pygments +pygrep +pylint +pypa +pypi +pytb +pytest +pythonhosted +pythonpath +pythonrc +PYTHONSTARTUP +PYTHONUSERBASE +pyuserpaths +Qdt +qiqmiq +qkey +qlmanage +qpwd +Qql +Qqo +qqq +qqwtzgejwgqve +Qtdq +quarkus +quicklisp +quickstart +quiltimport +qunit +qunitjs +quotationspage +quotedir +quu +quux +qwant +qwerty +qxtm +qyjti +rabin +rackspace +rackup +radvd +raek +Rakefile +raname +randomkey +rangepos +rar +ratijas +rawurldecode +rawurlencode +rbenv +rbenvdirs +rbfu +RBUFFER +rcfile +Rchive +rcs +rdargument +rdb +rdc +rdd +rdependents +rdeps +rdm +rdmd +rdmr +rdmtc +rdmu +rdoc +rdp +rdr +rds +rdsl +rdtc +rdtp +reactjs +readline +readlink +readme +readonly +readthedocs +readtimeoutmillis +Reagle +realcmd +reauthor +rebased +rebases +rebasing +receivepack +reddit +redirectport +redis +rediscli +redistrubute +redzone +reencode +reexec +refactor +refchecks +reflogs +refmap +refname +refspec +regex +regexes +regexn +regexp +reheader +reintializes +Reitsma +rej +reldates +reldist +releasenotesurl +releaseversion +relid +reloadinterval +reloadpost +reltool +remco +remoteonly +remotetestdir +removegroups +removeprincipals +removeusergroups +renamenx +rephorm +replacetokens +repow +reprovider +requestauthrecipient +requestauthsource +requestid +rerere +resetstat +resolv +resolvemsg +responseauthrecipient +responseauthsource +responsetimeout +restartpost +restype +resultformat +retcode +retlog +retrievefile +retrievetargetdir +returncode +RETVAL +revdeps +revlist +rfa +rfakeroot +rfap +rfbu +rfc +RFh +rfind +rgm +rhash +rinass +rinf +ripgrep +riseup +RIXIUS +rlc +Rli +rlib +Rlvi +rmacs +rmcup +rmd +rmdir +rmdsstore +rmdup +rmi +rmkx +rnand +rnatv +rnaw +rnios +rniosse +rniosx +rniosxr +rniosxsm +rnipad +rnipada +rnipadm +rnipadp +rnipadr +rnland +rnlink +rnlios +rns +robby +robbyrussell +ROLENAME +rollbackonerror +rootdir +rosrc +roswell +ROSWELLPATH +roundhoused +routecookie +rpath +rpc +rpcuser +rpmpackage +rpms +rpo +rpop +rpoplpush +rprompt +rpush +rpushx +rra +rrg +rsa +rsb +rsd +rset +rsh +rsp +rspec +rsrra +rst +rsto +rstrip +rsync +rtfm +rtkit +rtorrent +rts +rubocop +rubygems +rubyonrails +rubyprompt +rubypromptsize +rubyversion +Rudkin +rulz +runfcgi +runningservers +runningservices +runpy +runserver +runtests +runtfile +runtimes +RUNZSH +Ruslan +ruslanspivak +rustc +rustup +Rvi +rvm +rvmprompt +rvmpromptsize +rxvt +saas +sadd +salesforce +samtools +sandboxed +SAVEHIST +savelogin +savemasterpassword +sba +sbc +sbcc +sbcln +sbco +sbcp +sbcq +sbd +sbdc +sbdi +sbgi +sbin +sbp +sbpl +sbr +sbrake +sbrm +sbt +sbu +sbx +scalac +scaladoc +scalatest +scaleway +scandeps +scard +scd +scdalias +scdaliases +scdhistory +scdignore +scgi +sched +scheduledrundatetime +Schlatow +scm +scmpublish +scorpius +scottkidder +scp +screencast +screenshot +SCTP +scu +scutil +scw +scwsearch +sdiff +sdiffstore +sdist +sdk +sdkman +Sdl +sdurrheimer +Seagal +searchterm +seccomp +securityenabled +securitymap +securitytype +segfault +selectables +selectionkeyhandler +selectiveanf +selectivecps +selectorpolltimeoutmillis +selfupdate +selinux +semver +sendemail +sendperiod +serialfile +serialno +serverlist +servername +serverurl +serviceproperties +serviceuser +servlet +setab +setaf +setalias +setapp +setbit +setdefaultdevhubusername +setdefaulttimeout +setdefaultusername +setenv +setex +setnx +setopt +setprompt +setrange +sfcl +sfcontainer +sfcw +sfdc +sfdev +sfdx +sfdxcli +sfdxurl +sfdxurlfile +sfffe +sfgb +sfgc +sfgcom +sfge +sfn +sfprod +sfroute +SFSB +sfsr +sfsu +sftp +sfx +sgem +sgr +sgrep +sgtatham +shasum +sheerun +shellcheck +shellinit +shellperson +shitload +SHLVL +shm +Shohei +shopt +shortlist +shortlog +shortname +shortstat +SHOWCOLORHINTS +showcurrentpatch +showdeprecated +SHOWDIRTYSTATE +showfiles +showformat +showmigrations +showpkg +SHOWSTASHSTATE +showsubclasses +SHOWUNTRACKEDFILES +showupstream +shpotify +shuf +shunit +Shyamshankar +sid +sidekiq +sideload +SIGINT +SIGKILL +sigs +SIMBL +Sindre +sindresorhus +singlechar +singlepackage +Sint +sinterstore +sirech +sismember +sitecookbooks +sitesearch +sjis +skintone +skiptraceflag +skitch +slaveof +slicehost +sln +slogin +slp +smacs +smartlist +smartsync +smcup +smembers +smerge +smkx +Smood +smove +smt +smtp +Smurf +snapshotname +snowboarder +sobject +sobjectid +sobjecttreefiles +sobjecttype +sobjecttypecategory +socio +socw +softlayer +solaris +som +soq +soql +Sorhus +sorin +sortconip +sortcons +sortnr +sortr +sourceapiversion +sourced +sourcedir +sourcefile +sourceforge +sourceorg +sourcepath +sourcetype +sourcing +soww +soyc +spacewander +spam +spd +spearce +speartail +spf +spi +Spivak +splitbrain +splitlines +splunk +spock +spop +spork +spotify +springframework +sprintf +sprunge +spu +spx +sql +sqlall +sqlc +sqlclear +sqlcustom +sqldropindexes +sqlflush +sqlindexes +sqlinitialdata +sqlq +sqlsan +sqlsequencereset +sqltracelisteners +squashmigrations +srake +srandmember +src +srem +ssh +sshd +sshkey +sshkeyfile +sshkeypassphrase +sshpassword +sshport +sshpublickeyfile +sshuser +ssl +sslproxyhost +sslproxyport +ssm +sso +sst +sstat +stackoverflow +stacktrace +stagedstr +standalone +standaloneonly +startapp +startpage +startpost +startproject +startswith +startus +statd +statedb +statefile +statefulset +statelist +statementcachesize +statementleakreclaim +statementleaktimeout +statementtimeout +STATESEPARATOR +staticlib +statuspost +stderr +stdin +stdio +stdlayout +stdlib +stdout +steadypoolsize +stedolan +steeef +sterr +stevelosh +stgit +stil +STITLE +stn +stoppedservers +stoppedservices +stoppost +stopwait +storeprotocol +storeprotocolclass +stp +strfile +strftime +stringification +stringified +stringify +stripspace +strlen +strverscmp +Strzelecki +sts +stt +stty +stu +stylesheets +subcmds +subdigital +subdir +subdomain +subfolder +Subhaditya +subl +sublimemerge +sublimetext +subm +subnut +subpage +subpath +subscriberfile +subscriberorg +subservices +subshells +subspec +substr +subsubcmds +Subsubcommands +Subsubsubcommands +sudo +sudoedit +SUFIX +suitenames +sunaku +sunion +sunionstore +supad +superaccessors +supervisorctl +supervisord +suppresscc +suprl +suprm +suprr +suprs +supso +supsr +supu +Suraj +surryhill +suse +svcat +svg +svm +svn +svnsync +svntrunk +swiftc +swiftpm +sxa +sxc +sxd +sxf +sxfn +sxm +sxn +sxp +sxu +sxw +sxy +sykora +symfony +symkinds +symlink +Symlinking +symref +syms +syncdb +SYNOPSYS +syns +syohex +sys +sysadmins +sysctl +syslog +sysread +sysroot +systemadmin +systemctl +systemd +systeminfo +systemproperties +Syu +Syua +Syy +Tabone +tagname +tailcalls +Tajikistan +takedir +takegit +takeurl +tanabata +tarball +tarfile +targetcut +targetdevhubusername +targetprotocol +targetted +targetusername +Tasche +Tascii +taskwarrior +Tassilo +tatooine +tavric +tbz +tcl +tcp +tcpdump +tcpip +tcpnodelay +tcsh +tdiff +tdiffstr +tempdir +tempfile +tempfilename +TEMPLATENAME +terday +termcap +termcolor +Termfile +terminalapp +terminfo +terminitor +termsupport +termux +TERMWIDTH +terraform +terremark +testflag +testfunc +testlevel +testlog +testname +testng +testrb +testrunid +testrunner +testserver +textastic +textasticapp +textconv +textfile +textmate +tformat +tfstate +tftp +tfvars +tgz +thedir +thefuck +themeisfresh +thememsg +there're +thibault +thisfcn +Thoumie +threadpool +threadpoolid +thu +tif +timeoutmsec +timeremaining +timetolive +timewait +timothybasanov +tion +titlebar +tjkirch +tkachenko +tkdiff +tkss +tksv +tldr +Tlp +tls +tlscacert +tlscert +tlsciphers +tlsenabled +tlskey +tlsrollbackenabled +tlsverify +tlz +tmp +tmpdir +tmpfile +tmpfs +tmux +tmuxinator +tne +tnn +tobed +todo +Tokenise +tokenized +tolower +tomee +tonotdo +toolchain +toolcp +toplevel +Toponce +torrez +torromeo +tortoisemerge +totp +totpkey +Touron +tput +traceroute +trackball +transactionlogdir +transactionsupport +transferencoding +transprotocol +transprotocolclass +trapd +trconf +triggerevents +triggername +trins +trinsd +trizen +trloc +trlst +trmir +Troiae +Trojanowski +trorph +trre +trrem +trrep +trsu +trunc +trupd +trupg +tsdh +tsl +ttl +ttr +ttyctl +ttys +tview +twohead +txl +txn +txo +txs +txz +tycho +typechecking +typescriptlang +typesetsilent +typespec +typoes +tzst +uapprox +uberjar +Ubfksu +ubuntu +udp +uescape +UFE +ufw +uid +ukpog +ULCORNER +ulimit +Ullrich +ultiple +umask +umd +umich +unace +unalias +uname +unarchive +Uncomment +uncommit +uncompress +uncurry +undelete +undeploy +unedit +unescape +unexport +unexpose +unfunction +unhash +unheap +unhost +unicode +unidiff +unindex +uninst +uninstall +uninstalling +unionbedg +uniq +uniqid +uniquetablenames +unittest +universalarchive +unixfs +unixstamp +unlimit +unlzma +unmark +unmatch +unmonitor +unmute +unpause +unrar +unreachability +unsetopt +unshallow +unshare +unstagedstr +unstartup +unsubscribe +untag +unversioned +unwatch +unwip +unxz +unzstd +updatedb +updateonsave +updatestartuptty +upgr +upgradable +upgradetype +uploadpack +upperip +upsert +urandom +URCORNER +uri +url +urldecode +urlencode +urllib +urlmatch +urlonly +urlparse +urlstring +urltools +urxvt +usb +usbmux +usejavacp +uselimit +usemasterpassword +usergroups +userguide +userland +username +userns +userpass +userpassword +usetoolingapi +usetty +usr +utc +utf +utils +utm +uucp +UUID +Vagrantfile +vagrantup +valentinbud +validateatmostonceperiod +validateddeployrequestid +validateschema +validationclassname +validationmethod +validationtable +Valodim +vals +varargs +vared +varkey +varname +vaultproject +vba +vbl +vbm +vbo +vbox +vbqs +vbr +vbu +vcf +vcmp +vcs +vcsa +vdf +vectorize +Venant +vendored +venv +Verhoef +Verma +VERSINFO +versioncomp +versiondescription +versioned +versioning +versionname +versionnumber +versiontagprefix +verstr +vfs +vgi +vgrepping +vgs +vguerci +vhost +vhsp +vicmd +viewtopic +viins +vimdiff +vimgrep +vimrc +violenz +viopp +virtenv +virtualbox +virtualenv +virtualenvwrapper +virtualizing +virtualservers +virumque +visitpage +visualforce +visualstudio +VMDK +VMs +vmwarefusion +vmwarevcloudair +vmwarevsphere +vnc +vncviewer +vnd +voggom +Voldemort +volumedriver +vonnegut +Vop +vopts +vpaivatorres +vpc +vpli +vpll +vplu +vplun +vpr +vrdp +vre +vrp +vsc +vsca +vscd +vscde +vscg +vscie +vscl +vscn +vscode +vscodium +vscr +vscu +vscue +vscv +vscw +vsh +vsix +vsp +vsplit +vssh +vsshc +vssp +vst +VTE +vterm +Vue +vuejs +vulns +vulscan +vundle +vup +vvsp +vvv +vwxyz +vydpig +waittime +wakeonlan +walle +wantlist +warpdir +warprc +wav +wclip +wcomp +Webchat +weblog +webm +webrick +webscr +webserver +website +webtraffic +Wegner +Weiming +Weirich +Wez +wfilter +wget +whatchanged +whatisthor +whatthecommit +whatwg +whitespacelist +whl +whoami +wiki +wikipedia +wil +willmendesneto +wincmd +windowid +windowsdomain +windowspassword +windowsuser +wip +wjst +wks +wlne +wolframalpha +womens +wordbits +WORDBREAKS +WORDCHARS +wordlist +wordpress +workaround +workdir +workflow +workon +workpass +workqueues +workspaces +worktree +would've +wrapjdbcobjects +writetimeoutmillis +WSL +wslpath +wtf +wtfpl +www +wwwrun +Wzf +xargs +xcb +xcconfig +xcdd +xchm +xclick +xclip +xcode +xcodebuild +xcodeproj +xcp +xcsel +xcselv +xcworkspace +XDCHDSBDSDG +xdg +xdvi +xfn +xfree +xfs +xit +XIVIEWER +xjnmahqewy +xkcd +Xkten +XLBUFFER +xlbuflines +xml +xnode +xontab +xor +Xout +xperl +xphp +xpi +xpm +xpowered +xprop +xpython +XRBUFFER +xrbuflines +xruby +xsel +xshell +xstrat +xterm +XTRACE +xudmec +xunit +xvf +xvjf +xxd +xxdiff +Xxjn +xzcat +yaconf +yain +yainsd +yaloc +yalst +yamir +yaml +yandex +yandsearch +Yanovich +yaorph +yarem +yarep +yarnpkg +yarnrc +yasu +yaupd +yaupg +ybalrid +ycc +yesorno +yga +ygi +ygl +ygr +ygrm +ygu +yii +yiic +yiiframework +yireo +yleo +ylep +yli +yln +ylnf +yls +ymc +yml +yolo +Yonchu +YOSHIDA +yout +youtube +yrl +yrm +yrun +yst +ytc +yuc +yui +yuil +yuyuchu +yws +yyy +yzf +zadd +zake +zal +zall +zas +zbell +ZCA +zcard +zcl +zcompcache +zcompdump +zcompile +Zconvey +zcount +zcu +zcurses +zdbc +zdbcm +zdbm +zdbmigrate +zdbr +zdbreset +ZDgw +zdharma +zdirs +zdotdir +zdup +zenerate +zenmap +zerver +zfs +zgen +zgrep +zhimingwang +zhse +zic +zif +zin +zincrby +zinit +zinr +zinterstore +zipalign +zipfile +zkat +zle +zleparameter +zlicenses +zll +zlogin +zlogout +zlp +zlr +zls +zlu +zma +zmodload +zmr +zms +znr +znt +zocmez +zonsole +zoxide +zpa +zparseopts +zpatch +zpattern +zpch +zpchk +zpd +zplg +zplug +zplugin +zproduct +zprofile +zps +zpt +zrake +zrange +zrangebyscore +zrank +zref +zregexparse +zrem +zremrangebyrank +zremrangebyscore +zrevrange +zrevrangebyscore +zrevrank +zrl +zrm +zrn +zrr +zrs +zscore +zse +zsh'ed +zsh +zshaddhistory +zshcmd +zshcommands +zshcompfunc +zshconfig +zshell +zshenv +zshexpn +zshids +zshrc +zshtheme +zshwiki +zshzle +zsi +zsocket +Zsolt +zsource +zspec +zsr +zsrc +zst +Zstandard +zstat +zstd +zstdcat +zstyle +zsw +ztart +ztos +zucumber +zunctional +zunionstore +zunits +zunner +zup +zutil +zvcmp +zve +zweep +zwip +ZWJ +zwp +zxvf +zyg +zypper +zzz diff --git a/.github/actions/spelling/patterns.txt b/.github/actions/spelling/patterns.txt new file mode 100644 index 000000000..93dfa201c --- /dev/null +++ b/.github/actions/spelling/patterns.txt @@ -0,0 +1,73 @@ +# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns + +# YouTube +https?://(?:(?:www\.|)youtube\.com|youtu.be)/(?:channel/|embed/|playlist\?list=|watch\?v=|v/|)[-a-zA-Z0-9?&=_]* +<\s*youtube\s+id=['"][-a-zA-Z0-9?_]*['"] +\bimg\.youtube\.com/vi/[-a-zA-Z0-9?&=_]* +# Google Analytics +\bgoogle-analytics\.com/collect.[-0-9a-zA-Z?%=&_.~]* +# Google APIs +\bgoogleapis\.com/[a-z]+/v\d+/[a-z]+/[@./?=\w]+ +\b[-a-zA-Z0-9.]*\bstorage\d*\.googleapis\.com(?:/\S*|) +# Google Calendar +\bcalendar\.google\.com/calendar(?:/u/\d+|)/embed\?src=[@./?=\w&%]+ +\w+\@group\.calendar\.google\.com\b +# Google DataStudio +\bdatastudio\.google\.com/(?:(?:c/|)u/\d+/|)(?:embed/|)(?:open|reporting|datasources|s)/[-0-9a-zA-Z]+(?:/page/[-0-9a-zA-Z]+|) +# The leading `/` here is as opposed to the `\b` above +# ... a short way to match `https://` or `http://` since most urls have one of those prefixes +# Google Docs +/docs\.google\.com/[a-z]+/d/(?:e/|)[0-9a-zA-Z_-]+/? +# Google Drive +\bdrive\.google\.com/file/d/[0-9a-zA-Z_?=]* +# Google Groups +\bgroups\.google\.com/(?:forum/#!|d/)(?:msg|topic)/[^/]+/[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+|) +# Google themes +themes\.googleusercontent\.com/static/fonts/[^/]+/v\d+/[^.]+. +# Google CDN +\bclients2\.google(?:usercontent|)\.com[-0-9a-zA-Z/.]* +# Goo.gl +/goo\.gl/[a-zA-Z0-9]+ +# Google Chrome Store +\bchrome\.google\.com/webstore/detail/\w*(?:/\w*|) +# Google Books +\bbooks\.google\.(?:\w{2,4})/books\?[-\w\d=&#.]* +# Google Fonts +\bfonts\.(?:googleapis|gstatic)\.com/[-/?=:;+&0-9a-zA-Z]* + +# GitHub SHAs +\bapi.github\.com/repos/[^/]+/[^/]+/[^/]+/[0-9a-f]+\b +(?:\[[0-9a-f]+\]\(https:/|)/(?:www\.|)github\.com/[^/]+/[^/]+(?:/[^/]+/[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b|) +\bgithub\.com/[^/]+/[^/]+[@#][0-9a-f]+\b +# githubusercontent +/[-a-z0-9]+\.githubusercontent\.com/[-a-zA-Z0-9?&=_\/.]* +# gist github +/gist\.github\.com/[^/]+/[0-9a-f]+ +# git.io +\bgit\.io/[0-9a-zA-Z]+ +# GitHub JSON +"node_id": "[-a-zA-Z=;:/0-9+]*" +# Contributor +\[[^\]]+]\(https://github\.com/[^/]+\) +# GHSA +GHSA(?:-[0-9a-z]{4}){3} + +LS_COLORS=(["']).*?\g{-1} + +(\\?)%[a-zA-Z]+\g{-1}(?!%) + +# URL escaped characters +\%[0-9A-F]{2} +# hex digits including css/html color classes: +(?:[\\0][xX]|\\u|[uU]\+|#x?|\%23)[0-9a-fA-FgGrR_]{2,}(?:[uU]?[lL]{0,2}|u\d+)\b + +# https://www.gnu.org/software/groff/manual/groff.html +# man troff content +\\f[BCIPR] + +# Compiler flags +[\t "'`=]-[LPWXY] +[\t "'`=]-D(?!ebian) + +# ignore long runs of a single character: +\b([A-Za-z])\g{-1}{3,}\b diff --git a/.github/actions/spelling/reject.txt b/.github/actions/spelling/reject.txt new file mode 100644 index 000000000..a5ba6f639 --- /dev/null +++ b/.github/actions/spelling/reject.txt @@ -0,0 +1,7 @@ +^attache$ +benefitting +occurence +Sorce +^[Ss]pae +^untill +^wether diff --git a/.github/workflows/spelling.yml b/.github/workflows/spelling.yml new file mode 100644 index 000000000..18a302e3c --- /dev/null +++ b/.github/workflows/spelling.yml @@ -0,0 +1,95 @@ +name: Spell checking +on: + push: + branches: ["**"] + tags-ignore: ["**"] + pull_request_target: + issue_comment: + types: [created] + +jobs: + spelling: + name: Spell checking + permissions: + contents: read + pull-requests: read + outputs: + internal_state_directory: ${{ steps.spelling.outputs.internal_state_directory }} + runs-on: ubuntu-latest + if: "contains(github.event_name, 'pull_request') || github.event_name == 'push'" + concurrency: + group: spelling-${{ github.event.pull_request.number || github.ref }} + # note: If you use only_check_changed_files, you do not want cancel-in-progress + cancel-in-progress: true + steps: + - name: checkout-merge + if: "contains(github.event_name, 'pull_request')" + uses: actions/checkout@v2 + with: + ref: refs/pull/${{github.event.pull_request.number}}/merge + - name: checkout + if: github.event_name == 'push' + uses: actions/checkout@v2 + - name: check-spelling + id: spelling + uses: check-spelling/check-spelling@prerelease + with: + experimental_apply_changes_via_bot: 1 + suppress_push_for_open_pull_request: 1 + post_comment: 0 + - name: store-comment + if: failure() + uses: actions/upload-artifact@v2 + with: + retention-days: 1 + name: "check-spelling-comment-${{ github.run_id }}" + path: | + ${{ steps.spelling.outputs.internal_state_directory }} + + comment: + name: Comment + runs-on: ubuntu-latest + needs: spelling + permissions: + contents: write + pull-requests: write + if: always() && needs.spelling.result == 'failure' && needs.spelling.outputs.internal_state_directory + steps: + - name: checkout + uses: actions/checkout@v2 + - name: set up + run: | + mkdir /tmp/data + - name: retrieve-comment + uses: actions/download-artifact@v2 + with: + name: "check-spelling-comment-${{ github.run_id }}" + path: /tmp/data + - name: comment + uses: check-spelling/check-spelling@prerelease + with: + experimental_apply_changes_via_bot: 1 + custom_task: comment + internal_state_directory: /tmp/data + + update: + name: Update PR + permissions: + contents: write + pull-requests: write + runs-on: ubuntu-latest + if: ${{ + github.event_name == 'issue_comment' && + github.event.issue.pull_request && + contains(github.event.comment.body, '@check-spelling-bot apply') + }} + concurrency: + group: spelling-update-${{ github.event.issue.number }} + cancel-in-progress: false + steps: + - name: checkout + uses: actions/checkout@v2 + - name: check-spelling + uses: check-spelling/check-spelling@prerelease + with: + experimental_apply_changes_via_bot: 1 -- cgit v1.2.3-70-g09d2 From 29b344a7102a2fe427d5ea6bcde4044898be1112 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 7 Dec 2021 18:04:33 +0100 Subject: chore: update security docs and link to huntr.dev --- README.md | 1 + SECURITY.md | 12 +++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 5712c1701..310283e92 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twi [![Follow @ohmyzsh](https://img.shields.io/twitter/follow/ohmyzsh?label=Follow+@ohmyzsh&style=flat)](https://twitter.com/intent/follow?screen_name=ohmyzsh) [![Discord server](https://img.shields.io/discord/642496866407284746)](https://discord.gg/ohmyzsh) [![Gitpod ready](https://img.shields.io/badge/Gitpod-ready-blue?logo=gitpod)](https://gitpod.io/#https://github.com/ohmyzsh/ohmyzsh) +[![huntr.dev](https://cdn.huntr.dev/huntr_security_badge_mono.svg)](https://huntr.dev/bounties/disclose/?utm_campaign=ohmyzsh%2Fohmyzsh&utm_medium=social&utm_source=github&target=https%3A%2F%2Fgithub.com%2Fohmyzsh%2Fohmyzsh) ## Getting Started diff --git a/SECURITY.md b/SECURITY.md index cda53379f..7e5c8eed0 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -3,7 +3,8 @@ ## Supported Versions At the moment Oh My Zsh only considers the very latest commit to be supported. -We combine that with our fast response to incidents, so risk is minimized. +We combine that with our fast response to incidents and the automated updates +to minimize the time between vulnerability publication and patch release. | Version | Supported | |:-------------- |:------------------ | @@ -14,9 +15,10 @@ In the near future we will introduce versioning, so expect this section to chang ## Reporting a Vulnerability -If you find a vulnerability, email all the maintainers directly at: +**Do not submit an issue or pull request**: this might reveal the vulnerability. -- Robby: robby [at] planetargon.com -- Marc: hello [at] mcornella.com +Instead, you should email the maintainers directly at: [**security@ohmyz.sh**](mailto:security@ohmyz.sh). -**Do not open an issue or Pull Request directly**, because it might reveal the vulnerability. +We will deal with the vulnerability privately and submit a patch as soon as possible. + +You can also submit your vulnerability report to [huntr.dev](https://huntr.dev/bounties/disclose/?utm_campaign=ohmyzsh%2Fohmyzsh&utm_medium=social&utm_source=github&target=https%3A%2F%2Fgithub.com%2Fohmyzsh%2Fohmyzsh) and see if you can get a bounty reward. -- cgit v1.2.3-70-g09d2 From 44d8edea05d940ceb593a025e27466e7c8727f03 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 7 Dec 2021 12:09:34 -0500 Subject: ci(spelling): automatically accept aliased commands (#10475) Co-authored-by: Josh Soref --- .github/actions/spelling/expect.txt | 3 +++ .github/workflows/spelling.yml | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt index fc764f57a..76e9fdf31 100644 --- a/.github/actions/spelling/expect.txt +++ b/.github/actions/spelling/expect.txt @@ -22,6 +22,7 @@ acr acroread acs acsc +acss acsp actionformats Adamantium @@ -1459,6 +1460,7 @@ gpr gpristine gpsup gpu +gpus gpv gradle gradlew @@ -2396,6 +2398,7 @@ mirrorlist mixin mkcd mkdir +mkdirs mktag mktemp mktree diff --git a/.github/workflows/spelling.yml b/.github/workflows/spelling.yml index 18a302e3c..946d411d1 100644 --- a/.github/workflows/spelling.yml +++ b/.github/workflows/spelling.yml @@ -30,6 +30,14 @@ jobs: - name: checkout if: github.event_name == 'push' uses: actions/checkout@v2 + - name: find aliases + run: | + for a in $(git ls-files|grep '\.zsh$'); do + echo "-- $a" + if [ -s "$a" ]; then + perl -ne 'next unless s/^alias ([A-Za-z]{3,})=.*/$1/;print' "$a" | tee -a .github/actions/spelling/allow.txt + fi + done; - name: check-spelling id: spelling uses: check-spelling/check-spelling@prerelease -- cgit v1.2.3-70-g09d2 From 90e53bcc6aba67e9e27c4e6961cb4a0eec34d436 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 7 Dec 2021 19:37:28 +0100 Subject: ci(spelling): turn off check-spelling action temporarily --- .github/workflows/spelling.yml | 103 ----------------------------------------- 1 file changed, 103 deletions(-) delete mode 100644 .github/workflows/spelling.yml diff --git a/.github/workflows/spelling.yml b/.github/workflows/spelling.yml deleted file mode 100644 index 946d411d1..000000000 --- a/.github/workflows/spelling.yml +++ /dev/null @@ -1,103 +0,0 @@ -name: Spell checking -on: - push: - branches: ["**"] - tags-ignore: ["**"] - pull_request_target: - issue_comment: - types: [created] - -jobs: - spelling: - name: Spell checking - permissions: - contents: read - pull-requests: read - outputs: - internal_state_directory: ${{ steps.spelling.outputs.internal_state_directory }} - runs-on: ubuntu-latest - if: "contains(github.event_name, 'pull_request') || github.event_name == 'push'" - concurrency: - group: spelling-${{ github.event.pull_request.number || github.ref }} - # note: If you use only_check_changed_files, you do not want cancel-in-progress - cancel-in-progress: true - steps: - - name: checkout-merge - if: "contains(github.event_name, 'pull_request')" - uses: actions/checkout@v2 - with: - ref: refs/pull/${{github.event.pull_request.number}}/merge - - name: checkout - if: github.event_name == 'push' - uses: actions/checkout@v2 - - name: find aliases - run: | - for a in $(git ls-files|grep '\.zsh$'); do - echo "-- $a" - if [ -s "$a" ]; then - perl -ne 'next unless s/^alias ([A-Za-z]{3,})=.*/$1/;print' "$a" | tee -a .github/actions/spelling/allow.txt - fi - done; - - name: check-spelling - id: spelling - uses: check-spelling/check-spelling@prerelease - with: - experimental_apply_changes_via_bot: 1 - suppress_push_for_open_pull_request: 1 - post_comment: 0 - - name: store-comment - if: failure() - uses: actions/upload-artifact@v2 - with: - retention-days: 1 - name: "check-spelling-comment-${{ github.run_id }}" - path: | - ${{ steps.spelling.outputs.internal_state_directory }} - - comment: - name: Comment - runs-on: ubuntu-latest - needs: spelling - permissions: - contents: write - pull-requests: write - if: always() && needs.spelling.result == 'failure' && needs.spelling.outputs.internal_state_directory - steps: - - name: checkout - uses: actions/checkout@v2 - - name: set up - run: | - mkdir /tmp/data - - name: retrieve-comment - uses: actions/download-artifact@v2 - with: - name: "check-spelling-comment-${{ github.run_id }}" - path: /tmp/data - - name: comment - uses: check-spelling/check-spelling@prerelease - with: - experimental_apply_changes_via_bot: 1 - custom_task: comment - internal_state_directory: /tmp/data - - update: - name: Update PR - permissions: - contents: write - pull-requests: write - runs-on: ubuntu-latest - if: ${{ - github.event_name == 'issue_comment' && - github.event.issue.pull_request && - contains(github.event.comment.body, '@check-spelling-bot apply') - }} - concurrency: - group: spelling-update-${{ github.event.issue.number }} - cancel-in-progress: false - steps: - - name: checkout - uses: actions/checkout@v2 - - name: check-spelling - uses: check-spelling/check-spelling@prerelease - with: - experimental_apply_changes_via_bot: 1 -- cgit v1.2.3-70-g09d2 From 5b987e59d0fce1a74bcfd51750c6f52d7c29c647 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 7 Dec 2021 20:15:38 +0100 Subject: chore: add ohmyzsh GitHub Sponsors to FUNDING.yml --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index c44bb2475..484a8cf53 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,2 @@ -github: [robbyrussell, mcornella, larson-carter] +github: [ohmyzsh, robbyrussell, mcornella, larson-carter] open_collective: ohmyzsh -- cgit v1.2.3-70-g09d2 From dcf12ba8f3b31eead602c530a9fbfd5579c64630 Mon Sep 17 00:00:00 2001 From: Nicolas Cavigneaux Date: Fri, 16 Jan 2015 15:59:52 +0100 Subject: fix(mercurial): show author name in `hgsl` alias log alias (#3500) Closes #3500 --- plugins/mercurial/README.md | 43 +++++++++++++++++----------------- plugins/mercurial/mercurial.plugin.zsh | 2 +- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/plugins/mercurial/README.md b/plugins/mercurial/README.md index 4beee0a95..a362de4ce 100644 --- a/plugins/mercurial/README.md +++ b/plugins/mercurial/README.md @@ -11,27 +11,28 @@ plugins=(... mercurial) ## Aliases -| Alias | Command | -|--------|-------------------------------------------------------------------------------------------------------------| -| `hga` | `hg add` | -| `hgc` | `hg commit` | -| `hgca` | `hg commit --amend` | -| `hgb` | `hg branch` | -| `hgba` | `hg branches` | -| `hgbk` | `hg bookmarks` | -| `hgco` | `hg checkout` | -| `hgd` | `hg diff` | -| `hged` | `hg diffmerge` | -| `hgp` | `hg push` | -| `hgs` | `hg status` | -| `hgsl` | `hg log --limit 20 --template "{node|short} | {date|isodatesec} | {author|user}: {desc|strip|firstline}\n"` | -| `hgun` | `hg resolve --list` | -| `hgi` | `hg incoming` | -| `hgl` | `hg pull -u` | -| `hglr` | `hg pull --rebase` | -| `hgo` | `hg outgoing` | -| `hglg` | `hg log --stat -v` | -| `hglgp`| `hg log --stat -p -v` | +| Alias | Command | +| ------- | ------------------------------------------- | +| `hga` | `hg add` | +| `hgc` | `hg commit` | +| `hgca` | `hg commit --amend` | +| `hgb` | `hg branch` | +| `hgba` | `hg branches` | +| `hgbk` | `hg bookmarks` | +| `hgco` | `hg checkout` | +| `hgd` | `hg diff` | +| `hged` | `hg diffmerge` | +| `hgp` | `hg push` | +| `hgs` | `hg status` | +| `hgsl` | `hg log --limit 20 --template "