From 875a4553204679cc1e3023a7d0e0bf2cf7d60800 Mon Sep 17 00:00:00 2001 From: Monson Shao Date: Thu, 8 Sep 2022 01:03:45 +0800 Subject: [PATCH 001/441] perf: `zrecompile` the compdump file to speed up startup (#8802) --- oh-my-zsh.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 925ee46aa..d6ef97a07 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -67,7 +67,7 @@ fi fpath=("$ZSH/functions" "$ZSH/completions" $fpath) # Load all stock functions (from $fpath files) called below. -autoload -U compaudit compinit +autoload -U compaudit compinit zrecompile # Set ZSH_CUSTOM to the path where your custom config files # and plugins exists, or else we will use the default custom/ @@ -142,6 +142,9 @@ EOF fi unset zcompdump_revision zcompdump_fpath zcompdump_refresh +# zcompile the completion dump file if the .zwc is older or missing. +zrecompile -q -p "$ZSH_COMPDUMP" && rm -f "$ZSH_COMPDUMP.zwc.old" + # Load all of the config files in ~/oh-my-zsh that end in .zsh # TIP: Add files you don't want in git to .gitignore for config_file ("$ZSH"/lib/*.zsh); do From 18d2152798e15898f3c11a2fd3d8a59a62b4ac33 Mon Sep 17 00:00:00 2001 From: James Yeoman Date: Tue, 26 Apr 2022 11:37:42 +0100 Subject: [PATCH 002/441] feat(gcloud): support for official apt repo (#10889) Fixes #10888 Closes #10889 --- plugins/gcloud/gcloud.plugin.zsh | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/plugins/gcloud/gcloud.plugin.zsh b/plugins/gcloud/gcloud.plugin.zsh index 7368eb3a6..d43c62178 100644 --- a/plugins/gcloud/gcloud.plugin.zsh +++ b/plugins/gcloud/gcloud.plugin.zsh @@ -10,7 +10,8 @@ if [[ -z "${CLOUDSDK_HOME}" ]]; then "/opt/homebrew/Caskroom/google-cloud-sdk/latest/google-cloud-sdk" "/usr/share/google-cloud-sdk" "/snap/google-cloud-sdk/current" - "/usr/lib64/google-cloud-sdk/" + "/usr/lib/google-cloud-sdk" + "/usr/lib64/google-cloud-sdk" "/opt/google-cloud-sdk" ) @@ -20,15 +21,28 @@ if [[ -z "${CLOUDSDK_HOME}" ]]; then break fi done + unset search_locations gcloud_sdk_location fi if (( ${+CLOUDSDK_HOME} )); then + # Only source this if gcloud isn't already on the path if (( ! $+commands[gcloud] )); then - # Only source this if GCloud isn't already on the path if [[ -f "${CLOUDSDK_HOME}/path.zsh.inc" ]]; then source "${CLOUDSDK_HOME}/path.zsh.inc" fi fi - source "${CLOUDSDK_HOME}/completion.zsh.inc" + + # Look for completion file in different paths + for comp_file ( + "${CLOUDSDK_HOME}/completion.zsh.inc" # default location + "/usr/share/google-cloud-sdk/completion.zsh.inc" # apt-based location + ); do + if [[ -f "${comp_file}" ]]; then + source "${comp_file}" + break + fi + done + unset comp_file + export CLOUDSDK_HOME fi From dfa88b4d369f6afc7205af0b399a0ef05a4bef2e Mon Sep 17 00:00:00 2001 From: ajilty Date: Thu, 25 Aug 2022 22:02:35 -0400 Subject: [PATCH 003/441] feat(gcloud): support macports installation path (#11133) Closes #11133 --- plugins/gcloud/gcloud.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/gcloud/gcloud.plugin.zsh b/plugins/gcloud/gcloud.plugin.zsh index d43c62178..9be9d68aa 100644 --- a/plugins/gcloud/gcloud.plugin.zsh +++ b/plugins/gcloud/gcloud.plugin.zsh @@ -13,6 +13,7 @@ if [[ -z "${CLOUDSDK_HOME}" ]]; then "/usr/lib/google-cloud-sdk" "/usr/lib64/google-cloud-sdk" "/opt/google-cloud-sdk" + "/opt/local/libexec/google-cloud-sdk" ) for gcloud_sdk_location in $search_locations; do From 7dcabbe6826073ef6069c8a4b6f9a943f00d2df0 Mon Sep 17 00:00:00 2001 From: Giovanni Squillero Date: Sat, 10 Sep 2022 16:57:23 +0200 Subject: [PATCH 004/441] chore(init): ignore any aliases when running `rm` (#11156) --- oh-my-zsh.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index d6ef97a07..29d39ca23 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -143,7 +143,7 @@ fi unset zcompdump_revision zcompdump_fpath zcompdump_refresh # zcompile the completion dump file if the .zwc is older or missing. -zrecompile -q -p "$ZSH_COMPDUMP" && rm -f "$ZSH_COMPDUMP.zwc.old" +zrecompile -q -p "$ZSH_COMPDUMP" && command rm -f "$ZSH_COMPDUMP.zwc.old" # Load all of the config files in ~/oh-my-zsh that end in .zsh # TIP: Add files you don't want in git to .gitignore From 74235e8aea0c3447871791ed56e7d0131586a057 Mon Sep 17 00:00:00 2001 From: Preet Patel Date: Tue, 4 Oct 2022 03:22:18 +1300 Subject: [PATCH 005/441] feat(react-native): add aliases for 2021 and 2022 iOS devices (#11191) --- plugins/react-native/README.md | 139 ++++++++++--------- plugins/react-native/react-native.plugin.zsh | 10 +- 2 files changed, 85 insertions(+), 64 deletions(-) diff --git a/plugins/react-native/README.md b/plugins/react-native/README.md index d0a53b8d7..88fa233b7 100644 --- a/plugins/react-native/README.md +++ b/plugins/react-native/README.md @@ -11,66 +11,79 @@ plugins=(... react-native) ## Aliases -| Alias | React Native command | -| :------------ | :------------------------------------------------- | -| **rn** | `react-native` | -| **rns** | `react-native start` | -| **rnlink** | `react-native link` | -| _Logging_ | | -| **rnland** | `react-native log-android` | -| **rnlios** | `react-native log-ios` | -| _App Testing_ | | -| **rnand** | `react-native run-android` | -| **rnios** | `react-native run-ios` | -| _iPhone_ | | -| **rnios4s** | `react-native run-ios --simulator "iPhone 4s"` | -| **rnios5** | `react-native run-ios --simulator "iPhone 5"` | -| **rnios5s** | `react-native run-ios --simulator "iPhone 5s"` | -| **rnios6** | `react-native run-ios --simulator "iPhone 6"` | -| **rnios6s** | `react-native run-ios --simulator "iPhone 6s"` | -| **rnios6p** | `react-native run-ios --simulator "iPhone 6 Plus"` | -| **rnios6sp** | `react-native run-ios --simulator "iPhone 6s Plus"` | -| **rnios7** | `react-native run-ios --simulator "iPhone 7"` | -| **rnios7p** | `react-native run-ios --simulator "iPhone 7 Plus"` | -| **rnios8** | `react-native run-ios --simulator "iPhone 8"` | -| **rnios8p** | `react-native run-ios --simulator "iPhone 8 Plus"` | -| **rniosse** | `react-native run-ios --simulator "iPhone SE"` | -| **rniosx** | `react-native run-ios --simulator "iPhone X"` | -| **rniosxs** | `react-native run-ios --simulator "iPhone Xs"` | -| **rniosxsm** | `react-native run-ios --simulator "iPhone Xs Max"` | -| **rniosxr** | `react-native run-ios --simulator "iPhone Xʀ"` | -| **rnios11** | `react-native run-ios --simulator "iPhone 11"` | -| **rnios11p** | `react-native run-ios --simulator "iPhone 11 Pro"` | -| **rnios11pm** | `react-native run-ios --simulator "iPhone 11 Pro Max"` | -| _iPad_ | | -| **rnipad2** | `react-native run-ios --simulator "iPad 2"` | -| **rnipad5** | `react-native run-ios --simulator "iPad (5th generation)"` | -| **rnipad6** | `react-native run-ios --simulator "iPad (6th generation)"` | -| **rnipadr** | `react-native run-ios --simulator "iPad Retina"` | -| **rnipada** | `react-native run-ios --simulator "iPad Air"` | -| **rnipada2** | `react-native run-ios --simulator "iPad Air 2"` | -| **rnipada3** | `react-native run-ios --simulator "iPad Air (3rd generation)"` | -| **rnipadm2** | `react-native run-ios --simulator "iPad mini 2"` | -| **rnipadm3** | `react-native run-ios --simulator "iPad mini 3"` | -| **rnipadm4** | `react-native run-ios --simulator "iPad mini 4"` | -| **rnipadm5** | `react-native run-ios --simulator "iPad mini (5th generation)"` | -| **rnipadp9** | `react-native run-ios --simulator "iPad Pro (9.7-inch)"` | -| **rnipadp12** | `react-native run-ios --simulator "iPad Pro (12.9-inch)"` | -| **rnipadp122** | `react-native run-ios --simulator "iPad Pro (12.9-inch) (2nd generation)"` | -| **rnipadp10** | `react-native run-ios --simulator "iPad Pro (10.5-inch)"` | -| **rnipad11** | `react-native run-ios --simulator "iPad Pro (11-inch)"` | -| **rnipad123** | `react-native run-ios --simulator "iPad Pro (12.9-inch) (3rd generation)"` | -| _Apple TV_ | | -| **rnatv** | `react-native run-ios --simulator "Apple TV"` | -| **rnatv4k** | `react-native run-ios --simulator "Apple TV 4K"` | -| **rnatv4k1080**| `react-native run-ios --simulator "Apple TV 4K (at 1080p)"` | -| **rnipad123** | `react-native run-ios --simulator "iPad Pro (12.9-inch) (3rd generation)"` | -| _Apple Watch_ | | -| **rnaw38** | `react-native run-ios --simulator "Apple Watch - 38mm"` | -| **rnaw42** | `react-native run-ios --simulator "Apple Watch - 42mm"` | -| **rnaws238** | `react-native run-ios --simulator "Apple Watch Series 2 - 38mm"` | -| **rnaws242** | `react-native run-ios --simulator "Apple Watch Series 2 - 42mm"` | -| **rnaws338** | `react-native run-ios --simulator "Apple Watch Series 3 - 38mm"` | -| **rnaws342** | `react-native run-ios --simulator "Apple Watch Series 3 - 42mm"` | -| **rnaws440** | `react-native run-ios --simulator "Apple Watch Series 4 - 40mm"` | -| **rnaws444** | `react-native run-ios --simulator "Apple Watch Series 4 - 44mm"` | +| Alias | React Native command | +| :------------ | :----------------------------------------------------- | +| **rn** | `react-native` | +| **rns** | `react-native start` | +| **rnlink** | `react-native link` | +| _Logging_ | | +| **rnland** | `react-native log-android` | +| **rnlios** | `react-native log-ios` | +| _App Testing_ | | +| **rnand** | `react-native run-android` | +| **rnios** | `react-native run-ios` | +| _iPhone_ | | +| **rnios4s** | `react-native run-ios --simulator "iPhone 4s"` | +| **rnios5** | `react-native run-ios --simulator "iPhone 5"` | +| **rnios5s** | `react-native run-ios --simulator "iPhone 5s"` | +| **rnios6** | `react-native run-ios --simulator "iPhone 6"` | +| **rnios6s** | `react-native run-ios --simulator "iPhone 6s"` | +| **rnios6p** | `react-native run-ios --simulator "iPhone 6 Plus"` | +| **rnios6sp** | `react-native run-ios --simulator "iPhone 6s Plus"` | +| **rnios7** | `react-native run-ios --simulator "iPhone 7"` | +| **rnios7p** | `react-native run-ios --simulator "iPhone 7 Plus"` | +| **rnios8** | `react-native run-ios --simulator "iPhone 8"` | +| **rnios8p** | `react-native run-ios --simulator "iPhone 8 Plus"` | +| **rniosse** | `react-native run-ios --simulator "iPhone SE"` | +| **rniosx** | `react-native run-ios --simulator "iPhone X"` | +| **rniosxs** | `react-native run-ios --simulator "iPhone Xs"` | +| **rniosxsm** | `react-native run-ios --simulator "iPhone Xs Max"` | +| **rniosxr** | `react-native run-ios --simulator "iPhone Xʀ"` | +| **rnios11** | `react-native run-ios --simulator "iPhone 11"` | +| **rnios11p** | `react-native run-ios --simulator "iPhone 11 Pro"` | +| **rnios11pm** | `react-native run-ios --simulator "iPhone 11 Pro Max"` | +| **rnios12** | `react-native run-ios --simulator "iPhone 12"` | +| **rnios12m** | `react-native run-ios --simulator "iPhone 12 mini"` | +| **rnios12p** | `react-native run-ios --simulator "iPhone 12 Pro"` | +| **rnios12pm** | `react-native run-ios --simulator "iPhone 12 Pro Max"` | +| **rnios13** | `react-native run-ios --simulator "iPhone 13"` | +| **rnios13m** | `react-native run-ios --simulator "iPhone 13 mini"` | +| **rnios13p** | `react-native run-ios --simulator "iPhone 13 Pro"` | +| **rnios13pm** | `react-native run-ios --simulator "iPhone 13 Pro Max"` | +| **rnios14** | `react-native run-ios --simulator "iPhone 14"` | +| **rnios14pl** | `react-native run-ios --simulator "iPhone 14 Plus"` | +| **rnios14p** | `react-native run-ios --simulator "iPhone 14 Pro"` | +| **rnios14pm** | `react-native run-ios --simulator "iPhone 14 Pro Max"` | + +| _iPad_ | | +| **rnipad2** | `react-native run-ios --simulator "iPad 2"` | +| **rnipad5** | `react-native run-ios --simulator "iPad (5th generation)"` | +| **rnipad6** | `react-native run-ios --simulator "iPad (6th generation)"` | +| **rnipadr** | `react-native run-ios --simulator "iPad Retina"` | +| **rnipada** | `react-native run-ios --simulator "iPad Air"` | +| **rnipada2** | `react-native run-ios --simulator "iPad Air 2"` | +| **rnipada3** | `react-native run-ios --simulator "iPad Air (3rd generation)"` | +| **rnipadm2** | `react-native run-ios --simulator "iPad mini 2"` | +| **rnipadm3** | `react-native run-ios --simulator "iPad mini 3"` | +| **rnipadm4** | `react-native run-ios --simulator "iPad mini 4"` | +| **rnipadm5** | `react-native run-ios --simulator "iPad mini (5th generation)"` | +| **rnipadp9** | `react-native run-ios --simulator "iPad Pro (9.7-inch)"` | +| **rnipadp12** | `react-native run-ios --simulator "iPad Pro (12.9-inch)"` | +| **rnipadp122** | `react-native run-ios --simulator "iPad Pro (12.9-inch) (2nd generation)"` | +| **rnipadp10** | `react-native run-ios --simulator "iPad Pro (10.5-inch)"` | +| **rnipad11** | `react-native run-ios --simulator "iPad Pro (11-inch)"` | +| **rnipad123** | `react-native run-ios --simulator "iPad Pro (12.9-inch) (3rd generation)"` | +| _Apple TV_ | | +| **rnatv** | `react-native run-ios --simulator "Apple TV"` | +| **rnatv4k** | `react-native run-ios --simulator "Apple TV 4K"` | +| **rnatv4k1080**| `react-native run-ios --simulator "Apple TV 4K (at 1080p)"` | +| **rnipad123** | `react-native run-ios --simulator "iPad Pro (12.9-inch) (3rd generation)"` | +| _Apple Watch_ | | +| **rnaw38** | `react-native run-ios --simulator "Apple Watch - 38mm"` | +| **rnaw42** | `react-native run-ios --simulator "Apple Watch - 42mm"` | +| **rnaws238** | `react-native run-ios --simulator "Apple Watch Series 2 - 38mm"` | +| **rnaws242** | `react-native run-ios --simulator "Apple Watch Series 2 - 42mm"` | +| **rnaws338** | `react-native run-ios --simulator "Apple Watch Series 3 - 38mm"` | +| **rnaws342** | `react-native run-ios --simulator "Apple Watch Series 3 - 42mm"` | +| **rnaws440** | `react-native run-ios --simulator "Apple Watch Series 4 - 40mm"` | +| **rnaws444** | `react-native run-ios --simulator "Apple Watch Series 4 - 44mm"` | diff --git a/plugins/react-native/react-native.plugin.zsh b/plugins/react-native/react-native.plugin.zsh index 8323c27bd..afeaab4fd 100644 --- a/plugins/react-native/react-native.plugin.zsh +++ b/plugins/react-native/react-native.plugin.zsh @@ -28,9 +28,17 @@ alias rnios11='react-native run-ios --simulator "iPhone 11"' alias rnios11p='react-native run-ios --simulator "iPhone 11 Pro"' alias rnios11pm='react-native run-ios --simulator "iPhone 11 Pro Max"' alias rnios12='react-native run-ios --simulator "iPhone 12"' +alias rnios12m='react-native run-ios --simulator "iPhone 12 mini"' alias rnios12p='react-native run-ios --simulator "iPhone 12 Pro"' alias rnios12pm='react-native run-ios --simulator "iPhone 12 Pro Max"' - +alias rnios13='react-native run-ios --simulator "iPhone 13"' +alias rnios13m='react-native run-ios --simulator "iPhone 13 mini"' +alias rnios13p='react-native run-ios --simulator "iPhone 13 Pro"' +alias rnios13pm='react-native run-ios --simulator "iPhone 13 Pro Max"' +alias rnios14='react-native run-ios --simulator "iPhone 14"' +alias rnios14pl='react-native run-ios --simulator "iPhone 14 Plus"' +alias rnios14p='react-native run-ios --simulator "iPhone 14 Pro"' +alias rnios14pm='react-native run-ios --simulator "iPhone 14 Pro Max"' # iPad alias rnipad2='react-native run-ios --simulator "iPad 2"' From 23f3ded92d07184b3611d08c62d7b474a76c956f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 3 Oct 2022 16:24:15 +0200 Subject: [PATCH 006/441] chore(react-native): fix README table alignment --- plugins/react-native/README.md | 151 ++++++++++++++++----------------- 1 file changed, 75 insertions(+), 76 deletions(-) diff --git a/plugins/react-native/README.md b/plugins/react-native/README.md index 88fa233b7..807c063a5 100644 --- a/plugins/react-native/README.md +++ b/plugins/react-native/README.md @@ -11,79 +11,78 @@ plugins=(... react-native) ## Aliases -| Alias | React Native command | -| :------------ | :----------------------------------------------------- | -| **rn** | `react-native` | -| **rns** | `react-native start` | -| **rnlink** | `react-native link` | -| _Logging_ | | -| **rnland** | `react-native log-android` | -| **rnlios** | `react-native log-ios` | -| _App Testing_ | | -| **rnand** | `react-native run-android` | -| **rnios** | `react-native run-ios` | -| _iPhone_ | | -| **rnios4s** | `react-native run-ios --simulator "iPhone 4s"` | -| **rnios5** | `react-native run-ios --simulator "iPhone 5"` | -| **rnios5s** | `react-native run-ios --simulator "iPhone 5s"` | -| **rnios6** | `react-native run-ios --simulator "iPhone 6"` | -| **rnios6s** | `react-native run-ios --simulator "iPhone 6s"` | -| **rnios6p** | `react-native run-ios --simulator "iPhone 6 Plus"` | -| **rnios6sp** | `react-native run-ios --simulator "iPhone 6s Plus"` | -| **rnios7** | `react-native run-ios --simulator "iPhone 7"` | -| **rnios7p** | `react-native run-ios --simulator "iPhone 7 Plus"` | -| **rnios8** | `react-native run-ios --simulator "iPhone 8"` | -| **rnios8p** | `react-native run-ios --simulator "iPhone 8 Plus"` | -| **rniosse** | `react-native run-ios --simulator "iPhone SE"` | -| **rniosx** | `react-native run-ios --simulator "iPhone X"` | -| **rniosxs** | `react-native run-ios --simulator "iPhone Xs"` | -| **rniosxsm** | `react-native run-ios --simulator "iPhone Xs Max"` | -| **rniosxr** | `react-native run-ios --simulator "iPhone Xʀ"` | -| **rnios11** | `react-native run-ios --simulator "iPhone 11"` | -| **rnios11p** | `react-native run-ios --simulator "iPhone 11 Pro"` | -| **rnios11pm** | `react-native run-ios --simulator "iPhone 11 Pro Max"` | -| **rnios12** | `react-native run-ios --simulator "iPhone 12"` | -| **rnios12m** | `react-native run-ios --simulator "iPhone 12 mini"` | -| **rnios12p** | `react-native run-ios --simulator "iPhone 12 Pro"` | -| **rnios12pm** | `react-native run-ios --simulator "iPhone 12 Pro Max"` | -| **rnios13** | `react-native run-ios --simulator "iPhone 13"` | -| **rnios13m** | `react-native run-ios --simulator "iPhone 13 mini"` | -| **rnios13p** | `react-native run-ios --simulator "iPhone 13 Pro"` | -| **rnios13pm** | `react-native run-ios --simulator "iPhone 13 Pro Max"` | -| **rnios14** | `react-native run-ios --simulator "iPhone 14"` | -| **rnios14pl** | `react-native run-ios --simulator "iPhone 14 Plus"` | -| **rnios14p** | `react-native run-ios --simulator "iPhone 14 Pro"` | -| **rnios14pm** | `react-native run-ios --simulator "iPhone 14 Pro Max"` | - -| _iPad_ | | -| **rnipad2** | `react-native run-ios --simulator "iPad 2"` | -| **rnipad5** | `react-native run-ios --simulator "iPad (5th generation)"` | -| **rnipad6** | `react-native run-ios --simulator "iPad (6th generation)"` | -| **rnipadr** | `react-native run-ios --simulator "iPad Retina"` | -| **rnipada** | `react-native run-ios --simulator "iPad Air"` | -| **rnipada2** | `react-native run-ios --simulator "iPad Air 2"` | -| **rnipada3** | `react-native run-ios --simulator "iPad Air (3rd generation)"` | -| **rnipadm2** | `react-native run-ios --simulator "iPad mini 2"` | -| **rnipadm3** | `react-native run-ios --simulator "iPad mini 3"` | -| **rnipadm4** | `react-native run-ios --simulator "iPad mini 4"` | -| **rnipadm5** | `react-native run-ios --simulator "iPad mini (5th generation)"` | -| **rnipadp9** | `react-native run-ios --simulator "iPad Pro (9.7-inch)"` | -| **rnipadp12** | `react-native run-ios --simulator "iPad Pro (12.9-inch)"` | -| **rnipadp122** | `react-native run-ios --simulator "iPad Pro (12.9-inch) (2nd generation)"` | -| **rnipadp10** | `react-native run-ios --simulator "iPad Pro (10.5-inch)"` | -| **rnipad11** | `react-native run-ios --simulator "iPad Pro (11-inch)"` | -| **rnipad123** | `react-native run-ios --simulator "iPad Pro (12.9-inch) (3rd generation)"` | -| _Apple TV_ | | -| **rnatv** | `react-native run-ios --simulator "Apple TV"` | -| **rnatv4k** | `react-native run-ios --simulator "Apple TV 4K"` | -| **rnatv4k1080**| `react-native run-ios --simulator "Apple TV 4K (at 1080p)"` | -| **rnipad123** | `react-native run-ios --simulator "iPad Pro (12.9-inch) (3rd generation)"` | -| _Apple Watch_ | | -| **rnaw38** | `react-native run-ios --simulator "Apple Watch - 38mm"` | -| **rnaw42** | `react-native run-ios --simulator "Apple Watch - 42mm"` | -| **rnaws238** | `react-native run-ios --simulator "Apple Watch Series 2 - 38mm"` | -| **rnaws242** | `react-native run-ios --simulator "Apple Watch Series 2 - 42mm"` | -| **rnaws338** | `react-native run-ios --simulator "Apple Watch Series 3 - 38mm"` | -| **rnaws342** | `react-native run-ios --simulator "Apple Watch Series 3 - 42mm"` | -| **rnaws440** | `react-native run-ios --simulator "Apple Watch Series 4 - 40mm"` | -| **rnaws444** | `react-native run-ios --simulator "Apple Watch Series 4 - 44mm"` | +| Alias | React Native command | +| :-------------- | :------------------------------------------------------------------------- | +| **rn** | `react-native` | +| **rns** | `react-native start` | +| **rnlink** | `react-native link` | +| _Logging_ | | +| **rnland** | `react-native log-android` | +| **rnlios** | `react-native log-ios` | +| _App Testing_ | | +| **rnand** | `react-native run-android` | +| **rnios** | `react-native run-ios` | +| _iPhone_ | | +| **rnios4s** | `react-native run-ios --simulator "iPhone 4s"` | +| **rnios5** | `react-native run-ios --simulator "iPhone 5"` | +| **rnios5s** | `react-native run-ios --simulator "iPhone 5s"` | +| **rnios6** | `react-native run-ios --simulator "iPhone 6"` | +| **rnios6s** | `react-native run-ios --simulator "iPhone 6s"` | +| **rnios6p** | `react-native run-ios --simulator "iPhone 6 Plus"` | +| **rnios6sp** | `react-native run-ios --simulator "iPhone 6s Plus"` | +| **rnios7** | `react-native run-ios --simulator "iPhone 7"` | +| **rnios7p** | `react-native run-ios --simulator "iPhone 7 Plus"` | +| **rnios8** | `react-native run-ios --simulator "iPhone 8"` | +| **rnios8p** | `react-native run-ios --simulator "iPhone 8 Plus"` | +| **rniosse** | `react-native run-ios --simulator "iPhone SE"` | +| **rniosx** | `react-native run-ios --simulator "iPhone X"` | +| **rniosxs** | `react-native run-ios --simulator "iPhone Xs"` | +| **rniosxsm** | `react-native run-ios --simulator "iPhone Xs Max"` | +| **rniosxr** | `react-native run-ios --simulator "iPhone Xʀ"` | +| **rnios11** | `react-native run-ios --simulator "iPhone 11"` | +| **rnios11p** | `react-native run-ios --simulator "iPhone 11 Pro"` | +| **rnios11pm** | `react-native run-ios --simulator "iPhone 11 Pro Max"` | +| **rnios12** | `react-native run-ios --simulator "iPhone 12"` | +| **rnios12m** | `react-native run-ios --simulator "iPhone 12 mini"` | +| **rnios12p** | `react-native run-ios --simulator "iPhone 12 Pro"` | +| **rnios12pm** | `react-native run-ios --simulator "iPhone 12 Pro Max"` | +| **rnios13** | `react-native run-ios --simulator "iPhone 13"` | +| **rnios13m** | `react-native run-ios --simulator "iPhone 13 mini"` | +| **rnios13p** | `react-native run-ios --simulator "iPhone 13 Pro"` | +| **rnios13pm** | `react-native run-ios --simulator "iPhone 13 Pro Max"` | +| **rnios14** | `react-native run-ios --simulator "iPhone 14"` | +| **rnios14pl** | `react-native run-ios --simulator "iPhone 14 Plus"` | +| **rnios14p** | `react-native run-ios --simulator "iPhone 14 Pro"` | +| **rnios14pm** | `react-native run-ios --simulator "iPhone 14 Pro Max"` | +| _iPad_ | | +| **rnipad2** | `react-native run-ios --simulator "iPad 2"` | +| **rnipad5** | `react-native run-ios --simulator "iPad (5th generation)"` | +| **rnipad6** | `react-native run-ios --simulator "iPad (6th generation)"` | +| **rnipadr** | `react-native run-ios --simulator "iPad Retina"` | +| **rnipada** | `react-native run-ios --simulator "iPad Air"` | +| **rnipada2** | `react-native run-ios --simulator "iPad Air 2"` | +| **rnipada3** | `react-native run-ios --simulator "iPad Air (3rd generation)"` | +| **rnipadm2** | `react-native run-ios --simulator "iPad mini 2"` | +| **rnipadm3** | `react-native run-ios --simulator "iPad mini 3"` | +| **rnipadm4** | `react-native run-ios --simulator "iPad mini 4"` | +| **rnipadm5** | `react-native run-ios --simulator "iPad mini (5th generation)"` | +| **rnipadp9** | `react-native run-ios --simulator "iPad Pro (9.7-inch)"` | +| **rnipadp12** | `react-native run-ios --simulator "iPad Pro (12.9-inch)"` | +| **rnipadp122** | `react-native run-ios --simulator "iPad Pro (12.9-inch) (2nd generation)"` | +| **rnipadp10** | `react-native run-ios --simulator "iPad Pro (10.5-inch)"` | +| **rnipad11** | `react-native run-ios --simulator "iPad Pro (11-inch)"` | +| **rnipad123** | `react-native run-ios --simulator "iPad Pro (12.9-inch) (3rd generation)"` | +| _Apple TV_ | | +| **rnatv** | `react-native run-ios --simulator "Apple TV"` | +| **rnatv4k** | `react-native run-ios --simulator "Apple TV 4K"` | +| **rnatv4k1080** | `react-native run-ios --simulator "Apple TV 4K (at 1080p)"` | +| **rnipad123** | `react-native run-ios --simulator "iPad Pro (12.9-inch) (3rd generation)"` | +| _Apple Watch_ | | +| **rnaw38** | `react-native run-ios --simulator "Apple Watch - 38mm"` | +| **rnaw42** | `react-native run-ios --simulator "Apple Watch - 42mm"` | +| **rnaws238** | `react-native run-ios --simulator "Apple Watch Series 2 - 38mm"` | +| **rnaws242** | `react-native run-ios --simulator "Apple Watch Series 2 - 42mm"` | +| **rnaws338** | `react-native run-ios --simulator "Apple Watch Series 3 - 38mm"` | +| **rnaws342** | `react-native run-ios --simulator "Apple Watch Series 3 - 42mm"` | +| **rnaws440** | `react-native run-ios --simulator "Apple Watch Series 4 - 40mm"` | +| **rnaws444** | `react-native run-ios --simulator "Apple Watch Series 4 - 44mm"` | From 1c879f67b4380f0705ee1bc578d5aab53bf192a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 3 Oct 2022 16:58:42 +0200 Subject: [PATCH 007/441] fix(ssh-agent): silence `ssh-add` if quiet mode is enabled (#11201) Fixes #11201 --- plugins/ssh-agent/ssh-agent.plugin.zsh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/ssh-agent/ssh-agent.plugin.zsh b/plugins/ssh-agent/ssh-agent.plugin.zsh index 0d6a35b35..78ac46b13 100644 --- a/plugins/ssh-agent/ssh-agent.plugin.zsh +++ b/plugins/ssh-agent/ssh-agent.plugin.zsh @@ -72,6 +72,9 @@ function _add_identities() { local args zstyle -a :omz:plugins:ssh-agent ssh-add-args args + # if ssh-agent quiet mode, pass -q to ssh-add + zstyle -t :omz:plugins:ssh-agent quiet && args=(-q $args) + # use user specified helper to ask for password (ksshaskpass, etc) local helper zstyle -s :omz:plugins:ssh-agent helper helper From e0e22d112013aee22635b6afe4c2c9d1bf88cbf0 Mon Sep 17 00:00:00 2001 From: George Rodrigues Date: Mon, 3 Oct 2022 12:03:53 -0300 Subject: [PATCH 008/441] chore(docs): fix some typos (#11211) --- plugins/emoji/update_emoji.py | 4 ++-- plugins/lpass/_lpass | 2 +- plugins/ng/_ng | 2 +- plugins/pm2/_pm2 | 2 +- plugins/salt/_salt | 2 +- plugins/swiftpm/_swift | 2 +- plugins/systemadmin/README.md | 2 +- plugins/terraform/_terraform | 2 +- tools/require_tool.sh | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/plugins/emoji/update_emoji.py b/plugins/emoji/update_emoji.py index eb945b9ef..18b3c060d 100644 --- a/plugins/emoji/update_emoji.py +++ b/plugins/emoji/update_emoji.py @@ -56,7 +56,7 @@ typeset -gAH emoji_groups # def country_iso(_all_names, _omz_name): # """ Using the external library country_converter, -# this funciton can detect the ISO2 and ISO3 codes +# this function can detect the ISO2 and ISO3 codes # of the country. It takes as argument the array # with all the names of the emoji, and returns that array.""" # omz_no_underscore = re.sub(r'_', r' ', _omz_name) @@ -96,7 +96,7 @@ def name_to_omz(_name, _group, _subgroup, _status): # Special treatment by status # Enables us to have every emoji combination, # even the one that are not officially sanctionned - # and are implemeted by, say, only one vendor + # and are implemented by, say, only one vendor if _status == "unqualified": shortname += "_unqualified" elif _status == "minimally-qualified": diff --git a/plugins/lpass/_lpass b/plugins/lpass/_lpass index e6193a22d..621a7bcd7 100644 --- a/plugins/lpass/_lpass +++ b/plugins/lpass/_lpass @@ -106,7 +106,7 @@ _lpass() { generic_options+=('--color=[Color: auto | never | always]') fi if [ "$has_interactive" -eq 1 ]; then - generic_options+=("--non-interactive[Use stardard input instead of $EDITOR]") + generic_options+=("--non-interactive[Use standard input instead of $EDITOR]") fi _arguments $generic_options fi diff --git a/plugins/ng/_ng b/plugins/ng/_ng index 9c96cf7e3..86c6ce187 100644 --- a/plugins/ng/_ng +++ b/plugins/ng/_ng @@ -46,7 +46,7 @@ elif (( CURRENT == 3 )); then # ... # } # } - # In abscence of a proper JSON parser, just grab the lines with + # In absence of a proper JSON parser, just grab the lines with # a 2-space indentation and only the stuff inside quotes local -a projects projects=(${(@f)"$(ng config projects 2>/dev/null | sed -n 's/^ "\([^"]\+\)".*$/\1/p')"}) diff --git a/plugins/pm2/_pm2 b/plugins/pm2/_pm2 index 86412aef1..faa6a3404 100644 --- a/plugins/pm2/_pm2 +++ b/plugins/pm2/_pm2 @@ -118,7 +118,7 @@ start_options=( ) logs_options=( '--json[json log output]' - '--format[formated log output]' + '--format[formatted log output]' '--raw[raw output]' '--err[only shows error output]' '--out[only shows standard output]' diff --git a/plugins/salt/_salt b/plugins/salt/_salt index a1c55f350..589d21d8b 100644 --- a/plugins/salt/_salt +++ b/plugins/salt/_salt @@ -9,7 +9,7 @@ # zstyle ':completion::complete:salt(|-call):modules:' use-cache true # zstyle ':completion::complete:salt(|-cp|-call|-run|-key):salt_dir:' use-cache true # -# cache validation can be controled with the style cache-ttl. +# cache validation can be controlled with the style cache-ttl. # it expects two arguments: number (days|hours|weeks|months) # to invalidate the minion cache after four days: # zstyle ':completion::complete:salt(|-cp|-call):minions:' cache-ttl 4 days diff --git a/plugins/swiftpm/_swift b/plugins/swiftpm/_swift index fe6f1c9aa..3a923226d 100644 --- a/plugins/swiftpm/_swift +++ b/plugins/swiftpm/_swift @@ -301,7 +301,7 @@ _swift_package_init() { _swift_package_unedit() { arguments=( ":The name of the package to unedit:_swift_dependency" - "--force[Unedit the package even if it has uncommited and unpushed changes.]" + "--force[Unedit the package even if it has uncommitted and unpushed changes.]" ) _arguments $arguments && return } diff --git a/plugins/systemadmin/README.md b/plugins/systemadmin/README.md index 146b58605..3a9d9de66 100644 --- a/plugins/systemadmin/README.md +++ b/plugins/systemadmin/README.md @@ -41,7 +41,7 @@ plugins=(... systemadmin) | accessip10 | List the top 10 accesses to the ip address in the nginx/access.log file or another log file if specified | | visitpage20 | List the top 20 most visited files or pages in the nginx/access.log file or another log file if specified | | consume100 | List the 100 most time-consuming Page lists (more than 60 seconds) as well as the corresponding number of occurrences | -| webtraffic | List website traffic statistics in GB from tne nginx/access.log file or another log file if specified | +| webtraffic | List website traffic statistics in GB from the nginx/access.log file or another log file if specified | | c404 | List statistics on 404 connections in the nginx/access.log file or another log file if specified | | httpstatus | List statistics based on http status in the nginx/access.log file or another log file if specified | | d0 | Delete 0 byte files recursively in the current directory or another if specified | diff --git a/plugins/terraform/_terraform b/plugins/terraform/_terraform index a19e50670..625834563 100644 --- a/plugins/terraform/_terraform +++ b/plugins/terraform/_terraform @@ -47,7 +47,7 @@ __apply() { '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ '-lock-timeout=[(0s) Duration to retry a state lock.]' \ '-input=[(true) Ask for input for variables if not directly set.]' \ - '-no-color[If specified, output wil be colorless.]' \ + '-no-color[If specified, output will be colorless.]' \ '-parallelism=[(10) Limit the number of parallel resource operations.]' \ '-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]' \ '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -g "*.tfstate"' \ diff --git a/tools/require_tool.sh b/tools/require_tool.sh index 1fa77f77a..19c5f6fa9 100755 --- a/tools/require_tool.sh +++ b/tools/require_tool.sh @@ -107,7 +107,7 @@ usage() { NAME require_tool.sh - Ensure version of a tool is greater than the one expected -SYNOPSYS +SYNOPSIS require_tool.sh [ -h ] [ --help ] [ TOOL MIN_VERSION ] From b93b67b84490d45eb2544b1741e64dc16103207d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 3 Oct 2022 17:11:52 +0200 Subject: [PATCH 009/441] fix(gradle): remove deprecated use of `egrep` (#11160) --- plugins/gradle/_gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/gradle/_gradle b/plugins/gradle/_gradle index e77b23cdb..770723d85 100644 --- a/plugins/gradle/_gradle +++ b/plugins/gradle/_gradle @@ -96,7 +96,7 @@ __gradle-generate-script-cache() { zle -R "Generating Gradle build script cache" # Cache all Gradle scripts local -a gradle_build_scripts - gradle_build_scripts=( $(find $project_root_dir -type f -name "*.gradle" -o -name "*.gradle.kts" 2>/dev/null | egrep -v "$script_exclude_pattern") ) + gradle_build_scripts=( $(find $project_root_dir -type f -name "*.gradle" -o -name "*.gradle.kts" 2>/dev/null | grep -E -v "$script_exclude_pattern") ) printf "%s\n" "${gradle_build_scripts[@]}" >| $cache_dir/$cache_name fi } From 570158e464c9f57ab03c4162b4e6853b2c7c650d Mon Sep 17 00:00:00 2001 From: Nadhem Date: Mon, 3 Oct 2022 16:59:49 +0100 Subject: [PATCH 010/441] chore(lib): update deprecated grep aliases (#11161) --- lib/grep.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/grep.zsh b/lib/grep.zsh index a725e0f26..54e0f694e 100644 --- a/lib/grep.zsh +++ b/lib/grep.zsh @@ -24,8 +24,8 @@ else if [[ -n "$GREP_OPTIONS" ]]; then # export grep, egrep and fgrep settings alias grep="grep $GREP_OPTIONS" - alias egrep="egrep $GREP_OPTIONS" - alias fgrep="fgrep $GREP_OPTIONS" + alias egrep="grep -E $GREP_OPTIONS" + alias fgrep="grep -F $GREP_OPTIONS" # write to cache file if cache directory is writable if [[ -w "$ZSH_CACHE_DIR" ]]; then From 78e85c7d78edeca7f06d6a54ad7f03f10dacde62 Mon Sep 17 00:00:00 2001 From: Carlo Date: Thu, 6 Oct 2022 20:01:56 +0100 Subject: [PATCH 011/441] fix(nvm): source nvm script only when used (#11205) closes #11042 --- plugins/nvm/README.md | 6 +++--- plugins/nvm/nvm.plugin.zsh | 38 ++++++++++++++++---------------------- 2 files changed, 19 insertions(+), 25 deletions(-) diff --git a/plugins/nvm/README.md b/plugins/nvm/README.md index a8bc34ae7..1acf12050 100644 --- a/plugins/nvm/README.md +++ b/plugins/nvm/README.md @@ -22,9 +22,9 @@ These settings should go in your zshrc file, before Oh My Zsh is sourced: nvm has been installed, regardless of chip architecture, use `NVM_HOMEBREW=$(brew --prefix nvm)`. - **`NVM_LAZY`**: if you want the plugin to defer the load of nvm to speed-up the start of your zsh session, - set `NVM_LAZY` to `1`. This will use the `--no-use` parameter when loading nvm, and will create a function - for `node`, `npm`, `yarn`, and the command(s) specified by `NVM_LAZY_CMD`, so when you call either of them, - nvm will load with `nvm use default`. + set `NVM_LAZY` to `1`. This will source nvm script only when using it, and will create a function for `node`, + `npm`, `pnpm`, `yarn`, and the command(s) specified by `NVM_LAZY_CMD`, so when you call either of them, + nvm will be loaded and run with default version. - **`NVM_LAZY_CMD`**: if you want additional command(s) to trigger lazy loading of nvm, set `NVM_LAZY_CMD` to the command or an array of the commands. diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index 630854a71..1fb4d238b 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -4,39 +4,33 @@ if [[ -z "$NVM_DIR" ]]; then export NVM_DIR="$HOME/.nvm" elif [[ -d "${XDG_CONFIG_HOME:-$HOME/.config}/nvm" ]]; then export NVM_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/nvm" + elif (( $+commands[brew] )); then + NVM_HOMEBREW="${NVM_HOMEBREW:-${HOMEBREW_PREFIX:-$(brew --prefix)}/opt/nvm}" + if [[ -d "$NVM_HOMEBREW" ]]; then + export NVM_DIR="$NVM_HOMEBREW" + fi fi fi # Don't try to load nvm if command already available # Note: nvm is a function so we need to use `which` -! which nvm &>/dev/null || return +which nvm &>/dev/null && return -if [[ -f "$NVM_DIR/nvm.sh" ]]; then +if (( $+NVM_LAZY )); then + # Call nvm when first using nvm, node, npm, pnpm, yarn or $NVM_LAZY_CMD + function nvm node npm pnpm yarn $NVM_LAZY_CMD { + unfunction nvm node npm pnpm yarn $NVM_LAZY_CMD + # Load nvm if it exists in $NVM_DIR + [[ -f "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh" + "$0" "$@" + } +elif [[ -f "$NVM_DIR/nvm.sh" ]]; then # Load nvm if it exists in $NVM_DIR - source "$NVM_DIR/nvm.sh" ${NVM_LAZY+"--no-use"} -elif (( $+commands[brew] )); then - # Otherwise try to load nvm installed via Homebrew - # User can set this if they have an unusual Homebrew setup - NVM_HOMEBREW="${NVM_HOMEBREW:-${HOMEBREW_PREFIX:-$(brew --prefix)}/opt/nvm}" - # Load nvm from Homebrew location if it exists - if [[ -f "$NVM_HOMEBREW/nvm.sh" ]]; then - source "$NVM_HOMEBREW/nvm.sh" ${NVM_LAZY+"--no-use"} - else - return - fi + source "$NVM_DIR/nvm.sh" else return fi -# Call nvm when first using node, npm or yarn -if (( $+NVM_LAZY )); then - function node npm yarn $NVM_LAZY_CMD { - unfunction node npm yarn $NVM_LAZY_CMD - nvm use default - command "$0" "$@" - } -fi - # Autoload nvm when finding a .nvmrc file in the current directory # Adapted from: https://github.com/nvm-sh/nvm#zsh if (( $+NVM_AUTOLOAD )); then From f52b3c6716b632a439355510d559c9d5522edc7e Mon Sep 17 00:00:00 2001 From: Eddie <36518273+0xEddie@users.noreply.github.com> Date: Fri, 7 Oct 2022 06:31:01 -0600 Subject: [PATCH 012/441] chore(dnote): fix incorrect link (#11237) --- plugins/dnote/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/dnote/README.md b/plugins/dnote/README.md index e1b9b7044..7b41b9027 100644 --- a/plugins/dnote/README.md +++ b/plugins/dnote/README.md @@ -1,6 +1,6 @@ # Dnote Plugin -This plugin adds auto-completion for [Dnote](https://dnote.io) project. +This plugin adds auto-completion for [Dnote](https://www.getdnote.com/), a simple command line notebook. To use it, add `dnote` to the plugins array in your zshrc file: From 065f5ffc5ae107f752b908d1c81e4c4f3e26e7b7 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 7 Oct 2022 15:39:00 +0300 Subject: [PATCH 013/441] ci: harden permissions for GitHub Workflows (#11174) * build: harden main.yml permissions Signed-off-by: Alex * build: harden project.yml permissions Signed-off-by: Alex * Update project.yml The permissions are not necessary, because a separate token is used `GITHUB_TOKEN: ${{ secrets.PROJECT_TOKEN }}` --- .github/workflows/main.yml | 3 +++ .github/workflows/project.yml | 1 + 2 files changed, 4 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 50e00f9c9..57a1e3833 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,6 +14,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true +permissions: + contents: read # to fetch code (actions/checkout) + jobs: tests: name: Run tests diff --git a/.github/workflows/project.yml b/.github/workflows/project.yml index b2219893d..999cc08e2 100644 --- a/.github/workflows/project.yml +++ b/.github/workflows/project.yml @@ -9,6 +9,7 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true +permissions: {} jobs: add-to-project: name: Add to project From 11daa7dd5f22acadef1135000e92cc899e22c134 Mon Sep 17 00:00:00 2001 From: Erik Thorelli Date: Fri, 7 Oct 2022 05:40:13 -0700 Subject: [PATCH 014/441] chore: add vscode workspace settings to gitignore (#11108) There are workspace settings for vscode plugins that make contributing to ohmyzsh easier. However, these would be noisy for users, especially for those that don't use vscode. --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index ec24a19bb..71ae444e5 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,6 @@ cache/ log/ *.swp .DS_Store + +# editor configs +.vscode \ No newline at end of file From f80cf12092edb1bed8b7972bc1b9d63c836a9be7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 12 Oct 2022 10:49:44 +0200 Subject: [PATCH 015/441] fix: fix OSC 8 hyperlink escape sequences --- tools/install.sh | 2 +- tools/upgrade.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index 495ad2c11..bc3723050 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -185,7 +185,7 @@ supports_truecolor() { fmt_link() { # $1: text, $2: url, $3: fallback mode if supports_hyperlinks; then - printf '\033]8;;%s\a%s\033]8;;\a\n' "$2" "$1" + printf '\033]8;;%s\033\\%s\033]8;;\033\\\n' "$2" "$1" return fi diff --git a/tools/upgrade.sh b/tools/upgrade.sh index afc6a98dd..2f3b4dae3 100755 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -107,7 +107,7 @@ supports_truecolor() { fmt_link() { # $1: text, $2: url, $3: fallback mode if supports_hyperlinks; then - printf '\033]8;;%s\a%s\033]8;;\a\n' "$2" "$1" + printf '\033]8;;%s\033\\%s\033]8;;\033\\\n' "$2" "$1" return fi From ee4910e3b36dc5556cad567c3760ee500297cc8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 12 Oct 2022 10:55:02 +0200 Subject: [PATCH 016/441] fix: show full hyperlinks in Konsole (#10964) Fixes #10964 --- tools/install.sh | 10 ++++++++-- tools/upgrade.sh | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index bc3723050..fb6973dbc 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -156,11 +156,17 @@ supports_hyperlinks() { return 0 fi - # Windows Terminal or Konsole also support hyperlinks - if [ -n "$WT_SESSION" ] || [ -n "$KONSOLE_VERSION" ]; then + # Windows Terminal also supports hyperlinks + if [ -n "$WT_SESSION" ]; then return 0 fi + # Konsole supports hyperlinks, but it's an opt-in setting that can't be detected + # https://github.com/ohmyzsh/ohmyzsh/issues/10964 + # if [ -n "$KONSOLE_VERSION" ]; then + # return 0 + # fi + return 1 } diff --git a/tools/upgrade.sh b/tools/upgrade.sh index 2f3b4dae3..596a59302 100755 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -78,11 +78,17 @@ supports_hyperlinks() { return 0 fi - # Windows Terminal or Konsole also support hyperlinks - if [ -n "$WT_SESSION" ] || [ -n "$KONSOLE_VERSION" ]; then + # Windows Terminal also supports hyperlinks + if [ -n "$WT_SESSION" ]; then return 0 fi + # Konsole supports hyperlinks, but it's an opt-in setting that can't be detected + # https://github.com/ohmyzsh/ohmyzsh/issues/10964 + # if [ -n "$KONSOLE_VERSION" ]; then + # return 0 + # fi + return 1 } From b9be3a43b4da579299b4426b1ba9121f746e2555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 3 Oct 2022 18:52:50 +0200 Subject: [PATCH 017/441] fix(cli): change unrecognized `\s` in BSD awk (#11146) In BSD awk, \s is not a valid sequence interchangeable with "space or tab characters" as it is in GNU awk. This fix uses [ \t] instead, which is all the possibilities that we need to contemplate when reading the .zshrc file. Fixes #11146 --- lib/cli.zsh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/cli.zsh b/lib/cli.zsh index db659c11f..f15bd6d63 100644 --- a/lib/cli.zsh +++ b/lib/cli.zsh @@ -241,21 +241,21 @@ function _omz::plugin::disable { # Remove plugins substitution awk script local awk_subst_plugins="\ - gsub(/\s+(${(j:|:)dis_plugins})/, \"\") # with spaces before - gsub(/(${(j:|:)dis_plugins})\s+/, \"\") # with spaces after + gsub(/[ \t]+(${(j:|:)dis_plugins})/, \"\") # with spaces before + gsub(/(${(j:|:)dis_plugins})[ \t]+/, \"\") # with spaces after gsub(/\((${(j:|:)dis_plugins})\)/, \"\") # without spaces (only plugin) " # Disable plugins awk script local awk_script=" # if plugins=() is in oneline form, substitute disabled plugins and go to next line -/^\s*plugins=\([^#]+\).*\$/ { +/^[ \t]*plugins=\([^#]+\).*\$/ { $awk_subst_plugins print \$0 next } # if plugins=() is in multiline form, enable multi flag and disable plugins if they're there -/^\s*plugins=\(/ { +/^[ \t]*plugins=\(/ { multi=1 $awk_subst_plugins print \$0 @@ -330,14 +330,14 @@ function _omz::plugin::enable { # Enable plugins awk script local awk_script=" # if plugins=() is in oneline form, substitute ) with new plugins and go to the next line -/^\s*plugins=\([^#]+\).*\$/ { +/^[ \t]*plugins=\([^#]+\).*\$/ { sub(/\)/, \" $add_plugins&\") print \$0 next } # if plugins=() is in multiline form, enable multi flag -/^\s*plugins=\(/ { +/^[ \t]*plugins=\(/ { multi=1 } @@ -699,9 +699,9 @@ function _omz::theme::set { # Enable theme in .zshrc local awk_script=' -!set && /^\s*ZSH_THEME=[^#]+.*$/ { +!set && /^[ \t]*ZSH_THEME=[^#]+.*$/ { set=1 - sub(/^\s*ZSH_THEME=[^#]+.*$/, "ZSH_THEME=\"'$1'\" # set by `omz`") + sub(/^[ \t]*ZSH_THEME=[^#]+.*$/, "ZSH_THEME=\"'$1'\" # set by `omz`") print $0 next } From 52e848ce8f8d7370a202e0bee07ce2c32858932e Mon Sep 17 00:00:00 2001 From: Sibs <68712272+Bryan-netizen@users.noreply.github.com> Date: Fri, 14 Oct 2022 20:07:26 +0300 Subject: [PATCH 018/441] feat(web-search): add support for Brave search engine (#11106) --- plugins/web-search/README.md | 3 ++- plugins/web-search/web-search.plugin.zsh | 34 +++++++++++++----------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/plugins/web-search/README.md b/plugins/web-search/README.md index da90f90a0..54232a910 100644 --- a/plugins/web-search/README.md +++ b/plugins/web-search/README.md @@ -25,9 +25,10 @@ $ google oh-my-zsh Available search contexts are: | Context | URL | -|-----------------------|------------------------------------------| +| --------------------- | ---------------------------------------- | | `bing` | `https://www.bing.com/search?q=` | | `google` | `https://www.google.com/search?q=` | +| `brs` or `brave` | `https://search.brave.com/search?q=` | | `yahoo` | `https://search.yahoo.com/search?p=` | | `ddg` or `duckduckgo` | `https://www.duckduckgo.com/?q=` | | `sp` or `startpage` | `https://www.startpage.com/do/search?q=` | diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index 229948894..d8b4a7f8b 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -7,22 +7,23 @@ function web_search() { typeset -A urls urls=( $ZSH_WEB_SEARCH_ENGINES - google "https://www.google.com/search?q=" - bing "https://www.bing.com/search?q=" - yahoo "https://search.yahoo.com/search?p=" - duckduckgo "https://www.duckduckgo.com/?q=" - startpage "https://www.startpage.com/do/search?q=" - yandex "https://yandex.ru/yandsearch?text=" - github "https://github.com/search?q=" - baidu "https://www.baidu.com/s?wd=" - ecosia "https://www.ecosia.org/search?q=" - goodreads "https://www.goodreads.com/search?q=" - qwant "https://www.qwant.com/?q=" - givero "https://www.givero.com/search?q=" - stackoverflow "https://stackoverflow.com/search?q=" - wolframalpha "https://www.wolframalpha.com/input/?i=" - archive "https://web.archive.org/web/*/" - scholar "https://scholar.google.com/scholar?q=" + google "https://www.google.com/search?q=" + bing "https://www.bing.com/search?q=" + brave "https://search.brave.com/search?q=" + yahoo "https://search.yahoo.com/search?p=" + duckduckgo "https://www.duckduckgo.com/?q=" + startpage "https://www.startpage.com/do/search?q=" + yandex "https://yandex.ru/yandsearch?text=" + github "https://github.com/search?q=" + baidu "https://www.baidu.com/s?wd=" + ecosia "https://www.ecosia.org/search?q=" + goodreads "https://www.goodreads.com/search?q=" + qwant "https://www.qwant.com/?q=" + givero "https://www.givero.com/search?q=" + stackoverflow "https://stackoverflow.com/search?q=" + wolframalpha "https://www.wolframalpha.com/input/?i=" + archive "https://web.archive.org/web/*/" + scholar "https://scholar.google.com/scholar?q=" ) # check whether the search engine is supported @@ -47,6 +48,7 @@ function web_search() { alias bing='web_search bing' +alias brs='web_search brave' alias google='web_search google' alias yahoo='web_search yahoo' alias ddg='web_search duckduckgo' From 08d5c936c670bd7e37902f64a065ba9f74452cb9 Mon Sep 17 00:00:00 2001 From: Syphdias Date: Fri, 14 Oct 2022 19:12:04 +0200 Subject: [PATCH 019/441] fix(git-auto-fetch): avoid password prompt with `GIT_TERMINAL_PROMPT=0` (#11234) --- plugins/git-auto-fetch/git-auto-fetch.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh b/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh index 2e029639c..2df34bb7b 100644 --- a/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh +++ b/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh @@ -28,6 +28,7 @@ function git-fetch-all { # Fetch all remotes (avoid ssh passphrase prompt) date -R &>! "$gitdir/FETCH_LOG" GIT_SSH_COMMAND="command ssh -o BatchMode=yes" \ + GIT_TERMINAL_PROMPT=0 \ command git fetch --all 2>/dev/null &>> "$gitdir/FETCH_LOG" ) &| } From 34cd8fbd4afce7b2beb3292f4f90ca57142f442c Mon Sep 17 00:00:00 2001 From: Warren Young Date: Mon, 29 Aug 2022 21:49:12 -0600 Subject: [PATCH 020/441] refactor(fossil): use `fossil branch current` supported since v2.7 (#11138) Using the automation-friendly "fossil branch current" feature added in Fossil 2.7 instead of ad hoc parsing of human-readable "fossil branch" output. Not only does this fix a stray space in the output, it's more robust against changes in command output in general. Closes #11138 --- plugins/fossil/fossil.plugin.zsh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/fossil/fossil.plugin.zsh b/plugins/fossil/fossil.plugin.zsh index a2123f415..fadf6095d 100644 --- a/plugins/fossil/fossil.plugin.zsh +++ b/plugins/fossil/fossil.plugin.zsh @@ -13,12 +13,11 @@ ZSH_THEME_FOSSIL_PROMPT_DIRTY=" %{$fg_bold[red]%}✖" ZSH_THEME_FOSSIL_PROMPT_CLEAN=" %{$fg_bold[green]%}✔" function fossil_prompt_info() { - local info=$(fossil branch 2>&1) + local branch=$(fossil branch current 2>&1) # if we're not in a fossil repo, don't show anything - ! command grep -q "use --repo" <<< "$info" || return + ! command grep -q "use --repo" <<< "$branch" || return - local branch=$(echo $info | grep "* " | sed 's/* //g') local changes=$(fossil changes) local dirty="$ZSH_THEME_FOSSIL_PROMPT_CLEAN" From c7c0a8917b8ded7511c07105c82bd7417b92f7a3 Mon Sep 17 00:00:00 2001 From: tmoschou <5567550+tmoschou@users.noreply.github.com> Date: Sat, 15 Oct 2022 04:57:42 +1030 Subject: [PATCH 021/441] fix(brew): do not source `brew shellenv` if already on path (#11167) --- plugins/brew/README.md | 5 ++++- plugins/brew/brew.plugin.zsh | 17 ++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/plugins/brew/README.md b/plugins/brew/README.md index 64e0e1153..9ce2c5bb0 100644 --- a/plugins/brew/README.md +++ b/plugins/brew/README.md @@ -10,7 +10,10 @@ plugins=(... brew) ## Shellenv -This plugin also executes `brew shellenv` at plugin load to set up many useful variables, such as `HOMEBREW_PREFIX` or `HOMEBREW_REPOSITORY`. +If `brew` is not found in the PATH, this plugin will attempt to find it in common +locations, and execute `brew shellenv` to set the environment appropriately. +This plugin will also export `HOMEBREW_PREFIX="$(brew --prefix)"` if not previously +defined for convenience. ## Aliases diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh index 4a2322216..41420b5b7 100644 --- a/plugins/brew/brew.plugin.zsh +++ b/plugins/brew/brew.plugin.zsh @@ -10,18 +10,21 @@ if (( ! $+commands[brew] )); then else return fi + + # Only add Homebrew installation to PATH, MANPATH, and INFOPATH if brew is + # not already on the path, to prevent duplicate entries. This aligns with + # the behavior of the brew installer.sh post-install steps. + eval "$("$BREW_LOCATION" shellenv)" + unset BREW_LOCATION fi if [[ -z "$HOMEBREW_PREFIX" ]]; then - if [[ -z $BREW_LOCATION ]]; then - eval "$(brew shellenv)" - else - eval "$("$BREW_LOCATION" shellenv)" - fi + # Maintain compatability with potential custom user profiles, where we had + # previously relied on always sourcing shellenv. OMZ plugins should not rely + # on this to be defined due to out of order processing. + export HOMEBREW_PREFIX="$(brew --prefix)" fi -unset BREW_LOCATION - alias bcubc='brew upgrade --cask && brew cleanup' alias bcubo='brew update && brew outdated --cask' alias brewp='brew pin' From 65a1e4edbe678cdac37ad96ca4bc4f6d77e27adf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Fri, 14 Oct 2022 20:31:33 +0200 Subject: [PATCH 022/441] fix(installer): detect newer Git for Windows version errors (#11157) Fixes #11157 --- tools/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/install.sh b/tools/install.sh index fb6973dbc..a6538f9d7 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -273,7 +273,7 @@ setup_ohmyzsh() { } ostype=$(uname) - if [ -z "${ostype%CYGWIN*}" ] && git --version | grep -q msysgit; then + if [ -z "${ostype%CYGWIN*}" ] && git --version | grep -Eq 'msysgit|windows'; then fmt_error "Windows/MSYS Git is not supported on Cygwin" fmt_error "Make sure the Cygwin git package is installed and is first on the \$PATH" exit 1 From 818f3de1fa6588a94bf207766a811992e301acf1 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Sat, 1 Oct 2022 11:21:19 +0200 Subject: [PATCH 023/441] fix(debian)!: remove ar alias BREAKING CHANGE: This alias needs to be removed because is shadowing `ar` archiver. Closes #9304 --- plugins/debian/README.md | 39 ++++++++++++++++---------------- plugins/debian/debian.plugin.zsh | 7 ------ 2 files changed, 19 insertions(+), 27 deletions(-) diff --git a/plugins/debian/README.md b/plugins/debian/README.md index 2ce206cfb..1db534f13 100644 --- a/plugins/debian/README.md +++ b/plugins/debian/README.md @@ -30,26 +30,25 @@ Set `$apt_pref` and `$apt_upgr` to whatever command you want (before sourcing Oh ## Superuser Operations Aliases -| Alias | Command | Description | -| -------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | -| `aac` | `sudo $apt_pref autoclean` | Clears out the local repository of retrieved package files | -| `aar` | `sudo $apt_pref autoremove` | Removes packages installed automatically that are no longer needed | -| `abd` | `sudo $apt_pref build-dep` | Installs all dependencies for building packages | -| `ac` | `sudo $apt_pref clean` | Clears out the local repository of retrieved package files except lock files | -| `ad` | `sudo $apt_pref update` | Updates the package lists for upgrades for packages | -| `adg` | `sudo $apt_pref update && sudo $apt_pref $apt_upgr` | Update and upgrade packages | -| `ads` | `sudo apt-get dselect-upgrade` | Installs packages from list and removes all not in the list | -| `adu` | `sudo $apt_pref update && sudo $apt_pref dist-upgrade` | Smart upgrade that handles dependencies | -| `afu` | `sudo apt-file update` | Update the files in packages | -| `ai` | `sudo $apt_pref install` | Command-line tool to install package | -| `ail` | `sed -e 's/ */ /g' -e 's/ *//' \| cut -s -d ' ' -f 1 \| xargs sudo $apt_pref install` | Install all packages given on the command line while using only the first word of each line | -| `alu` | `sudo apt update && apt list -u && sudo apt upgrade` | Update, list and upgrade packages | -| `ap` | `sudo $apt_pref purge` | Removes packages along with configuration files | -| `ar` | `sudo $apt_pref remove` | Removes packages, keeps the configuration files | -| `au` | `sudo $apt_pref $apt_upgr` | Install package upgrades | -| `di` | `sudo dpkg -i` | Install all .deb files in the current directory | -| `dia` | `sudo dpkg -i ./*.deb` | Install all .deb files in the current directory | -| `kclean` | `sudo aptitude remove -P ?and(~i~nlinux-(ima\|hea) ?not(~n$(uname -r)))` | Remove ALL kernel images and headers EXCEPT the one in use | +| Alias | Command | Description | +| -------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | +| `aac` | `sudo $apt_pref autoclean` | Clears out the local repository of retrieved package files | +| `aar` | `sudo $apt_pref autoremove` | Removes packages installed automatically that are no longer needed | +| `abd` | `sudo $apt_pref build-dep` | Installs all dependencies for building packages | +| `ac` | `sudo $apt_pref clean` | Clears out the local repository of retrieved package files except lock files | +| `ad` | `sudo $apt_pref update` | Updates the package lists for upgrades for packages | +| `adg` | `sudo $apt_pref update && sudo $apt_pref $apt_upgr` | Update and upgrade packages | +| `ads` | `sudo apt-get dselect-upgrade` | Installs packages from list and removes all not in the list | +| `adu` | `sudo $apt_pref update && sudo $apt_pref dist-upgrade` | Smart upgrade that handles dependencies | +| `afu` | `sudo apt-file update` | Update the files in packages | +| `ai` | `sudo $apt_pref install` | Command-line tool to install package | +| `ail` | `sed -e 's/ */ /g' -e 's/ *//' \| cut -s -d ' ' -f 1 \| xargs sudo $apt_pref install` | Install all packages given on the command line while using only the first word of each line | +| `alu` | `sudo apt update && apt list -u && sudo apt upgrade` | Update, list and upgrade packages | +| `ap` | `sudo $apt_pref purge` | Removes packages along with configuration files | +| `au` | `sudo $apt_pref $apt_upgr` | Install package upgrades | +| `di` | `sudo dpkg -i` | Install all .deb files in the current directory | +| `dia` | `sudo dpkg -i ./*.deb` | Install all .deb files in the current directory | +| `kclean` | `sudo aptitude remove -P ?and(~i~nlinux-(ima\|hea) ?not(~n$(uname -r)))` | Remove ALL kernel images and headers EXCEPT the one in use | ## Aliases - Commands using `su` diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index f649a5b16..2d8c4666e 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -55,7 +55,6 @@ if [[ $use_sudo -eq 1 ]]; then alias ail="sed -e 's/ */ /g' -e 's/ *//' | cut -s -d ' ' -f 1 | xargs sudo $apt_pref install" alias ap="sudo $apt_pref purge" - alias ar="sudo $apt_pref remove" alias aar="sudo $apt_pref autoremove" # apt-get only @@ -98,11 +97,6 @@ else print "$cmd" eval "$cmd" } - function ar() { - cmd="su -lc '$apt_pref remove $@' root" - print "$cmd" - eval "$cmd" - } function aar() { cmd="su -lc '$apt_pref autoremove $@' root" print "$cmd" @@ -147,7 +141,6 @@ apt_pref_compdef au "$apt_upgr" apt_pref_compdef ai "install" apt_pref_compdef ail "install" apt_pref_compdef ap "purge" -apt_pref_compdef ar "remove" apt_pref_compdef aar "autoremove" apt_pref_compdef ads "dselect-upgrade" From 7e3231b846dec87fcf6537f6e45c9c1be9f718fe Mon Sep 17 00:00:00 2001 From: Carlo Date: Tue, 18 Oct 2022 19:10:55 +0200 Subject: [PATCH 024/441] feat(z): replace `rupa/z` with `agkozak/zsh-z` (#11236) --- plugins/z/LICENSE | 21 + plugins/z/MANUAL.md | 343 +++++++++++++++ plugins/z/Makefile | 4 - plugins/z/README | 148 ------- plugins/z/README.md | 7 +- plugins/z/_z | 82 ++++ plugins/z/z.1 | 173 -------- plugins/z/z.plugin.zsh | 972 ++++++++++++++++++++++++++++++++++++++++- plugins/z/z.sh | 267 ----------- 9 files changed, 1417 insertions(+), 600 deletions(-) create mode 100644 plugins/z/LICENSE create mode 100644 plugins/z/MANUAL.md delete mode 100644 plugins/z/Makefile delete mode 100644 plugins/z/README create mode 100644 plugins/z/_z delete mode 100644 plugins/z/z.1 delete mode 100644 plugins/z/z.sh diff --git a/plugins/z/LICENSE b/plugins/z/LICENSE new file mode 100644 index 000000000..d1cca7ae5 --- /dev/null +++ b/plugins/z/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018-2022 Alexandros Kozak + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/plugins/z/MANUAL.md b/plugins/z/MANUAL.md new file mode 100644 index 000000000..dcca3c452 --- /dev/null +++ b/plugins/z/MANUAL.md @@ -0,0 +1,343 @@ +# Zsh-z + +Zsh-z is a command line tool that allows you to jump quickly to directories that you have visited frequently in the past, or recently -- but most often a combination of the two (a concept known as ["frecency"](https://en.wikipedia.org/wiki/Frecency)). It works by keeping track of when you go to directories and how much time you spend in them. It is then in the position to guess where you want to go when you type a partial string, e.g., `z src` might take you to `~/src/zsh`. `z zsh` might also get you there, and `z c/z` might prove to be even more specific -- it all depends on your habits and how much time you have been using Zsh-z to build up a database. After using Zsh-z for a little while, you will get to where you want to be by typing considerably less than you would need if you were using `cd`. + +Zsh-z is a native Zsh port of [rupa/z](https://github.com/rupa/z), a tool written for `bash` and Zsh that uses embedded `awk` scripts to do the heavy lifting. It was quite possibly my most used command line tool for a couple of years. I decided to translate it, `awk` parts and all, into pure Zsh script, to see if by eliminating calls to external tools (`awk`, `sort`, `date`, `sed`, `mv`, `rm`, and `chown`) and reducing forking through subshells I could make it faster. The performance increase is impressive, particularly on systems where forking is slow, such as Cygwin, MSYS2, and WSL. I have found that, in those environments, switching directories using Zsh-z can be over 100% faster than it is using `rupa/z`. + +There is a noteworthy stability increase as well. Race conditions have always been a problem with `rupa/z`, and users of that utility will occasionally lose their `.z` databases. By having Zsh-z only use Zsh (`rupa/z` uses a hybrid shell code that works on `bash` as well), I have been able to implement a `zsh/system`-based file-locking mechanism similar to [the one @mafredri once proposed for `rupa/z`](https://github.com/rupa/z/pull/199). It is now nearly impossible to crash the database, even through extreme testing. + +There are other, smaller improvements which I try to document in [Improvements and Fixes](#improvements-and-fixes). These include the new default behavior of sorting your tab completions by frecency rather than just letting Zsh sort the raw results alphabetically (a behavior which can be restored if you like it -- [see below](#settings)). + +Zsh-z is a drop-in replacement for `rupa/z` and will, by default, use the same database (`~/.z`), so you can go on using `rupa/z` when you launch `bash`. + +## Table of Contents +- [News](#news) +- [Installation](#installation) +- [Command Line Options](#command-line-options) +- [Settings](#settings) +- [Case Sensitivity](#case-sensitivity) +- [`ZSHZ_UNCOMMON`](#zshz_uncommon) +- [Making `--add` work for you](#making---add-work-for-you) +- [Other Improvements and Fixes](#other-improvements-and-fixes) +- [Migrating from Other Tools](#migrating-from-other-tools) +- [`COMPLETE_ALIASES`](#complete_aliases) +- [Known Bugs](#known-bugs) + +## News + +
+ Here are the latest features and updates. + +- June 29, 2022 + + Zsh-z is less likely to leave temporary files sitting around (props @mafredri). +- June 27, 2022 + + A bug was fixed which was preventing paths with spaces in them from being updated ([#61](https://github.com/agkozak/zsh-z/issues/61)). + + If writing to the temporary database file fails, the database will not be clobbered (props @mafredri). +- December 19, 2021 + + ZSH-z will now display tildes for `HOME` during completion when `ZSHZ_TILDE=1` has been set. +- November 11, 2021 + + A bug was fixed which was preventing ranks from being incremented. + + `--add` has been made to work with relative paths and has been documented for the user. +- October 14, 2021 + + Completions were being sorted alphabetically, rather than by rank; this error has been fixed. +- September 25, 2021 + + Orthographical change: "Zsh," not "ZSH." +- September 23, 2021 + + `z -xR` will now remove a directory *and its subdirectories* from the database. + + `z -x` and `z -xR` can now take an argument; without one, `PWD` is assumed. +- September 7, 2021 + + Fixed the unload function so that it removes the `$ZSHZ_CMD` alias (default: `z`). +- August 27, 2021 + + Using `print -v ... -f` instead of `print -v` to work around longstanding bug in Zsh involving `print -v` and multibyte strings. +- August 13, 2021 + + Fixed the explanation string printed during completion so that it may be formatted with `zstyle`. + + Zsh-z now declares `ZSHZ_EXCLUDE_DIRS` as an array with unique elements so that you do not have to. +- July 29, 2021 + + Temporarily disabling use of `print -v`, which seems to be mangling CJK multibyte strings. +- July 27, 2021 + + Internal escaping of path names now works with older versions of ZSH. + + Zsh-z now detects and discards any incomplete or incorrectly formattted database entries. +- July 10, 2021 + + Setting `ZSHZ_TRAILING_SLASH=1` makes it so that a search pattern ending in `/` can match the end of a path; e.g. `z foo/` can match `/path/to/foo`. +- June 25, 2021 + + Setting `ZSHZ_TILDE=1` displays the `HOME` directory as `~`. +- May 7, 2021 + + Setting `ZSHZ_ECHO=1` will cause Zsh-z to display the new path when you change directories. + + Better escaping of path names to deal paths containing the characters ``\`()[]``. +- February 15, 2021 + + Ranks are displayed the way `rupa/z` now displays them, i.e. as large integers. This should help Zsh-z to integrate with other tools. +- January 31, 2021 + + Zsh-z is now efficient enough that, on MSYS2 and Cygwin, it is faster to run it in the foreground than it is to fork a subshell for it. + + `_zshz_precmd` simply returns if `PWD` is `HOME` or in `ZSH_EXCLUDE_DIRS`, rather than waiting for `zshz` to do that. +- January 17, 2021 + + Made sure that the `PUSHD_IGNORE_DUPS` option is respected. +- January 14, 2021 + + The `z -h` help text now breaks at spaces. + + `z -l` was not working for Zsh version < 5. +- January 11, 2021 + + Major refactoring of the code. + + `z -lr` and `z -lt` work as expected. + + `EXTENDED_GLOB` has been disabled within the plugin to accomodate old-fashioned Windows directories with names such as `Progra~1`. + + Removed `zshelldoc` documentation. +- January 6, 2021 + + I have corrected the frecency routine so that it matches `rupa/z`'s math, but for the present, Zsh-z will continue to display ranks as 1/10000th of what they are in `rupa/z` -- [they had to multiply theirs by 10000](https://github.com/rupa/z/commit/f1f113d9bae9effaef6b1e15853b5eeb445e0712) to work around `bash`'s inadequacies at dealing with decimal fractions. +- January 5, 2021 + + If you try `z foo`, and `foo` is not in the database but `${PWD}/foo` is a valid directory, Zsh-z will `cd` to it. +- December 22, 2020 + + `ZSHZ_CASE`: when set to `ignore`, pattern matching is case-insensitive; when set to `smart`, patterns are matched case-insensitively when they are all lowercase and case-sensitively when they have uppercase characters in them (a behavior very much like Vim's `smartcase` setting). + + `ZSHZ_KEEP_DIRS` is an array of directory names that should not be removed from the database, even if they are not currently available (useful when a drive is not always mounted). + + Symlinked datafiles were having their symlinks overwritten; this bug has been fixed. + +
+ +## Installation + +### General observations + +This script can be installed simply by downloading it and sourcing it from your `.zshrc`: + + source /path/to/zsh-z.plugin.zsh + +For tab completion to work, you will want to have loaded `compinit`. The frameworks handle this themselves. If you are not using a framework, put + + autoload -U compinit && compinit + +in your .zshrc somewhere below where you source `zsh-z.plugin.zsh`. + +If you add + + zstyle ':completion:*' menu select + +to your `.zshrc`, your completion menus will look very nice. This `zstyle` invocation should work with any of the frameworks below as well. + +### For [antigen](https://github.com/zsh-users/antigen) users + +Add the line + + antigen bundle agkozak/zsh-z + +to your `.zshrc`, somewhere above the line that says `antigen apply`. + +### For [oh-my-zsh](http://ohmyz.sh/) users + +Execute the following command: + + git clone https://github.com/agkozak/zsh-z ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-z + +and add `zsh-z` to the line of your `.zshrc` that specifies `plugins=()`, e.g., `plugins=( git zsh-z )`. + +### For [prezto](https://github.com/sorin-ionescu/prezto) users + +Execute the following command: + + git clone https://github.com/agkozak/zsh-z.git ~/.zprezto-contrib/zsh-z + +Then edit your `~/.zpreztorc` file. Make sure the line that says + + zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib + +is uncommented. Then find the section that specifies which modules are to be loaded; it should look something like this: + + zstyle ':prezto:load' pmodule \ + 'environment' \ + 'terminal' \ + 'editor' \ + 'history' \ + 'directory' \ + 'spectrum' \ + 'utility' \ + 'completion' \ + 'prompt' + +Add a backslash to the end of the last line add `'zsh-z'` to the list, e.g., + + zstyle ':prezto:load' pmodule \ + 'environment' \ + 'terminal' \ + 'editor' \ + 'history' \ + 'directory' \ + 'spectrum' \ + 'utility' \ + 'completion' \ + 'prompt' \ + 'zsh-z' + +Then relaunch `zsh`. + +### For [zcomet](https://github.com/agkozak/zcomet) users + +Simply add + + zcomet load agkozak/zsh-z + +to your `.zshrc` (below where you source `zcomet.zsh` and above where you run `zcomet compinit`). + +### For [zgen](https://github.com/tarjoilija/zgen) users + +Add the line + + zgen load agkozak/zsh-z + +somewhere above the line that says `zgen save`. Then run + + zgen reset + zsh + +to refresh your init script. + +### For [Zim](https://github.com/zimfw/zimfw) + +Add the following line to your `.zimrc`: + + zmodule https://github.com/agkozak/zsh-z + +Then run + + zimfw install + +and restart your shell. + +### For [Zinit](https://github.com/zdharma-continuum/zinit) users + +Add the line + + zinit load agkozak/zsh-z + +to your `.zshrc`. + +`zsh-z` supports `zinit`'s `unload` feature; just run `zinit unload agkozak/zshz` to restore the shell to its state before `zsh-z` was loaded. + +### For [Znap](https://github.com/marlonrichert/zsh-snap) users + +Add the line + + znap source agkozak/zsh-z + +somewhere below the line where you `source` Znap itself. + +### For [zplug](https://github.com/zplug/zplug) users + +Add the line + + zplug "agkozak/zsh-z" + +somewhere above the line that says `zplug load`. Then run + + zplug install + zplug load + +to install `zsh-z`. + +## Command Line Options + +- `--add` Add a directory to the database +- `-c` Only match subdirectories of the current directory +- `-e` Echo the best match without going to it +- `-h` Display help +- `-l` List all matches without going to them +- `-r` Match by rank (i.e. how much time you spend in directories) +- `-t` Time -- match by how recently you have been to directories +- `-x` Remove a directory (by default, the current directory) from the database +- `-xR` Remove a directory (by default, the current directory) and its subdirectories from the database + +# Settings + +Zsh-z has environment variables (they all begin with `ZSHZ_`) that change its behavior if you set them; you can also keep your old ones if you have been using `rupa/z` (they begin with `_Z_`). + +* `ZSHZ_CMD` changes the command name (default: `z`) +* `ZSHZ_COMPLETION` can be `'frecent'` (default) or `'legacy'`, depending on whether you want your completion results sorted according to frecency or simply sorted alphabetically +* `ZSHZ_DATA` changes the database file (default: `~/.z`) +* `ZSHZ_ECHO` displays the new path name when changing directories (default: `0`) +* `ZSHZ_EXCLUDE_DIRS` is an array of directories to keep out of the database (default: empty) +* `ZSHZ_KEEP_DIRS` is an array of directories that should not be removed from the database, even if they are not currently available (useful when a drive is not always mounted) (default: empty) +* `ZSHZ_MAX_SCORE` is the maximum combined score the database entries can have before they begin to age and potentially drop out of the database (default: 9000) +* `ZSHZ_NO_RESOLVE_SYMLINKS` prevents symlink resolution (default: `0`) +* `ZSHZ_OWNER` allows usage when in `sudo -s` mode (default: empty) +* `ZSHZ_TILDE` displays the name of the `HOME` directory as a `~` (default: `0`) +* `ZSHZ_TRAILING_SLASH` makes it so that a search pattern ending in `/` can match the final element in a path; e.g., `z foo/` can match `/path/to/foo` (default: `0`) +* `ZSHZ_UNCOMMON` changes the logic used to calculate the directory jumped to; [see below](#zshz_uncommon`) (default: `0`) + +## Case sensitivity + +The default behavior of Zsh-z is to try to find a case-sensitive match. If there is none, then Zsh-z tries to find a case-insensitive match. + +Some users prefer simple case-insensitivity; this behavior can be enabled by setting + + ZSHZ_CASE=ignore + +If you like Vim's `smartcase` setting, where lowercase patterns are case-insensitive while patterns with any uppercase characters are treated case-sensitively, try setting + + ZSHZ_CASE=smart + +## `ZSHZ_UNCOMMON` + +A common complaint about the default behavior of `rupa/z` and Zsh-z involves "common prefixes." If you type `z code` and the best matches, in increasing order, are + + /home/me/code/foo + /home/me/code/bar + /home/me/code/bat + +Zsh-z will see that all possible matches share a common prefix and will send you to that directory -- `/home/me/code` -- which is often a desirable result. But if the possible matches are + + /home/me/.vscode/foo + /home/me/code/foo + /home/me/code/bar + /home/me/code/bat + +then there is no common prefix. In this case, `z code` will simply send you to the highest-ranking match, `/home/me/code/bat`. + +You may enable an alternate, experimental behavior by setting `ZSHZ_UNCOMMON=1`. If you do that, Zsh-z will not jump to a common prefix, even if one exists. Instead, it chooses the highest-ranking match -- but it drops any subdirectories that do not include the search term. So if you type `z bat` and `/home/me/code/bat` is the best match, that is exactly where you will end up. If, however, you had typed `z code` and the best match was also `/home/me/code/bat`, you would have ended up in `/home/me/code` (because `code` was what you had searched for). This feature is still in development, and feedback is welcome. + +## Making `--add` Work for You + +Zsh-z internally uses the `--add` option to add paths to its database. @zachriggle pointed out to me that users might want to use `--add` themselves, so I have altered it a little to make it more user-friendly. + +A good example might involve a directory tree that has Git repositories within it. The working directories could be added to the Zsh-z database as a batch with + + for i in $(find $PWD -maxdepth 3 -name .git -type d); do + z --add ${i:h} + done + +(As a Zsh user, I tend to use `**` instead of `find`, but it is good to see how deep your directory trees go before doing that.) + + +## Other Improvements and Fixes + +* `z -x` works, with the help of `chpwd_functions`. +* Zsh-z works on Solaris. +* Zsh-z uses the "new" `zshcompsys` completion system instead of the old `compctl` one. +* There is no error message when the database file has not yet been created. +* There is support for special characters (e.g., `[`) in directory names. +* If `z -l` only returns one match, a common root is not printed. +* Exit status codes increasingly make sense. +* Completions work with options `-c`, `-r`, and `-t`. +* If `~/foo` and `~/foob` are matches, `~/foo` is *not* the common root. Only a common parent directory can be a common root. +* `z -x` and the new, recursive `z -xR` can take an argument so that you can remove directories other than `PWD` from the database. + +## Migrating from Other Tools + +Zsh-z's database format is identical to that of `rupa/z`. You may switch freely between the two tools (I still use `rupa/z` for `bash`). `fasd` also uses that database format, but it stores it by default in `~/.fasd`, so you will have to `cp ~/.fasd ~/.z` if you want to use your old directory history. + +If you are coming to Zsh-z (or even to the original `rupa/z`, for that matter) from `autojump`, try using my [`jumpstart-z`](https://github.com/agkozak/jumpstart-z/blob/master/jumpstart-z) tool to convert your old database to the Zsh-z format, or simply run + + awk -F "\t" '{printf("%s|%0.f|%s\n", $2, $1, '"$(date +%s)"')}' < /path/to/autojump.txt > ~/.z + +## `COMPLETE_ALIASES` + +`z`, or any alternative you set up using `$ZSH_CMD` or `$_Z_CMD`, is an alias. `setopt COMPLETE_ALIASES` divorces the tab completion for aliases from the underlying commands they invoke, so if you enable `COMPLETE_ALIASES`, tab completion for Zsh-z will be broken. You can get it working again, however, by adding under + + setopt COMPLETE_ALIASES + +the line + + compdef _zshz ${ZSHZ_CMD:-${_Z_CMD:-z}} + +That will re-bind `z` or the command of your choice to the underlying Zsh-z function. + +## Known Bugs +It is possible to run a completion on a string with spaces in it, e.g., `z us bi` might take you to `/usr/local/bin`. This works, but as things stand, after the completion the command line reads + + z us /usr/local/bin. + +You get where you want to go, but the detritus on the command line is annoying. This is also a problem in `rupa/z`, but I am keen on eventually eliminating this glitch. Advice is welcome. diff --git a/plugins/z/Makefile b/plugins/z/Makefile deleted file mode 100644 index dcf433d40..000000000 --- a/plugins/z/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -readme: - @groff -man -Tascii z.1 | col -bx - -.PHONY: readme diff --git a/plugins/z/README b/plugins/z/README deleted file mode 100644 index 47e54c57a..000000000 --- a/plugins/z/README +++ /dev/null @@ -1,148 +0,0 @@ -Z(1) User Commands Z(1) - - - -NAME - z - jump around - -SYNOPSIS - z [-chlrtx] [regex1 regex2 ... regexn] - -AVAILABILITY - bash, zsh - -DESCRIPTION - Tracks your most used directories, based on 'frecency'. - - After a short learning phase, z will take you to the most 'frecent' - directory that matches ALL of the regexes given on the command line, in - order. - - For example, z foo bar would match /foo/bar but not /bar/foo. - -OPTIONS - -c restrict matches to subdirectories of the current directory - - -e echo the best match, don't cd - - -h show a brief help message - - -l list only - - -r match by rank only - - -t match by recent access only - - -x remove the current directory from the datafile - -EXAMPLES - z foo cd to most frecent dir matching foo - - z foo bar cd to most frecent dir matching foo, then bar - - z -r foo cd to highest ranked dir matching foo - - z -t foo cd to most recently accessed dir matching foo - - z -l foo list all dirs matching foo (by frecency) - -NOTES - Installation: - Put something like this in your $HOME/.bashrc or $HOME/.zshrc: - - . /path/to/z.sh - - cd around for a while to build up the db. - - PROFIT!! - - Optionally: - Set $_Z_CMD to change the command name (default z). - Set $_Z_DATA to change the datafile (default $HOME/.z). - Set $_Z_MAX_SCORE lower to age entries out faster (default - 9000). - Set $_Z_NO_RESOLVE_SYMLINKS to prevent symlink resolution. - Set $_Z_NO_PROMPT_COMMAND to handle PROMPT_COMMAND/precmd your- - self. - Set $_Z_EXCLUDE_DIRS to an array of directory trees to exclude. - Set $_Z_OWNER to allow usage when in 'sudo -s' mode. - (These settings should go in .bashrc/.zshrc before the line - added above.) - Install the provided man page z.1 somewhere in your MANPATH, - like /usr/local/man/man1. - - Aging: - The rank of directories maintained by z undergoes aging based on a sim- - ple formula. The rank of each entry is incremented every time it is - accessed. When the sum of ranks is over 9000, all ranks are multiplied - by 0.99. Entries with a rank lower than 1 are forgotten. - - Frecency: - Frecency is a portmanteau of 'recent' and 'frequency'. It is a weighted - rank that depends on how often and how recently something occurred. As - far as I know, Mozilla came up with the term. - - To z, a directory that has low ranking but has been accessed recently - will quickly have higher rank than a directory accessed frequently a - long time ago. - - Frecency is determined at runtime. - - Common: - When multiple directories match all queries, and they all have a common - prefix, z will cd to the shortest matching directory, without regard to - priority. This has been in effect, if undocumented, for quite some - time, but should probably be configurable or reconsidered. - - Tab Completion: - z supports tab completion. After any number of arguments, press TAB to - complete on directories that match each argument. Due to limitations of - the completion implementations, only the last argument will be com- - pleted in the shell. - - Internally, z decides you've requested a completion if the last argu- - ment passed is an absolute path to an existing directory. This may - cause unexpected behavior if the last argument to z begins with /. - -ENVIRONMENT - A function _z() is defined. - - The contents of the variable $_Z_CMD is aliased to _z 2>&1. If not set, - $_Z_CMD defaults to z. - - The environment variable $_Z_DATA can be used to control the datafile - location. If it is not defined, the location defaults to $HOME/.z. - - The environment variable $_Z_NO_RESOLVE_SYMLINKS can be set to prevent - resolving of symlinks. If it is not set, symbolic links will be - resolved when added to the datafile. - - In bash, z appends a command to the PROMPT_COMMAND environment variable - to maintain its database. In zsh, z appends a function _z_precmd to the - precmd_functions array. - - The environment variable $_Z_NO_PROMPT_COMMAND can be set if you want - to handle PROMPT_COMMAND or precmd yourself. - - The environment variable $_Z_EXCLUDE_DIRS can be set to an array of - directory trees to exclude from tracking. $HOME is always excluded. - Directories must be full paths without trailing slashes. - - The environment variable $_Z_OWNER can be set to your username, to - allow usage of z when your sudo environment keeps $HOME set. - -FILES - Data is stored in $HOME/.z. This can be overridden by setting the - $_Z_DATA environment variable. When initialized, z will raise an error - if this path is a directory, and not function correctly. - - A man page (z.1) is provided. - -SEE ALSO - regex(7), pushd, popd, autojump, cdargs - - Please file bugs at https://github.com/rupa/z/ - - - -z January 2013 Z(1) diff --git a/plugins/z/README.md b/plugins/z/README.md index ea8d4610a..5b7d6f649 100644 --- a/plugins/z/README.md +++ b/plugins/z/README.md @@ -1,8 +1,9 @@ # z - jump around -This plugin defines the [z command](https://github.com/rupa/z) that tracks your most visited directories and allows you to access them with very few keystrokes. +This plugin defines the [z command](https://github.com/agkozak/zsh-z) that tracks your most visited directories and allows you to access them with very few keystrokes. ### Example + Assume that you have previously visited directory `~/.oh-my-zsh/plugins`. From any folder in your command line, you can quickly access it by using a regex match to this folder: ```bash @@ -11,6 +12,7 @@ Assume that you have previously visited directory `~/.oh-my-zsh/plugins`. From a ``` ### Setup + To enable z, add `z` to your `plugins` array in your zshrc file: ```zsh @@ -19,5 +21,4 @@ plugins=(... z) ### Further reading -For advanced usage and details of z, see [README](./README) (in man page format, copied from [rupa/z](https://github.com/rupa/z)). - +For advanced usage and details of z, see [MANUAL](./MANUAL.md) (copied from [agkozak/zsh-z](https://github.com/agkozak/zsh-z)). diff --git a/plugins/z/_z b/plugins/z/_z new file mode 100644 index 000000000..9891a52ed --- /dev/null +++ b/plugins/z/_z @@ -0,0 +1,82 @@ +#compdef zshz ${ZSHZ_CMD:-${_Z_CMD:-z}} +# +# Zsh-z - jump around with Zsh - A native Zsh version of z without awk, sort, +# date, or sed +# +# https://github.com/agkozak/zsh-z +# +# Copyright (c) 2018-2022 Alexandros Kozak +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# z (https://github.com/rupa/z) is copyright (c) 2009 rupa deadwyler and +# licensed under the WTFPL license, Version 2.a +# +# shellcheck shell=ksh + +############################################################ +# Zsh-z COMPLETIONS +############################################################ +emulate -L zsh +(( ZSHZ_DEBUG )) && + setopt LOCAL_OPTIONS WARN_CREATE_GLOBAL NO_WARN_NESTED_VAR 2> /dev/null + +# TODO: This routine currently reproduces z's feature of allowing spaces to be +# used as wildcards in completions, so that +# +# z us lo bi +# +# can expand to +# +# z /usr/local/bin +# +# but it also reproduces z's buggy display on the commandline, viz. +# +# z us lo /usr/local/bin +# +# Address. + +local completions expl completion +local -a completion_list + +completions=$(zshz --complete ${(@)words:1}) +[[ -z $completions ]] && return 1 + +for completion in ${(f)completions[@]}; do + if (( ZSHZ_TILDE )) && [[ $completion == ${HOME}* ]]; then + completion="~${(q)${completion#${HOME}}}" + else + completion="${(q)completion}" + fi + completion_list+=( $completion ) +done + +_description -V completion_list expl 'directories' + +if [[ $ZSHZ_COMPLETION == 'legacy' ]]; then + compadd "${expl[@]}" -QU -- "${completion_list[@]}" +else + compadd "${expl[@]}" -QU -V zsh-z -- "${completion_list[@]}" +fi + +compstate[insert]=menu + +return 0 + +# vim: ft=zsh:fdm=indent:ts=2:et:sts=2:sw=2: diff --git a/plugins/z/z.1 b/plugins/z/z.1 deleted file mode 100644 index 182f98176..000000000 --- a/plugins/z/z.1 +++ /dev/null @@ -1,173 +0,0 @@ -.TH "Z" "1" "January 2013" "z" "User Commands" -.SH -NAME -z \- jump around -.SH -SYNOPSIS -z [\-chlrtx] [regex1 regex2 ... regexn] -.SH -AVAILABILITY -bash, zsh -.SH -DESCRIPTION -Tracks your most used directories, based on 'frecency'. -.P -After a short learning phase, \fBz\fR will take you to the most 'frecent' -directory that matches ALL of the regexes given on the command line, in order. - -For example, \fBz foo bar\fR would match \fB/foo/bar\fR but not \fB/bar/foo\fR. -.SH -OPTIONS -.TP -\fB\-c\fR -restrict matches to subdirectories of the current directory -.TP -\fB\-e\fR -echo the best match, don't cd -.TP -\fB\-h\fR -show a brief help message -.TP -\fB\-l\fR -list only -.TP -\fB\-r\fR -match by rank only -.TP -\fB\-t\fR -match by recent access only -.TP -\fB\-x\fR -remove the current directory from the datafile -.SH EXAMPLES -.TP 14 -\fBz foo\fR -cd to most frecent dir matching foo -.TP 14 -\fBz foo bar\fR -cd to most frecent dir matching foo, then bar -.TP 14 -\fBz -r foo\fR -cd to highest ranked dir matching foo -.TP 14 -\fBz -t foo\fR -cd to most recently accessed dir matching foo -.TP 14 -\fBz -l foo\fR -list all dirs matching foo (by frecency) -.SH -NOTES -.SS -Installation: -.P -Put something like this in your \fB$HOME/.bashrc\fR or \fB$HOME/.zshrc\fR: -.RS -.P -\fB. /path/to/z.sh\fR -.RE -.P -\fBcd\fR around for a while to build up the db. -.P -PROFIT!! -.P -Optionally: -.RS -Set \fB$_Z_CMD\fR to change the command name (default \fBz\fR). -.RE -.RS -Set \fB$_Z_DATA\fR to change the datafile (default \fB$HOME/.z\fR). -.RE -.RS -Set \fB$_Z_MAX_SCORE\fR lower to age entries out faster (default \fB9000\fR). -.RE -.RS -Set \fB$_Z_NO_RESOLVE_SYMLINKS\fR to prevent symlink resolution. -.RE -.RS -Set \fB$_Z_NO_PROMPT_COMMAND\fR to handle \fBPROMPT_COMMAND/precmd\fR yourself. -.RE -.RS -Set \fB$_Z_EXCLUDE_DIRS\fR to an array of directory trees to exclude. -.RE -.RS -Set \fB$_Z_OWNER\fR to allow usage when in 'sudo -s' mode. -.RE -.RS -(These settings should go in .bashrc/.zshrc before the line added above.) -.RE -.RS -Install the provided man page \fBz.1\fR somewhere in your \f$MANPATH, like -\fB/usr/local/man/man1\fR. -.RE -.SS -Aging: -The rank of directories maintained by \fBz\fR undergoes aging based on a simple -formula. The rank of each entry is incremented every time it is accessed. When -the sum of ranks is over 9000, all ranks are multiplied by 0.99. Entries with a -rank lower than 1 are forgotten. -.SS -Frecency: -Frecency is a portmanteau of 'recent' and 'frequency'. It is a weighted rank -that depends on how often and how recently something occurred. As far as I -know, Mozilla came up with the term. -.P -To \fBz\fR, a directory that has low ranking but has been accessed recently -will quickly have higher rank than a directory accessed frequently a long time -ago. -.P -Frecency is determined at runtime. -.SS -Common: -When multiple directories match all queries, and they all have a common prefix, -\fBz\fR will cd to the shortest matching directory, without regard to priority. -This has been in effect, if undocumented, for quite some time, but should -probably be configurable or reconsidered. -.SS -Tab Completion: -\fBz\fR supports tab completion. After any number of arguments, press TAB to -complete on directories that match each argument. Due to limitations of the -completion implementations, only the last argument will be completed in the -shell. -.P -Internally, \fBz\fR decides you've requested a completion if the last argument -passed is an absolute path to an existing directory. This may cause unexpected -behavior if the last argument to \fBz\fR begins with \fB/\fR. -.SH -ENVIRONMENT -A function \fB_z()\fR is defined. -.P -The contents of the variable \fB$_Z_CMD\fR is aliased to \fB_z 2>&1\fR. If not -set, \fB$_Z_CMD\fR defaults to \fBz\fR. -.P -The environment variable \fB$_Z_DATA\fR can be used to control the datafile -location. If it is not defined, the location defaults to \fB$HOME/.z\fR. -.P -The environment variable \fB$_Z_NO_RESOLVE_SYMLINKS\fR can be set to prevent -resolving of symlinks. If it is not set, symbolic links will be resolved when -added to the datafile. -.P -In bash, \fBz\fR appends a command to the \fBPROMPT_COMMAND\fR environment -variable to maintain its database. In zsh, \fBz\fR appends a function -\fB_z_precmd\fR to the \fBprecmd_functions\fR array. -.P -The environment variable \fB$_Z_NO_PROMPT_COMMAND\fR can be set if you want to -handle \fBPROMPT_COMMAND\fR or \fBprecmd\fR yourself. -.P -The environment variable \fB$_Z_EXCLUDE_DIRS\fR can be set to an array of -directory trees to exclude from tracking. \fB$HOME\fR is always excluded. -Directories must be full paths without trailing slashes. -.P -The environment variable \fB$_Z_OWNER\fR can be set to your username, to -allow usage of \fBz\fR when your sudo environment keeps \fB$HOME\fR set. -.SH -FILES -Data is stored in \fB$HOME/.z\fR. This can be overridden by setting the -\fB$_Z_DATA\fR environment variable. When initialized, \fBz\fR will raise an -error if this path is a directory, and not function correctly. -.P -A man page (\fBz.1\fR) is provided. -.SH -SEE ALSO -regex(7), pushd, popd, autojump, cdargs -.P -Please file bugs at https://github.com/rupa/z/ diff --git a/plugins/z/z.plugin.zsh b/plugins/z/z.plugin.zsh index 7d3eacac0..209edfea7 100644 --- a/plugins/z/z.plugin.zsh +++ b/plugins/z/z.plugin.zsh @@ -1,6 +1,968 @@ -# Handle $0 according to the standard: -# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html -0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" -0="${${(M)0:#/*}:-$PWD/$0}" +################################################################################ +# Zsh-z - jump around with Zsh - A native Zsh version of z without awk, sort, +# date, or sed +# +# https://github.com/agkozak/zsh-z +# +# Copyright (c) 2018-2022 Alexandros Kozak +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# z (https://github.com/rupa/z) is copyright (c) 2009 rupa deadwyler and +# licensed under the WTFPL license, Version 2. +# +# Zsh-z maintains a jump-list of the directories you actually use. +# +# INSTALL: +# * put something like this in your .zshrc: +# source /path/to/zsh-z.plugin.zsh +# * cd around for a while to build up the database +# +# USAGE: +# * z foo cd to the most frecent directory matching foo +# * z foo bar cd to the most frecent directory matching both foo and bar +# (e.g. /foo/bat/bar/quux) +# * z -r foo cd to the highest ranked directory matching foo +# * z -t foo cd to most recently accessed directory matching foo +# * z -l foo List matches instead of changing directories +# * z -e foo Echo the best match without changing directories +# * z -c foo Restrict matches to subdirectories of PWD +# * z -x Remove a directory (default: PWD) from the database +# * z -xR Remove a directory (default: PWD) and its subdirectories from +# the database +# +# ENVIRONMENT VARIABLES: +# +# ZSHZ_CASE -> if `ignore', pattern matching is case-insensitive; if `smart', +# pattern matching is case-insensitive only when the pattern is all +# lowercase +# ZSHZ_CMD -> name of command (default: z) +# ZSHZ_COMPLETION -> completion method (default: 'frecent'; 'legacy' for +# alphabetic sorting) +# ZSHZ_DATA -> name of datafile (default: ~/.z) +# ZSHZ_EXCLUDE_DIRS -> array of directories to exclude from your database +# (default: empty) +# ZSHZ_KEEP_DIRS -> array of directories that should not be removed from the +# database, even if they are not currently available (default: empty) +# ZSHZ_MAX_SCORE -> maximum combined score the database entries can have +# before beginning to age (default: 9000) +# ZSHZ_NO_RESOLVE_SYMLINKS -> '1' prevents symlink resolution +# ZSHZ_OWNER -> your username (if you want use Zsh-z while using sudo -s) +# ZSHZ_UNCOMMON -> if 1, do not jump to "common directories," but rather drop +# subdirectories based on what the search string was (default: 0) +################################################################################ -source "${0:h}/z.sh" +autoload -U is-at-least + +if ! is-at-least 4.3.11; then + print "Zsh-z requires Zsh v4.3.11 or higher." >&2 && exit +fi + +############################################################ +# The help message +# +# Globals: +# ZSHZ_CMD +############################################################ +_zshz_usage() { + print "Usage: ${ZSHZ_CMD:-${_Z_CMD:-z}} [OPTION]... [ARGUMENT] +Jump to a directory that you have visited frequently or recently, or a bit of both, based on the partial string ARGUMENT. + +With no ARGUMENT, list the directory history in ascending rank. + + --add Add a directory to the database + -c Only match subdirectories of the current directory + -e Echo the best match without going to it + -h Display this help and exit + -l List all matches without going to them + -r Match by rank + -t Match by recent access + -x Remove a directory from the database (by default, the current directory) + -xR Remove a directory and its subdirectories from the database (by default, the current directory)" | + fold -s -w $COLUMNS >&2 +} + +# Load zsh/datetime module, if necessary +(( $+EPOCHSECONDS )) || zmodload zsh/datetime + +# Load zsh/files, if necessary +[[ ${builtins[zf_chown]} == 'defined' && + ${builtins[zf_mv]} == 'defined' && + ${builtins[zf_rm]} == 'defined' ]] || + zmodload -F zsh/files b:zf_chown b:zf_mv b:zf_rm + +# Load zsh/system, if necessary +[[ ${modules[zsh/system]} == 'loaded' ]] || zmodload zsh/system &> /dev/null + +# Global associative array for internal use +typeset -gA ZSHZ + +# Make sure ZSHZ_EXCLUDE_DIRS has been declared so that other scripts can +# simply append to it +(( ${+ZSHZ_EXCLUDE_DIRS} )) || typeset -gUa ZSHZ_EXCLUDE_DIRS + +# Determine if zsystem flock is available +zsystem supports flock &> /dev/null && ZSHZ[USE_FLOCK]=1 + +# Determine if `print -v' is supported +is-at-least 5.3.0 && ZSHZ[PRINTV]=1 + +############################################################ +# The Zsh-z Command +# +# Globals: +# ZSHZ +# ZSHZ_CASE +# ZSHZ_COMPLETION +# ZSHZ_DATA +# ZSHZ_DEBUG +# ZSHZ_EXCLUDE_DIRS +# ZSHZ_KEEP_DIRS +# ZSHZ_MAX_SCORE +# ZSHZ_OWNER +# +# Arguments: +# $* Command options and arguments +############################################################ +zshz() { + + # Don't use `emulate -L zsh' - it breaks PUSHD_IGNORE_DUPS + setopt LOCAL_OPTIONS NO_KSH_ARRAYS NO_SH_WORD_SPLIT EXTENDED_GLOB + (( ZSHZ_DEBUG )) && setopt LOCAL_OPTIONS WARN_CREATE_GLOBAL + + local REPLY + local -a lines + + # Allow the user to specify the datafile name in $ZSHZ_DATA (default: ~/.z) + # If the datafile is a symlink, it gets dereferenced + local datafile=${${ZSHZ_DATA:-${_Z_DATA:-${HOME}/.z}}:A} + + # If the datafile is a directory, print a warning and exit + if [[ -d $datafile ]]; then + print "ERROR: Zsh-z's datafile (${datafile}) is a directory." >&2 + exit + fi + + # Make sure that the datafile exists before attempting to read it or lock it + # for writing + [[ -f $datafile ]] || touch "$datafile" + + # Bail if we don't own the datafile and $ZSHZ_OWNER is not set + [[ -z ${ZSHZ_OWNER:-${_Z_OWNER}} && -f $datafile && ! -O $datafile ]] && + return + + # Load the datafile into an array and parse it + lines=( ${(f)"$(< $datafile)"} ) + # Discard entries that are incomplete or incorrectly formatted + lines=( ${(M)lines:#/*\|[[:digit:]]##[.,]#[[:digit:]]#\|[[:digit:]]##} ) + + ############################################################ + # Add a path to or remove one from the datafile + # + # Globals: + # ZSHZ + # ZSHZ_EXCLUDE_DIRS + # ZSHZ_OWNER + # + # Arguments: + # $1 Which action to perform (--add/--remove) + # $2 The path to add + ############################################################ + _zshz_add_or_remove_path() { + local action=${1} + shift + + if [[ $action == '--add' ]]; then + + # TODO: The following tasks are now handled by _agkozak_precmd. Dead code? + + # Don't add $HOME + [[ $* == $HOME ]] && return + + # Don't track directory trees excluded in ZSHZ_EXCLUDE_DIRS + local exclude + for exclude in ${(@)ZSHZ_EXCLUDE_DIRS:-${(@)_Z_EXCLUDE_DIRS}}; do + case $* in + ${exclude}|${exclude}/*) return ;; + esac + done + fi + + # A temporary file that gets copied over the datafile if all goes well + local tempfile="${datafile}.${RANDOM}" + + # See https://github.com/rupa/z/pull/199/commits/ed6eeed9b70d27c1582e3dd050e72ebfe246341c + if (( ZSHZ[USE_FLOCK] )); then + + local lockfd + + # Grab exclusive lock (released when function exits) + zsystem flock -f lockfd "$datafile" 2> /dev/null || return + + fi + + integer tmpfd + case $action in + --add) + exec {tmpfd}>|"$tempfile" # Open up tempfile for writing + _zshz_update_datafile $tmpfd "$*" + local ret=$? + ;; + --remove) + local xdir # Directory to be removed + + if (( ${ZSHZ_NO_RESOLVE_SYMLINKS:-${_Z_NO_RESOLVE_SYMLINKS}} )); then + [[ -d ${${*:-${PWD}}:a} ]] && xdir=${${*:-${PWD}}:a} + else + [[ -d ${${*:-${PWD}}:A} ]] && xdir=${${*:-${PWD}}:a} + fi + + local -a lines_to_keep + if (( ${+opts[-R]} )); then + # Prompt user before deleting entire database + if [[ $xdir == '/' ]] && ! read -q "?Delete entire Zsh-z database? "; then + print && return 1 + fi + # All of the lines that don't match the directory to be deleted + lines_to_keep=( ${lines:#${xdir}\|*} ) + # Or its subdirectories + lines_to_keep=( ${lines_to_keep:#${xdir%/}/**} ) + else + # All of the lines that don't match the directory to be deleted + lines_to_keep=( ${lines:#${xdir}\|*} ) + fi + if [[ $lines != "$lines_to_keep" ]]; then + lines=( $lines_to_keep ) + else + return 1 # The $PWD isn't in the datafile + fi + exec {tmpfd}>|"$tempfile" # Open up tempfile for writing + print -u $tmpfd -l -- $lines + local ret=$? + ;; + esac + + if (( tmpfd != 0 )); then + # Close tempfile + exec {tmpfd}>&- + fi + + if (( ret != 0 )); then + # Avoid clobbering the datafile if the write to tempfile failed + zf_rm -f "$tempfile" + return $ret + fi + + local owner + owner=${ZSHZ_OWNER:-${_Z_OWNER}} + + if (( ZSHZ[USE_FLOCK] )); then + zf_mv "$tempfile" "$datafile" 2> /dev/null || zf_rm -f "$tempfile" + + if [[ -n $owner ]]; then + zf_chown ${owner}:"$(id -ng ${owner})" "$datafile" + fi + else + if [[ -n $owner ]]; then + zf_chown "${owner}":"$(id -ng "${owner}")" "$tempfile" + fi + zf_mv -f "$tempfile" "$datafile" 2> /dev/null || zf_rm -f "$tempfile" + fi + + # In order to make z -x work, we have to disable zsh-z's adding + # to the database until the user changes directory and the + # chpwd_functions are run + if [[ $action == '--remove' ]]; then + ZSHZ[DIRECTORY_REMOVED]=1 + fi + } + + ############################################################ + # Read the curent datafile contents, update them, "age" them + # when the total rank gets high enough, and print the new + # contents to STDOUT. + # + # Globals: + # ZSHZ_KEEP_DIRS + # ZSHZ_MAX_SCORE + # + # Arguments: + # $1 File descriptor linked to tempfile + # $2 Path to be added to datafile + ############################################################ + _zshz_update_datafile() { + + integer fd=$1 + local -A rank time + + # Characters special to the shell (such as '[]') are quoted with backslashes + # See https://github.com/rupa/z/issues/246 + local add_path=${(q)2} + + local -a existing_paths + local now=$EPOCHSECONDS line dir + local path_field rank_field time_field count x + + rank[$add_path]=1 + time[$add_path]=$now + + # Remove paths from database if they no longer exist + for line in $lines; do + if [[ ! -d ${line%%\|*} ]]; then + for dir in ${(@)ZSHZ_KEEP_DIRS}; do + if [[ ${line%%\|*} == ${dir}/* || + ${line%%\|*} == $dir || + $dir == '/' ]]; then + existing_paths+=( $line ) + fi + done + else + existing_paths+=( $line ) + fi + done + lines=( $existing_paths ) + + for line in $lines; do + path_field=${(q)line%%\|*} + rank_field=${${line%\|*}#*\|} + time_field=${line##*\|} + + # When a rank drops below 1, drop the path from the database + (( rank_field < 1 )) && continue + + if [[ $path_field == $add_path ]]; then + rank[$path_field]=$rank_field + (( rank[$path_field]++ )) + time[$path_field]=$now + else + rank[$path_field]=$rank_field + time[$path_field]=$time_field + fi + (( count += rank_field )) + done + if (( count > ${ZSHZ_MAX_SCORE:-${_Z_MAX_SCORE:-9000}} )); then + # Aging + for x in ${(k)rank}; do + print -u $fd -- "$x|$(( 0.99 * rank[$x] ))|${time[$x]}" || return 1 + done + else + for x in ${(k)rank}; do + print -u $fd -- "$x|${rank[$x]}|${time[$x]}" || return 1 + done + fi + } + + ############################################################ + # The original tab completion method + # + # String processing is smartcase -- case-insensitive if the + # search string is lowercase, case-sensitive if there are + # any uppercase letters. Spaces in the search string are + # treated as *'s in globbing. Read the contents of the + # datafile and print matches to STDOUT. + # + # Arguments: + # $1 The string to be completed + ############################################################ + _zshz_legacy_complete() { + + local line path_field path_field_normalized + + # Replace spaces in the search string with asterisks for globbing + 1=${1//[[:space:]]/*} + + for line in $lines; do + + path_field=${line%%\|*} + + path_field_normalized=$path_field + if (( ZSHZ_TRAILING_SLASH )); then + path_field_normalized=${path_field%/}/ + fi + + # If the search string is all lowercase, the search will be case-insensitive + if [[ $1 == "${1:l}" && ${path_field_normalized:l} == *${~1}* ]]; then + print -- $path_field + # Otherwise, case-sensitive + elif [[ $path_field_normalized == *${~1}* ]]; then + print -- $path_field + fi + + done + # TODO: Search strings with spaces in them are currently treated case- + # insensitively. + } + + ############################################################ + # `print' or `printf' to REPLY + # + # Variable assignment through command substitution, of the + # form + # + # foo=$( bar ) + # + # requires forking a subshell; on Cygwin/MSYS2/WSL1 that can + # be surprisingly slow. Zsh-z avoids doing that by printing + # values to the variable REPLY. Since Zsh v5.3.0 that has + # been possible with `print -v'; for earlier versions of the + # shell, the values are placed on the editing buffer stack + # and then `read' into REPLY. + # + # Globals: + # ZSHZ + # + # Arguments: + # Options and parameters for `print' + ############################################################ + _zshz_printv() { + # NOTE: For a long time, ZSH's `print -v' had a tendency + # to mangle multibyte strings: + # + # https://www.zsh.org/mla/workers/2020/msg00307.html + # + # The bug was fixed in late 2020: + # + # https://github.com/zsh-users/zsh/commit/b6ba74cd4eaec2b6cb515748cf1b74a19133d4a4#diff-32bbef18e126b837c87b06f11bfc61fafdaa0ed99fcb009ec53f4767e246b129 + # + # In order to support shells with the bug, we must use a form of `printf`, + # which does not exhibit the undesired behavior. See + # + # https://www.zsh.org/mla/workers/2020/msg00308.html + + if (( ZSHZ[PRINTV] )); then + builtin print -v REPLY -f %s $@ + else + builtin print -z $@ + builtin read -rz REPLY + fi + } + + ############################################################ + # If matches share a common root, find it, and put it in + # REPLY for _zshz_output to use. + # + # Arguments: + # $1 Name of associative array of matches and ranks + ############################################################ + _zshz_find_common_root() { + local -a common_matches + local x short + + common_matches=( ${(@Pk)1} ) + + for x in ${(@)common_matches}; do + if [[ -z $short ]] || (( $#x < $#short )) || [[ $x != ${short}/* ]]; then + short=$x + fi + done + + [[ $short == '/' ]] && return + + for x in ${(@)common_matches}; do + [[ $x != $short* ]] && return + done + + _zshz_printv -- $short + } + + ############################################################ + # Calculate a common root, if there is one. Then do one of + # the following: + # + # 1) Print a list of completions in frecent order; + # 2) List them (z -l) to STDOUT; or + # 3) Put a common root or best match into REPLY + # + # Globals: + # ZSHZ_UNCOMMON + # + # Arguments: + # $1 Name of an associative array of matches and ranks + # $2 The best match or best case-insensitive match + # $3 Whether to produce a completion, a list, or a root or + # match + ############################################################ + _zshz_output() { + + local match_array=$1 match=$2 format=$3 + local common k x + local -a descending_list output + local -A output_matches + + output_matches=( ${(Pkv)match_array} ) + + _zshz_find_common_root $match_array + common=$REPLY + + case $format in + + completion) + for k in ${(@k)output_matches}; do + _zshz_printv -f "%.2f|%s" ${output_matches[$k]} $k + descending_list+=( ${(f)REPLY} ) + REPLY='' + done + descending_list=( ${${(@On)descending_list}#*\|} ) + print -l $descending_list + ;; + + list) + local path_to_display + for x in ${(k)output_matches}; do + if (( ${output_matches[$x]} )); then + path_to_display=$x + (( ZSHZ_TILDE )) && + path_to_display=${path_to_display/#${HOME}/\~} + _zshz_printv -f "%-10d %s\n" ${output_matches[$x]} $path_to_display + output+=( ${(f)REPLY} ) + REPLY='' + fi + done + if [[ -n $common ]]; then + (( ZSHZ_TILDE )) && common=${common/#${HOME}/\~} + (( $#output > 1 )) && printf "%-10s %s\n" 'common:' $common + fi + # -lt + if (( $+opts[-t] )); then + for x in ${(@On)output}; do + print -- $x + done + # -lr + elif (( $+opts[-r] )); then + for x in ${(@on)output}; do + print -- $x + done + # -l + else + for x in ${(@on)output}; do + print $x + done + fi + ;; + + *) + if (( ! ZSHZ_UNCOMMON )) && [[ -n $common ]]; then + _zshz_printv -- $common + else + _zshz_printv -- ${(P)match} + fi + ;; + esac + } + + ############################################################ + # Match a pattern by rank, time, or a combination of the + # two, and output the results as completions, a list, or a + # best match. + # + # Globals: + # ZSHZ + # ZSHZ_CASE + # ZSHZ_KEEP_DIRS + # ZSHZ_OWNER + # + # Arguments: + # #1 Pattern to match + # $2 Matching method (rank, time, or [default] frecency) + # $3 Output format (completion, list, or [default] store + # in REPLY + ############################################################ + _zshz_find_matches() { + setopt LOCAL_OPTIONS NO_EXTENDED_GLOB + + local fnd=$1 method=$2 format=$3 + + local -a existing_paths + local line dir path_field rank_field time_field rank dx escaped_path_field + local -A matches imatches + local best_match ibest_match hi_rank=-9999999999 ihi_rank=-9999999999 + + # Remove paths from database if they no longer exist + for line in $lines; do + if [[ ! -d ${line%%\|*} ]]; then + for dir in ${(@)ZSHZ_KEEP_DIRS}; do + if [[ ${line%%\|*} == ${dir}/* || + ${line%%\|*} == $dir || + $dir == '/' ]]; then + existing_paths+=( $line ) + fi + done + else + existing_paths+=( $line ) + fi + done + lines=( $existing_paths ) + + for line in $lines; do + path_field=${line%%\|*} + rank_field=${${line%\|*}#*\|} + time_field=${line##*\|} + + case $method in + rank) rank=$rank_field ;; + time) (( rank = time_field - EPOCHSECONDS )) ;; + *) + # Frecency routine + (( dx = EPOCHSECONDS - time_field )) + rank=$(( 10000 * rank_field * (3.75/((0.0001 * dx + 1) + 0.25)) )) + ;; + esac + + # Use spaces as wildcards + local q=${fnd//[[:space:]]/\*} + + # If $ZSHZ_TRAILING_SLASH is set, use path_field with a trailing slash for matching. + local path_field_normalized=$path_field + if (( ZSHZ_TRAILING_SLASH )); then + path_field_normalized=${path_field%/}/ + fi + + # If $ZSHZ_CASE is 'ignore', be case-insensitive. + # + # If it's 'smart', be case-insensitive unless the string to be matched + # includes capital letters. + # + # Otherwise, the default behavior of Zsh-z is to match case-sensitively if + # possible, then to fall back on a case-insensitive match if possible. + if [[ $ZSHZ_CASE == 'smart' && ${1:l} == $1 && + ${path_field_normalized:l} == ${~q:l} ]]; then + imatches[$path_field]=$rank + elif [[ $ZSHZ_CASE != 'ignore' && $path_field_normalized == ${~q} ]]; then + matches[$path_field]=$rank + elif [[ $ZSHZ_CASE != 'smart' && ${path_field_normalized:l} == ${~q:l} ]]; then + imatches[$path_field]=$rank + fi + + # Escape characters that would cause "invalid subscript" errors + # when accessing the associative array. + escaped_path_field=${path_field//'\'/'\\'} + escaped_path_field=${escaped_path_field//'`'/'\`'} + escaped_path_field=${escaped_path_field//'('/'\('} + escaped_path_field=${escaped_path_field//')'/'\)'} + escaped_path_field=${escaped_path_field//'['/'\['} + escaped_path_field=${escaped_path_field//']'/'\]'} + + if (( matches[$escaped_path_field] )) && + (( matches[$escaped_path_field] > hi_rank )); then + best_match=$path_field + hi_rank=${matches[$escaped_path_field]} + elif (( imatches[$escaped_path_field] )) && + (( imatches[$escaped_path_field] > ihi_rank )); then + ibest_match=$path_field + ihi_rank=${imatches[$escaped_path_field]} + ZSHZ[CASE_INSENSITIVE]=1 + fi + done + + # Return 1 when there are no matches + [[ -z $best_match && -z $ibest_match ]] && return 1 + + if [[ -n $best_match ]]; then + _zshz_output matches best_match $format + elif [[ -n $ibest_match ]]; then + _zshz_output imatches ibest_match $format + fi + } + + # THE MAIN ROUTINE + + local -A opts + + zparseopts -E -D -A opts -- \ + -add \ + -complete \ + c \ + e \ + h \ + -help \ + l \ + r \ + R \ + t \ + x + + if [[ $1 == '--' ]]; then + shift + elif [[ -n ${(M)@:#-*} && -z $compstate ]]; then + print "Improper option(s) given." + _zshz_usage + return 1 + fi + + local opt output_format method='frecency' fnd prefix req + + for opt in ${(k)opts}; do + case $opt in + --add) + [[ ! -d $* ]] && return 1 + local dir + # Cygwin and MSYS2 have a hard time with relative paths expressed from / + if [[ $OSTYPE == (cygwin|msys) && $PWD == '/' && $* != /* ]]; then + set -- "/$*" + fi + if (( ${ZSHZ_NO_RESOLVE_SYMLINKS:-${_Z_NO_RESOLVE_SYMLINKS}} )); then + dir=${*:a} + else + dir=${*:A} + fi + _zshz_add_or_remove_path --add "$dir" + return + ;; + --complete) + if [[ -s $datafile && ${ZSHZ_COMPLETION:-frecent} == 'legacy' ]]; then + _zshz_legacy_complete "$1" + return + fi + output_format='completion' + ;; + -c) [[ $* == ${PWD}/* || $PWD == '/' ]] || prefix="$PWD " ;; + -h|--help) + _zshz_usage + return + ;; + -l) output_format='list' ;; + -r) method='rank' ;; + -t) method='time' ;; + -x) + # Cygwin and MSYS2 have a hard time with relative paths expressed from / + if [[ $OSTYPE == (cygwin|msys) && $PWD == '/' && $* != /* ]]; then + set -- "/$*" + fi + _zshz_add_or_remove_path --remove $* + return + ;; + esac + done + req="$*" + fnd="$prefix$*" + + [[ -n $fnd && $fnd != "$PWD " ]] || { + [[ $output_format != 'completion' ]] && output_format='list' + } + + ######################################################### + # If $ZSHZ_ECHO == 1, display paths as you jump to them. + # If it is also the case that $ZSHZ_TILDE == 1, display + # the home directory as a tilde. + ######################################################### + _zshz_echo() { + if (( ZSHZ_ECHO )); then + if (( ZSHZ_TILDE )); then + print ${PWD/#${HOME}/\~} + else + print $PWD + fi + fi + } + + if [[ ${@: -1} == /* ]] && (( ! $+opts[-e] && ! $+opts[-l] )); then + # cd if possible; echo the new path if $ZSHZ_ECHO == 1 + [[ -d ${@: -1} ]] && builtin cd ${@: -1} && _zshz_echo && return + fi + + # With option -c, make sure query string matches beginning of matches; + # otherwise look for matches anywhere in paths + + # zpm-zsh/colors has a global $c, so we'll avoid math expressions here + if [[ ! -z ${(tP)opts[-c]} ]]; then + _zshz_find_matches "$fnd*" $method $output_format + else + _zshz_find_matches "*$fnd*" $method $output_format + fi + + local ret2=$? + + local cd + cd=$REPLY + + # New experimental "uncommon" behavior + # + # If the best choice at this point is something like /foo/bar/foo/bar, and the # search pattern is `bar', go to /foo/bar/foo/bar; but if the search pattern + # is `foo', go to /foo/bar/foo + if (( ZSHZ_UNCOMMON )) && [[ -n $cd ]]; then + if [[ -n $cd ]]; then + + # In the search pattern, replace spaces with * + local q=${fnd//[[:space:]]/\*} + q=${q%/} # Trailing slash has to be removed + + # As long as the best match is not case-insensitive + if (( ! ZSHZ[CASE_INSENSITIVE] )); then + # Count the number of characters in $cd that $q matches + local q_chars=$(( ${#cd} - ${#${cd//${~q}/}} )) + # Try dropping directory elements from the right; stop when it affects + # how many times the search pattern appears + until (( ( ${#cd:h} - ${#${${cd:h}//${~q}/}} ) != q_chars )); do + cd=${cd:h} + done + + # If the best match is case-insensitive + else + local q_chars=$(( ${#cd} - ${#${${cd:l}//${~${q:l}}/}} )) + until (( ( ${#cd:h} - ${#${${${cd:h}:l}//${~${q:l}}/}} ) != q_chars )); do + cd=${cd:h} + done + fi + + ZSHZ[CASE_INSENSITIVE]=0 + fi + fi + + if (( ret2 == 0 )) && [[ -n $cd ]]; then + if (( $+opts[-e] )); then # echo + (( ZSHZ_TILDE )) && cd=${cd/#${HOME}/\~} + print -- "$cd" + else + # cd if possible; echo the new path if $ZSHZ_ECHO == 1 + [[ -d $cd ]] && builtin cd "$cd" && _zshz_echo + fi + else + # if $req is a valid path, cd to it; echo the new path if $ZSHZ_ECHO == 1 + if ! (( $+opts[-e] || $+opts[-l] )) && [[ -d $req ]]; then + builtin cd "$req" && _zshz_echo + else + return $ret2 + fi + fi +} + +alias ${ZSHZ_CMD:-${_Z_CMD:-z}}='zshz 2>&1' + +############################################################ +# precmd - add path to datafile unless `z -x' has just been +# run +# +# Globals: +# ZSHZ +############################################################ +_zshz_precmd() { + # Do not add PWD to datafile when in HOME directory, or + # if `z -x' has just been run + [[ $PWD == "$HOME" ]] || (( ZSHZ[DIRECTORY_REMOVED] )) && return + + # Don't track directory trees excluded in ZSHZ_EXCLUDE_DIRS + local exclude + for exclude in ${(@)ZSHZ_EXCLUDE_DIRS:-${(@)_Z_EXCLUDE_DIRS}}; do + case $PWD in + ${exclude}|${exclude}/*) return ;; + esac + done + + # It appears that forking a subshell is so slow in Windows that it is better + # just to add the PWD to the datafile in the foreground + if [[ $OSTYPE == (cygwin|msys) ]]; then + zshz --add "$PWD" + else + (zshz --add "$PWD" &) + fi + + # See https://github.com/rupa/z/pull/247/commits/081406117ea42ccb8d159f7630cfc7658db054b6 + : $RANDOM +} + +############################################################ +# chpwd +# +# When the $PWD is removed from the datafile with `z -x', +# Zsh-z refrains from adding it again until the user has +# left the directory. +# +# Globals: +# ZSHZ +############################################################ +_zshz_chpwd() { + ZSHZ[DIRECTORY_REMOVED]=0 +} + +autoload -Uz add-zsh-hook + +add-zsh-hook precmd _zshz_precmd +add-zsh-hook chpwd _zshz_chpwd + +############################################################ +# Completion +############################################################ + +# Standarized $0 handling +# (See https://github.com/agkozak/Zsh-100-Commits-Club/blob/master/Zsh-Plugin-Standard.adoc) +0=${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}} +0=${${(M)0:#/*}:-$PWD/$0} + +(( ${fpath[(ie)${0:A:h}]} <= ${#fpath} )) || fpath=( "${0:A:h}" "${fpath[@]}" ) + +############################################################ +# zsh-z functions +############################################################ +ZSHZ[FUNCTIONS]='_zshz_usage + _zshz_add_or_remove_path + _zshz_update_datafile + _zshz_legacy_complete + _zshz_printv + _zshz_find_common_root + _zshz_output + _zshz_find_matches + zshz + _zshz_precmd + _zshz_chpwd + _zshz' + +############################################################ +# Enable WARN_NESTED_VAR for functions listed in +# ZSHZ[FUNCTIONS] +############################################################ +(( ZSHZ_DEBUG )) && () { + if is-at-least 5.4.0; then + local x + for x in ${=ZSHZ[FUNCTIONS]}; do + functions -W $x + done + fi +} + +############################################################ +# Unload function +# +# See https://github.com/agkozak/Zsh-100-Commits-Club/blob/master/Zsh-Plugin-Standard.adoc#unload-fun +# +# Globals: +# ZSHZ +# ZSHZ_CMD +############################################################ +zsh-z_plugin_unload() { + emulate -L zsh + + add-zsh-hook -D precmd _zshz_precmd + add-zsh-hook -d chpwd _zshz_chpwd + + local x + for x in ${=ZSHZ[FUNCTIONS]}; do + (( ${+functions[$x]} )) && unfunction $x + done + + unset ZSHZ + + fpath=( "${(@)fpath:#${0:A:h}}" ) + + (( ${+aliases[${ZSHZ_CMD:-${_Z_CMD:-z}}]} )) && + unalias ${ZSHZ_CMD:-${_Z_CMD:-z}} + + unfunction $0 +} + +# vim: fdm=indent:ts=2:et:sts=2:sw=2: diff --git a/plugins/z/z.sh b/plugins/z/z.sh deleted file mode 100644 index 67f504e27..000000000 --- a/plugins/z/z.sh +++ /dev/null @@ -1,267 +0,0 @@ -# Copyright (c) 2009 rupa deadwyler. Licensed under the WTFPL license, Version 2 - -# maintains a jump-list of the directories you actually use -# -# INSTALL: -# * put something like this in your .bashrc/.zshrc: -# . /path/to/z.sh -# * cd around for a while to build up the db -# * PROFIT!! -# * optionally: -# set $_Z_CMD in .bashrc/.zshrc to change the command (default z). -# set $_Z_DATA in .bashrc/.zshrc to change the datafile (default ~/.z). -# set $_Z_MAX_SCORE lower to age entries out faster (default 9000). -# set $_Z_NO_RESOLVE_SYMLINKS to prevent symlink resolution. -# set $_Z_NO_PROMPT_COMMAND if you're handling PROMPT_COMMAND yourself. -# set $_Z_EXCLUDE_DIRS to an array of directories to exclude. -# set $_Z_OWNER to your username if you want use z while sudo with $HOME kept -# -# USE: -# * z foo # cd to most frecent dir matching foo -# * z foo bar # cd to most frecent dir matching foo and bar -# * z -r foo # cd to highest ranked dir matching foo -# * z -t foo # cd to most recently accessed dir matching foo -# * z -l foo # list matches instead of cd -# * z -e foo # echo the best match, don't cd -# * z -c foo # restrict matches to subdirs of $PWD -# * z -x # remove the current directory from the datafile -# * z -h # show a brief help message - -[ -d "${_Z_DATA:-$HOME/.z}" ] && { - echo "ERROR: z.sh's datafile (${_Z_DATA:-$HOME/.z}) is a directory." -} - -_z() { - - local datafile="${_Z_DATA:-$HOME/.z}" - - # if symlink, dereference - [ -h "$datafile" ] && datafile=$(readlink "$datafile") - - # bail if we don't own ~/.z and $_Z_OWNER not set - [ -z "$_Z_OWNER" -a -f "$datafile" -a ! -O "$datafile" ] && return - - _z_dirs () { - [ -f "$datafile" ] || return - - local line - while read line; do - # only count directories - [ -d "${line%%\|*}" ] && echo "$line" - done < "$datafile" - return 0 - } - - # add entries - if [ "$1" = "--add" ]; then - shift - - # $HOME and / aren't worth matching - [ "$*" = "$HOME" -o "$*" = '/' ] && return - - # don't track excluded directory trees - if [ ${#_Z_EXCLUDE_DIRS[@]} -gt 0 ]; then - local exclude - for exclude in "${_Z_EXCLUDE_DIRS[@]}"; do - case "$*" in "$exclude"*) return;; esac - done - fi - - # maintain the data file - local tempfile="$datafile.$RANDOM" - local score=${_Z_MAX_SCORE:-9000} - _z_dirs | awk -v path="$*" -v now="$(date +%s)" -v score=$score -F"|" ' - BEGIN { - rank[path] = 1 - time[path] = now - } - $2 >= 1 { - # drop ranks below 1 - if( $1 == path ) { - rank[$1] = $2 + 1 - time[$1] = now - } else { - rank[$1] = $2 - time[$1] = $3 - } - count += $2 - } - END { - if( count > score ) { - # aging - for( x in rank ) print x "|" 0.99*rank[x] "|" time[x] - } else for( x in rank ) print x "|" rank[x] "|" time[x] - } - ' 2>/dev/null >| "$tempfile" - # do our best to avoid clobbering the datafile in a race condition. - if [ $? -ne 0 -a -f "$datafile" ]; then - env rm -f "$tempfile" - else - [ "$_Z_OWNER" ] && chown $_Z_OWNER:"$(id -ng $_Z_OWNER)" "$tempfile" - env mv -f "$tempfile" "$datafile" || env rm -f "$tempfile" - fi - - # tab completion - elif [ "$1" = "--complete" -a -s "$datafile" ]; then - _z_dirs | awk -v q="$2" -F"|" ' - BEGIN { - q = substr(q, 3) - if( q == tolower(q) ) imatch = 1 - gsub(/ /, ".*", q) - } - { - if( imatch ) { - if( tolower($1) ~ q ) print $1 - } else if( $1 ~ q ) print $1 - } - ' 2>/dev/null - - else - # list/go - local echo fnd last list opt typ - while [ "$1" ]; do case "$1" in - --) while [ "$1" ]; do shift; fnd="$fnd${fnd:+ }$1";done;; - -*) opt=${1:1}; while [ "$opt" ]; do case ${opt:0:1} in - c) fnd="^$PWD $fnd";; - e) echo=1;; - h) echo "${_Z_CMD:-z} [-cehlrtx] args" >&2; return;; - l) list=1;; - r) typ="rank";; - t) typ="recent";; - x) sed -i -e "\:^${PWD}|.*:d" "$datafile";; - esac; opt=${opt:1}; done;; - *) fnd="$fnd${fnd:+ }$1";; - esac; last=$1; [ "$#" -gt 0 ] && shift; done - [ "$fnd" -a "$fnd" != "^$PWD " ] || list=1 - - # if we hit enter on a completion just go there - case "$last" in - # completions will always start with / - /*) [ -z "$list" -a -d "$last" ] && builtin cd "$last" && return;; - esac - - # no file yet - [ -f "$datafile" ] || return - - local cd - cd="$( < <( _z_dirs ) awk -v t="$(date +%s)" -v list="$list" -v typ="$typ" -v q="$fnd" -F"|" ' - function frecent(rank, time) { - # relate frequency and time - dx = t - time - return int(10000 * rank * (3.75/((0.0001 * dx + 1) + 0.25))) - } - function output(matches, best_match, common) { - # list or return the desired directory - if( list ) { - if( common ) { - printf "%-10s %s\n", "common:", common > "/dev/stderr" - } - cmd = "sort -n >&2" - for( x in matches ) { - if( matches[x] ) { - printf "%-10s %s\n", matches[x], x | cmd - } - } - } else { - if( common && !typ ) best_match = common - print best_match - } - } - function common(matches) { - # find the common root of a list of matches, if it exists - for( x in matches ) { - if( matches[x] && (!short || length(x) < length(short)) ) { - short = x - } - } - if( short == "/" ) return - for( x in matches ) if( matches[x] && index(x, short) != 1 ) { - return - } - return short - } - BEGIN { - gsub(" ", ".*", q) - hi_rank = ihi_rank = -9999999999 - } - { - if( typ == "rank" ) { - rank = $2 - } else if( typ == "recent" ) { - rank = $3 - t - } else rank = frecent($2, $3) - if( $1 ~ q ) { - matches[$1] = rank - } else if( tolower($1) ~ tolower(q) ) imatches[$1] = rank - if( matches[$1] && matches[$1] > hi_rank ) { - best_match = $1 - hi_rank = matches[$1] - } else if( imatches[$1] && imatches[$1] > ihi_rank ) { - ibest_match = $1 - ihi_rank = imatches[$1] - } - } - END { - # prefer case sensitive - if( best_match ) { - output(matches, best_match, common(matches)) - exit - } else if( ibest_match ) { - output(imatches, ibest_match, common(imatches)) - exit - } - exit(1) - } - ')" - - if [ "$?" -eq 0 ]; then - if [ "$cd" ]; then - if [ "$echo" ]; then echo "$cd"; else builtin cd "$cd"; fi - fi - else - return $? - fi - fi -} - -alias ${_Z_CMD:-z}='_z 2>&1' - -[ "$_Z_NO_RESOLVE_SYMLINKS" ] || _Z_RESOLVE_SYMLINKS="-P" - -if type compctl >/dev/null 2>&1; then - # zsh - [ "$_Z_NO_PROMPT_COMMAND" ] || { - # populate directory list, avoid clobbering any other precmds. - if [ "$_Z_NO_RESOLVE_SYMLINKS" ]; then - _z_precmd() { - (_z --add "${PWD:a}" &) - : $RANDOM - } - else - _z_precmd() { - (_z --add "${PWD:A}" &) - : $RANDOM - } - fi - [[ -n "${precmd_functions[(r)_z_precmd]}" ]] || { - precmd_functions[$(($#precmd_functions+1))]=_z_precmd - } - } - _z_zsh_tab_completion() { - # tab completion - local compl - read -l compl - reply=(${(f)"$(_z --complete "$compl")"}) - } - compctl -U -K _z_zsh_tab_completion _z -elif type complete >/dev/null 2>&1; then - # bash - # tab completion - complete -o filenames -C '_z --complete "$COMP_LINE"' ${_Z_CMD:-z} - [ "$_Z_NO_PROMPT_COMMAND" ] || { - # populate directory list. avoid clobbering other PROMPT_COMMANDs. - grep "_z --add" <<< "$PROMPT_COMMAND" >/dev/null || { - PROMPT_COMMAND="$PROMPT_COMMAND"$'\n''(_z --add "$(command pwd '$_Z_RESOLVE_SYMLINKS' 2>/dev/null)" 2>/dev/null &);' - } - } -fi From 8487a5536d247927216dd22041c1c32bcd100256 Mon Sep 17 00:00:00 2001 From: Carlo Date: Tue, 18 Oct 2022 19:38:47 +0200 Subject: [PATCH 025/441] fix(cli): avoid using `column` (#11271) --- lib/cli.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/cli.zsh b/lib/cli.zsh index f15bd6d63..fed00d21d 100644 --- a/lib/cli.zsh +++ b/lib/cli.zsh @@ -416,14 +416,14 @@ function _omz::plugin::list { if (( ${#custom_plugins} )); then print -P "%U%BCustom plugins%b%u:" - print -l ${(q-)custom_plugins} | column -x + print -lac ${(q-)custom_plugins} fi if (( ${#builtin_plugins} )); then (( ${#custom_plugins} )) && echo # add a line of separation print -P "%U%BBuilt-in plugins%b%u:" - print -l ${(q-)builtin_plugins} | column -x + print -lac ${(q-)builtin_plugins} fi } @@ -674,13 +674,13 @@ function _omz::theme::list { # Print custom themes if there are any if (( ${#custom_themes} )); then print -P "%U%BCustom themes%b%u:" - print -l ${(q-)custom_themes} | column -x + print -lac ${(q-)custom_themes} echo fi # Print built-in themes print -P "%U%BBuilt-in themes%b%u:" - print -l ${(q-)builtin_themes} | column -x + print -lac ${(q-)builtin_themes} } function _omz::theme::set { From 4e4961e60c6e4bb6a3bd30bc70576f00ea519930 Mon Sep 17 00:00:00 2001 From: Yuval Date: Tue, 18 Oct 2022 19:40:02 +0200 Subject: [PATCH 026/441] feat(aliases): add basic argument parsing (#10710) --- plugins/aliases/README.md | 6 ++++++ plugins/aliases/cheatsheet.py | 25 +++++++++++++++++++------ 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/plugins/aliases/README.md b/plugins/aliases/README.md index bfb6ab8c4..66fd84584 100644 --- a/plugins/aliases/README.md +++ b/plugins/aliases/README.md @@ -17,6 +17,12 @@ Requirements: Python needs to be installed. - `acs`: show all aliases by group. +- `acs -h/--help`: print help mesage. + - `acs `: filter aliases by `` and highlight. +- `acs -g /--group `. Multiple uses of the flag show all groups, + +- `acs --groups-only`: show only group names + ![screenshot](https://cloud.githubusercontent.com/assets/3602957/11581913/cb54fb8a-9a82-11e5-846b-5a67f67ad9ad.png) diff --git a/plugins/aliases/cheatsheet.py b/plugins/aliases/cheatsheet.py index a7e3968b0..3362a6ab6 100644 --- a/plugins/aliases/cheatsheet.py +++ b/plugins/aliases/cheatsheet.py @@ -2,6 +2,7 @@ import sys import itertools import termcolor +import argparse def parse(line): left = line[0:line.find('=')].strip() @@ -26,7 +27,7 @@ def cheatsheet(lines): target_aliases.extend(group_list) return cheatsheet -def pretty_print_group(key, aliases, highlight=None): +def pretty_print_group(key, aliases, highlight=None, only_groupname=False): 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)]) @@ -35,21 +36,33 @@ def pretty_print_group(key, aliases, highlight=None): alias_formatter = lambda alias: termcolor.colored('\t%s = %s' % alias[0:2], 'green') if highlight and len(highlight)>0: print (group_hl_formatter(key, highlight)) - print ('\n'.join([alias_hl_formatter(alias, highlight) for alias in aliases])) + if not only_groupname: + 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])) + if not only_groupname: + print ('\n'.join([alias_formatter(alias) for alias in aliases])) print ('') -def pretty_print(cheatsheet, wfilter): +def pretty_print(cheatsheet, wfilter, group_list=None, groups_only=False): sorted_key = sorted(cheatsheet.keys()) for key in sorted_key: + if group_list and key not in group_list: + continue aliases = cheatsheet.get(key) if not wfilter: - pretty_print_group(key, aliases, wfilter) + pretty_print_group(key, aliases, wfilter, groups_only) else: pretty_print_group(key, [ alias for alias in aliases if alias[0].find(wfilter)>-1 or alias[1].find(wfilter)>-1], wfilter) if __name__ == '__main__': + parser = argparse.ArgumentParser(description="Pretty print aliases.") + parser.add_argument('filter', nargs="*", help="search aliases matching string") + parser.add_argument('-g', '--group', dest="group_list", action='append', help="only print aliases in given groups") + parser.add_argument('--groups', dest='groups_only', action='store_true', help="only print alias groups") + args = parser.parse_args() + lines = sys.stdin.readlines() - pretty_print(cheatsheet(lines), sys.argv[1] if len(sys.argv)>1 else None) + group_list = args.group_list or None + wfilter = " ".join(args.filter) or None + pretty_print(cheatsheet(lines), wfilter, group_list, args.groups_only) From a7d910c3a61d8599f748a8ddae59ecdd9424022a Mon Sep 17 00:00:00 2001 From: Shreem Asati <96364929+shreem-123@users.noreply.github.com> Date: Wed, 19 Oct 2022 11:57:54 +0530 Subject: [PATCH 027/441] chore: fix typo in CONTRIBUTING.md (#11273) --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 59cf96012..e78bd8192 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -233,7 +233,7 @@ type(scope)!: subject Try to keep the first commit line short. This is harder to do using this commit style but try to be concise and if you need more space, you can use the commit body. Try to make sure that the commit -subject is clear and precise enough that users will know what change by just looking at the changelog. +subject is clear and precise enough that users will know what changed by just looking at the changelog. ---- From 0066280c3e971e1e45a9037f6d0b993dabcc3576 Mon Sep 17 00:00:00 2001 From: pomatory Date: Sun, 23 Oct 2022 02:52:26 +0800 Subject: [PATCH 028/441] fix(pip): fix `pipupall` error with `freeze` format (#11280) --- plugins/pip/pip.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/pip/pip.plugin.zsh b/plugins/pip/pip.plugin.zsh index 7eb2d2a35..90e39e118 100644 --- a/plugins/pip/pip.plugin.zsh +++ b/plugins/pip/pip.plugin.zsh @@ -94,12 +94,12 @@ alias pipreq="pip freeze > requirements.txt" # Install packages from requirements file alias pipir="pip install -r requirements.txt" -# Update all installed packages +# Upgrade all installed packages function pipupall { # non-GNU xargs does not support nor need `--no-run-if-empty` local xargs="xargs --no-run-if-empty" xargs --version 2>/dev/null | grep -q GNU || xargs="xargs" - pip list --outdated --format freeze | cut -d= -f1 | ${=xargs} pip install --upgrade + pip list --outdated | awk 'NR > 2 { print $1 }' | ${=xargs} pip install --upgrade } # Uninstalled all installed packages From bb8a0aa2c1c54c3aeb3e703397ab050fd62e36e6 Mon Sep 17 00:00:00 2001 From: Zhong Ruoyu Date: Mon, 24 Oct 2022 18:07:12 +0800 Subject: [PATCH 029/441] fix(npm): ignore `rm` alias (#11222) --- plugins/npm/npm.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/npm/npm.plugin.zsh b/plugins/npm/npm.plugin.zsh index 6c768d614..e0dcbf142 100644 --- a/plugins/npm/npm.plugin.zsh +++ b/plugins/npm/npm.plugin.zsh @@ -1,5 +1,5 @@ (( $+commands[npm] )) && { - rm -f "${ZSH_CACHE_DIR:-$ZSH/cache}/npm_completion" + command rm -f "${ZSH_CACHE_DIR:-$ZSH/cache}/npm_completion" _npm_completion() { local si=$IFS From 820b8bd40f19867d7811766f967d66faa5e5a818 Mon Sep 17 00:00:00 2001 From: Eric Hsieh Date: Wed, 26 Oct 2022 03:35:30 +0800 Subject: [PATCH 030/441] docs(autojump): fix outdated links and update description (#11289) --- plugins/asdf/README.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/plugins/asdf/README.md b/plugins/asdf/README.md index e8aa976bc..f047860e2 100644 --- a/plugins/asdf/README.md +++ b/plugins/asdf/README.md @@ -6,22 +6,25 @@ Adds integration with [asdf](https://github.com/asdf-vm/asdf), the extendable ve ### Installation -1. Enable the plugin by adding it to your `plugins` definition in `~/.zshrc`. +1. [Download asdf](https://asdf-vm.com/guide/getting-started.html#_2-download-asdf) by running the following: + + ``` + git clone https://github.com/asdf-vm/asdf.git ~/.asdf + ``` + +2. [Enable asdf](https://asdf-vm.com/guide/getting-started.html#_3-install-asdf) by adding it to your `plugins` definition in `~/.zshrc`. ``` plugins=(asdf) ``` -2. [Install asdf](https://github.com/asdf-vm/asdf#setup) by running the following: - ``` - git clone https://github.com/asdf-vm/asdf.git ~/.asdf - ``` - ### Usage -See the [asdf usage documentation](https://github.com/asdf-vm/asdf#usage) for information on how to use asdf: +See the [asdf documentation](https://asdf-vm.com/guide/getting-started.html#_4-install-a-plugin) for information on how to use asdf: ``` -asdf plugin-add nodejs git@github.com:asdf-vm/asdf-nodejs.git -asdf install nodejs 5.9.1 +asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git +asdf install nodejs latest +asdf global nodejs latest +asdf local nodejs latest ``` From 49691b58b3c1fbe64b927ec88d5e9697f76e2a80 Mon Sep 17 00:00:00 2001 From: Paul S Date: Tue, 25 Oct 2022 20:39:58 +0100 Subject: [PATCH 031/441] feat(autojump): add support for macOS and nix (#11291) --- plugins/autojump/autojump.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index 8593353b2..e11f231b6 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -12,6 +12,7 @@ autojump_paths=( /opt/local/etc/profile.d/autojump.sh # macOS with MacPorts /usr/local/etc/profile.d/autojump.sh # macOS with Homebrew (default) /opt/homebrew/etc/profile.d/autojump.sh # macOS with Homebrew (default on M1 macs) + /etc/profiles/per-user/$USER/bin/autojump # macOS Nix, Home Manager and flakes ) for file in $autojump_paths; do From 50a526f209a182add8a47e362e1c9a3bfd7c5af4 Mon Sep 17 00:00:00 2001 From: Pandey-utkarsh <91661580+Pandey-utkarsh@users.noreply.github.com> Date: Sun, 30 Oct 2022 17:51:35 +0530 Subject: [PATCH 032/441] chore: correct style in CONTRIBUTING.md (#11306) Corrected grammatically incorrect sentences, punctuations and typos for better readability. --- CONTRIBUTING.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e78bd8192..6c8b8446e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -35,13 +35,13 @@ you would make is not already covered. Please be so kind as to [search](#use-the-search-luke) for any open issue already covering your problem. -If you find one, comment on it so we can know there are more people experiencing it. +If you find one, comment on it, so we know more people are experiencing it. If not, look at the [Troubleshooting](https://github.com/ohmyzsh/ohmyzsh/wiki/Troubleshooting) page for instructions on how to gather data to better debug your problem. Then, you can go ahead and create an issue with as much detail as you can provide. -It should include the data gathered as indicated above, along with: +It should include the data gathered as indicated above, along with the following: 1. How to reproduce the problem 2. What the correct behavior should be @@ -57,7 +57,7 @@ We will do our very best to help you. Please be so kind as to [search](#use-the-search-luke) for any open issue already covering your suggestion. -If you find one, comment on it so we can know there are more people supporting it. +If you find one, comment on it, so we know more people are supporting it. If not, you can go ahead and create an issue. Please copy to anyone relevant (e.g. plugin maintainers) by mentioning their GitHub handle (starting with `@`) in your message. @@ -84,7 +84,7 @@ your [problem](#you-have-a-problem), and any pending/merged/rejected PR covering If the solution is already reported, try it out and +1 the pull request if the solution works ok. On the other hand, if you think your solution is better, post -it with a reference to the other one so we can have both solutions to compare. +it with reference to the other one so we can have both solutions to compare. If not, then go ahead and submit a PR. Please copy to anyone relevant (e.g. plugin maintainers) by mentioning their GitHub handle (starting with `@`) in your message. @@ -113,14 +113,14 @@ This has become an issue for two opposing reasons: - Some users want to have their personal aliases in Oh My Zsh. - Some users don't want any aliases at all and feel that there are too many. -Because of this, from now on we're requiring that new aliases follow these conditions: +Because of this, from now on, we require that new aliases follow these conditions: 1. They will be used by many people, not just a few. 2. The aliases will be used many times and for common tasks. 3. Prefer one generic alias over many specific ones. 4. When justifying the need for an alias, talk about workflows where you'll use it, preferably in combination with other aliases. -5. If there exists a command with the same name, look for a different alias name. +5. If a command with the same name exists, look for a different alias name. This list is not exhaustive! Please remember that your alias will be in the machines of many people, so it should be justified why they should have it. @@ -214,7 +214,7 @@ type(scope)!: subject ``` - `subject`: a brief description of the changes. This will be displayed in the changelog. If you need - to specify other details you can use the commit body but it won't be visible. + to specify other details, you can use the commit body, but it won't be visible. Formatting tricks: the commit subject may contain: @@ -231,8 +231,8 @@ type(scope)!: subject ### Style -Try to keep the first commit line short. This is harder to do using this commit style but try to be -concise and if you need more space, you can use the commit body. Try to make sure that the commit +Try to keep the first commit line short. It's harder to do using this commit style but try to be +concise, and if you need more space, you can use the commit body. Try to make sure that the commit subject is clear and precise enough that users will know what changed by just looking at the changelog. ---- From 239e2f9fcd3a3d469a2d6edfc33b57bf5c39c6a2 Mon Sep 17 00:00:00 2001 From: Lennart Ochel Date: Thu, 3 Nov 2022 18:30:30 +0100 Subject: [PATCH 033/441] ci: migrate to ProjectV2 GraphQL API (#11311) --- .github/workflows/project.yml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/project.yml b/.github/workflows/project.yml index 999cc08e2..1aa69c279 100644 --- a/.github/workflows/project.yml +++ b/.github/workflows/project.yml @@ -27,24 +27,25 @@ jobs: gh api graphql -f query=' query($org: String!, $number: Int!) { organization(login: $org){ - projectNext(number: $number) { + projectV2(number: $number) { id fields(first:20) { nodes { - id - name + ... on ProjectV2Field { + id + name + } } } } } - } - ' -f org=$ORGANIZATION -F number=$PROJECT_NUMBER > project_data.json + }' -f org=$ORGANIZATION -F number=$PROJECT_NUMBER > project_data.json # Parse project data cat >> $GITHUB_ENV <> $GITHUB_ENV @@ -108,23 +109,23 @@ jobs: $theme_field: ID! $theme_value: String! ) { - set_plugin: updateProjectNextItemField(input: { + set_plugin: updateProjectV2ItemFieldValue(input: { projectId: $project itemId: $item fieldId: $plugin_field value: $plugin_value }) { - projectNextItem { + projectV2Item { id } } - set_theme: updateProjectNextItemField(input: { + set_theme: updateProjectV2ItemFieldValue(input: { projectId: $project itemId: $item fieldId: $theme_field value: $theme_value }) { - projectNextItem { + projectV2Item { id } } @@ -133,4 +134,3 @@ jobs: -f plugin_field=$PLUGIN_FIELD_ID -f plugin_value=$PLUGIN \ -f theme_field=$THEME_FIELD_ID -f theme_value=$THEME \ --silent - From 5ddb5890118f577ac67bd9101ef66bcdd520c8d9 Mon Sep 17 00:00:00 2001 From: Qin Li <30631553+liblaf@users.noreply.github.com> Date: Fri, 4 Nov 2022 01:32:01 +0800 Subject: [PATCH 034/441] fix(brew): suppress error message of brew cask on Linux (#11302) --- plugins/brew/brew.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh index 41420b5b7..ea8900823 100644 --- a/plugins/brew/brew.plugin.zsh +++ b/plugins/brew/brew.plugin.zsh @@ -36,7 +36,7 @@ alias buf='brew upgrade --formula' function brews() { local formulae="$(brew leaves | xargs brew deps --installed --for-each)" - local casks="$(brew list --cask)" + local casks="$(brew list --cask 2>/dev/null)" local blue="$(tput setaf 4)" local bold="$(tput bold)" From 02972f801b4865c68a1045ce2455b3ac4a9d59ad Mon Sep 17 00:00:00 2001 From: Marco Eidinger Date: Thu, 3 Nov 2022 10:32:54 -0700 Subject: [PATCH 035/441] feat(swiftpm): update completion for Swift 5.7 (#11299) * feat(swiftpm): update completion for Swift 5.7 * chore(docs): fix typo --- plugins/swiftpm/README.md | 2 +- plugins/swiftpm/_swift | 1114 +++++++++++++++++++++++++------------ 2 files changed, 759 insertions(+), 357 deletions(-) diff --git a/plugins/swiftpm/README.md b/plugins/swiftpm/README.md index a722c03e4..223a607c1 100644 --- a/plugins/swiftpm/README.md +++ b/plugins/swiftpm/README.md @@ -2,7 +2,7 @@ ## Description -This plugin provides a few utilities that make you faster on your daily work with the [Swift Package Manager](https://github.com/apple/swift-package-manager), as well as autocompletion for Swift 5.1. +This plugin provides a few utilities that make you faster on your daily work with the [Swift Package Manager](https://github.com/apple/swift-package-manager), as well as autocompletion for Swift 5.7. To start using it, add the `swiftpm` plugin to your `plugins` array in `~/.zshrc`: diff --git a/plugins/swiftpm/_swift b/plugins/swiftpm/_swift index 3a923226d..51c9fffa0 100644 --- a/plugins/swiftpm/_swift +++ b/plugins/swiftpm/_swift @@ -1,474 +1,876 @@ #compdef swift local context state state_descr line +_swift_commandname=$words[1] typeset -A opt_args _swift() { - _arguments -C \ - '(- :)--help[prints the synopsis and a list of the most commonly used commands]: :->arg' \ - '(-): :->command' \ - '(-)*:: :->arg' && return - + integer ret=1 + local -a args + args+=( + '(-h --help)'{-h,--help}'[Show help information.]' + '(-): :->command' + '(-)*:: :->arg' + ) + _arguments -w -s -S $args[@] && ret=0 case $state in (command) - local tools - tools=( - 'build:build sources into binary products' - 'run:build and run an executable product' - 'package:perform operations on Swift packages' - 'test:build and run tests' + local subcommands + subcommands=( + 'run:Build and run an executable product' + 'build:Build sources into binary products' + 'test:Build and run tests' + 'package:Perform operations on Swift packages' + 'help:Show subcommand help information.' ) - _alternative \ - 'tools:common:{_describe "tool" tools }' \ - 'compiler: :_swift_compiler' && _ret=0 + _describe "subcommand" subcommands ;; (arg) case ${words[1]} in - (build) - _swift_build - ;; (run) _swift_run ;; - (package) - _swift_package + (build) + _swift_build ;; (test) _swift_test ;; - (*) - _swift_compiler + (package) + _swift_package + ;; + (help) + _swift_help ;; esac ;; esac + + return ret } -_swift_dependency() { - local dependencies - dependencies=( $(swift package completion-tool list-dependencies) ) - _describe '' dependencies -} - -_swift_executable() { - local executables - executables=( $(swift package completion-tool list-executables) ) - _describe '' executables -} - -# Generates completions for swift build -# -# In the final compdef file, set the following file header: -# -# #compdef _swift_build -# local context state state_descr line -# typeset -A opt_args -_swift_build() { - arguments=( - "-Xcc[Pass flag through to all C compiler invocations]:Pass flag through to all C compiler invocations: " - "-Xswiftc[Pass flag through to all Swift compiler invocations]:Pass flag through to all Swift compiler invocations: " - "-Xlinker[Pass flag through to all linker invocations]:Pass flag through to all linker invocations: " - "-Xcxx[Pass flag through to all C++ compiler invocations]:Pass flag through to all C++ compiler invocations: " - "(--configuration -c)"{--configuration,-c}"[Build with configuration (debug|release) ]: :{_values '' 'debug[build with DEBUG configuration]' 'release[build with RELEASE configuration]'}" - "--build-path[Specify build/cache directory ]:Specify build/cache directory :_files" - "(--chdir -C)"{--chdir,-C}"[]: :_files" - "--package-path[Change working directory before any other operation]:Change working directory before any other operation:_files" - "--sanitize[Turn on runtime checks for erroneous behavior]: :{_values '' 'address[enable Address sanitizer]' 'thread[enable Thread sanitizer]' 'undefined[enable Undefined Behavior sanitizer]'}" - "--disable-prefetching[]" - "--skip-update[Skip updating dependencies from their remote during a resolution]" - "--disable-sandbox[Disable using the sandbox when executing subprocesses]" - "--disable-package-manifest-caching[Disable caching Package.swift manifests]" - "--version[]" - "--destination[]: :_files" - "(--verbose -v)"{--verbose,-v}"[Increase verbosity of informational output]" - "--no-static-swift-stdlib[Do not link Swift stdlib statically \[default\]]" - "--static-swift-stdlib[Link Swift stdlib statically]" - "--force-resolved-versions[]" - "--disable-automatic-resolution[Disable automatic resolution if Package.resolved file is out-of-date]" - "--enable-index-store[Enable indexing-while-building feature]" - "--disable-index-store[Disable indexing-while-building feature]" - "--enable-pubgrub-resolver[\[Experimental\] Enable the new Pubgrub dependency resolver]" - "--enable-parseable-module-interfaces[]" - "--trace-resolver[]" - "(--jobs -j)"{--jobs,-j}"[The number of jobs to spawn in parallel during the build process]:The number of jobs to spawn in parallel during the build process: " - "--enable-test-discovery[Enable test discovery on platforms without Objective-C runtime]" - "--build-tests[Build both source and test targets]" - "--product[Build the specified product]:Build the specified product: " - "--target[Build the specified target]:Build the specified target: " - "--show-bin-path[Print the binary output path]" - ) - _arguments $arguments && return -} - -# Generates completions for swift run -# -# In the final compdef file, set the following file header: -# -# #compdef _swift_run -# local context state state_descr line -# typeset -A opt_args _swift_run() { - arguments=( - ":The executable to run:_swift_executable" - "-Xcc[Pass flag through to all C compiler invocations]:Pass flag through to all C compiler invocations: " - "-Xswiftc[Pass flag through to all Swift compiler invocations]:Pass flag through to all Swift compiler invocations: " - "-Xlinker[Pass flag through to all linker invocations]:Pass flag through to all linker invocations: " - "-Xcxx[Pass flag through to all C++ compiler invocations]:Pass flag through to all C++ compiler invocations: " - "(--configuration -c)"{--configuration,-c}"[Build with configuration (debug|release) ]: :{_values '' 'debug[build with DEBUG configuration]' 'release[build with RELEASE configuration]'}" - "--build-path[Specify build/cache directory ]:Specify build/cache directory :_files" - "(--chdir -C)"{--chdir,-C}"[]: :_files" - "--package-path[Change working directory before any other operation]:Change working directory before any other operation:_files" - "--sanitize[Turn on runtime checks for erroneous behavior]: :{_values '' 'address[enable Address sanitizer]' 'thread[enable Thread sanitizer]' 'undefined[enable Undefined Behavior sanitizer]'}" - "--disable-prefetching[]" - "--skip-update[Skip updating dependencies from their remote during a resolution]" - "--disable-sandbox[Disable using the sandbox when executing subprocesses]" - "--disable-package-manifest-caching[Disable caching Package.swift manifests]" - "--version[]" - "--destination[]: :_files" - "(--verbose -v)"{--verbose,-v}"[Increase verbosity of informational output]" - "--no-static-swift-stdlib[Do not link Swift stdlib statically \[default\]]" - "--static-swift-stdlib[Link Swift stdlib statically]" - "--force-resolved-versions[]" - "--disable-automatic-resolution[Disable automatic resolution if Package.resolved file is out-of-date]" - "--enable-index-store[Enable indexing-while-building feature]" - "--disable-index-store[Disable indexing-while-building feature]" - "--enable-pubgrub-resolver[\[Experimental\] Enable the new Pubgrub dependency resolver]" - "--enable-parseable-module-interfaces[]" - "--trace-resolver[]" - "(--jobs -j)"{--jobs,-j}"[The number of jobs to spawn in parallel during the build process]:The number of jobs to spawn in parallel during the build process: " - "--enable-test-discovery[Enable test discovery on platforms without Objective-C runtime]" - "--skip-build[Skip building the executable product]" - "--build-tests[Build both source and test targets]" - "--repl[Launch Swift REPL for the package]" + integer ret=1 + local -a args + args+=( + '--package-path[Specify the package path to operate on (default current directory). This changes the working directory before any other operation]:package-path:_files -/' + '--cache-path[Specify the shared cache directory path]:cache-path:_files -/' + '--config-path[Specify the shared configuration directory path]:config-path:_files -/' + '--security-path[Specify the shared security directory path]:security-path:_files -/' + '--scratch-path[Specify a custom scratch directory path (default .build)]:scratch-path:_files -/' + '--enable-dependency-cache[Use a shared cache when fetching dependencies]' + '--disable-dependency-cache[Use a shared cache when fetching dependencies]' + '--enable-build-manifest-caching' + '--disable-build-manifest-caching' + '--manifest-cache[Caching mode of Package.swift manifests (shared: shared cache, local: package'"'"'s build directory, none: disabled]:manifest-cache:' + '(--verbose -v)'{--verbose,-v}'[Increase verbosity to include informational output]' + '(--very-verbose --vv)'{--very-verbose,--vv}'[Increase verbosity to include debug output]' + '--disable-sandbox[Disable using the sandbox when executing subprocesses]' + '--enable-netrc[Load credentials from a .netrc file]' + '--disable-netrc[Load credentials from a .netrc file]' + '--netrc-file[Specify the .netrc file path.]:netrc-file:_files' + '--enable-keychain[Search credentials in macOS keychain]' + '--disable-keychain[Search credentials in macOS keychain]' + '--resolver-fingerprint-checking:resolver-fingerprint-checking:' + '--enable-prefetching' + '--disable-prefetching' + '(--force-resolved-versions --disable-automatic-resolution --only-use-versions-from-resolved-file)'{--force-resolved-versions,--disable-automatic-resolution,--only-use-versions-from-resolved-file}'[Only use versions from the Package.resolved file and fail resolution if it is out-of-date]' + '--skip-update[Skip updating dependencies from their remote during a resolution]' + '--disable-scm-to-registry-transformation[disable source control to registry transformation]' + '--use-registry-identity-for-scm[look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins]' + '--replace-scm-with-registry[look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible]' + '(--configuration -c)'{--configuration,-c}'[Build with configuration]:configuration:(debug release)' + '-Xcc[Pass flag through to all C compiler invocations]:Xcc:' + '-Xswiftc[Pass flag through to all Swift compiler invocations]:Xswiftc:' + '-Xlinker[Pass flag through to all linker invocations]:Xlinker:' + '-Xcxx[Pass flag through to all C++ compiler invocations]:Xcxx:' + '--triple:triple:' + '--sdk:sdk:_files -/' + '--toolchain:toolchain:_files -/' + '--sanitize[Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo]:sanitize:' + '--auto-index-store[Enable or disable indexing-while-building feature]' + '--enable-index-store[Enable or disable indexing-while-building feature]' + '--disable-index-store[Enable or disable indexing-while-building feature]' + '--enable-parseable-module-interfaces' + '(--jobs -j)'{--jobs,-j}'[The number of jobs to spawn in parallel during the build process]:jobs:' + '--emit-swift-module-separately' + '--use-integrated-swift-driver' + '--experimental-explicit-module-build' + '--print-manifest-job-graph[Write the command graph for the build manifest as a graphviz file]' + '--build-system:build-system:(native xcode)' + '--enable-dead-strip[Disable/enable dead code stripping by the linker]' + '--disable-dead-strip[Disable/enable dead code stripping by the linker]' + '--static-swift-stdlib[Link Swift stdlib statically]' + '--no-static-swift-stdlib[Link Swift stdlib statically]' + '--repl[Launch Swift REPL for the package]' + '--debugger[Launch the executable in a debugger session]' + '--run[Launch the executable with the provided arguments]' + '--skip-build[Skip building the executable product]' + '--build-tests[Build both source and test targets]' + ':executable:{local -a list; list=(${(f)"$(swift package completion-tool list-executables)"}); _describe '''' list}' + ':arguments:' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' ) - _arguments $arguments && return + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_build() { + integer ret=1 + local -a args + args+=( + '--package-path[Specify the package path to operate on (default current directory). This changes the working directory before any other operation]:package-path:_files -/' + '--cache-path[Specify the shared cache directory path]:cache-path:_files -/' + '--config-path[Specify the shared configuration directory path]:config-path:_files -/' + '--security-path[Specify the shared security directory path]:security-path:_files -/' + '--scratch-path[Specify a custom scratch directory path (default .build)]:scratch-path:_files -/' + '--enable-dependency-cache[Use a shared cache when fetching dependencies]' + '--disable-dependency-cache[Use a shared cache when fetching dependencies]' + '--enable-build-manifest-caching' + '--disable-build-manifest-caching' + '--manifest-cache[Caching mode of Package.swift manifests (shared: shared cache, local: package'"'"'s build directory, none: disabled]:manifest-cache:' + '(--verbose -v)'{--verbose,-v}'[Increase verbosity to include informational output]' + '(--very-verbose --vv)'{--very-verbose,--vv}'[Increase verbosity to include debug output]' + '--disable-sandbox[Disable using the sandbox when executing subprocesses]' + '--enable-netrc[Load credentials from a .netrc file]' + '--disable-netrc[Load credentials from a .netrc file]' + '--netrc-file[Specify the .netrc file path.]:netrc-file:_files' + '--enable-keychain[Search credentials in macOS keychain]' + '--disable-keychain[Search credentials in macOS keychain]' + '--resolver-fingerprint-checking:resolver-fingerprint-checking:' + '--enable-prefetching' + '--disable-prefetching' + '(--force-resolved-versions --disable-automatic-resolution --only-use-versions-from-resolved-file)'{--force-resolved-versions,--disable-automatic-resolution,--only-use-versions-from-resolved-file}'[Only use versions from the Package.resolved file and fail resolution if it is out-of-date]' + '--skip-update[Skip updating dependencies from their remote during a resolution]' + '--disable-scm-to-registry-transformation[disable source control to registry transformation]' + '--use-registry-identity-for-scm[look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins]' + '--replace-scm-with-registry[look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible]' + '(--configuration -c)'{--configuration,-c}'[Build with configuration]:configuration:(debug release)' + '-Xcc[Pass flag through to all C compiler invocations]:Xcc:' + '-Xswiftc[Pass flag through to all Swift compiler invocations]:Xswiftc:' + '-Xlinker[Pass flag through to all linker invocations]:Xlinker:' + '-Xcxx[Pass flag through to all C++ compiler invocations]:Xcxx:' + '--triple:triple:' + '--sdk:sdk:_files -/' + '--toolchain:toolchain:_files -/' + '--sanitize[Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo]:sanitize:' + '--auto-index-store[Enable or disable indexing-while-building feature]' + '--enable-index-store[Enable or disable indexing-while-building feature]' + '--disable-index-store[Enable or disable indexing-while-building feature]' + '--enable-parseable-module-interfaces' + '(--jobs -j)'{--jobs,-j}'[The number of jobs to spawn in parallel during the build process]:jobs:' + '--emit-swift-module-separately' + '--use-integrated-swift-driver' + '--experimental-explicit-module-build' + '--print-manifest-job-graph[Write the command graph for the build manifest as a graphviz file]' + '--build-system:build-system:(native xcode)' + '--enable-dead-strip[Disable/enable dead code stripping by the linker]' + '--disable-dead-strip[Disable/enable dead code stripping by the linker]' + '--static-swift-stdlib[Link Swift stdlib statically]' + '--no-static-swift-stdlib[Link Swift stdlib statically]' + '--build-tests[Build both source and test targets]' + '--show-bin-path[Print the binary output path]' + '--target[Build the specified target]:target:' + '--product[Build the specified product]:product:' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_test() { + integer ret=1 + local -a args + args+=( + '--package-path[Specify the package path to operate on (default current directory). This changes the working directory before any other operation]:package-path:_files -/' + '--cache-path[Specify the shared cache directory path]:cache-path:_files -/' + '--config-path[Specify the shared configuration directory path]:config-path:_files -/' + '--security-path[Specify the shared security directory path]:security-path:_files -/' + '--scratch-path[Specify a custom scratch directory path (default .build)]:scratch-path:_files -/' + '--enable-dependency-cache[Use a shared cache when fetching dependencies]' + '--disable-dependency-cache[Use a shared cache when fetching dependencies]' + '--enable-build-manifest-caching' + '--disable-build-manifest-caching' + '--manifest-cache[Caching mode of Package.swift manifests (shared: shared cache, local: package'"'"'s build directory, none: disabled]:manifest-cache:' + '(--verbose -v)'{--verbose,-v}'[Increase verbosity to include informational output]' + '(--very-verbose --vv)'{--very-verbose,--vv}'[Increase verbosity to include debug output]' + '--disable-sandbox[Disable using the sandbox when executing subprocesses]' + '--enable-netrc[Load credentials from a .netrc file]' + '--disable-netrc[Load credentials from a .netrc file]' + '--netrc-file[Specify the .netrc file path.]:netrc-file:_files' + '--enable-keychain[Search credentials in macOS keychain]' + '--disable-keychain[Search credentials in macOS keychain]' + '--resolver-fingerprint-checking:resolver-fingerprint-checking:' + '--enable-prefetching' + '--disable-prefetching' + '(--force-resolved-versions --disable-automatic-resolution --only-use-versions-from-resolved-file)'{--force-resolved-versions,--disable-automatic-resolution,--only-use-versions-from-resolved-file}'[Only use versions from the Package.resolved file and fail resolution if it is out-of-date]' + '--skip-update[Skip updating dependencies from their remote during a resolution]' + '--disable-scm-to-registry-transformation[disable source control to registry transformation]' + '--use-registry-identity-for-scm[look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins]' + '--replace-scm-with-registry[look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible]' + '(--configuration -c)'{--configuration,-c}'[Build with configuration]:configuration:(debug release)' + '-Xcc[Pass flag through to all C compiler invocations]:Xcc:' + '-Xswiftc[Pass flag through to all Swift compiler invocations]:Xswiftc:' + '-Xlinker[Pass flag through to all linker invocations]:Xlinker:' + '-Xcxx[Pass flag through to all C++ compiler invocations]:Xcxx:' + '--triple:triple:' + '--sdk:sdk:_files -/' + '--toolchain:toolchain:_files -/' + '--sanitize[Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo]:sanitize:' + '--auto-index-store[Enable or disable indexing-while-building feature]' + '--enable-index-store[Enable or disable indexing-while-building feature]' + '--disable-index-store[Enable or disable indexing-while-building feature]' + '--enable-parseable-module-interfaces' + '(--jobs -j)'{--jobs,-j}'[The number of jobs to spawn in parallel during the build process]:jobs:' + '--emit-swift-module-separately' + '--use-integrated-swift-driver' + '--experimental-explicit-module-build' + '--print-manifest-job-graph[Write the command graph for the build manifest as a graphviz file]' + '--build-system:build-system:(native xcode)' + '--enable-dead-strip[Disable/enable dead code stripping by the linker]' + '--disable-dead-strip[Disable/enable dead code stripping by the linker]' + '--static-swift-stdlib[Link Swift stdlib statically]' + '--no-static-swift-stdlib[Link Swift stdlib statically]' + '--skip-build[Skip building the test target]' + '--parallel[Run the tests in parallel.]' + '--num-workers[Number of tests to execute in parallel.]:num-workers:' + '(--list-tests -l)'{--list-tests,-l}'[Lists test methods in specifier format]' + '--show-codecov-path[Print the path of the exported code coverage JSON file]' + '(-s --specifier)'{-s,--specifier}':specifier:' + '--filter[Run test cases matching regular expression, Format: . or ./]:filter:' + '--skip[Skip test cases matching regular expression, Example: --skip PerformanceTests]:skip:' + '--xunit-output[Path where the xUnit xml file should be generated.]:xunit-output:_files -/' + '--test-product[Test the specified product.]:test-product:' + '--enable-testable-imports[Enable or disable testable imports. Enabled by default.]' + '--disable-testable-imports[Enable or disable testable imports. Enabled by default.]' + '--enable-code-coverage[Enable code coverage]' + '--disable-code-coverage[Enable code coverage]' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret } -# Generates completions for swift package -# -# In the final compdef file, set the following file header: -# -# #compdef _swift_package -# local context state state_descr line -# typeset -A opt_args _swift_package() { - arguments=( - "-Xcc[Pass flag through to all C compiler invocations]:Pass flag through to all C compiler invocations: " - "-Xswiftc[Pass flag through to all Swift compiler invocations]:Pass flag through to all Swift compiler invocations: " - "-Xlinker[Pass flag through to all linker invocations]:Pass flag through to all linker invocations: " - "-Xcxx[Pass flag through to all C++ compiler invocations]:Pass flag through to all C++ compiler invocations: " - "(--configuration -c)"{--configuration,-c}"[Build with configuration (debug|release) ]: :{_values '' 'debug[build with DEBUG configuration]' 'release[build with RELEASE configuration]'}" - "--build-path[Specify build/cache directory ]:Specify build/cache directory :_files" - "(--chdir -C)"{--chdir,-C}"[]: :_files" - "--package-path[Change working directory before any other operation]:Change working directory before any other operation:_files" - "--sanitize[Turn on runtime checks for erroneous behavior]: :{_values '' 'address[enable Address sanitizer]' 'thread[enable Thread sanitizer]' 'undefined[enable Undefined Behavior sanitizer]'}" - "--disable-prefetching[]" - "--skip-update[Skip updating dependencies from their remote during a resolution]" - "--disable-sandbox[Disable using the sandbox when executing subprocesses]" - "--disable-package-manifest-caching[Disable caching Package.swift manifests]" - "--version[]" - "--destination[]: :_files" - "(--verbose -v)"{--verbose,-v}"[Increase verbosity of informational output]" - "--no-static-swift-stdlib[Do not link Swift stdlib statically \[default\]]" - "--static-swift-stdlib[Link Swift stdlib statically]" - "--force-resolved-versions[]" - "--disable-automatic-resolution[Disable automatic resolution if Package.resolved file is out-of-date]" - "--enable-index-store[Enable indexing-while-building feature]" - "--disable-index-store[Disable indexing-while-building feature]" - "--enable-pubgrub-resolver[\[Experimental\] Enable the new Pubgrub dependency resolver]" - "--enable-parseable-module-interfaces[]" - "--trace-resolver[]" - "(--jobs -j)"{--jobs,-j}"[The number of jobs to spawn in parallel during the build process]:The number of jobs to spawn in parallel during the build process: " - "--enable-test-discovery[Enable test discovery on platforms without Objective-C runtime]" + integer ret=1 + local -a args + args+=( + '--package-path[Specify the package path to operate on (default current directory). This changes the working directory before any other operation]:package-path:_files -/' + '--cache-path[Specify the shared cache directory path]:cache-path:_files -/' + '--config-path[Specify the shared configuration directory path]:config-path:_files -/' + '--security-path[Specify the shared security directory path]:security-path:_files -/' + '--scratch-path[Specify a custom scratch directory path (default .build)]:scratch-path:_files -/' + '--enable-dependency-cache[Use a shared cache when fetching dependencies]' + '--disable-dependency-cache[Use a shared cache when fetching dependencies]' + '--enable-build-manifest-caching' + '--disable-build-manifest-caching' + '--manifest-cache[Caching mode of Package.swift manifests (shared: shared cache, local: package'"'"'s build directory, none: disabled]:manifest-cache:' + '(--verbose -v)'{--verbose,-v}'[Increase verbosity to include informational output]' + '(--very-verbose --vv)'{--very-verbose,--vv}'[Increase verbosity to include debug output]' + '--disable-sandbox[Disable using the sandbox when executing subprocesses]' + '--enable-netrc[Load credentials from a .netrc file]' + '--disable-netrc[Load credentials from a .netrc file]' + '--netrc-file[Specify the .netrc file path.]:netrc-file:_files' + '--enable-keychain[Search credentials in macOS keychain]' + '--disable-keychain[Search credentials in macOS keychain]' + '--resolver-fingerprint-checking:resolver-fingerprint-checking:' + '--enable-prefetching' + '--disable-prefetching' + '(--force-resolved-versions --disable-automatic-resolution --only-use-versions-from-resolved-file)'{--force-resolved-versions,--disable-automatic-resolution,--only-use-versions-from-resolved-file}'[Only use versions from the Package.resolved file and fail resolution if it is out-of-date]' + '--skip-update[Skip updating dependencies from their remote during a resolution]' + '--disable-scm-to-registry-transformation[disable source control to registry transformation]' + '--use-registry-identity-for-scm[look up source control dependencies in the registry and use their registry identity when possible to help deduplicate across the two origins]' + '--replace-scm-with-registry[look up source control dependencies in the registry and use the registry to retrieve them instead of source control when possible]' + '(--configuration -c)'{--configuration,-c}'[Build with configuration]:configuration:(debug release)' + '-Xcc[Pass flag through to all C compiler invocations]:Xcc:' + '-Xswiftc[Pass flag through to all Swift compiler invocations]:Xswiftc:' + '-Xlinker[Pass flag through to all linker invocations]:Xlinker:' + '-Xcxx[Pass flag through to all C++ compiler invocations]:Xcxx:' + '--triple:triple:' + '--sdk:sdk:_files -/' + '--toolchain:toolchain:_files -/' + '--sanitize[Turn on runtime checks for erroneous behavior, possible values: address, thread, undefined, scudo]:sanitize:' + '--auto-index-store[Enable or disable indexing-while-building feature]' + '--enable-index-store[Enable or disable indexing-while-building feature]' + '--disable-index-store[Enable or disable indexing-while-building feature]' + '--enable-parseable-module-interfaces' + '(--jobs -j)'{--jobs,-j}'[The number of jobs to spawn in parallel during the build process]:jobs:' + '--emit-swift-module-separately' + '--use-integrated-swift-driver' + '--experimental-explicit-module-build' + '--print-manifest-job-graph[Write the command graph for the build manifest as a graphviz file]' + '--build-system:build-system:(native xcode)' + '--enable-dead-strip[Disable/enable dead code stripping by the linker]' + '--disable-dead-strip[Disable/enable dead code stripping by the linker]' + '--static-swift-stdlib[Link Swift stdlib statically]' + '--no-static-swift-stdlib[Link Swift stdlib statically]' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' '(-): :->command' '(-)*:: :->arg' ) - _arguments $arguments && return + _arguments -w -s -S $args[@] && ret=0 case $state in (command) - local modes - modes=( - 'completion-tool:Completion tool (for shell completions)' - 'dump-package:Print parsed Package.swift as JSON' - 'describe:Describe the current package' + local subcommands + subcommands=( 'clean:Delete build artifacts' - 'show-dependencies:Print the resolved dependency graph' - 'init:Initialize a new package' - 'unedit:Remove a package from editable mode' - 'tools-version:Manipulate tools version of the current package' - 'fetch:' - 'resolve:Resolve package dependencies' + 'purge-cache:Purge the global repository cache.' 'reset:Reset the complete cache/build directory' - 'generate-xcodeproj:Generates an Xcode project' - 'edit:Put a package in editable mode' - 'config:Manipulate configuration of the package' 'update:Update package dependencies' + 'describe:Describe the current package' + 'init:Initialize a new package' + '_format:' + 'diagnose-api-breaking-changes:Diagnose API-breaking changes to Swift modules in a package' + 'experimental-api-diff:Deprecated - use `swift package diagnose-api-breaking-changes` instead' + 'dump-symbol-graph:Dump Symbol Graph' + 'dump-pif:' + 'dump-package:Print parsed Package.swift as JSON' + 'edit:Put a package in editable mode' + 'unedit:Remove a package from editable mode' + 'config:Manipulate configuration of the package' + 'resolve:Resolve package dependencies' + 'fetch:' + 'show-dependencies:Print the resolved dependency graph' + 'tools-version:Manipulate tools version of the current package' + 'generate-xcodeproj:Generates an Xcode project. This command will be deprecated soon.' + 'compute-checksum:Compute the checksum for a binary artifact.' + 'archive-source:Create a source archive for the package' + 'completion-tool:Completion tool (for shell completions)' + 'plugin:Invoke a command plugin or perform other actions on command plugins' + 'default-command:' ) - _describe "mode" modes + _describe "subcommand" subcommands ;; (arg) case ${words[1]} in - (completion-tool) - _swift_package_completion-tool - ;; - (dump-package) - _swift_package_dump-package - ;; - (describe) - _swift_package_describe - ;; (clean) _swift_package_clean ;; - (show-dependencies) - _swift_package_show-dependencies - ;; - (init) - _swift_package_init - ;; - (unedit) - _swift_package_unedit - ;; - (tools-version) - _swift_package_tools-version - ;; - (fetch) - _swift_package_fetch - ;; - (resolve) - _swift_package_resolve + (purge-cache) + _swift_package_purge-cache ;; (reset) _swift_package_reset ;; - (generate-xcodeproj) - _swift_package_generate-xcodeproj + (update) + _swift_package_update + ;; + (describe) + _swift_package_describe + ;; + (init) + _swift_package_init + ;; + (_format) + _swift_package__format + ;; + (diagnose-api-breaking-changes) + _swift_package_diagnose-api-breaking-changes + ;; + (experimental-api-diff) + _swift_package_experimental-api-diff + ;; + (dump-symbol-graph) + _swift_package_dump-symbol-graph + ;; + (dump-pif) + _swift_package_dump-pif + ;; + (dump-package) + _swift_package_dump-package ;; (edit) _swift_package_edit ;; + (unedit) + _swift_package_unedit + ;; (config) _swift_package_config ;; - (update) - _swift_package_update + (resolve) + _swift_package_resolve + ;; + (fetch) + _swift_package_fetch + ;; + (show-dependencies) + _swift_package_show-dependencies + ;; + (tools-version) + _swift_package_tools-version + ;; + (generate-xcodeproj) + _swift_package_generate-xcodeproj + ;; + (compute-checksum) + _swift_package_compute-checksum + ;; + (archive-source) + _swift_package_archive-source + ;; + (completion-tool) + _swift_package_completion-tool + ;; + (plugin) + _swift_package_plugin + ;; + (default-command) + _swift_package_default-command ;; esac ;; esac -} -_swift_package_completion-tool() { - arguments=( - ": :{_values '' 'generate-bash-script[generate Bash completion script]' 'generate-zsh-script[generate Bash completion script]' 'list-dependencies[list all dependencies' names]' 'list-executables[list all executables' names]'}" - ) - _arguments $arguments && return -} - -_swift_package_dump-package() { - arguments=( - ) - _arguments $arguments && return -} - -_swift_package_describe() { - arguments=( - "--type[json|text]: :{_values '' 'text[describe using text format]' 'json[describe using JSON format]'}" - ) - _arguments $arguments && return + return ret } _swift_package_clean() { - arguments=( + integer ret=1 + local -a args + args+=( + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' ) - _arguments $arguments && return + _arguments -w -s -S $args[@] && ret=0 + + return ret } -_swift_package_show-dependencies() { - arguments=( - "--format[text|dot|json|flatlist]: :{_values '' 'text[list dependencies using text format]' 'dot[list dependencies using dot format]' 'json[list dependencies using JSON format]'}" +_swift_package_purge-cache() { + integer ret=1 + local -a args + args+=( + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' ) - _arguments $arguments && return -} + _arguments -w -s -S $args[@] && ret=0 -_swift_package_init() { - arguments=( - "--type[empty|library|executable|system-module|manifest]: :{_values '' 'empty[generates an empty project]' 'library[generates project for a dynamic library]' 'executable[generates a project for a cli executable]' 'system-module[generates a project for a system module]'}" - "--name[Provide custom package name]:Provide custom package name: " - ) - _arguments $arguments && return -} - -_swift_package_unedit() { - arguments=( - ":The name of the package to unedit:_swift_dependency" - "--force[Unedit the package even if it has uncommitted and unpushed changes.]" - ) - _arguments $arguments && return -} - -_swift_package_tools-version() { - arguments=( - "--set[Set tools version of package to the given value]:Set tools version of package to the given value: " - "--set-current[Set tools version of package to the current tools version in use]" - ) - _arguments $arguments && return -} - -_swift_package_fetch() { - arguments=( - ) - _arguments $arguments && return -} - -_swift_package_resolve() { - arguments=( - ":The name of the package to resolve:_swift_dependency" - "--version[The version to resolve at]:The version to resolve at: " - "--branch[The branch to resolve at]:The branch to resolve at: " - "--revision[The revision to resolve at]:The revision to resolve at: " - ) - _arguments $arguments && return + return ret } _swift_package_reset() { - arguments=( + integer ret=1 + local -a args + args+=( + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' ) - _arguments $arguments && return + _arguments -w -s -S $args[@] && ret=0 + + return ret } -_swift_package_generate-xcodeproj() { - arguments=( - "--xcconfig-overrides[Path to xcconfig file]:Path to xcconfig file:_files" - "--enable-code-coverage[Enable code coverage in the generated project]" - "--output[Path where the Xcode project should be generated]:Path where the Xcode project should be generated:_files" - "--legacy-scheme-generator[Use the legacy scheme generator]" - "--watch[Watch for changes to the Package manifest to regenerate the Xcode project]" - "--skip-extra-files[Do not add file references for extra files to the generated Xcode project]" +_swift_package_update() { + integer ret=1 + local -a args + args+=( + '(--dry-run -n)'{--dry-run,-n}'[Display the list of dependencies that can be updated]' + ':packages:' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' ) - _arguments $arguments && return + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_package_describe() { + integer ret=1 + local -a args + args+=( + '--type[json | text]:type:' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_package_init() { + integer ret=1 + local -a args + args+=( + '--type[Package type: empty | library | executable | system-module | manifest]:type:' + '--name[Provide custom package name]:name:' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_package__format() { + integer ret=1 + local -a args + args+=( + ':swift-format-flags:' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_package_diagnose-api-breaking-changes() { + integer ret=1 + local -a args + args+=( + '--breakage-allowlist-path[The path to a text file containing breaking changes which should be ignored by the API comparison. Each ignored breaking change in the file should appear on its own line and contain the exact message to be ignored (e.g. '"'"'API breakage: func foo() has been removed'"'"').]:breakage-allowlist-path:_files -/' + ':treeish:' + '--products[One or more products to include in the API comparison. If present, only the specified products (and any targets specified using `--targets`) will be compared.]:products:' + '--targets[One or more targets to include in the API comparison. If present, only the specified targets (and any products specified using `--products`) will be compared.]:targets:' + '--baseline-dir[The path to a directory used to store API baseline files. If unspecified, a temporary directory will be used.]:baseline-dir:_files -/' + '--regenerate-baseline[Regenerate the API baseline, even if an existing one is available.]' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_package_experimental-api-diff() { + integer ret=1 + local -a args + args+=( + ':args:' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_package_dump-symbol-graph() { + integer ret=1 + local -a args + args+=( + '--pretty-print[Pretty-print the output JSON.]' + '--skip-synthesized-members[Skip members inherited through classes or default implementations.]' + '--minimum-access-level[Include symbols with this access level or more. Possible values: private | fileprivate | internal | public | open]:minimum-access-level:(private fileprivate internal public open)' + '--skip-inherited-docs[Skip emitting doc comments for members inherited through classes or default implementations.]' + '--include-spi-symbols[Add symbols with SPI information to the symbol graph.]' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_package_dump-pif() { + integer ret=1 + local -a args + args+=( + '--preserve-structure[Preserve the internal structure of PIF]' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_package_dump-package() { + integer ret=1 + local -a args + args+=( + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret } _swift_package_edit() { - arguments=( - ":The name of the package to edit:_swift_dependency" - "--revision[The revision to edit]:The revision to edit: " - "--branch[The branch to create]:The branch to create: " - "--path[Create or use the checkout at this path]:Create or use the checkout at this path:_files" + integer ret=1 + local -a args + args+=( + '--revision[The revision to edit]:revision:' + '--branch[The branch to create]:branch:' + '--path[Create or use the checkout at this path]:path:_files -/' + ':package-name:' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' ) - _arguments $arguments && return + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_package_unedit() { + integer ret=1 + local -a args + args+=( + '--force[Unedit the package even if it has uncommitted and unpushed changes]' + ':package-name:' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret } _swift_package_config() { - arguments=( + integer ret=1 + local -a args + args+=( + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' '(-): :->command' '(-)*:: :->arg' ) - _arguments $arguments && return + _arguments -w -s -S $args[@] && ret=0 case $state in (command) - local modes - modes=( + local subcommands + subcommands=( + 'set-mirror:Set a mirror for a dependency' 'unset-mirror:Remove an existing mirror' 'get-mirror:Print mirror configuration for the given package dependency' - 'set-mirror:Set a mirror for a dependency' ) - _describe "mode" modes + _describe "subcommand" subcommands ;; (arg) case ${words[1]} in + (set-mirror) + _swift_package_config_set-mirror + ;; (unset-mirror) _swift_package_config_unset-mirror ;; (get-mirror) _swift_package_config_get-mirror ;; - (set-mirror) - _swift_package_config_set-mirror - ;; esac ;; esac -} -_swift_package_config_unset-mirror() { - arguments=( - "--package-url[The package dependency url]:The package dependency url: " - "--mirror-url[The mirror url]:The mirror url: " - ) - _arguments $arguments && return -} - -_swift_package_config_get-mirror() { - arguments=( - "--package-url[The package dependency url]:The package dependency url: " - ) - _arguments $arguments && return + return ret } _swift_package_config_set-mirror() { - arguments=( - "--package-url[The package dependency url]:The package dependency url: " - "--mirror-url[The mirror url]:The mirror url: " + integer ret=1 + local -a args + args+=( + '--package-url[The package dependency url]:package-url:' + '--original-url[The original url]:original-url:' + '--mirror-url[The mirror url]:mirror-url:' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' ) - _arguments $arguments && return + _arguments -w -s -S $args[@] && ret=0 + + return ret } -_swift_package_update() { - arguments=( +_swift_package_config_unset-mirror() { + integer ret=1 + local -a args + args+=( + '--package-url[The package dependency url]:package-url:' + '--original-url[The original url]:original-url:' + '--mirror-url[The mirror url]:mirror-url:' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' ) - _arguments $arguments && return + _arguments -w -s -S $args[@] && ret=0 + + return ret } -# Generates completions for swift test -# -# In the final compdef file, set the following file header: -# -# #compdef _swift_test -# local context state state_descr line -# typeset -A opt_args -_swift_test() { - arguments=( - "-Xcc[Pass flag through to all C compiler invocations]:Pass flag through to all C compiler invocations: " - "-Xswiftc[Pass flag through to all Swift compiler invocations]:Pass flag through to all Swift compiler invocations: " - "-Xlinker[Pass flag through to all linker invocations]:Pass flag through to all linker invocations: " - "-Xcxx[Pass flag through to all C++ compiler invocations]:Pass flag through to all C++ compiler invocations: " - "(--configuration -c)"{--configuration,-c}"[Build with configuration (debug|release) ]: :{_values '' 'debug[build with DEBUG configuration]' 'release[build with RELEASE configuration]'}" - "--build-path[Specify build/cache directory ]:Specify build/cache directory :_files" - "(--chdir -C)"{--chdir,-C}"[]: :_files" - "--package-path[Change working directory before any other operation]:Change working directory before any other operation:_files" - "--sanitize[Turn on runtime checks for erroneous behavior]: :{_values '' 'address[enable Address sanitizer]' 'thread[enable Thread sanitizer]' 'undefined[enable Undefined Behavior sanitizer]'}" - "--disable-prefetching[]" - "--skip-update[Skip updating dependencies from their remote during a resolution]" - "--disable-sandbox[Disable using the sandbox when executing subprocesses]" - "--disable-package-manifest-caching[Disable caching Package.swift manifests]" - "--version[]" - "--destination[]: :_files" - "(--verbose -v)"{--verbose,-v}"[Increase verbosity of informational output]" - "--no-static-swift-stdlib[Do not link Swift stdlib statically \[default\]]" - "--static-swift-stdlib[Link Swift stdlib statically]" - "--force-resolved-versions[]" - "--disable-automatic-resolution[Disable automatic resolution if Package.resolved file is out-of-date]" - "--enable-index-store[Enable indexing-while-building feature]" - "--disable-index-store[Disable indexing-while-building feature]" - "--enable-pubgrub-resolver[\[Experimental\] Enable the new Pubgrub dependency resolver]" - "--enable-parseable-module-interfaces[]" - "--trace-resolver[]" - "(--jobs -j)"{--jobs,-j}"[The number of jobs to spawn in parallel during the build process]:The number of jobs to spawn in parallel during the build process: " - "--enable-test-discovery[Enable test discovery on platforms without Objective-C runtime]" - "--skip-build[Skip building the test target]" - "(--list-tests -l)"{--list-tests,-l}"[Lists test methods in specifier format]" - "--generate-linuxmain[Generate LinuxMain.swift entries for the package]" - "--parallel[Run the tests in parallel.]" - "--num-workers[Number of tests to execute in parallel.]:Number of tests to execute in parallel.: " - "(--specifier -s)"{--specifier,-s}"[]: : " - "--xunit-output[]: :_files" - "--filter[Run test cases matching regular expression, Format: . or ./]:Run test cases matching regular expression, Format: . or ./: " - "--enable-code-coverage[Test with code coverage enabled]" +_swift_package_config_get-mirror() { + integer ret=1 + local -a args + args+=( + '--package-url[The package dependency url]:package-url:' + '--original-url[The original url]:original-url:' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' ) - _arguments $arguments && return + _arguments -w -s -S $args[@] && ret=0 + + return ret } -_swift_compiler() { +_swift_package_resolve() { + integer ret=1 + local -a args + args+=( + '--version[The version to resolve at]:version:' + '--branch[The branch to resolve at]:branch:' + '--revision[The revision to resolve at]:revision:' + ':package-name:' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_package_fetch() { + integer ret=1 + local -a args + args+=( + '--version[The version to resolve at]:version:' + '--branch[The branch to resolve at]:branch:' + '--revision[The revision to resolve at]:revision:' + ':package-name:' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_package_show-dependencies() { + integer ret=1 + local -a args + args+=( + '--format[text | dot | json | flatlist]:format:' + '(--output-path -o)'{--output-path,-o}'[The absolute or relative path to output the resolved dependency graph.]:output-path:_files -/' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_package_tools-version() { + integer ret=1 + local -a args + args+=( + '--set-current[Set tools version of package to the current tools version in use]' + '--set[Set tools version of package to the given value]:set:' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_package_generate-xcodeproj() { + integer ret=1 + local -a args + args+=( + '--xcconfig-overrides[Path to xcconfig file]:xcconfig-overrides:_files' + '--output[Path where the Xcode project should be generated]:output:_files -/' + '--legacy-scheme-generator[Use the legacy scheme generator]' + '--watch[Watch for changes to the Package manifest to regenerate the Xcode project]' + '--skip-extra-files[Do not add file references for extra files to the generated Xcode project]' + '--enable-code-coverage[Enable code coverage]' + '--disable-code-coverage[Enable code coverage]' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_package_compute-checksum() { + integer ret=1 + local -a args + args+=( + ':path:_files -/' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_package_archive-source() { + integer ret=1 + local -a args + args+=( + '(-o --output)'{-o,--output}'[The absolute or relative path for the generated source archive]:output:_files -/' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_package_completion-tool() { + integer ret=1 + local -a args + args+=( + ':mode:(generate-bash-script generate-zsh-script generate-fish-script list-dependencies list-executables list-snippets)' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_package_plugin() { + integer ret=1 + local -a args + args+=( + '--list[List the available command plugins]' + '--allow-writing-to-package-directory[Allow the plugin to write to the package directory]' + '--allow-writing-to-directory[Allow the plugin to write to an additional directory]:allow-writing-to-directory:' + ':command:' + ':arguments:' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_package_default-command() { + integer ret=1 + local -a args + args+=( + '--allow-writing-to-package-directory[Allow the plugin to write to the package directory]' + '--allow-writing-to-directory[Allow the plugin to write to an additional directory]:allow-writing-to-directory:' + ':remaining:' + '--version[Show the version.]' + '(-help -h --help)'{-help,-h,--help}'[Show help information.]' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + +_swift_help() { + integer ret=1 + local -a args + args+=( + ':subcommands:' + ) + _arguments -w -s -S $args[@] && ret=0 + + return ret +} + + +_custom_completion() { + local completions=("${(@f)$($*)}") + _describe '' completions } _swift From b3b336b0f95644ceda7758871191cdf040b897b2 Mon Sep 17 00:00:00 2001 From: Andrew Wu Date: Fri, 4 Nov 2022 01:34:28 +0800 Subject: [PATCH 036/441] feat(fzf): fix MacPorts auto-completion file location. (#11305) --- plugins/fzf/fzf.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/fzf/fzf.plugin.zsh b/plugins/fzf/fzf.plugin.zsh index a946cf762..60ae0c765 100644 --- a/plugins/fzf/fzf.plugin.zsh +++ b/plugins/fzf/fzf.plugin.zsh @@ -178,7 +178,7 @@ function fzf_setup_using_macports() { (( $+commands[fzf] )) || return 1 # The fzf-zsh-completion package installs the auto-completion in - local completions="/opt/local/share/zsh/site-functions/fzf" + local completions="/opt/local/share/fzf/shell/completion.zsh" # The fzf-zsh-completion package installs the key-bindings file in local key_bindings="/opt/local/share/fzf/shell/key-bindings.zsh" From 1342459b153576429382aed34ee5753f85bf3420 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Fri, 4 Nov 2022 19:16:54 +0100 Subject: [PATCH 037/441] ci: fix update of plugin or theme fields See [1] for the reference of value field (ProjectV2FieldValue type), and [2] for sample application code. [1] https://docs.github.com/en/graphql/reference/input-objects#projectv2fieldvalue [2] https://docs.github.com/en/enterprise-cloud@latest/issues/planning-and-tracking-with-projects/automating-your-project/automating-projects-using-actions#example-workflow-authenticating-with-a-github-app --- .github/workflows/project.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/project.yml b/.github/workflows/project.yml index 1aa69c279..1d961d8c0 100644 --- a/.github/workflows/project.yml +++ b/.github/workflows/project.yml @@ -113,7 +113,9 @@ jobs: projectId: $project itemId: $item fieldId: $plugin_field - value: $plugin_value + value: { + text: $plugin_value + } }) { projectV2Item { id @@ -123,7 +125,9 @@ jobs: projectId: $project itemId: $item fieldId: $theme_field - value: $theme_value + value: { + text: $theme_value + } }) { projectV2Item { id From 9f2bbebdf78322ab11a4cc57e2932fcbf6fb3fa8 Mon Sep 17 00:00:00 2001 From: Frieder Bluemle Date: Fri, 4 Nov 2022 11:34:02 -0700 Subject: [PATCH 038/441] docs: fix some capitalization typos(#11293) --- plugins/coffee/_coffee | 2 +- plugins/docker-machine/_docker-machine | 4 ++-- plugins/frontend-search/_frontend | 2 +- plugins/httpie/_httpie | 2 +- plugins/kitchen/_kitchen | 2 +- plugins/pod/_pod | 2 +- plugins/rails/_rails | 2 +- plugins/ripgrep/_ripgrep | 2 +- plugins/scala/_scala | 2 +- plugins/xcode/xcode.plugin.zsh | 2 +- themes/refined.zsh-theme | 4 ++-- 11 files changed, 13 insertions(+), 13 deletions(-) diff --git a/plugins/coffee/_coffee b/plugins/coffee/_coffee index e2814f7ba..a771f5204 100644 --- a/plugins/coffee/_coffee +++ b/plugins/coffee/_coffee @@ -1,6 +1,6 @@ #compdef coffee # ------------------------------------------------------------------------------ -# Copyright (c) 2011 Github zsh-users - https://github.com/zsh-users +# Copyright (c) 2011 GitHub zsh-users - https://github.com/zsh-users # All rights reserved. # # Redistribution and use in source and binary forms, with or without diff --git a/plugins/docker-machine/_docker-machine b/plugins/docker-machine/_docker-machine index fbd36d7c6..17bcd3598 100644 --- a/plugins/docker-machine/_docker-machine +++ b/plugins/docker-machine/_docker-machine @@ -335,9 +335,9 @@ _docker-machine() { '--tls-ca-key[Private key to generate certificates]:file:_files' \ '--tls-client-cert[Client cert to use for TLS]:file:_files' \ '--tls-client-key[Private key used in client TLS auth]:file:_files' \ - '--github-api-token[Token to use for requests to the Github API]' \ + '--github-api-token[Token to use for requests to the GitHub API]' \ '--native-ssh[Use the native (Go-based) SSH implementation.]' \ - '--bugsnag-api-token[BugSnag API token for crash reporting]' \ + '--bugsnag-api-token[Bugsnag API token for crash reporting]' \ '(- :)'{-v,--version}'[Print the version]' \ "(-): :->command" \ "(-)*:: :->option-or-argument" && ret=0 diff --git a/plugins/frontend-search/_frontend b/plugins/frontend-search/_frontend index 15f8d239d..aca4920d7 100644 --- a/plugins/frontend-search/_frontend +++ b/plugins/frontend-search/_frontend @@ -37,7 +37,7 @@ function _frontend() { 'lodash: Search in Lo-Dash website' 'mdn: Search in MDN website' 'nodejs: Search in NodeJS website' - 'npmjs: Search in NPMJS website' + 'npmjs: Search in npmjs website' 'packagephobia: Search in Packagephobia website' 'qunit: Search in Qunit website' 'reactjs: Search in React website' diff --git a/plugins/httpie/_httpie b/plugins/httpie/_httpie index 4d702ef60..11bc8e1f8 100644 --- a/plugins/httpie/_httpie +++ b/plugins/httpie/_httpie @@ -1,6 +1,6 @@ #compdef http # ------------------------------------------------------------------------------ -# Copyright (c) 2015 Github zsh-users - http://github.com/zsh-users +# Copyright (c) 2015 GitHub zsh-users - http://github.com/zsh-users # All rights reserved. # # Redistribution and use in source and binary forms, with or without diff --git a/plugins/kitchen/_kitchen b/plugins/kitchen/_kitchen index d93d93d78..64c01e395 100644 --- a/plugins/kitchen/_kitchen +++ b/plugins/kitchen/_kitchen @@ -1,6 +1,6 @@ #compdef kitchen # ------------------------------------------------------------------------------ -# Copyright (c) 2014 Github zsh-users - https://github.com/zsh-users +# Copyright (c) 2014 GitHub zsh-users - https://github.com/zsh-users # All rights reserved. # # Redistribution and use in source and binary forms, with or without diff --git a/plugins/pod/_pod b/plugins/pod/_pod index 80d23daad..d560129db 100644 --- a/plugins/pod/_pod +++ b/plugins/pod/_pod @@ -6,7 +6,7 @@ # ----------------------------------------------------------------------------- # FILE: _pod -# DESCRIPTION: Cocoapods (0.33.1) autocomplete plugin for Oh-My-Zsh +# DESCRIPTION: CocoaPods (0.33.1) autocomplete plugin for Oh-My-Zsh # https://cocoapods.org # Generated with `pod --completion-script # AUTHOR: Alexandre Joly (alexandre.joly@mekanics.ch) diff --git a/plugins/rails/_rails b/plugins/rails/_rails index 6dc85d458..ac90d45cc 100644 --- a/plugins/rails/_rails +++ b/plugins/rails/_rails @@ -1,6 +1,6 @@ #compdef rails # ------------------------------------------------------------------------------ -# Copyright (c) 2016 Github zsh-users - http://github.com/zsh-users +# Copyright (c) 2016 GitHub zsh-users - http://github.com/zsh-users # All rights reserved. # # Redistribution and use in source and binary forms, with or without diff --git a/plugins/ripgrep/_ripgrep b/plugins/ripgrep/_ripgrep index 31bc697c7..a93a8b8eb 100644 --- a/plugins/ripgrep/_ripgrep +++ b/plugins/ripgrep/_ripgrep @@ -591,7 +591,7 @@ _rg "$@" ################################################################################ # ------------------------------------------------------------------------------ -# Copyright (c) 2011 Github zsh-users - http://github.com/zsh-users +# Copyright (c) 2011 GitHub zsh-users - http://github.com/zsh-users # All rights reserved. # # Redistribution and use in source and binary forms, with or without diff --git a/plugins/scala/_scala b/plugins/scala/_scala index ba7ac3874..b4e834e2f 100644 --- a/plugins/scala/_scala +++ b/plugins/scala/_scala @@ -1,6 +1,6 @@ #compdef scala scalac # ------------------------------------------------------------------------------ -# Copyright (c) 2012 Github zsh-users - https://github.com/zsh-users +# Copyright (c) 2012 GitHub zsh-users - https://github.com/zsh-users # All rights reserved. # # Redistribution and use in source and binary forms, with or without diff --git a/plugins/xcode/xcode.plugin.zsh b/plugins/xcode/xcode.plugin.zsh index 3bd12cdec..5d1f901a3 100644 --- a/plugins/xcode/xcode.plugin.zsh +++ b/plugins/xcode/xcode.plugin.zsh @@ -31,7 +31,7 @@ function xx { open -a "Xcode.app" "$@" } -# "XCode-SELect by Version" - select Xcode by just version number +# "Xcode-Select by Version" - select Xcode by just version number # Uses naming convention: # - different versions of Xcode are named Xcode-.app or stored # in a folder named Xcode- diff --git a/themes/refined.zsh-theme b/themes/refined.zsh-theme index 5e2de7a87..2b55cfb0c 100644 --- a/themes/refined.zsh-theme +++ b/themes/refined.zsh-theme @@ -11,11 +11,11 @@ # more about both of these fantastic two people here: # # Sindre Sorhus -# Github: https://github.com/sindresorhus +# GitHub: https://github.com/sindresorhus # Twitter: https://twitter.com/sindresorhus # # Julien Nicoulaud -# Github: https://github.com/nicoulaj +# GitHub: https://github.com/nicoulaj # Twitter: https://twitter.com/nicoulaj # # ------------------------------------------------------------------------------ From 15014db8d58892488f6a270148279e053a472bfb Mon Sep 17 00:00:00 2001 From: Tanmay Patil <92677342+TanmayPatil105@users.noreply.github.com> Date: Sat, 5 Nov 2022 00:12:05 +0530 Subject: [PATCH 039/441] feat(web-search): add ask.com (#11292) --- plugins/web-search/README.md | 1 + plugins/web-search/web-search.plugin.zsh | 2 ++ 2 files changed, 3 insertions(+) diff --git a/plugins/web-search/README.md b/plugins/web-search/README.md index 54232a910..0bf9f26ad 100644 --- a/plugins/web-search/README.md +++ b/plugins/web-search/README.md @@ -43,6 +43,7 @@ Available search contexts are: | `wolframalpha` | `https://wolframalpha.com/input?i=` | | `archive` | `https://web.archive.org/web/*/` | | `scholar` | `https://scholar.google.com/scholar?q=` | +| `ask` | `https://www.ask.com/web?q=` | Also there are aliases for bang-searching DuckDuckGo: diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index d8b4a7f8b..ec176dd68 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -24,6 +24,7 @@ function web_search() { wolframalpha "https://www.wolframalpha.com/input/?i=" archive "https://web.archive.org/web/*/" scholar "https://scholar.google.com/scholar?q=" + ask "https://www.ask.com/web?q=" ) # check whether the search engine is supported @@ -64,6 +65,7 @@ alias stackoverflow='web_search stackoverflow' alias wolframalpha='web_search wolframalpha' alias archive='web_search archive' alias scholar='web_search scholar' +alias ask='web_search ask' #add your own !bang searches here alias wiki='web_search duckduckgo \!w' From 80fdbc9b91a9acca42fb90065b5e64a9722978a7 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Fri, 4 Nov 2022 19:45:17 +0100 Subject: [PATCH 040/441] fix(git): remove unused escape chars Closes #11176 --- plugins/git/git.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index f25453bc1..5c0e6db2c 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -302,7 +302,7 @@ alias gtv='git tag | sort -V' alias gtl='gtl(){ git tag --sort=-v:refname -n -l "${1}*" }; noglob gtl' alias gunignore='git update-index --no-assume-unchanged' -alias gunwip='git log -n 1 | grep -q -c "\-\-wip\-\-" && git reset HEAD~1' +alias gunwip='git log -n 1 | grep -q -c "--wip--" && git reset HEAD~1' alias gup='git pull --rebase' alias gupv='git pull --rebase -v' alias gupa='git pull --rebase --autostash' From 3eda3e5650c72c5f71336fcc2c8dfa5b861acb6d Mon Sep 17 00:00:00 2001 From: Jeremy Combs Date: Sun, 6 Nov 2022 14:50:39 -0500 Subject: [PATCH 041/441] feat(encode64): add `encodefile64` function (#10813) Co-authored-by: Jeremy Combs --- plugins/encode64/README.md | 23 +++++++++++++++++++---- plugins/encode64/encode64.plugin.zsh | 10 ++++++++++ 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/plugins/encode64/README.md b/plugins/encode64/README.md index 86320cffb..7cdf8c3f3 100644 --- a/plugins/encode64/README.md +++ b/plugins/encode64/README.md @@ -10,10 +10,11 @@ plugins=(... encode64) ## Functions and Aliases -| Function | Alias | Description | -| ---------- | ----- | ------------------------------ | -| `encode64` | `e64` | Encodes given data to base64 | -| `decode64` | `d64` | Decodes given data from base64 | +| Function | Alias | Description | +| -------------- | ------ | -------------------------------------- | +| `encode64` | `e64` | Encodes given data to base64 | +| `encodefile64` | `ef64` | Encodes given file's content to base64 | +| `decode64` | `d64` | Decodes given data from base64 | ## Usage and examples @@ -37,6 +38,20 @@ plugins=(... encode64) b2gtbXktenNo== ``` +### Encoding a file + +Encode a file's contents to base64 and save output to text file. +**NOTE:** Takes provided file and saves encoded content as new file with `.txt` extension + +- From parameter + + ```console + $ encodefile64 ohmyzsh.icn + ohmyzsh.icn's content encoded in base64 and saved as ohmyzsh.icn.txt + $ ef64 "oh-my-zsh" + ohmyzsh.icn's content encoded in base64 and saved as ohmyzsh.icn.txt + ``` + ### Decoding - From parameter diff --git a/plugins/encode64/encode64.plugin.zsh b/plugins/encode64/encode64.plugin.zsh index 979e06742..6927f5216 100644 --- a/plugins/encode64/encode64.plugin.zsh +++ b/plugins/encode64/encode64.plugin.zsh @@ -6,6 +6,15 @@ encode64() { fi } +encodefile64() { + if [[ $# -eq 0 ]]; then + echo "You must provide a filename" + else + base64 -i $1 -o $1.txt + echo "${1}'s content encoded in base64 and saved as ${1}.txt" + fi +} + decode64() { if [[ $# -eq 0 ]]; then cat | base64 --decode @@ -14,4 +23,5 @@ decode64() { fi } alias e64=encode64 +alias ef64=encodefile64 alias d64=decode64 From 4806f755694d160f20e3fb8ae0a1d009d56d966b Mon Sep 17 00:00:00 2001 From: Atk Date: Sun, 6 Nov 2022 19:52:53 +0000 Subject: [PATCH 042/441] feat(wd): update to latest upstream release (#11235) Based on https://github.com/mfaerevaag/wd/releases/tag/v0.5.2 --- plugins/wd/README.md | 8 ++++++-- plugins/wd/wd.sh | 18 +++++++++++++++--- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/plugins/wd/README.md b/plugins/wd/README.md index 8791f9f0e..1d1980632 100644 --- a/plugins/wd/README.md +++ b/plugins/wd/README.md @@ -1,12 +1,12 @@ # wd -[![Build Status](https://travis-ci.org/mfaerevaag/wd.png?branch=master)](https://travis-ci.org/mfaerevaag/wd) +[![Build Status](https://github.com/mfaerevaag/wd/actions/workflows/test.yml/badge.svg)](https://github.com/mfaerevaag/wd/actions) `wd` (*warp directory*) lets you jump to custom directories in zsh, without using `cd`. Why? Because `cd` seems inefficient when the folder is frequently visited or has a long path. -![tty.gif](https://raw.githubusercontent.com/mfaerevaag/wd/master/tty.gif) +![Demo](https://raw.githubusercontent.com/mfaerevaag/wd/master/tty.gif) ## Setup @@ -36,6 +36,10 @@ In your `.zshrc`: antibody bundle mfaerevaag/wd ``` +### [Fig](https://fig.io) + +Install `wd` here: [![Fig plugin store](https://fig.io/badges/install-with-fig.svg)](https://fig.io/plugins/other/wd_mfaerevaag) + ### Arch ([AUR](https://aur.archlinux.org/packages/zsh-plugin-wd-git/)) 1. Install from the AUR diff --git a/plugins/wd/wd.sh b/plugins/wd/wd.sh index 9085c5b7b..e51cf906a 100644 --- a/plugins/wd/wd.sh +++ b/plugins/wd/wd.sh @@ -163,6 +163,7 @@ wd_add() { local point=$1 local force=$2 + cmdnames=(add rm show list ls path clean help) if [[ $point == "" ]] then @@ -178,6 +179,9 @@ wd_add() elif [[ $point =~ : ]] || [[ $point =~ / ]] then wd_exit_fail "Warp point contains illegal character (:/)" + elif (($cmdnames[(Ie)$point])) + then + wd_exit_fail "Warp point name cannot be a wd command (see wd -h for a full list)" elif [[ ${points[$point]} == "" ]] || [ ! -z "$force" ] then wd_remove "$point" > /dev/null @@ -185,7 +189,7 @@ wd_add() if (whence sort >/dev/null); then local config_tmp=$(mktemp "${TMPDIR:-/tmp}/wd.XXXXXXXXXX") # use 'cat' below to ensure we respect $WD_CONFIG as a symlink - command sort -o "${config_tmp}" "$WD_CONFIG" && command cat "${config_tmp}" > "$WD_CONFIG" && command rm "${config_tmp}" + command sort -o "${config_tmp}" "$WD_CONFIG" && command cat "${config_tmp}" >| "$WD_CONFIG" && command rm "${config_tmp}" fi wd_export_static_named_directories @@ -214,7 +218,7 @@ wd_remove() then local config_tmp=$(mktemp "${TMPDIR:-/tmp}/wd.XXXXXXXXXX") # Copy and delete in two steps in order to preserve symlinks - if sed -n "/^${point_name}:.*$/!p" "$WD_CONFIG" > "$config_tmp" && command cp "$config_tmp" "$WD_CONFIG" && command rm "$config_tmp" + if sed -n "/^${point_name}:.*$/!p" "$WD_CONFIG" >| "$config_tmp" && command cp "$config_tmp" "$WD_CONFIG" && command rm "$config_tmp" then wd_print_msg "$WD_GREEN" "Warp point removed" else @@ -251,7 +255,7 @@ wd_list_all() then arr=(${(s,:,)line}) key=${arr[1]} - val=${arr[2]} + val=${line#"${arr[1]}:"} if [[ -z $wd_quiet_mode ]] then @@ -389,6 +393,11 @@ else wd_export_static_named_directories fi +# disable extendedglob for the complete wd execution time +setopt | grep -q extendedglob +wd_extglob_is_set=$? +[[ $wd_extglob_is_set ]] && setopt noextendedglob + # load warp points typeset -A points while read -r line @@ -475,6 +484,9 @@ fi # if not, next time warp will pick up variables from this run # remember, there's no sub shell +[[ $wd_extglob_is_set ]] && setopt extendedglob + +unset wd_extglob_is_set unset wd_warp unset wd_add unset wd_remove From 4e2317c757674af8264bbcc4edd79b2d42f6d781 Mon Sep 17 00:00:00 2001 From: Julian <62412964+julianadler@users.noreply.github.com> Date: Mon, 7 Nov 2022 21:46:48 +1300 Subject: [PATCH 043/441] fix(lol): use https for `yolo` calls (#11320) --- plugins/lol/README.md | 4 ++-- plugins/lol/lol.plugin.zsh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/lol/README.md b/plugins/lol/README.md index ea6b0c3b8..b45513b35 100644 --- a/plugins/lol/README.md +++ b/plugins/lol/README.md @@ -49,7 +49,7 @@ plugins=(... lol) | `violenz` | `git rebase` | | `visible` | `echo` | | `wtf` | `dmesg` | -| `yolo` | `git commit -m "$(curl -s http://whatthecommit.com/index.txt)"` | +| `yolo` | `git commit -m "$(curl -s https://whatthecommit.com/index.txt)"` | ## Usage Examples @@ -66,6 +66,6 @@ nowai u=r,go= some.file # ssh root@catserver.org pwned root@catserver.org -# git commit -m "$(curl -s http://whatthecommit.com/index.txt)" +# git commit -m "$(curl -s https://whatthecommit.com/index.txt)" yolo ``` diff --git a/plugins/lol/lol.plugin.zsh b/plugins/lol/lol.plugin.zsh index 3c30259a1..585f96e4f 100644 --- a/plugins/lol/lol.plugin.zsh +++ b/plugins/lol/lol.plugin.zsh @@ -45,7 +45,7 @@ alias bringz='git pull' alias chicken='git add' alias oanward='git commit -m' alias ooanward='git commit -am' -alias yolo='git commit -m "$(curl -s http://whatthecommit.com/index.txt)"' +alias yolo='git commit -m "$(curl -s https://whatthecommit.com/index.txt)"' alias letcat='git checkout' alias violenz='git rebase' From ac0924930d48217e127523809dc5d386fb3403a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ho=C3=A0ng?= <10150902+hoang-himself@users.noreply.github.com> Date: Mon, 7 Nov 2022 15:47:59 +0700 Subject: [PATCH 044/441] feat(git): add aliases for `worktree` (#10079) --- plugins/git/README.md | 11 ++++++++--- plugins/git/git.plugin.zsh | 6 ++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 050c13d81..f1c8b81c4 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -91,8 +91,8 @@ plugins=(... git) | gignore | git update-index --assume-unchanged | | gignored | git ls-files -v \| grep "^[[:lower:]]" | | git-svn-dcommit-push | git svn dcommit && git push github $(git_main_branch):svntrunk | -| gk | gitk --all --branches &! | -| gke | gitk --all $(git log -g --pretty=%h) &! | +| gk | gitk --all --branches &! | +| gke | gitk --all $(git log -g --pretty=%h) &! | | gl | git pull | | glg | git log --stat | | glgp | git log --stat -p | @@ -184,7 +184,7 @@ plugins=(... git) | gupom | git pull --rebase origin $(git_main_branch) | | gupomi | git pull --rebase=interactive origin $(git_main_branch) | | glum | git pull upstream $(git_main_branch) | -| gluc | git pull upstream $(git_current_branch) | +| gluc | git pull upstream $(git_current_branch) | | gwch | git whatchanged -p --abbrev-commit --pretty=medium | | gwip | git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign -m "--wip-- [skip ci]" | | gam | git am | @@ -192,6 +192,11 @@ plugins=(... git) | gams | git am --skip | | gama | git am --abort | | gamscp | git am --show-current-patch | +| gwt | git worktree | +| gwta | git worktree add | +| gwtls | git worktree list | +| gwtmv | git worktree move | +| gwtrm | git worktree remove | ### Main branch preference diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 5c0e6db2c..fc7699237 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -315,6 +315,12 @@ alias gluc='git pull upstream $(git_current_branch)' alias gwch='git whatchanged -p --abbrev-commit --pretty=medium' alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign -m "--wip-- [skip ci]"' +alias gwt='git worktree' +alias gwta='git worktree add' +alias gwtls='git worktree list' +alias gwtmv='git worktree move' +alias gwtrm='git worktree remove' + alias gam='git am' alias gamc='git am --continue' alias gams='git am --skip' From 0145d744a9c4c11f00992f7f3ad9555bc8ac6177 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Mon, 7 Nov 2022 12:59:12 +0100 Subject: [PATCH 045/441] fix(git): escape first hyphen in `gunwip` --- plugins/git/git.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index fc7699237..26f4beeb3 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -302,7 +302,7 @@ alias gtv='git tag | sort -V' alias gtl='gtl(){ git tag --sort=-v:refname -n -l "${1}*" }; noglob gtl' alias gunignore='git update-index --no-assume-unchanged' -alias gunwip='git log -n 1 | grep -q -c "--wip--" && git reset HEAD~1' +alias gunwip='git log -n 1 | grep -q -c "\--wip--" && git reset HEAD~1' alias gup='git pull --rebase' alias gupv='git pull --rebase -v' alias gupa='git pull --rebase --autostash' From 6df14641ac48b380c56e1c72aa86b57861fbfb70 Mon Sep 17 00:00:00 2001 From: Gheritarish Date: Mon, 7 Nov 2022 19:53:36 +0100 Subject: [PATCH 046/441] feat(1password): add username copy to `opswd` (#10812) --- plugins/1password/README.md | 16 +++++++++------- plugins/1password/opswd | 18 +++++++++++++++--- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/plugins/1password/README.md b/plugins/1password/README.md index f6854da53..ace6da8e1 100644 --- a/plugins/1password/README.md +++ b/plugins/1password/README.md @@ -14,16 +14,18 @@ clipboard. ## `opswd` The `opswd` command is a wrapper around the `op` command. It takes a service -name as an argument and copies the password for that service to the clipboard. +name as an argument and copies the username, then the password for that service +to the clipboard, after confirmation on the user part. -If the service also contains a TOTP, it is copied to the clipboard after 10 seconds. -Finally, after 20 seconds, the clipboard is cleared. +If the service also contains a TOTP, it is copied to the clipboard after confirmation +on the user part. Finally, after 20 seconds, the clipboard is cleared. -The function has completion support, so you can use tab completion to select -which service you want to get. +For example, `opswd github.com` will put your GitHub username into your clipboard. Then, +it will ask for confirmation to continue, and copy the password to your clipboard. Finally, +if a TOTP is available, it will be copied to the clipboard after your confirmation. -For example, `opswd github.com` will put your GitHub password into your clipboard, and if -a TOTP is available, it will be copied to the clipboard after 10 seconds. +This function has completion support, so you can use tab completion to select which +service you want to get. > NOTE: you need to be signed in for `opswd` to work. If you are using biometric unlock, > 1Password CLI will automatically prompt you to sign in. See: diff --git a/plugins/1password/opswd b/plugins/1password/opswd index 57672807e..0f667d2ff 100644 --- a/plugins/1password/opswd +++ b/plugins/1password/opswd @@ -14,6 +14,17 @@ function opswd() { # If not logged in, print error and return op user list > /dev/null || return + local username + # Copy the username to the clipboard + if ! username=$(op item get "$service" --fields username 2>/dev/null); then + echo "error: could not obtain username for $service" + return 1 + fi + + echo -n "$username" | clipcopy + echo "✔ username for service $service copied to the clipboard. Press Enter to continue" + read + local password # Copy the password to the clipboard if ! password=$(op item get "$service" --fields password 2>/dev/null); then @@ -22,12 +33,13 @@ function opswd() { fi echo -n "$password" | clipcopy - echo "✔ password for $service copied to clipboard" + echo "✔ password for $service copied to clipboard. Press Enter to continue" + read - # If there's a one time password, copy it to the clipboard after 10 seconds + # If there's a one time password, copy it to the clipboard local totp if totp=$(op item get --otp "$service" 2>/dev/null) && [[ -n "$totp" ]]; then - sleep 10 && echo -n "$totp" | clipcopy + echo -n "$totp" | clipcopy echo "✔ TOTP for $service copied to clipboard" fi From 6dfc9b960f023f30d6c55a22fa8402d91beb8d1f Mon Sep 17 00:00:00 2001 From: Banst Date: Tue, 8 Nov 2022 09:34:13 +0100 Subject: [PATCH 047/441] feat(git): display tag in git-prompt when possible (#11318) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Marc Cornellà --- lib/git.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/git.zsh b/lib/git.zsh index be9fa7e67..f049f73c2 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -19,6 +19,7 @@ function git_prompt_info() { local ref ref=$(__git_prompt_git symbolic-ref --short HEAD 2> /dev/null) \ + || ref=$(__git_prompt_git describe --tags --exact-match HEAD 2> /dev/null) \ || ref=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) \ || return 0 From 1f30c1a079cd10030578e38f8562dc5be53d0fd3 Mon Sep 17 00:00:00 2001 From: Sandeep Tailor Date: Tue, 8 Nov 2022 13:45:42 +0000 Subject: [PATCH 048/441] feat(hasura): add completion plugin (#11278) --- plugins/hasura/README.md | 9 +++++++++ plugins/hasura/hasura.plugin.zsh | 13 +++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 plugins/hasura/README.md create mode 100644 plugins/hasura/hasura.plugin.zsh diff --git a/plugins/hasura/README.md b/plugins/hasura/README.md new file mode 100644 index 000000000..d7db9ed92 --- /dev/null +++ b/plugins/hasura/README.md @@ -0,0 +1,9 @@ +# Hasura plugin + +This plugin adds completion for [the Hasura CLI](https://hasura.io/docs/latest/hasura-cli/index/). + +To use it, add `hasura` to the plugins array in your zshrc file: + +```zsh +plugins=(... hasura) +``` diff --git a/plugins/hasura/hasura.plugin.zsh b/plugins/hasura/hasura.plugin.zsh new file mode 100644 index 000000000..18254c43b --- /dev/null +++ b/plugins/hasura/hasura.plugin.zsh @@ -0,0 +1,13 @@ +if (( ! $+commands[hasura] )); then + return +fi + +# If the completion file does not exist, generate it and then source it +# Otherwise, source it and regenerate in the background +if [[ ! -f "$ZSH_CACHE_DIR/completions/_hasura" ]]; then + hasura completion zsh --file "$ZSH_CACHE_DIR/completions/_hasura" >/dev/null + source "$ZSH_CACHE_DIR/completions/_hasura" +else + source "$ZSH_CACHE_DIR/completions/_hasura" + hasura completion zsh --file "$ZSH_CACHE_DIR/completions/_hasura" >/dev/null &| +fi From 9f77cb29d7557ec6ce453a7372b053931a7d034d Mon Sep 17 00:00:00 2001 From: Marco Franssen Date: Fri, 15 Apr 2022 20:43:43 +0200 Subject: [PATCH 049/441] feat(sigstore): add completion plugin Closes #10862 Signed-off-by: Marco Franssen Co-authored-by: Carlo Sala --- plugins/sigstore/README.md | 13 +++++++++++++ plugins/sigstore/sigstore.plugin.zsh | 22 ++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 plugins/sigstore/README.md create mode 100644 plugins/sigstore/sigstore.plugin.zsh diff --git a/plugins/sigstore/README.md b/plugins/sigstore/README.md new file mode 100644 index 000000000..00e83c8c2 --- /dev/null +++ b/plugins/sigstore/README.md @@ -0,0 +1,13 @@ +# Sigstore plugin + +This plugin sets up completion for the following [Sigstore](https://sigstore.dev/) CLI tools. + +- [Cosign](https://docs.sigstore.dev/cosign/overview) +- [Sget](https://docs.sigstore.dev/cosign/installation#alpine-linux) +- [Rekor](https://docs.sigstore.dev/rekor/overview) + +To use it, add `sigstore` to the plugins array in your zshrc file: + +```zsh +plugins=(... sigstore) +``` diff --git a/plugins/sigstore/sigstore.plugin.zsh b/plugins/sigstore/sigstore.plugin.zsh new file mode 100644 index 000000000..1f9d77c11 --- /dev/null +++ b/plugins/sigstore/sigstore.plugin.zsh @@ -0,0 +1,22 @@ +function install_autocompletion { + if (( ! $+commands[$1] )); then + return + fi + + # If the completion file doesn't exist yet, we need to autoload it and + # bind it to `$1` (cosign, sget, rekor-cli). Otherwise, compinit will + # have already done that + if [[ ! -f "$ZSH_CACHE_DIR/completions/_$1" ]]; then + autoload -Uz _$1 + typeset -g -A _comps + _comps[$1]=_$1 + fi + + $1 completion zsh >| "$ZSH_CACHE_DIR/completions/_$1" &| +} + +install_autocompletion cosign +install_autocompletion sget +install_autocompletion rekor-cli + +unfunction install_autocompletion From 23de5d95285a6b119d7c99f777051d9c5ec69ef8 Mon Sep 17 00:00:00 2001 From: cxy004 Date: Thu, 10 Nov 2022 06:04:55 +0800 Subject: [PATCH 050/441] fix(colorize): check if $ZSH_COLORIZE_TOOL exists (#11325) --- plugins/colorize/colorize.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/colorize/colorize.plugin.zsh b/plugins/colorize/colorize.plugin.zsh index a9da6cf83..12841e0ee 100644 --- a/plugins/colorize/colorize.plugin.zsh +++ b/plugins/colorize/colorize.plugin.zsh @@ -23,7 +23,7 @@ colorize_check_requirements() { if [[ ${available_tools[(Ie)$ZSH_COLORIZE_TOOL]} -eq 0 ]]; then echo "ZSH_COLORIZE_TOOL '$ZSH_COLORIZE_TOOL' not recognized. Available options are 'pygmentize' and 'chroma'." >&2 return 1 - elif (( $+commands["$ZSH_COLORIZE_TOOL"] )); then + elif ! (( $+commands[$ZSH_COLORIZE_TOOL] )); then echo "Package '$ZSH_COLORIZE_TOOL' is not installed!" >&2 return 1 fi From fcbfdf42de702d55174fe2b19142ba232289671e Mon Sep 17 00:00:00 2001 From: Marcos Alano Date: Thu, 10 Nov 2022 18:36:51 +0100 Subject: [PATCH 051/441] feat(terraform): load completion from bash Closes #11328 Closes #11330 --- plugins/terraform/_terraform | 411 ------------------------- plugins/terraform/terraform.plugin.zsh | 5 + 2 files changed, 5 insertions(+), 411 deletions(-) delete mode 100644 plugins/terraform/_terraform diff --git a/plugins/terraform/_terraform b/plugins/terraform/_terraform deleted file mode 100644 index 625834563..000000000 --- a/plugins/terraform/_terraform +++ /dev/null @@ -1,411 +0,0 @@ -#compdef terraform - -local -a _terraform_cmds opt_args -_terraform_cmds=( - 'apply:Builds or changes infrastructure' - 'console:Interactive console for Terraform interpolations' - 'destroy:Destroy Terraform-managed infrastructure' - 'fmt:Rewrites config files to canonical format' - 'force-unlock:Manually unlock the terraform state' - 'get:Download and install modules for the configuration' - 'graph:Create a visual graph of Terraform resources' - 'import:Import existing infrastructure into Terraform' - 'init:Initialize a Terraform working directory' - 'login:Obtain and save credentials for a remote host' - 'logout:Remove locally-stored credentials for a remote host' - 'output:Read an output from a state file' - 'plan:Generate and show an execution plan' - 'providers:Prints a tree of the providers used in the configuration' - 'refresh:Update local state file against real resources' - 'show:Inspect Terraform state or plan' - 'state:Advanced state management' - 'taint:Manually mark a resource for recreation' - 'untaint:Manually unmark a resource as tainted' - 'validate:Validates the Terraform files' - 'version:Prints the Terraform version' - 'workspace:Workspace management' - '0.12upgrade:Rewrites pre-0.12 module source code for v0.12' - '0.13upgrade:Rewrites pre-0.13 module source code for v0.13' -) - -__012upgrade() { - _arguments \ - '-yes[Skip the initial introduction messages and interactive confirmation. This can be used to run this command in batch from a script.]' \ - '-force[ Override the heuristic that attempts to detect if a configuration is already written for v0.12 or later. Some of the transformations made by this command are not idempotent, so re-running against the same module may change the meanings expressions in the module.]' -} - -__013upgrade() { - _arguments \ - '-yes[Skip the initial introduction messages and interactive confirmation. This can be used to run this command in batch from a script.]' -} - -__apply() { - _arguments \ - '-auto-approve[Skip interactive approval of plan before applying.]' \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ - '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-input=[(true) Ask for input for variables if not directly set.]' \ - '-no-color[If specified, output will be colorless.]' \ - '-parallelism=[(10) Limit the number of parallel resource operations.]' \ - '-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]' \ - '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -g "*.tfstate"' \ - '*-target=[(resource) Resource to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \ - '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' -} - -__console() { - _arguments \ - '-state=[(terraform.tfstate) Path to read state.]' \ - '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' -} - -__destroy() { - _arguments \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ - '-auto-approve[Skip interactive approval before destroying.]' \ - '-force[Deprecated: same as auto-approve.]' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-no-color[If specified, output will contain no color.]' \ - '-parallelism=[(10) Limit the number of concurrent operations.]' \ - '-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]' \ - '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -g "*.tfstate"' \ - '*-target=[(resource) Resource to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \ - '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' -} - -__fmt() { - _arguments \ - '-list=[(true) List files whose formatting differs (always false if using STDIN)]' \ - '-write=[(true) Write result to source file instead of STDOUT (always false if using STDIN or -check)]' \ - '-diff=[(false) Display diffs of formatting changes]' \ - '-check=[(false) Check if the input is formatted. Exit status will be 0 if all input is properly formatted and non-zero otherwise.]' \ - '-recursive=[(false) Also process files in subdirectories. By default, only the given directory (or current directory) is processed.]' -} - -__force_unlock() { - _arguments \ - "-force[Don't ask for input for unlock confirmation.]" -} - -__get() { - _arguments \ - '-update=[(false) If true, modules already downloaded will be checked for updates and updated if necessary.]' \ - '-no-color[Disable text coloring in the output.]' -} - -__graph() { - _arguments \ - '-draw-cycles[Highlight any cycles in the graph with colored edges. This helps when diagnosing cycle errors.]' \ - '-type=[(plan) Type of graph to output. Can be: plan, plan-destroy, apply, validate, input, refresh.]' -} - -__import() { - _arguments \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ - '-config=[(path) Path to a directory of Terraform configuration files to use to configure the provider. Defaults to pwd. If no config files are present, they must be provided via the input prompts or env vars.]' \ - '-allow-missing-config[Allow import when no resource configuration block exists.]' \ - '-input=[(true) Ask for input for variables if not directly set.]' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-no-color[If specified, output will contain no color.]' \ - '-state=[(PATH) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(PATH) Path to the destination state file to write to. If this is not specified, the source state file will be used. This can be a new or existing path.]:statefile:_files -g "*.tfstate"' \ - '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times. This is only useful with the "-config" flag.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' -} - -__init() { - _arguments \ - '-backend=[(true) Configure the backend for this configuration.]' \ - '-backend-config=[This can be either a path to an HCL file with key/value assignments (same format as terraform.tfvars) or a 'key=value' format. This is merged with what is in the configuration file. This can be specified multiple times. The backend type must be in the configuration itself.]' \ - '-force-copy[Suppress prompts about copying state data. This is equivalent to providing a "yes" to all confirmation prompts.]' \ - '-from-module=[(SOURCE) Copy the contents of the given module into the target directory before initialization.]' \ - '-get=[(true) Download any modules for this configuration.]' \ - '-get-plugins=[(true) Download any missing plugins for this configuration.]' \ - '-input=[(true) Ask for input if necessary. If false, will error if input was required.]' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-no-color[If specified, output will contain no color.]' \ - '-plugin-dir[Directory containing plugin binaries. This overrides all default search paths for plugins, and prevents the automatic installation of plugins. This flag can be used multiple times.]:plugin_dir:_files -/' \ - '-reconfigure[Reconfigure the backend, ignoring any saved configuration.]' \ - '-upgrade=[(false) If installing modules (-get) or plugins (-get-plugins), ignore previously-downloaded objects and install the latest version allowed within configured constraints.]' \ - '-verify-plugins=[(true) Verify the authenticity and integrity of automatically downloaded plugins.]' -} - -__login() { - _arguments \ - -} - -__logout() { - _arguments \ - -} - -__output() { - _arguments \ - '-state=[(path) Path to the state file to read. Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ - '-no-color[If specified, output will contain no color.]' \ - '-json[If specified, machine readable output will be printed in JSON format]' -} - -__plan() { - _arguments \ - '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ - '-destroy[If set, a plan will be generated to destroy all resources managed by the given configuration and state.]' \ - '-detailed-exitcode[() Return detailed exit codes when the command exits. This will change the meaning of exit codes to: 0 - Succeeded, diff is empty (no changes); 1 - Errored, 2 - Succeeded; there is a diff]' \ - '-input=[(true) Ask for input for variables if not directly set.]' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-no-color[() If specified, output will contain no color.]' \ - '-out=[(path) Write a plan file to the given path. This can be used as input to the "apply" command.]' \ - '-parallelism=[(10) Limit the number of concurrent operations.]' \ - '-refresh=[(true) Update state prior to checking for differences.]' \ - '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]:statefile:_files -g "*.tfstate"' \ - '*-target=[(resource) Resource to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \ - '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' -} - -__providers() { - local -a __providers_cmds - __providers_cmds=( - 'mirror:Mirrors the provider plugins needed for the current configuration' - 'schema:Prints the schemas of the providers used in the configuration' - ) - _describe -t providers "providers commands" __providers_cmds - -} - -__providers_mirror() { - _arguments \ - '-platform=[(os_arch) Choose which target platform to build a mirror for.]' \ - "*:target_dir:_files -/" -} - -__providers_schema() { - _arguments \ - '-json[]' \ - '::' -} - -__refresh() { - _arguments \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]::backupfile:_files -g "*.backup"' \ - '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ - '-input=[(true) Ask for input for variables if not directly set.]' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-no-color[If specified, output will not contain any color.]' \ - '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -g "*.tfstate"' \ - '*-target=[(resource) A Resource Address to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \ - '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' -} - -__show() { - _arguments \ - '-json[If specified, output the Terraform plan or state in a machine-readable form.]' \ - '-no-color[If specified, output will not contain any color.]' -} - -__state() { - local -a __state_cmds - __state_cmds=( - 'list:List resources in the state' - 'mv:Move an item in the state' - 'pull:Pull current state and output to stdout' - 'push:Update remote state from a local state file' - 'replace-provider:Replace provider for resources in the Terraform state' - 'rm:Remove instances from the state' - 'show:Show a resource in the state' - ) - _describe -t state "state commands" __state_cmds -} - -__state_list() { - _arguments \ - '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default, Terraform will consult the state of the currently-selected workspace.]' \ - '-id=[(id) Filters the results to include only instances whose resource types have an attribute named id whose value equals the given id string.]' \ - "*:address:__statelist" -} - -__state_mv() { - _arguments \ - "-dry-run[If set, prints out what would've been moved but doesn't actually move anything.]" \ - '-backup=[(PATH) Path where Terraform should write the backup for the original state. This can"t be disabled. If not set, Terraform will write it to the same path as the statefile with a ".backup" extension.]:backupfile:_files -g "*.backup"' \ - '-backup-out=[(PATH) Path where Terraform should write the backup for the destination state. This can"t be disabled. If not set, Terraform will write it to the same path as the destination state file with a backup extension. This only needs to be specified if -state-out is set to a different path than -state.]:backupfile:_files -g "*.backup"' \ - "-lock=[(true) Lock the state files when locking is supported.]:lock:(true false)" \ - "-lock-timeout=[(0s) Duration to retry a state lock.]" \ - '-state=[(path) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to the destination state file to write to. If this isn"t specified, the source state file will be used. This can be a new or existing path.]:statefile:_files -g "*.tfstate"' \ - "::" \ - ":source:__statelist" \ - ":destination: " -} - -__state_push() { - _arguments \ - "-force[Write the state even if lineages don't match or the remote serial is higher.]" \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - "-lock-timeout=[(0s) Duration to retry a state lock.]" \ - "::" \ - ":destination:_files" -} - -__state_replace_provider() { - _arguments \ - '-auto-approve[Skip interactive approval.]' \ - '-backup=[(PATH) Path where Terraform should write the backup for the state file. This can"t be disabled. If not set, Terraform will write it to the same path as the state file with a ".backup" extension.]:backupfile:_files -g "*.backup"' \ - "-lock=[(true) Lock the state files when locking is supported.]:lock:(true false)" \ - "-lock-timeout=[(0s) Duration to retry a state lock.]" \ - '-state=[(PATH) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -g "*.tfstate"' \ - ":from_provider_fqn:" \ - ":to_provider_fqn:" -} - -__state_rm() { - _arguments \ - "-dry-run[If set, prints out what would've been removed but doesn't actually remove anything.]" \ - '-backup=[(PATH) Path where Terraform should write the backup for the original state.]::backupfile:_files -g "*.backup"' \ - "-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)" \ - "-lock-timeout=[(0s) Duration to retry a state lock.]" \ - '-state=[(PATH) Path to the state file to update. Defaults to the current workspace state.]:statefile:_files -g "*.tfstate"' \ - "*:address:__statelist" -} - - -__state_show() { - _arguments \ - '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]:statefile:_files -g "*.tfstate"' \ - "*:address:__statelist" -} - -__statelist() { - compadd $(terraform state list $opt_args[-state]) -} - -__taint() { - _arguments \ - '-allow-missing[If specified, the command will succeed (exit code 0) even if the resource is missing.]' \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-module=[(path) The module path where the resource lives. By default this will be root. Child modules can be specified by names. Ex. "consul" or "consul.vpc" (nested modules).]' \ - '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]:statefile:_files -g "*.tfstate"' \ - "*:address:__statelist" -} - -__untaint() { - _arguments \ - '-allow-missing[If specified, the command will succeed (exit code 0) even if the resource is missing.]' \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-module=[(path) The module path where the resource lives. By default this will be root. Child modules can be specified by names. Ex. "consul" or "consul.vpc" (nested modules).]' \ - '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]:statefile:_files -g "*.tfstate"' -} - -__validate() { - _arguments \ - '-no-color[If specified, output will not contain any color.]' \ - '-json[Produce output in a machine-readable JSON format, suitable for use in text editor integrations and other automated systems.]' \ - ':dir:_files -/' -} - -__version() { - _arguments \ - '-json[Output the version information as a JSON object.]' -} - -__workspace() { - local -a __workspace_cmds - __workspace_cmds=( - 'delete:Delete a workspace' - 'list:List Workspaces' - 'new:Create a new workspace' - 'select:Select a workspace' - 'show:Show the name of the current workspace' - ) - _describe -t workspace "workspace commands" __workspace_cmds -} - -_arguments '*:: :->command' - -if (( CURRENT == 1 )); then - _describe -t commands "terraform command" _terraform_cmds - return -fi - -local -a _command_args -case "$words[1]" in - 0.12upgrade) - __012upgrade ;; - 0.13upgrade) - __013upgrade ;; - apply) - __apply ;; - console) - __console;; - destroy) - __destroy ;; - fmt) - __fmt;; - force-unlock) - __force_unlock;; - get) - __get ;; - graph) - __graph ;; - import) - __import;; - init) - __init ;; - login) - __login ;; - logout) - __logout ;; - output) - __output ;; - plan) - __plan ;; - providers) - test $CURRENT -lt 3 && __providers - [[ $words[2] = "mirror" ]] && __providers_mirror - [[ $words[2] = "schema" ]] && __providers_schema - ;; - refresh) - __refresh ;; - show) - __show ;; - state) - test $CURRENT -lt 3 && __state - [[ $words[2] = "list" ]] && __state_list - [[ $words[2] = "mv" ]] && __state_mv - [[ $words[2] = "push" ]] && __state_push - [[ $words[2] = "replace-provider" ]] && __state_replace_provider - [[ $words[2] = "rm" ]] && __state_rm - [[ $words[2] = "show" ]] && __state_show - ;; - taint) - __taint ;; - untaint) - __untaint ;; - validate) - __validate ;; - version) - __version ;; - workspace) - test $CURRENT -lt 3 && __workspace ;; -esac diff --git a/plugins/terraform/terraform.plugin.zsh b/plugins/terraform/terraform.plugin.zsh index d9e39e6ac..eaa1e2e81 100644 --- a/plugins/terraform/terraform.plugin.zsh +++ b/plugins/terraform/terraform.plugin.zsh @@ -16,3 +16,8 @@ alias tfi='terraform init' alias tfo='terraform output' alias tfp='terraform plan' alias tfv='terraform validate' + +if (( $+commands[terraform] )); then + autoload -U +X bashcompinit && bashcompinit + complete -o nospace -C terraform terraform +fi From 5bfdd0356b46dc711a8f0866eeb9b717c033d5b2 Mon Sep 17 00:00:00 2001 From: Haltarys <45515869+Haltarys@users.noreply.github.com> Date: Fri, 11 Nov 2022 09:49:41 +0100 Subject: [PATCH 052/441] fix(ubuntu)!: rename `acs` alias to `acse (#11334) BREAKING CHANGE: `acs` alias, present in both `ubuntu` and `debian` plugins conflicts with `acs` function in aliases plugin. Change it to prevent ghosting of one of them. --- plugins/debian/README.md | 2 +- plugins/debian/debian.plugin.zsh | 4 ++-- plugins/ubuntu/README.md | 2 +- plugins/ubuntu/ubuntu.plugin.zsh | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/debian/README.md b/plugins/debian/README.md index 1db534f13..c1ebe1c50 100644 --- a/plugins/debian/README.md +++ b/plugins/debian/README.md @@ -21,7 +21,7 @@ Set `$apt_pref` and `$apt_upgr` to whatever command you want (before sourcing Oh | ------ | ---------------------------------------------------------------------- | ---------------------------------------------------------- | | `age` | `apt-get` | Command line tool for handling packages | | `api` | `aptitude` | Same functionality as `apt-get`, provides extra options | -| `acs` | `apt-cache search` | Command line tool for searching apt software package cache | +| `acse` | `apt-cache search` | Command line tool for searching apt software package cache | | `aps` | `aptitude search` | Searches installed packages using aptitude | | `as` | `aptitude -F '* %p -> %d \n(%v/%V)' --no-gui --disable-columns search` | Print searched packages using a custom format | | `afs` | `apt-file search --regexp` | Search file in packages | diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index 2d8c4666e..bab1ae1c6 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -26,7 +26,7 @@ alias age='apt-get' alias api='aptitude' # Some self-explanatory aliases -alias acs="apt-cache search" +alias acse="apt-cache search" alias aps='aptitude search' alias as="aptitude -F '* %p -> %d \n(%v/%V)' --no-gui --disable-columns search" @@ -51,7 +51,7 @@ if [[ $use_sudo -eq 1 ]]; then alias au="sudo $apt_pref $apt_upgr" alias ai="sudo $apt_pref install" # Install all packages given on the command line while using only the first word of each line: - # acs ... | ail + # acse ... | ail alias ail="sed -e 's/ */ /g' -e 's/ *//' | cut -s -d ' ' -f 1 | xargs sudo $apt_pref install" alias ap="sudo $apt_pref purge" diff --git a/plugins/ubuntu/README.md b/plugins/ubuntu/README.md index 20f5c65ee..2401c102b 100644 --- a/plugins/ubuntu/README.md +++ b/plugins/ubuntu/README.md @@ -15,7 +15,7 @@ Commands that use `$APT` will use `apt` if installed or defer to `apt-get` other | Alias | Command | Description | |---------|--------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------| | age | `sudo $APT` | Run apt-get with sudo | -| acs | `apt-cache search` | Search the apt-cache with the specified criteria | +| acse | `apt-cache search` | Search the apt-cache with the specified criteria | | acsp | `apt-cache showpkg` | Shows information about the listed packages | | acp | `apt-cache policy` | Display the package source priorities | | afs | `apt-file search --regexp` | Perform a regular expression apt-file search | diff --git a/plugins/ubuntu/ubuntu.plugin.zsh b/plugins/ubuntu/ubuntu.plugin.zsh index 7b765a406..4d35da2ac 100644 --- a/plugins/ubuntu/ubuntu.plugin.zsh +++ b/plugins/ubuntu/ubuntu.plugin.zsh @@ -1,6 +1,6 @@ (( $+commands[apt] )) && APT=apt || APT=apt-get -alias acs='apt-cache search' +alias acse='apt-cache search' alias afs='apt-file search --regexp' From 5b2d0a3f06a743cf9d33783276f29ea683db81c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Fri, 14 Oct 2022 18:07:18 +0200 Subject: [PATCH 053/441] perf(bgnotify): cache terminal app ID computation Fixes #10971 --- plugins/bgnotify/bgnotify.plugin.zsh | 30 +++++++++++++--------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index 479796dbe..9c4a62cd7 100644 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -20,25 +20,25 @@ 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 +} + +function currentAppId { + if (( ${+commands[osascript]} )); then + # output: com.googlecode.iterm2, 116 + osascript -e 'tell application (path to frontmost application as text) to get the {id, id of front window}' 2>/dev/null + elif (( ${+commands[notify-send]} || ${+commands[kdialog]} )); then + xprop -root 2> /dev/null | awk '/NET_ACTIVE_WINDOW/{print $5;exit} END{exit !$5}' || echo "0" + else + echo $EPOCHSECONDS 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" - elif (hash notify-send 2>/dev/null || hash kdialog 2>/dev/null); then #ubuntu! - xprop -root 2> /dev/null | awk '/NET_ACTIVE_WINDOW/{print $5;exit} END{exit !$5}' || echo "0" - else - echo $EPOCHSECONDS #fallback for windows - fi -} +# currentAppId is expensive (more on macOS!) and it will remain the same until the shell is close +bgnotify_termid=$(currentAppId) bgnotify () { ## args: (title, subtitle) if hash terminal-notifier 2>/dev/null; then #osx - local term_id="$bgnotify_appid" + local term_id="${bgnotify_termid%%,*}" # remove window id if [[ -z "$term_id" ]]; then case "$TERM_PROGRAM" in iTerm.app) term_id='com.googlecode.iterm2' ;; @@ -69,8 +69,6 @@ bgnotify () { ## args: (title, subtitle) bgnotify_begin() { bgnotify_timestamp=$EPOCHSECONDS bgnotify_lastcmd="${1:-$2}" - bgnotify_appid="$(currentAppId)" - bgnotify_windowid=$(currentWindowId) } bgnotify_end() { @@ -78,7 +76,7 @@ bgnotify_end() { elapsed=$(( EPOCHSECONDS - bgnotify_timestamp )) past_threshold=$(( elapsed >= bgnotify_threshold )) if (( bgnotify_timestamp > 0 )) && (( past_threshold )); then - if [[ $(currentAppId) != "$bgnotify_appid" || $(currentWindowId) != "$bgnotify_windowid" ]]; then + if [[ $(currentAppId) != "$bgnotify_termid" ]]; then print -n "\a" bgnotify_formatted "$didexit" "$bgnotify_lastcmd" "$elapsed" fi From a04cf078801db637c2ecdcc95c491fa9fb217ceb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Fri, 14 Oct 2022 18:36:48 +0200 Subject: [PATCH 054/441] refactor(bgnotify): clean up and reorganize code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🗸 Standardize code style 🗸 Organize code sections 🗸 Optimize calls for window ID --- plugins/bgnotify/bgnotify.plugin.zsh | 125 +++++++++++++++------------ 1 file changed, 70 insertions(+), 55 deletions(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index 9c4a62cd7..ed2653aa8 100644 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -1,43 +1,78 @@ #!/usr/bin/env zsh -## setup ## +## Setup -[[ -o interactive ]] || return #interactive only! -zmodload zsh/datetime || { print "can't load zsh/datetime"; return } # faster than date() -autoload -Uz add-zsh-hook || { print "can't add zsh hook!"; return } +[[ -o interactive ]] || return # don't load on non-interactive shells +[[ -z "$SSH_CLIENT" && -z "$SSH_TTY" ]] || return # don't load on a SSH connection -(( ${+bgnotify_threshold} )) || bgnotify_threshold=5 #default 10 seconds +zmodload zsh/datetime # faster than `date` -## definitions ## - -if ! (type bgnotify_formatted | grep -q 'function'); then ## allow custom function override - function bgnotify_formatted { ## args: (exit_status, command, elapsed_seconds) - elapsed="$(( $3 % 60 ))s" - (( $3 >= 60 )) && elapsed="$((( $3 % 3600) / 60 ))m $elapsed" - (( $3 >= 3600 )) && elapsed="$(( $3 / 3600 ))h $elapsed" - [ $1 -eq 0 ] && bgnotify "#win (took $elapsed)" "$2" || bgnotify "#fail (took $elapsed)" "$2" - } -fi +## Zsh Hooks +function bgnotify_begin { + bgnotify_timestamp=$EPOCHSECONDS + bgnotify_lastcmd="${1:-$2}" } -function currentAppId { +function bgnotify_end { + { + local exit_status=$? + local elapsed=$(( EPOCHSECONDS - bgnotify_timestamp )) + + # check time elapsed + [[ $bgnotify_timestamp -gt 0 ]] || return + [[ $elapsed -ge $bgnotify_threshold ]] || return + + # check if Terminal app is not active + [[ $(bgnotify_appid) != "$bgnotify_termid" ]] || return + + printf '\a' # beep sound + bgnotify_formatted "$exit_status" "$bgnotify_lastcmd" "$elapsed" + } always { + bgnotify_timestamp=0 + } +} + +autoload -Uz add-zsh-hook +add-zsh-hook preexec bgnotify_begin +add-zsh-hook precmd bgnotify_end + + +## Functions + +# allow custom function override +(( ${+functions[bgnotify_formatted]} )) || \ +function bgnotify_formatted { + local exit_status=$1 + local cmd="$2" + + # humanly readable elapsed time + local elapsed="$(( $3 % 60 ))s" + (( $3 < 60 )) || elapsed="$((( $3 % 3600) / 60 ))m $elapsed" + (( $3 < 3600 )) || elapsed="$(( $3 / 3600 ))h $elapsed" + + if [[ $1 -eq 0 ]]; then + bgnotify "#win (took $elapsed)" "$2" + else + bgnotify "#fail (took $elapsed)" "$2" + fi +} + +# for macOS, output is "app ID, window ID" (com.googlecode.iterm2, 116) +function bgnotify_appid { if (( ${+commands[osascript]} )); then - # output: com.googlecode.iterm2, 116 osascript -e 'tell application (path to frontmost application as text) to get the {id, id of front window}' 2>/dev/null - elif (( ${+commands[notify-send]} || ${+commands[kdialog]} )); then - xprop -root 2> /dev/null | awk '/NET_ACTIVE_WINDOW/{print $5;exit} END{exit !$5}' || echo "0" + elif (( ${+commands[xprop]} )); then + xprop -root _NET_ACTIVE_WINDOW 2>/dev/null | cut -d' ' -f5 else echo $EPOCHSECONDS fi } -# currentAppId is expensive (more on macOS!) and it will remain the same until the shell is close -bgnotify_termid=$(currentAppId) - -bgnotify () { ## args: (title, subtitle) - if hash terminal-notifier 2>/dev/null; then #osx +function bgnotify { + # $1: title, $2: message + if (( ${+commands[terminal-notifier]} )); then # macOS local term_id="${bgnotify_termid%%,*}" # remove window id if [[ -z "$term_id" ]]; then case "$TERM_PROGRAM" in @@ -46,46 +81,26 @@ bgnotify () { ## args: (title, subtitle) esac fi - ## now call terminal-notifier, (hopefully with $term_id!) if [[ -z "$term_id" ]]; then - terminal-notifier -message "$2" -title "$1" >/dev/null + terminal-notifier -message "$2" -title "$1" &>/dev/null else - terminal-notifier -message "$2" -title "$1" -activate "$term_id" -sender "$term_id" >/dev/null + terminal-notifier -message "$2" -title "$1" -activate "$term_id" -sender "$term_id" &>/dev/null fi - elif hash growlnotify 2>/dev/null; then #osx growl + elif (( ${+commands[growlnotify]} )); then # macOS growl growlnotify -m "$1" "$2" - elif hash notify-send 2>/dev/null; then #ubuntu gnome! + elif (( ${+commands[notify-send]} )); then # GNOME notify-send "$1" "$2" - elif hash kdialog 2>/dev/null; then #ubuntu kde! + elif (( ${+commands[kdialog]} )); then # KDE kdialog --title "$1" --passivepopup "$2" 5 - elif hash notifu 2>/dev/null; then #cygwyn support! + elif (( ${+commands[notifu]} )); then # cygwin notifu /m "$2" /p "$1" fi } +## Defaults -## Zsh hooks ## +# notify if command took longer than 5s by default +bgnotify_threshold=${bgnotify_threshold:-5} -bgnotify_begin() { - bgnotify_timestamp=$EPOCHSECONDS - bgnotify_lastcmd="${1:-$2}" -} - -bgnotify_end() { - didexit=$? - elapsed=$(( EPOCHSECONDS - bgnotify_timestamp )) - past_threshold=$(( elapsed >= bgnotify_threshold )) - if (( bgnotify_timestamp > 0 )) && (( past_threshold )); then - if [[ $(currentAppId) != "$bgnotify_termid" ]]; then - print -n "\a" - bgnotify_formatted "$didexit" "$bgnotify_lastcmd" "$elapsed" - fi - fi - bgnotify_timestamp=0 #reset it to 0! -} - -## only enable if a local (non-ssh) connection -if [ -z "$SSH_CLIENT" ] && [ -z "$SSH_TTY" ]; then - add-zsh-hook preexec bgnotify_begin - add-zsh-hook precmd bgnotify_end -fi +# bgnotify_appid is slow in macOS and the terminal ID won't change, so cache it at startup +bgnotify_termid="$(bgnotify_appid)" From 62929263fafd9e3c1da043bc9b40fa97fccfa7a1 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Fri, 11 Feb 2022 15:20:03 +0100 Subject: [PATCH 055/441] fix(perms)!: change function name from `fixperms` to `resetperms` and document caution (#10686) BREAKING CHANGE: function `fixperms` has been renamed to the more accurate `resetperms`. Please read the README carefully before using it as it may badly reset the permissions. Fixes #10648 Closes #10686 --- plugins/perms/README.md | 16 +++++++++++++--- plugins/perms/perms.plugin.zsh | 27 ++++++++++++++++----------- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/plugins/perms/README.md b/plugins/perms/README.md index ae7a36b9d..ae10fa659 100644 --- a/plugins/perms/README.md +++ b/plugins/perms/README.md @@ -10,6 +10,16 @@ plugins=(... perms) ## Usage -* `set755` recursively sets all given directories (default to .) to octal 755. -* `set644` recursively sets all given files (default to .) to octal 644. -* `fixperms` is a wrapper around `set755` and `set644` applied to a specified directory or the current directory otherwise. It also prompts prior to execution unlike the other two aliases. +> **CAUTION:** these functions are harmful if you don't know what they do. + +- `set755`: sets the permission to octal 755 for all given directories and their child directories (by default, starting from the current directory). + +- `set644`: sets the permission to octal 644 for all files of the given directory (by default, the current directory), recursively. It will only affect regular files (no symlinks). + +- `resetperms` is a wrapper around `set755` and `set644` applied to a specified directory or the current directory otherwise. + It will set the permissions to 755 for directories, and 644 for files. + +## Reference + +- octal 644: _read and write_ for the owner, _read_ for the group and others users. +- octal 755: _read, write and execute_ permissions for the owner, and _read and execute_ for the group and others users. diff --git a/plugins/perms/perms.plugin.zsh b/plugins/perms/perms.plugin.zsh index 1a7472c1c..353b58411 100644 --- a/plugins/perms/perms.plugin.zsh +++ b/plugins/perms/perms.plugin.zsh @@ -6,25 +6,25 @@ ### Aliases # Set all files' permissions to 644 recursively in a directory -set644() { +function set644 { find "${@:-.}" -type f ! -perm 644 -print0 | xargs -0 chmod 644 } # Set all directories' permissions to 755 recursively in a directory -set755() { +function set755 { find "${@:-.}" -type d ! -perm 755 -print0 | xargs -0 chmod 755 } ### Functions -# fixperms - fix permissions on files and directories, with confirmation +# resetperms - fix permissions on files and directories, with confirmation # Returns 0 on success, nonzero if any errors occurred -fixperms () { +function resetperms { local opts confirm target exit_status chmod_opts use_slow_mode zparseopts -E -D -a opts -help -slow v+=chmod_opts if [[ $# > 1 || -n "${opts[(r)--help]}" ]]; then cat < Date: Sat, 12 Nov 2022 11:46:06 +0100 Subject: [PATCH 056/441] feat(git-prompt): show deleted files (#11245) --- plugins/git-prompt/git-prompt.plugin.zsh | 5 +++++ plugins/git-prompt/gitstatus.py | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/plugins/git-prompt/git-prompt.plugin.zsh b/plugins/git-prompt/git-prompt.plugin.zsh index 0485e317c..dcda418cf 100644 --- a/plugins/git-prompt/git-prompt.plugin.zsh +++ b/plugins/git-prompt/git-prompt.plugin.zsh @@ -47,6 +47,7 @@ function update_current_git_vars() { GIT_UNTRACKED=$__CURRENT_GIT_STATUS[7] GIT_STASHED=$__CURRENT_GIT_STATUS[8] GIT_CLEAN=$__CURRENT_GIT_STATUS[9] + GIT_DELETED=$__CURRENT_GIT_STATUS[10] } git_super_status() { @@ -69,6 +70,9 @@ git_super_status() { if [ "$GIT_CHANGED" -ne "0" ]; then STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CHANGED$GIT_CHANGED%{${reset_color}%}" fi + if [ "$GIT_DELETED" -ne "0" ]; then + STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_DELETED$GIT_DELETED%{${reset_color}%}" + fi if [ "$GIT_UNTRACKED" -ne "0" ]; then STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNTRACKED$GIT_UNTRACKED%{${reset_color}%}" fi @@ -91,6 +95,7 @@ ZSH_THEME_GIT_PROMPT_BRANCH="%{$fg_bold[magenta]%}" ZSH_THEME_GIT_PROMPT_STAGED="%{$fg[red]%}%{●%G%}" ZSH_THEME_GIT_PROMPT_CONFLICTS="%{$fg[red]%}%{✖%G%}" ZSH_THEME_GIT_PROMPT_CHANGED="%{$fg[blue]%}%{✚%G%}" +ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[blue]%}%{-%G%}" ZSH_THEME_GIT_PROMPT_BEHIND="%{↓%G%}" ZSH_THEME_GIT_PROMPT_AHEAD="%{↑%G%}" ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%}%{…%G%}" diff --git a/plugins/git-prompt/gitstatus.py b/plugins/git-prompt/gitstatus.py index b5c3c9a0c..94774d828 100644 --- a/plugins/git-prompt/gitstatus.py +++ b/plugins/git-prompt/gitstatus.py @@ -44,7 +44,7 @@ if po.returncode != 0: sys.exit(0) # Not a git repository # collect git status information -untracked, staged, changed, conflicts = [], [], [], [] +untracked, staged, changed, deleted, conflicts = [], [], [], [], [] ahead, behind = 0, 0 status = [(line[0], line[1], line[2:]) for line in stdout.decode('utf-8').splitlines()] for st in status: @@ -75,13 +75,15 @@ for st in status: else: if st[1] == 'M': changed.append(st) + if st[1] == 'D': + deleted.append(st) if st[0] == 'U': conflicts.append(st) elif st[0] != ' ': staged.append(st) stashed = get_stash() -if not changed and not staged and not conflicts and not untracked: +if not changed and not deleted and not staged and not conflicts and not untracked: clean = 1 else: clean = 0 @@ -95,6 +97,7 @@ out = ' '.join([ str(len(changed)), str(len(untracked)), str(stashed), - str(clean) + str(clean), + str(len(deleted)) ]) print(out, end='') From b70977b25657c193a3a6c0445b63325a420da646 Mon Sep 17 00:00:00 2001 From: Isaac Levy Date: Mon, 14 Nov 2022 11:36:19 -0500 Subject: [PATCH 057/441] perf(pyenv): do not check if it's disabled (#11338) --- plugins/pyenv/pyenv.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/pyenv/pyenv.plugin.zsh b/plugins/pyenv/pyenv.plugin.zsh index 7fbd1589e..48c8ffaf5 100644 --- a/plugins/pyenv/pyenv.plugin.zsh +++ b/plugins/pyenv/pyenv.plugin.zsh @@ -78,7 +78,7 @@ if [[ $FOUND_PYENV -eq 1 ]]; then eval "$(pyenv init - --no-rehash zsh)" # If pyenv-virtualenv exists, load it - if [[ "$(pyenv commands)" =~ "virtualenv-init" && "$ZSH_PYENV_VIRTUALENV" != false ]]; then + if [[ "$ZSH_PYENV_VIRTUALENV" != false && "$(pyenv commands)" =~ "virtualenv-init" ]]; then eval "$(pyenv virtualenv-init - zsh)" fi From a482a02915f361e56669ee9884ebee0eb6f2d8d5 Mon Sep 17 00:00:00 2001 From: Lennart Ochel Date: Mon, 14 Nov 2022 17:38:44 +0100 Subject: [PATCH 058/441] feat(git-prompt): add option to show upstream branch (#11336) --- plugins/git-prompt/README.md | 2 ++ plugins/git-prompt/git-prompt.plugin.zsh | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/plugins/git-prompt/README.md b/plugins/git-prompt/README.md index 8775af893..05208d72f 100644 --- a/plugins/git-prompt/README.md +++ b/plugins/git-prompt/README.md @@ -45,6 +45,7 @@ The symbols are as follows: | ●n | there are `n` staged files | | ✖n | there are `n` unmerged files | | ✚n | there are `n` unstaged files | +| -n | there are `n` deleted files | | ⚑n | there are `n` stashed changes | | … | there are some untracked files | @@ -59,6 +60,7 @@ The symbols are as follows: ## Customisation - Set the variable `ZSH_THEME_GIT_PROMPT_CACHE` to any value in order to enable caching. +- Set the variable `ZSH_THEME_GIT_SHOW_UPSTREAM` to any value to display the upstream branch. - You may also change a number of variables (whose name start with `ZSH_THEME_GIT_PROMPT_`) to change the appearance of the prompt. Take a look at the bottom of the [plugin file](git-prompt.plugin.zsh)` to see what variables are available. diff --git a/plugins/git-prompt/git-prompt.plugin.zsh b/plugins/git-prompt/git-prompt.plugin.zsh index dcda418cf..487332028 100644 --- a/plugins/git-prompt/git-prompt.plugin.zsh +++ b/plugins/git-prompt/git-prompt.plugin.zsh @@ -48,12 +48,18 @@ function update_current_git_vars() { GIT_STASHED=$__CURRENT_GIT_STATUS[8] GIT_CLEAN=$__CURRENT_GIT_STATUS[9] GIT_DELETED=$__CURRENT_GIT_STATUS[10] + + if [ -z ${ZSH_THEME_GIT_SHOW_UPSTREAM+x} ]; then + GIT_UPSTREAM= + else + GIT_UPSTREAM=$(git rev-parse --abbrev-ref --symbolic-full-name "@{upstream}" 2>/dev/null) && GIT_UPSTREAM="${ZSH_THEME_GIT_PROMPT_UPSTREAM_SEPARATOR}${GIT_UPSTREAM}" + fi } git_super_status() { precmd_update_git_vars if [ -n "$__CURRENT_GIT_STATUS" ]; then - STATUS="$ZSH_THEME_GIT_PROMPT_PREFIX$ZSH_THEME_GIT_PROMPT_BRANCH$GIT_BRANCH%{${reset_color}%}" + STATUS="$ZSH_THEME_GIT_PROMPT_PREFIX$ZSH_THEME_GIT_PROMPT_BRANCH$GIT_BRANCH$GIT_UPSTREAM%{${reset_color}%}" if [ "$GIT_BEHIND" -ne "0" ]; then STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_BEHIND$GIT_BEHIND%{${reset_color}%}" fi @@ -101,6 +107,7 @@ ZSH_THEME_GIT_PROMPT_AHEAD="%{↑%G%}" ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%}%{…%G%}" ZSH_THEME_GIT_PROMPT_STASHED="%{$fg_bold[blue]%}%{⚑%G%}" ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[green]%}%{✔%G%}" +ZSH_THEME_GIT_PROMPT_UPSTREAM_SEPARATOR="->" # Set the prompt. RPROMPT='$(git_super_status)' From 37d9e1aee9289025373d3f840ead74897206d73f Mon Sep 17 00:00:00 2001 From: milinches Date: Sat, 7 May 2022 06:12:22 +0100 Subject: [PATCH 059/441] feat(golang): add `goe`, `gove` aliases Closes #10914 --- plugins/golang/README.md | 4 +++- plugins/golang/golang.plugin.zsh | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/golang/README.md b/plugins/golang/README.md index 3b7d1e19f..128cc7fbb 100644 --- a/plugins/golang/README.md +++ b/plugins/golang/README.md @@ -16,11 +16,12 @@ plugins=(... golang) | gob | `go build` | Build your code | | goc | `go clean` | Removes object files from package source directories | | god | `go doc` | Prints documentation comments | +| goe | `go env` | Prints Go environment information | | gof | `go fmt` | Gofmt formats (aligns and indents) Go programs. | | gofa | `go fmt ./...` | Run go fmt for all packages in current directory, recursively | | gofx | `go fix` | Update packages to use a new API | | gog | `go get` | Downloads packages and then installs them to $GOPATH | -| gog | `go get ./...` | Installs all dependencies in current directory, recursively | +| goga | `go get ./...` | Installs all dependencies in current directory, recursively | | goi | `go install` | Compiles and installs packages to $GOPATH | | gol | `go list` | Lists Go packages | | gom | `go mod` | Access to operations on modules | @@ -35,4 +36,5 @@ plugins=(... golang) | gotod | `go tool dist` | Utility to bootstrap, build and test go runtime | | gotofx | `go tool fix` | Fixes an application to use newer features | | gov | `go vet` | Vet examines Go source code and reports suspicious constructs | +| gove | `go version` | Prints Go version | | gow | `go work` | Work provides access to operations on workspaces | diff --git a/plugins/golang/golang.plugin.zsh b/plugins/golang/golang.plugin.zsh index 0dbaab069..45ccd3a1c 100644 --- a/plugins/golang/golang.plugin.zsh +++ b/plugins/golang/golang.plugin.zsh @@ -13,6 +13,7 @@ unset p alias gob='go build' alias goc='go clean' alias god='go doc' +alias goe='go env' alias gof='go fmt' alias gofa='go fmt ./...' alias gofx='go fix' @@ -32,4 +33,5 @@ alias gotoc='go tool compile' alias gotod='go tool dist' alias gotofx='go tool fix' alias gov='go vet' +alias gove='go version' alias gow='go work' From aafc7443f07b841b4c008951087bfad282f3341f Mon Sep 17 00:00:00 2001 From: Steven Conaway Date: Tue, 15 Nov 2022 10:19:37 -0800 Subject: [PATCH 060/441] feat(fzf): support macOS ARM brew install dir (#10944) --- plugins/fzf/fzf.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/fzf/fzf.plugin.zsh b/plugins/fzf/fzf.plugin.zsh index 60ae0c765..9c8dd8648 100644 --- a/plugins/fzf/fzf.plugin.zsh +++ b/plugins/fzf/fzf.plugin.zsh @@ -9,6 +9,7 @@ function fzf_setup_using_base_dir() { "${HOME}/.nix-profile/share/fzf" "${XDG_DATA_HOME:-$HOME/.local/share}/fzf" "/usr/local/opt/fzf" + "/opt/homebrew/bin/fzf" "/usr/share/fzf" "/usr/local/share/examples/fzf" ) From 94584e2a7337e0a7f5af45e2c97ca6d0770e67a1 Mon Sep 17 00:00:00 2001 From: Bill Haofei Gong Date: Wed, 16 Nov 2022 05:25:22 +1100 Subject: [PATCH 061/441] feat(cakephp3): add compatibility with CakePHP 3.7+ (#11080) --- plugins/cakephp3/cakephp3.plugin.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/cakephp3/cakephp3.plugin.zsh b/plugins/cakephp3/cakephp3.plugin.zsh index dbfbeba3b..a1a289fd0 100644 --- a/plugins/cakephp3/cakephp3.plugin.zsh +++ b/plugins/cakephp3/cakephp3.plugin.zsh @@ -1,10 +1,10 @@ # CakePHP 3 basic command completion _cakephp3_get_command_list () { - bin/cake Completion commands + bin/cake completion commands } _cakephp3_get_sub_command_list () { - bin/cake Completion subcommands ${words[2]} + bin/cake completion subcommands ${words[2]} } _cakephp3_get_3rd_argument () { @@ -34,5 +34,5 @@ compdef _cakephp3 cake #Alias alias c3='bin/cake' -alias c3cache='bin/cake orm_cache clear' +alias c3cache='bin/cake schema_cache clear' alias c3migrate='bin/cake migrations migrate' From 4392d3a923eddd4e9d0f9b17a1e995cc9aa5cc96 Mon Sep 17 00:00:00 2001 From: Ben Iofel Date: Tue, 15 Nov 2022 18:29:48 +0000 Subject: [PATCH 062/441] feat(systemadmin): color `ip` if shell is interactive (#11107) --- plugins/systemadmin/systemadmin.plugin.zsh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/plugins/systemadmin/systemadmin.plugin.zsh b/plugins/systemadmin/systemadmin.plugin.zsh index 8e5e0af71..9b5159ff1 100644 --- a/plugins/systemadmin/systemadmin.plugin.zsh +++ b/plugins/systemadmin/systemadmin.plugin.zsh @@ -33,6 +33,14 @@ alias pscpu10='ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr | head # top10 of the history alias hist10='print -l ${(o)history%% *} | uniq -c | sort -nr | head -n 10' +function ip() { + if [ -t 1 ]; then + command ip -color "$@" + else + command ip "$@" + fi +} + # directory LS function dls() { print -l *(/) From 6d5ba2d6c489d56fb34788ec128f98609e60b7be Mon Sep 17 00:00:00 2001 From: Carlo Date: Tue, 15 Nov 2022 20:23:09 +0100 Subject: [PATCH 063/441] feat(nvm)!: settings now are zstyle-based (#11335) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Marc Cornellà --- plugins/nvm/README.md | 40 +++++++++++++++++++++++--------- plugins/nvm/nvm.plugin.zsh | 47 ++++++++++++++++++++++++++++++-------- 2 files changed, 66 insertions(+), 21 deletions(-) diff --git a/plugins/nvm/README.md b/plugins/nvm/README.md index 1acf12050..4c6312e6e 100644 --- a/plugins/nvm/README.md +++ b/plugins/nvm/README.md @@ -1,7 +1,7 @@ # nvm plugin -This plugin adds autocompletions for [nvm](https://github.com/nvm-sh/nvm) — a Node.js version manager. -It also automatically sources nvm, so you don't need to do it manually in your `.zshrc`. +This plugin adds autocompletions for [nvm](https://github.com/nvm-sh/nvm) — a Node.js version manager. It also +automatically sources nvm, so you don't need to do it manually in your `.zshrc`. To use it, add `nvm` to the plugins array of your zshrc file: @@ -21,14 +21,32 @@ These settings should go in your zshrc file, before Oh My Zsh is sourced: [Homebrew is installed in `/opt/homebrew`](https://docs.brew.sh/Installation). To get the directory where nvm has been installed, regardless of chip architecture, use `NVM_HOMEBREW=$(brew --prefix nvm)`. -- **`NVM_LAZY`**: if you want the plugin to defer the load of nvm to speed-up the start of your zsh session, - set `NVM_LAZY` to `1`. This will source nvm script only when using it, and will create a function for `node`, - `npm`, `pnpm`, `yarn`, and the command(s) specified by `NVM_LAZY_CMD`, so when you call either of them, - nvm will be loaded and run with default version. +## Customization -- **`NVM_LAZY_CMD`**: if you want additional command(s) to trigger lazy loading of nvm, set `NVM_LAZY_CMD` to - the command or an array of the commands. +#### Lazy startup -- **`NVM_AUTOLOAD`**: if `NVM_AUTOLOAD` is set to `1`, the plugin will automatically load a node version when - if finds a [`.nvmrc` file](https://github.com/nvm-sh/nvm#nvmrc) in the current working directory indicating - which node version to load. +This option will help you to defer nvm's load until you use it to speed-up your zsh startup. This will source +nvm script only when using it, and will create a function for `node`, `npm`, `pnpm`, `yarn`, and the +command(s) specified by `lazy-cmd` option, so when you call either of them, nvm will be loaded and run with +default version. To enable it, you can add this snippet to your zshrc, before Oh My Zsh is sourced: + +```zsh +zstyle ':omz:plugins:nvm' lazy yes +``` + +Then, to define extra commands that will also trigger nvm load, you can use a similar syntax, adding as many +as you want: + +```zsh +zstyle ':omz:plugins:nvm' lazy-cmd eslint prettier typescript ... +``` + +#### `.nvmrc` autoload + +If set, the plugin will automatically load a node version when if finds a +[`.nvmrc` file](https://github.com/nvm-sh/nvm#nvmrc) in the current working directory indicating which node +version to load. This can be done, similar as previous options, adding: + +```zsh +zstyle ':omz:plugins:nvm' autoload true +``` diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index 1fb4d238b..ec583cc2d 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -16,14 +16,41 @@ fi # Note: nvm is a function so we need to use `which` which nvm &>/dev/null && return -if (( $+NVM_LAZY )); then - # Call nvm when first using nvm, node, npm, pnpm, yarn or $NVM_LAZY_CMD - function nvm node npm pnpm yarn $NVM_LAZY_CMD { - unfunction nvm node npm pnpm yarn $NVM_LAZY_CMD - # Load nvm if it exists in $NVM_DIR - [[ -f "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh" - "$0" "$@" - } +# TODO: 2022-11-11: Remove soft-deprecate options +if (( ${+NVM_LAZY} + ${+NVM_LAZY_CMD} + ${+NVM_AUTOLOAD} )); then + # Get list of NVM_* variable settings defined + local -a used_vars + used_vars=(${(o)parameters[(I)NVM_(AUTOLOAD|LAZY|LAZY_CMD)]}) + # Nicely print the list in the style `var1, var2 and var3` + echo "${fg[yellow]}[nvm plugin] Variable-style settings are deprecated. Instead of ${(j:, :)used_vars[1,-2]}${used_vars[-2]+ and }${used_vars[-1]}, use:\n" + if (( $+NVM_AUTOLOAD )); then + echo " zstyle ':omz:plugins:nvm' autoload true" + zstyle ':omz:plugins:nvm' autoload yes + fi + if (( $+NVM_LAZY )); then + echo " zstyle ':omz:plugins:nvm' lazy true" + zstyle ':omz:plugins:nvm' lazy yes + fi + if (( $+NVM_LAZY_CMD )); then + echo " zstyle ':omz:plugins:nvm' lazy-cmd $NVM_LAZY_CMD" + zstyle ':omz:plugins:nvm' lazy-cmd $NVM_LAZY_CMD + fi + echo "$reset_color" + unset used_vars NVM_AUTOLOAD NVM_LAZY NVM_LAZY_CMD +fi + +if zstyle -t ':omz:plugins:nvm' lazy; then + # Call nvm when first using nvm, node, npm, pnpm, yarn or other commands in lazy-cmd + zstyle -a ':omz:plugins:nvm' lazy-cmd nvm_lazy_cmd + eval " + function nvm node npm pnpm yarn $nvm_lazy_cmd { + unfunction nvm node npm pnpm yarn $nvm_lazy_cmd + # Load nvm if it exists in \$NVM_DIR + [[ -f \"\$NVM_DIR/nvm.sh\" ]] && source \"\$NVM_DIR/nvm.sh\" + \"\$0\" \"\$@\" + } + " + unset nvm_lazy_cmd elif [[ -f "$NVM_DIR/nvm.sh" ]]; then # Load nvm if it exists in $NVM_DIR source "$NVM_DIR/nvm.sh" @@ -33,7 +60,7 @@ fi # Autoload nvm when finding a .nvmrc file in the current directory # Adapted from: https://github.com/nvm-sh/nvm#zsh -if (( $+NVM_AUTOLOAD )); then +if zstyle -t ':omz:plugins:nvm' autoload; then load-nvmrc() { local node_version="$(nvm version)" local nvmrc_path="$(nvm_find_nvmrc)" @@ -70,4 +97,4 @@ for nvm_completion in "$NVM_DIR/bash_completion" "$NVM_HOMEBREW/etc/bash_complet fi done -unset NVM_HOMEBREW NVM_LAZY NVM_AUTOLOAD nvm_completion +unset NVM_HOMEBREW nvm_completion From 5bce72ef57255ab1c23d8fb753417859afe6e0f0 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 15 Nov 2022 20:27:12 +0100 Subject: [PATCH 064/441] docs(yarn): follow omz `zstyle` bools standard --- plugins/yarn/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/yarn/README.md b/plugins/yarn/README.md index 9c16ff2c3..cdda2026c 100644 --- a/plugins/yarn/README.md +++ b/plugins/yarn/README.md @@ -15,7 +15,7 @@ It also adds `yarn` global scripts dir (commonly `~/.yarn/bin`) to the `$PATH`. To disable this feature, set the following style in your `.zshrc`: ```zsh -zstyle ':omz:plugins:yarn' global-path false +zstyle ':omz:plugins:yarn' global-path no ``` ## Aliases From 5ab517361a4215d2f777023fc1e772fe79496713 Mon Sep 17 00:00:00 2001 From: Ruslan Tursunov Date: Thu, 17 Nov 2022 13:54:01 +0300 Subject: [PATCH 065/441] feat(git): add `gcn` alias (#10836) --- 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 f1c8b81c4..3beb0890a 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -35,6 +35,7 @@ plugins=(... git) | gbss | git bisect start | | gc | git commit -v | | gc! | git commit -v --amend | +| gcn | git commit -v --no-edit | | gcn! | git commit -v --no-edit --amend | | gca | git commit -v -a | | gca! | git commit -v -a --amend | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 26f4beeb3..69745730c 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -84,6 +84,7 @@ alias gbss='git bisect start' alias gc='git commit -v' alias gc!='git commit -v --amend' +alias gcn='git commit -v --no-edit' alias gcn!='git commit -v --no-edit --amend' alias gca='git commit -v -a' alias gca!='git commit -v -a --amend' From d93f3174504f8a0c21aef6998714e3b67ba82606 Mon Sep 17 00:00:00 2001 From: Carlo Date: Sun, 20 Nov 2022 08:36:20 +0100 Subject: [PATCH 066/441] fix(init): prevent multiple compdump compilations (#11345) Closes #11341 --- oh-my-zsh.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 29d39ca23..e94c2f417 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -143,7 +143,10 @@ fi unset zcompdump_revision zcompdump_fpath zcompdump_refresh # zcompile the completion dump file if the .zwc is older or missing. -zrecompile -q -p "$ZSH_COMPDUMP" && command rm -f "$ZSH_COMPDUMP.zwc.old" +if command mkdir "${ZSH_COMPDUMP}.lock" 2>/dev/null; then + zrecompile -q -p "$ZSH_COMPDUMP" + command rm -rf "$ZSH_COMPDUMP.zwc.old" "${ZSH_COMPDUMP}.lock" +fi # Load all of the config files in ~/oh-my-zsh that end in .zsh # TIP: Add files you don't want in git to .gitignore From 96976736166998a980cc3d9570db4c0b594460e3 Mon Sep 17 00:00:00 2001 From: Brenex Date: Mon, 21 Nov 2022 05:23:16 -0500 Subject: [PATCH 067/441] docs(aliases): fix typos (#11348) Co-authored-by: Carlo Sala --- plugins/aliases/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/aliases/README.md b/plugins/aliases/README.md index 66fd84584..4e77f67b3 100644 --- a/plugins/aliases/README.md +++ b/plugins/aliases/README.md @@ -15,14 +15,14 @@ Requirements: Python needs to be installed. ## Usage -- `acs`: show all aliases by group. +- `acs`: show all aliases by group -- `acs -h/--help`: print help mesage. +- `acs -h/--help`: print help mesage -- `acs `: filter aliases by `` and highlight. +- `acs `: filter aliases by `` and highlight -- `acs -g /--group `. Multiple uses of the flag show all groups, +- `acs -g /--group `: show only aliases for group ``. Multiple uses of the flag show all groups -- `acs --groups-only`: show only group names +- `acs --groups`: show only group names ![screenshot](https://cloud.githubusercontent.com/assets/3602957/11581913/cb54fb8a-9a82-11e5-846b-5a67f67ad9ad.png) From fe83581a20ab12010e9168977dc633c9da2924e1 Mon Sep 17 00:00:00 2001 From: Richard Mitchell Date: Mon, 21 Nov 2022 05:24:10 -0500 Subject: [PATCH 068/441] fix(last-working-dir): use builtin `pwd` (#11346) --- plugins/last-working-dir/last-working-dir.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/last-working-dir/last-working-dir.plugin.zsh b/plugins/last-working-dir/last-working-dir.plugin.zsh index 905a02a70..684972cc1 100644 --- a/plugins/last-working-dir/last-working-dir.plugin.zsh +++ b/plugins/last-working-dir/last-working-dir.plugin.zsh @@ -9,7 +9,7 @@ chpwd_last_working_dir() { [[ "$ZSH_SUBSHELL" -eq 0 ]] || return 0 # Add ".$SSH_USER" suffix to cache file if $SSH_USER is set and non-empty local cache_file="$ZSH_CACHE_DIR/last-working-dir${SSH_USER:+.$SSH_USER}" - pwd >| "$cache_file" + builtin pwd >| "$cache_file" } # Changes directory to the last working directory From 8ef9abc9621321c41e89c578bc6f12176696f36c Mon Sep 17 00:00:00 2001 From: Markus Hofbauer Date: Wed, 23 Nov 2022 10:23:11 +0100 Subject: [PATCH 069/441] feat(pre-commit) add aliases (#10707) --- plugins/pre-commit/README.md | 19 +++++++++++++++++++ plugins/pre-commit/pre-commit.plugin.zsh | 8 ++++++++ 2 files changed, 27 insertions(+) create mode 100644 plugins/pre-commit/README.md create mode 100644 plugins/pre-commit/pre-commit.plugin.zsh diff --git a/plugins/pre-commit/README.md b/plugins/pre-commit/README.md new file mode 100644 index 000000000..e6d80d369 --- /dev/null +++ b/plugins/pre-commit/README.md @@ -0,0 +1,19 @@ +# Pre-commit plugin + +This plugin adds aliases for common commands of [pre-commit](https://pre-commit.com/). + +To use this plugin, add it to the plugins array in your zshrc file: + +```zsh +plugins=(... pre-commit) +``` + +## Aliases + +| Alias | Command | Description | +| ------- | -------------------------------------- | ------------------------------------------------------ | +| prc | `pre-commit` | The `pre-commit` command | +| prcau | `pre-commit autoupdate` | Update hooks automatically | +| prcr | `pre-commit run` | The `pre-commit run` command | +| prcra | `pre-commit run --all-files` | Run pre-commit hooks on all files | +| prcrf | `pre-commit run --files` | Run pre-commit hooks on a given list of files | diff --git a/plugins/pre-commit/pre-commit.plugin.zsh b/plugins/pre-commit/pre-commit.plugin.zsh new file mode 100644 index 000000000..c3d0c6290 --- /dev/null +++ b/plugins/pre-commit/pre-commit.plugin.zsh @@ -0,0 +1,8 @@ +# Aliases for pre-commit +alias prc='pre-commit' + +alias prcau='pre-commit autoupdate' + +alias prcr='pre-commit run' +alias prcra='pre-commit run --all-files' +alias prcrf='pre-commit run --files' From 5485d70df2cefa9374c477425d2c1c84646a7d49 Mon Sep 17 00:00:00 2001 From: Luis Serra <74016165+serrovsky@users.noreply.github.com> Date: Wed, 23 Nov 2022 17:24:08 +0000 Subject: [PATCH 070/441] feat(fluxcd): add completion for flux (#11350) --- plugins/fluxcd/README.md | 9 +++++++++ plugins/fluxcd/fluxcd.plugin.zsh | 14 ++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 plugins/fluxcd/README.md create mode 100644 plugins/fluxcd/fluxcd.plugin.zsh diff --git a/plugins/fluxcd/README.md b/plugins/fluxcd/README.md new file mode 100644 index 000000000..9723fcc6b --- /dev/null +++ b/plugins/fluxcd/README.md @@ -0,0 +1,9 @@ +# FluxCD plugin + +This plugin adds completion for [FluxCD](https://fluxcd.io), an open and extensible continuous delivery solution for Kubernetes. Powered by GitOps Toolkit. + +To use it, add `fluxcd` to the plugins array in your zshrc file: + +```zsh +plugins=(... fluxcd) +``` diff --git a/plugins/fluxcd/fluxcd.plugin.zsh b/plugins/fluxcd/fluxcd.plugin.zsh new file mode 100644 index 000000000..d30866a06 --- /dev/null +++ b/plugins/fluxcd/fluxcd.plugin.zsh @@ -0,0 +1,14 @@ +# Autocompletion for the FluxCD CLI (flux). +if (( ! $+commands[flux] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `flux`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_flux" ]]; then + typeset -g -A _comps + autoload -Uz _flux + _comps[flux]=_flux +fi + +flux completion zsh >| "$ZSH_CACHE_DIR/completions/_flux" &| From a473c0cb4ad325de211f37388b0ff6ae435b6df4 Mon Sep 17 00:00:00 2001 From: Luis Serra <74016165+serrovsky@users.noreply.github.com> Date: Wed, 23 Nov 2022 17:24:46 +0000 Subject: [PATCH 071/441] feat(mongo-atlas): add completion for atlas (#11349) --- plugins/mongo-atlas/README.md | 10 ++++++++++ plugins/mongo-atlas/mongo-atlas.plugin.zsh | 14 ++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 plugins/mongo-atlas/README.md create mode 100644 plugins/mongo-atlas/mongo-atlas.plugin.zsh diff --git a/plugins/mongo-atlas/README.md b/plugins/mongo-atlas/README.md new file mode 100644 index 000000000..ef1b5e0d2 --- /dev/null +++ b/plugins/mongo-atlas/README.md @@ -0,0 +1,10 @@ +# MongoDB Atlas plugin + +This plugin adds completion for [Atlas](https://www.mongodb.com/docs/atlas/cli/stable/) a command line interface built specifically for +MongoDB Atlas. + +To use it, add `mongo-atlas` to the plugins array in your zshrc file: + +```zsh +plugins=(... mongo-atlas) +``` diff --git a/plugins/mongo-atlas/mongo-atlas.plugin.zsh b/plugins/mongo-atlas/mongo-atlas.plugin.zsh new file mode 100644 index 000000000..6762c909e --- /dev/null +++ b/plugins/mongo-atlas/mongo-atlas.plugin.zsh @@ -0,0 +1,14 @@ +# Autocompletion for the Mongo Atlas CLI (atlas). +if (( ! $+commands[atlas] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `atlas`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_atlas" ]]; then + typeset -g -A _comps + autoload -Uz _atlas + _comps[atlas]=_atlas +fi + +atlas completion zsh >| "$ZSH_CACHE_DIR/completions/atlas" &| From da7ea13ba928a36c0b41cb520b0cc192f6389143 Mon Sep 17 00:00:00 2001 From: Mathieu Fenniak Date: Wed, 23 Nov 2022 10:56:26 -0700 Subject: [PATCH 072/441] fix(avit): replace deprecated GREP_COLOR (#11168) --- themes/avit.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/avit.zsh-theme b/themes/avit.zsh-theme index f90ba331b..1279ea919 100644 --- a/themes/avit.zsh-theme +++ b/themes/avit.zsh-theme @@ -82,4 +82,4 @@ ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL="%{$fg[white]%}" # LS colors, made with https://geoff.greer.fm/lscolors/ export LSCOLORS="exfxcxdxbxegedabagacad" export LS_COLORS='di=34;40:ln=35;40:so=32;40:pi=33;40:ex=31;40:bd=34;46:cd=34;43:su=0;41:sg=0;46:tw=0;42:ow=0;43:' -export GREP_COLOR='1;33' +export GREP_COLORS='mt=1;33' From a4392cfc16ce6f1ddf1fd085819913ee26dc6189 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 15 Nov 2022 19:40:06 +0100 Subject: [PATCH 073/441] feat(docker): update completion Taken from https://github.com/docker/cli/blob/79dca7a38e9969f9d0694d85adbaf13394d893ac/contrib/completion/zsh/_docker Closes #10826 --- plugins/docker/_docker | 54 +++++++++++++----------------------------- 1 file changed, 17 insertions(+), 37 deletions(-) diff --git a/plugins/docker/_docker b/plugins/docker/_docker index 8ee35abcf..e6a12d774 100644 --- a/plugins/docker/_docker +++ b/plugins/docker/_docker @@ -567,7 +567,7 @@ __docker_container_commands() { "cp:Copy files/folders between a container and the local filesystem" "create:Create a new container" "diff:Inspect changes on a container's filesystem" - "exec:Run a command in a running container" + "exec:Execute a command in a running container" "export:Export a container's filesystem as a tar archive" "inspect:Display detailed information on one or more containers" "kill:Kill one or more running containers" @@ -579,7 +579,7 @@ __docker_container_commands() { "rename:Rename a container" "restart:Restart one or more containers" "rm:Remove one or more containers" - "run:Run a command in a new container" + "run:Create and run a new container from an image" "start:Start one or more stopped containers" "stats:Display a live stream of container(s) resource usage statistics" "stop:Stop one or more running containers" @@ -650,6 +650,7 @@ __docker_container_subcommand() { "($help)*"{-p=,--publish=}"[Expose a container's port to the host]:port:_ports" "($help)--pid=[PID namespace to use]:PID namespace:__docker_complete_pid" "($help)--privileged[Give extended privileges to this container]" + "($help -q --quiet)"{-q,--quiet}"[Suppress the pull output]" "($help)--read-only[Mount the container's root filesystem as read only]" "($help)*--security-opt=[Security options]:security option: " "($help)*--shm-size=[Size of '/dev/shm' (format is '')]:shm size: " @@ -802,7 +803,7 @@ __docker_container_subcommand() { "($help -a --all)"{-a,--all}"[Show all containers]" \ "($help)--before=[Show only container created before...]:containers:__docker_complete_containers" \ "($help)*"{-f=,--filter=}"[Filter values]:filter:__docker_complete_ps_filters" \ - "($help)--format=[Pretty-print containers using a Go template]:template: " \ + "($help)--format=[Format the output using the given Go template]:template: " \ "($help -l --latest)"{-l,--latest}"[Show only the latest created container]" \ "($help -n --last)"{-n=,--last=}"[Show n last created containers (includes all states)]:n:(1 5 10 25 50)" \ "($help)--no-trunc[Do not truncate output]" \ @@ -907,7 +908,7 @@ __docker_container_subcommand() { _arguments $(__docker_arguments) \ $opts_help \ "($help -a --all)"{-a,--all}"[Show all containers (default shows just running)]" \ - "($help)--format=[Pretty-print images using a Go template]:template: " \ + "($help)--format=[Format the output using the given Go template]:template: " \ "($help)--no-stream[Disable streaming stats and only pull the first result]" \ "($help)--no-trunc[Do not truncate output]" \ "($help -)*:containers:__docker_complete_running_containers" && ret=0 @@ -973,8 +974,8 @@ __docker_image_commands() { "load:Load an image from a tar archive or STDIN" "ls:List images" "prune:Remove unused images" - "pull:Pull an image or a repository from a registry" - "push:Push an image or a repository to a registry" + "pull:Download an image from a registry" + "push:Upload an image to a registry" "rm:Remove one or more images" "save:Save one or more images to a tar archive (streamed to STDOUT by default)" "tag:Tag an image into a repository" @@ -1060,7 +1061,7 @@ __docker_image_subcommand() { "($help -a --all)"{-a,--all}"[Show all images]" \ "($help)--digests[Show digests]" \ "($help)*"{-f=,--filter=}"[Filter values]:filter:__docker_complete_images_filters" \ - "($help)--format=[Pretty-print images using a Go template]:template: " \ + "($help)--format=[Format the output using the given Go template]:template: " \ "($help)--no-trunc[Do not truncate output]" \ "($help -q --quiet)"{-q,--quiet}"[Only show image IDs]" \ "($help -): :__docker_complete_repositories" && ret=0 @@ -1082,7 +1083,7 @@ __docker_image_subcommand() { (push) _arguments $(__docker_arguments) \ $opts_help \ - "($help -a --all-tags)"{-a,--all-tags}"[Push all tagged images in the repository]" \ + "($help -a --all-tags)"{-a,--all-tags}"[Push all tags of an image to the repository]" \ "($help)--disable-content-trust[Skip image signing]" \ "($help -): :__docker_complete_images" && ret=0 ;; @@ -1292,7 +1293,7 @@ __docker_network_subcommand() { $opts_help \ "($help)--no-trunc[Do not truncate the output]" \ "($help)*"{-f=,--filter=}"[Provide filter values]:filter:__docker_network_complete_ls_filters" \ - "($help)--format=[Pretty-print networks using a Go template]:template: " \ + "($help)--format=[Format the output using the given Go template]:template: " \ "($help -q --quiet)"{-q,--quiet}"[Only display network IDs]" && ret=0 ;; (prune) @@ -2050,7 +2051,7 @@ __docker_service_subcommand() { _arguments $(__docker_arguments) \ $opts_help \ "($help)*"{-f=,--filter=}"[Filter output based on conditions provided]:filter:__docker_service_complete_ls_filters" \ - "($help)--format=[Pretty-print services using a Go template]:template: " \ + "($help)--format=[Format the output using the given Go template]:template: " \ "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" && ret=0 ;; (rm|remove) @@ -2253,7 +2254,7 @@ __docker_stack_subcommand() { _arguments $(__docker_arguments) \ $opts_help \ "($help)*"{-f=,--filter=}"[Filter output based on conditions provided]:filter:__docker_stack_complete_services_filters" \ - "($help)--format=[Pretty-print services using a Go template]:template: " \ + "($help)--format=[Format the output using the given Go template]:template: " \ "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" \ "($help -):stack:__docker_complete_stacks" && ret=0 ;; @@ -2520,7 +2521,7 @@ __docker_volume_subcommand() { _arguments $(__docker_arguments) \ $opts_help \ "($help)*"{-f=,--filter=}"[Provide filter values]:filter:__docker_volume_complete_ls_filters" \ - "($help)--format=[Pretty-print volumes using a Go template]:template: " \ + "($help)--format=[Format the output using the given Go template]:template: " \ "($help -q --quiet)"{-q,--quiet}"[Only display volume names]" && ret=0 ;; (prune) @@ -2582,10 +2583,8 @@ __docker_context_subcommand() { (create) _arguments $(__docker_arguments) \ $opts_help \ - "($help)--default-stack-orchestrator=[Default orchestrator for stack operations to use with this context]:default-stack-orchestrator:(swarm kubernetes all)" \ "($help)--description=[Description of the context]:description:" \ "($help)--docker=[Set the docker endpoint]:docker:" \ - "($help)--kubernetes=[Set the kubernetes endpoint]:kubernetes:" \ "($help)--from=[Create context from a named context]:from:__docker_complete_contexts" \ "($help -):name: " && ret=0 ;; @@ -2607,10 +2606,8 @@ __docker_context_subcommand() { (update) _arguments $(__docker_arguments) \ $opts_help \ - "($help)--default-stack-orchestrator=[Default orchestrator for stack operations to use with this context]:default-stack-orchestrator:(swarm kubernetes all)" \ "($help)--description=[Description of the context]:description:" \ "($help)--docker=[Set the docker endpoint]:docker:" \ - "($help)--kubernetes=[Set the kubernetes endpoint]:kubernetes:" \ "($help -):name:" && ret=0 ;; esac @@ -2734,9 +2731,6 @@ __docker_subcommand() { "($help -b --bridge)"{-b=,--bridge=}"[Attach containers to a network bridge]:bridge:_net_interfaces" \ "($help)--bip=[Network bridge IP]:IP address: " \ "($help)--cgroup-parent=[Parent cgroup for all containers]:cgroup: " \ - "($help)--cluster-advertise=[Address or interface name to advertise]:Instance to advertise (host\:port): " \ - "($help)--cluster-store=[URL of the distributed storage backend]:Cluster Store:->cluster-store" \ - "($help)*--cluster-store-opt=[Cluster store options]:Cluster options:->cluster-store-options" \ "($help)--config-file=[Path to daemon configuration file]:Config File:_files" \ "($help)--containerd=[Path to containerd socket]:socket:_files -g \"*.sock\"" \ "($help)--containerd-namespace=[Containerd namespace to use]:containerd namespace:" \ @@ -2778,7 +2772,7 @@ __docker_subcommand() { "($help)--oom-score-adjust=[Set the oom_score_adj for the daemon]:oom-score:(-500)" \ "($help -p --pidfile)"{-p=,--pidfile=}"[Path to use for daemon PID file]:PID file:_files" \ "($help)--raw-logs[Full timestamps without ANSI coloring]" \ - "($help)*--registry-mirror=[Preferred Docker registry mirror]:registry mirror: " \ + "($help)*--registry-mirror=[Preferred registry mirror]:registry mirror: " \ "($help)--seccomp-profile=[Path to seccomp profile]:path:_files -g \"*.json\"" \ "($help -s --storage-driver)"{-s=,--storage-driver=}"[Storage driver to use]:driver:(aufs btrfs devicemapper overlay overlay2 vfs zfs)" \ "($help)--selinux-enabled[Enable selinux support]" \ @@ -2795,22 +2789,6 @@ __docker_subcommand() { "($help)--validate[Validate daemon configuration and exit]" && ret=0 case $state in - (cluster-store) - if compset -P '*://'; then - _message 'host:port' && ret=0 - else - store=('consul' 'etcd' 'zk') - _describe -t cluster-store "Cluster Store" store -qS "://" && ret=0 - fi - ;; - (cluster-store-options) - if compset -P '*='; then - _files && ret=0 - else - opts=('discovery.heartbeat' 'discovery.ttl' 'kv.cacertfile' 'kv.certfile' 'kv.keyfile' 'kv.path') - _describe -t cluster-store-opts "Cluster Store Options" opts -qS "=" && ret=0 - fi - ;; (users-groups) if compset -P '*:'; then _groups && ret=0 @@ -3095,6 +3073,7 @@ _docker() { _arguments $(__docker_arguments) -C \ "(: -)"{-h,--help}"[Print usage]" \ "($help)--config[Location of client config files]:path:_directories" \ + "($help -c --context)"{-c=,--context=}"[Execute the command in a docker context]:context:__docker_complete_contexts" \ "($help -D --debug)"{-D,--debug}"[Enable debug mode]" \ "($help -H --host)"{-H=,--host=}"[tcp://host:port to bind/connect to]:host: " \ "($help -l --log-level)"{-l=,--log-level=}"[Logging level]:level:(debug info warn error fatal)" \ @@ -3110,7 +3089,8 @@ _docker() { local host=${opt_args[-H]}${opt_args[--host]} local config=${opt_args[--config]} - local docker_options="${host:+--host $host} ${config:+--config $config}" + local context=${opt_args[-c]}${opt_args[--context]} + local docker_options="${host:+--host $host} ${config:+--config $config} ${context:+--context $context} " case $state in (command) From 1c06ea24fb2176e28facf34b7c2ed2bfb3c79eaa Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 15 Nov 2022 20:05:13 +0100 Subject: [PATCH 074/441] chore(docker): sort and reorganize aliases --- plugins/docker/README.md | 86 +++++++++++++++----------------- plugins/docker/docker.plugin.zsh | 32 +++++------- 2 files changed, 52 insertions(+), 66 deletions(-) diff --git a/plugins/docker/README.md b/plugins/docker/README.md index 606690f14..b865d53ed 100644 --- a/plugins/docker/README.md +++ b/plugins/docker/README.md @@ -13,18 +13,15 @@ https://github.com/docker/cli/blob/master/contrib/completion/zsh/_docker ## Settings -By default, the completion doesn't allow option-stacking, meaning if you try to -complete `docker run -it ` it won't work, because you're _stacking_ the -`-i` and `-t` options. +By default, the completion doesn't allow option-stacking, meaning if you try to complete +`docker run -it ` it won't work, because you're _stacking_ the `-i` and `-t` options. -[You can enable it](https://github.com/docker/cli/commit/b10fb43048) by **adding -the lines below to your zshrc file**, but be aware of the side effects: +[You can enable it](https://github.com/docker/cli/commit/b10fb43048) by **adding the lines below to your zshrc +file**, but be aware of the side effects: -> This enables Zsh to understand commands like `docker run -it -> ubuntu`. However, by enabling this, this also makes Zsh complete -> `docker run -u` with `docker run -uapprox` which is not valid. The -> users have to put the space or the equal sign themselves before trying -> to complete. +> This enables Zsh to understand commands like `docker run -it ubuntu`. However, by enabling this, this also +> makes Zsh complete `docker run -u` with `docker run -uapprox` which is not valid. The users have to put +> the space or the equal sign themselves before trying to complete. > > Therefore, this behavior is disabled by default. To enable it: > @@ -35,39 +32,36 @@ the lines below to your zshrc file**, but be aware of the side effects: ## Aliases -| Alias | Command | Description | -| :------ | :-------------------------- | :--------------------------------------------------------------------------------------- | -| dbl | `docker build` | Build an image from a Dockerfile | -| dcin | `docker container inspect` | Display detailed information on one or more containers | -| dlo | `docker container logs` | Fetch the logs of a docker container | -| dcls | `docker container ls` | List all the running docker containers | -| dclsa | `docker container ls -a` | List all running and stopped containers | -| dpo | `docker container port` | List port mappings or a specific mapping for the container | -| dpu | `docker pull` | Pull an image or a repository from a registry | -| dr | `docker container run` | Create a new container and start it using the specified command | -| drit | `docker container run -it` | Create a new container and start it in an interactive shell | -| drm | `docker container rm` | Remove the specified container(s) | -| drm! | `docker container rm -f` | Force the removal of a running container (uses SIGKILL) | -| dst | `docker container start` | Start one or more stopped containers | -| dstp | `docker container stop` | Stop one or more running containers | -| dtop | `docker top` | Display the running processes of a container | -| dxc | `docker container exec` | Run a new command in a running container | -| dxcit | `docker container exec -it` | Run a new command in a running container in an interactive shell | -| | | **Docker Images** | -| dib | `docker image build` | Build an image from a Dockerfile (same as docker build) | -| dii | `docker image inspect` | Display detailed information on one or more images | -| dils | `docker image ls` | List docker images | -| dipu | `docker image push` | Push an image or repository to a remote registry | -| dirm | `docker image rm` | Remove one or more images | -| dit | `docker image tag` | Add a name and tag to a particular image | -| | | **Docker Network** | -| dnc | `docker network create` | Create a new network | -| dncn | `docker network connect` | Connect a container to a network | -| dndcn | `docker network disconnect` | Disconnect a container from a network | -| dni | `docker network inspect` | Return information about one or more networks | -| dnls | `docker network ls` | List all networks the engine daemon knows about, including those spanning multiple hosts | -| dnrm | `docker network rm` | Remove one or more networks | -| | | **Docker Volume** | -| dvi | `docker volume inspect` | Display detailed information about one or more volumes | -| dvls | `docker volume ls` | List all the volumes known to docker | -| dvprune | `docker volume prune` | Cleanup dangling volumes | +| Alias | Command | Description | +| :------ | :---------------------------- | :--------------------------------------------------------------------------------------- | +| dbl | `docker build` | Build an image from a Dockerfile | +| dcin | `docker container inspect` | Display detailed information on one or more containers | +| dcls | `docker container ls` | List all the running docker containers | +| dclsa | `docker container ls -a` | List all running and stopped containers | +| dib | `docker image build` | Build an image from a Dockerfile (same as docker build) | +| dii | `docker image inspect` | Display detailed information on one or more images | +| dils | `docker image ls` | List docker images | +| dipu | `docker image push` | Push an image or repository to a remote registry | +| dirm | `docker image rm` | Remove one or more images | +| dit | `docker image tag` | Add a name and tag to a particular image | +| dlo | `docker container logs` | Fetch the logs of a docker container | +| dnc | `docker network create` | Create a new network | +| dncn | `docker network connect` | Connect a container to a network | +| dndcn | `docker network disconnect` | Disconnect a container from a network | +| dni | `docker network inspect` | Return information about one or more networks | +| dnls | `docker network ls` | List all networks the engine daemon knows about, including those spanning multiple hosts | +| dnrm | `docker network rm` | Remove one or more networks | +| dpo | `docker container port` | List port mappings or a specific mapping for the container | +| dpu | `docker pull` | Pull an image or a repository from a registry | +| dr | `docker container run` | Create a new container and start it using the specified command | +| drit | `docker container run -it` | Create a new container and start it in an interactive shell | +| drm | `docker container rm` | Remove the specified container(s) | +| drm! | `docker container rm -f` | Force the removal of a running container (uses SIGKILL) | +| dst | `docker container start` | Start one or more stopped containers | +| dstp | `docker container stop` | Stop one or more running containers | +| dtop | `docker top` | Display the running processes of a container | +| dvi | `docker volume inspect` | Display detailed information about one or more volumes | +| dvls | `docker volume ls` | List all the volumes known to docker | +| dvprune | `docker volume prune` | Cleanup dangling volumes | +| dxc | `docker container exec` | Run a new command in a running container | +| dxcit | `docker container exec -it` | Run a new command in a running container in an interactive shell | diff --git a/plugins/docker/docker.plugin.zsh b/plugins/docker/docker.plugin.zsh index 9c8ad8a28..483b3b97e 100644 --- a/plugins/docker/docker.plugin.zsh +++ b/plugins/docker/docker.plugin.zsh @@ -1,39 +1,31 @@ alias dbl='docker build' -alias dpu='docker pull' -alias dtop='docker top' - -# docker containers alias dcin='docker container inspect' -alias dlo='docker container logs' alias dcls='docker container ls' alias dclsa='docker container ls -a' -alias dpo='docker container port' -alias dr='docker container run' -alias drit='docker container run -it' -alias drm='docker container rm' -alias 'drm!'='docker container rm -f' -alias dst='docker container start' -alias dstp='docker container stop' -alias dxc='docker container exec' -alias dxcit='docker container exec -it' - -# docker images alias dib='docker image build' alias dii='docker image inspect' alias dils='docker image ls' alias dipu='docker image push' alias dirm='docker image rm' alias dit='docker image tag' - -# docker network +alias dlo='docker container logs' alias dnc='docker network create' alias dncn='docker network connect' alias dndcn='docker network disconnect' alias dni='docker network inspect' alias dnls='docker network ls' alias dnrm='docker network rm' - -# docker volume +alias dpo='docker container port' +alias dpu='docker pull' +alias dr='docker container run' +alias drit='docker container run -it' +alias drm='docker container rm' +alias 'drm!'='docker container rm -f' +alias dst='docker container start' +alias dstp='docker container stop' +alias dtop='docker top' alias dvi='docker volume inspect' alias dvls='docker volume ls' alias dvprune='docker volume prune' +alias dxc='docker container exec' +alias dxcit='docker container exec -it' From c35ca17258dd870f1724eeb92e9077177d2e3bed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Bernard=20Ara=C3=BAjo?= Date: Tue, 15 Nov 2022 20:05:33 +0100 Subject: [PATCH 075/441] feat(docker): add `dsta` alias Closes #11089 --- plugins/docker/README.md | 1 + plugins/docker/docker.plugin.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/docker/README.md b/plugins/docker/README.md index b865d53ed..040a168d6 100644 --- a/plugins/docker/README.md +++ b/plugins/docker/README.md @@ -58,6 +58,7 @@ file**, but be aware of the side effects: | drm | `docker container rm` | Remove the specified container(s) | | drm! | `docker container rm -f` | Force the removal of a running container (uses SIGKILL) | | dst | `docker container start` | Start one or more stopped containers | +| dsta | `docker stop $(docker ps -q)` | Stop all running containers | | dstp | `docker container stop` | Stop one or more running containers | | dtop | `docker top` | Display the running processes of a container | | dvi | `docker volume inspect` | Display detailed information about one or more volumes | diff --git a/plugins/docker/docker.plugin.zsh b/plugins/docker/docker.plugin.zsh index 483b3b97e..737803651 100644 --- a/plugins/docker/docker.plugin.zsh +++ b/plugins/docker/docker.plugin.zsh @@ -22,6 +22,7 @@ alias drit='docker container run -it' alias drm='docker container rm' alias 'drm!'='docker container rm -f' alias dst='docker container start' +alias dsta='docker stop $(docker ps -q)' alias dstp='docker container stop' alias dtop='docker top' alias dvi='docker volume inspect' From 1aa58d42a52b8fa39f16ad169fc405f276c36ae5 Mon Sep 17 00:00:00 2001 From: jzhang046 <25826821+jzhang046@users.noreply.github.com> Date: Sun, 27 Nov 2022 17:54:24 +0800 Subject: [PATCH 076/441] fix(changelog): generate correct commit link in markdown (#11356) --- tools/changelog.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/changelog.sh b/tools/changelog.sh index 6489a3cb2..a5cc468f2 100755 --- a/tools/changelog.sh +++ b/tools/changelog.sh @@ -209,7 +209,7 @@ function display-release { case "$output" in raw) printf '%s' "$hash" ;; text) printf '\e[33m%s\e[0m' "$hash" ;; # red - md) printf '[`%s`](https://github.com/ohmyzsh/ohmyzsh/commit/%s)' "$hash" ;; + md) printf '[`%s`](https://github.com/ohmyzsh/ohmyzsh/commit/%s)' "$hash" "$hash" ;; esac } From 66addc8b45c93f7661a5d8bba93b7b4afcbc23de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lopes?= <85288424+agnlopes@users.noreply.github.com> Date: Tue, 29 Nov 2022 13:35:57 +0100 Subject: [PATCH 077/441] feat(skaffold): add completion (#11357) --- plugins/skaffold/README.md | 9 +++++++++ plugins/skaffold/skaffold.plugin.zsh | 14 ++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 plugins/skaffold/README.md create mode 100644 plugins/skaffold/skaffold.plugin.zsh diff --git a/plugins/skaffold/README.md b/plugins/skaffold/README.md new file mode 100644 index 000000000..4ee12c666 --- /dev/null +++ b/plugins/skaffold/README.md @@ -0,0 +1,9 @@ +# Skaffold plugin (Autocompletion) + +This plugin adds completion for [Skaffold](https://skaffold.dev) + +To use it, add `skaffold` to the plugins array in your zshrc file: + +```zsh +plugins=(... skaffold) +``` diff --git a/plugins/skaffold/skaffold.plugin.zsh b/plugins/skaffold/skaffold.plugin.zsh new file mode 100644 index 000000000..8296c450c --- /dev/null +++ b/plugins/skaffold/skaffold.plugin.zsh @@ -0,0 +1,14 @@ +# Autocompletion for skaffold +if (( ! $+commands[skaffold] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `skaffold`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_skaffold" ]]; then + typeset -g -A _comps + autoload -Uz _skaffold + _comps[skaffold]=_skaffold +fi + +skaffold completion zsh >| "$ZSH_CACHE_DIR/completions/_skaffold" &| From a051eb04b88cb0a876d1f3d68559d228a14dccf0 Mon Sep 17 00:00:00 2001 From: Marco Collovati Date: Thu, 1 Dec 2022 12:34:38 +0100 Subject: [PATCH 078/441] feat(mvn): add completion for Vaadin (#11362) --- plugins/mvn/mvn.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh index 1b9141f21..151fbd2a6 100644 --- a/plugins/mvn/mvn.plugin.zsh +++ b/plugins/mvn/mvn.plugin.zsh @@ -283,6 +283,8 @@ function listMavenCompletions { toolchain:toolchain #liberty liberty:clean-server liberty:compile-jsp liberty:configure-arquillian liberty:create-server liberty:debug liberty:debug-server liberty:deploy liberty:dev liberty:display-url liberty:dump-server liberty:install-apps liberty:install-feature liberty:install-server liberty:java-dump-server liberty:package-server liberty:run liberty:run-server liberty:server-status liberty:start liberty:start-server liberty:status liberty:stop liberty:stop-server liberty:test-start-server liberty:test-stop-server liberty:undeploy liberty:uninstall-feature + # vaadin + vaadin:prepare-frontend vaadin:build-frontend vaadin:clean-frontend vaadin:dance # options "-Dmaven.test.skip=true" -DskipTests -DskipITs -Dmaven.surefire.debug -DenableCiProfile "-Dpmd.skip=true" "-Dcheckstyle.skip=true" "-Dtycho.mode=maven" "-Dmaven.test.failure.ignore=true" "-DgroupId=" "-DartifactId=" "-Dversion=" "-Dpackaging=jar" "-Dfile=" From 64bc22aee4d32eb64ee918fc9e63318b68979070 Mon Sep 17 00:00:00 2001 From: Carlo Date: Thu, 1 Dec 2022 19:44:48 +0100 Subject: [PATCH 079/441] feat(nvm): add `silent-autoload` setting (#11363) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Regulski Closes #10942 --- plugins/nvm/README.md | 10 +++++++++- plugins/nvm/nvm.plugin.zsh | 12 +++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/plugins/nvm/README.md b/plugins/nvm/README.md index 4c6312e6e..d3fd980be 100644 --- a/plugins/nvm/README.md +++ b/plugins/nvm/README.md @@ -48,5 +48,13 @@ If set, the plugin will automatically load a node version when if finds a version to load. This can be done, similar as previous options, adding: ```zsh -zstyle ':omz:plugins:nvm' autoload true +zstyle ':omz:plugins:nvm' autoload yes ``` + +To remove the output generated by NVM when autoloading, you can set the following option: + +```zsh +zstyle ':omz:plugins:nvm' silent-autoload yes +``` + +Note: _this will not remove regular `nvm` output_ diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index ec583cc2d..c5799c88e 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -24,11 +24,11 @@ if (( ${+NVM_LAZY} + ${+NVM_LAZY_CMD} + ${+NVM_AUTOLOAD} )); then # Nicely print the list in the style `var1, var2 and var3` echo "${fg[yellow]}[nvm plugin] Variable-style settings are deprecated. Instead of ${(j:, :)used_vars[1,-2]}${used_vars[-2]+ and }${used_vars[-1]}, use:\n" if (( $+NVM_AUTOLOAD )); then - echo " zstyle ':omz:plugins:nvm' autoload true" + echo " zstyle ':omz:plugins:nvm' autoload yes" zstyle ':omz:plugins:nvm' autoload yes fi if (( $+NVM_LAZY )); then - echo " zstyle ':omz:plugins:nvm' lazy true" + echo " zstyle ':omz:plugins:nvm' lazy yes" zstyle ':omz:plugins:nvm' lazy yes fi if (( $+NVM_LAZY_CMD )); then @@ -61,9 +61,11 @@ fi # Autoload nvm when finding a .nvmrc file in the current directory # Adapted from: https://github.com/nvm-sh/nvm#zsh if zstyle -t ':omz:plugins:nvm' autoload; then - load-nvmrc() { + function load-nvmrc { local node_version="$(nvm version)" local nvmrc_path="$(nvm_find_nvmrc)" + local nvm_silent="" + zstyle -t ':omz:plugins:nvm' silent-autoload && _nvm_silent="--silent" if [[ -n "$nvmrc_path" ]]; then local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")") @@ -71,11 +73,11 @@ if zstyle -t ':omz:plugins:nvm' autoload; then if [[ "$nvmrc_node_version" = "N/A" ]]; then nvm install elif [[ "$nvmrc_node_version" != "$node_version" ]]; then - nvm use + nvm use $nvm_silent fi elif [[ "$node_version" != "$(nvm version default)" ]]; then echo "Reverting to nvm default version" - nvm use default + nvm use default $nvm_silent fi } From fc44c49cca9d5e499097392d3f42b1375d0253ba Mon Sep 17 00:00:00 2001 From: Zeragamba Date: Thu, 1 Dec 2022 13:49:41 -0500 Subject: [PATCH 080/441] fix(nvm): trim non-printable chars from .nvmrc (#10997) --- plugins/nvm/nvm.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index c5799c88e..a4ff29cf1 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -68,7 +68,7 @@ if zstyle -t ':omz:plugins:nvm' autoload; then zstyle -t ':omz:plugins:nvm' silent-autoload && _nvm_silent="--silent" if [[ -n "$nvmrc_path" ]]; then - local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")") + local nvmrc_node_version=$(nvm version $(cat "$nvmrc_path" | tr -dc '[:print:]')) if [[ "$nvmrc_node_version" = "N/A" ]]; then nvm install From 7ea8a93bb8fb04a070960048aa0b5dca639456a8 Mon Sep 17 00:00:00 2001 From: Mohammad Parvin Date: Fri, 2 Dec 2022 16:19:00 +0330 Subject: [PATCH 081/441] feat(helm): add aliases (#11361) Co-authored-by: Carlo Sala --- plugins/helm/README.md | 11 ++++++++++- plugins/helm/helm.plugin.zsh | 5 +++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/plugins/helm/README.md b/plugins/helm/README.md index 49844c78f..8be024bfb 100644 --- a/plugins/helm/README.md +++ b/plugins/helm/README.md @@ -1,9 +1,18 @@ # Helm plugin -This plugin adds completion for [Helm](https://helm.sh/), the Kubernetes package manager. +This plugin adds completion and aliases for [Helm](https://helm.sh/), the Kubernetes package manager. To use it, add `helm` to the plugins array in your zshrc file: ```zsh plugins=(... helm) ``` + +## Aliases + +| Alias | Full command | +| ----- | ------------ | +| h | helm | +| hin | helm install | +| hse | helm search | +| hup | helm upgrade | diff --git a/plugins/helm/helm.plugin.zsh b/plugins/helm/helm.plugin.zsh index 151c43d88..7fc05be98 100644 --- a/plugins/helm/helm.plugin.zsh +++ b/plugins/helm/helm.plugin.zsh @@ -11,3 +11,8 @@ else source "$ZSH_CACHE_DIR/completions/_helm" helm completion zsh | tee "$ZSH_CACHE_DIR/completions/_helm" >/dev/null &| fi + +alias h='helm' +alias hin='helm install' +alias hse='helm search' +alias hup='helm upgrade' From 3a9322b9a0698a3861277890f791b43e727cccc5 Mon Sep 17 00:00:00 2001 From: Noam Okman Date: Mon, 5 Dec 2022 15:18:18 +0200 Subject: [PATCH 082/441] feat(yarn): add format alias (#11368) --- plugins/yarn/README.md | 1 + plugins/yarn/yarn.plugin.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/yarn/README.md b/plugins/yarn/README.md index cdda2026c..270bf6b7f 100644 --- a/plugins/yarn/README.md +++ b/plugins/yarn/README.md @@ -29,6 +29,7 @@ zstyle ':omz:plugins:yarn' global-path no | yb | `yarn build` | Run the build script defined in `package.json` | | ycc | `yarn cache clean` | Clean yarn's global cache of packages | | yd | `yarn dev` | Run the dev script defined in `package.json` | +| yf | `yarn format` | Run the dev script defined in `package.json` | | yga | `yarn global add` | Install packages globally on your operating system | | ygls | `yarn global list` | Lists global installed packages | | ygrm | `yarn global remove` | Remove global installed packages from your OS | diff --git a/plugins/yarn/yarn.plugin.zsh b/plugins/yarn/yarn.plugin.zsh index bcb8661cf..7ba710df7 100644 --- a/plugins/yarn/yarn.plugin.zsh +++ b/plugins/yarn/yarn.plugin.zsh @@ -17,6 +17,7 @@ alias yap="yarn add --peer" alias yb="yarn build" alias ycc="yarn cache clean" alias yd="yarn dev" +alias yf="yarn format" alias yga="yarn global add" alias ygls="yarn global list" alias ygrm="yarn global remove" From 585e7138b556db89715eb2a850f8959fdf527384 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Regulski?= Date: Tue, 6 Dec 2022 18:22:13 +0100 Subject: [PATCH 083/441] fix(nvm): omit message when silent-autoload is enabled (#11371) --- plugins/nvm/nvm.plugin.zsh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index a4ff29cf1..20697d67d 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -65,7 +65,7 @@ if zstyle -t ':omz:plugins:nvm' autoload; then local node_version="$(nvm version)" local nvmrc_path="$(nvm_find_nvmrc)" local nvm_silent="" - zstyle -t ':omz:plugins:nvm' silent-autoload && _nvm_silent="--silent" + zstyle -t ':omz:plugins:nvm' silent-autoload && nvm_silent="--silent" if [[ -n "$nvmrc_path" ]]; then local nvmrc_node_version=$(nvm version $(cat "$nvmrc_path" | tr -dc '[:print:]')) @@ -76,7 +76,10 @@ if zstyle -t ':omz:plugins:nvm' autoload; then nvm use $nvm_silent fi elif [[ "$node_version" != "$(nvm version default)" ]]; then - echo "Reverting to nvm default version" + if [[ -z $nvm_silent ]]; then + echo "Reverting to nvm default version" + fi + nvm use default $nvm_silent fi } From 658eb01d82c01d82b4263b3dc59e15232cb4cdaf Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 6 Dec 2022 22:51:52 +0100 Subject: [PATCH 084/441] refactor(kubectl): standarize completion generation --- plugins/kubectl/kubectl.plugin.zsh | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/plugins/kubectl/kubectl.plugin.zsh b/plugins/kubectl/kubectl.plugin.zsh index 095d2b328..b415d1ad8 100644 --- a/plugins/kubectl/kubectl.plugin.zsh +++ b/plugins/kubectl/kubectl.plugin.zsh @@ -1,15 +1,17 @@ -if (( $+commands[kubectl] )); then - # If the completion file does not exist, generate it and then source it - # Otherwise, source it and regenerate in the background - if [[ ! -f "$ZSH_CACHE_DIR/completions/_kubectl" ]]; then - kubectl completion zsh | tee "$ZSH_CACHE_DIR/completions/_kubectl" >/dev/null - source "$ZSH_CACHE_DIR/completions/_kubectl" - else - source "$ZSH_CACHE_DIR/completions/_kubectl" - kubectl completion zsh | tee "$ZSH_CACHE_DIR/completions/_kubectl" >/dev/null &| - fi +if (( ! $+commands[kubectl] )); then + return fi +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `kubectl`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_kubectl" ]]; then + typeset -g -A _comps + autoload -Uz _kubectl + _comps[kubectl]=_kubectl +fi + +kubectl completion zsh >| "$ZSH_CACHE_DIR/completions/_kubectl" &| + # This command is used a LOT both below and in daily life alias k=kubectl From b692ff2e1597816563cbdaeeedf0966ad9babeca Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 7 Dec 2022 12:18:51 +0100 Subject: [PATCH 085/441] fix(kubectl): redirect stderr in completion generation Fixes #11364 --- plugins/kubectl/kubectl.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/kubectl/kubectl.plugin.zsh b/plugins/kubectl/kubectl.plugin.zsh index b415d1ad8..315d3ce93 100644 --- a/plugins/kubectl/kubectl.plugin.zsh +++ b/plugins/kubectl/kubectl.plugin.zsh @@ -10,7 +10,7 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_kubectl" ]]; then _comps[kubectl]=_kubectl fi -kubectl completion zsh >| "$ZSH_CACHE_DIR/completions/_kubectl" &| +kubectl completion zsh 2> /dev/null >| "$ZSH_CACHE_DIR/completions/_kubectl" &| # This command is used a LOT both below and in daily life alias k=kubectl From f4dc8c5be365668810783ced01a86ff8f251bfd7 Mon Sep 17 00:00:00 2001 From: fedor <60283525+izumrudik@users.noreply.github.com> Date: Thu, 8 Dec 2022 14:38:13 +0300 Subject: [PATCH 086/441] fix(tmux): use `$...SESSION_NAME` while attaching (#10946) --- plugins/tmux/tmux.plugin.zsh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index b9bb66d59..311c2e6a9 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -73,7 +73,11 @@ function _zsh_tmux_plugin_run() { [[ "$ZSH_TMUX_UNICODE" == "true" ]] && tmux_cmd+=(-u) # Try to connect to an existing session. - [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] && $tmux_cmd attach + if [[ -n "$ZSH_TMUX_DEFAULT_SESSION_NAME" ]]; then + [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] && $tmux_cmd attach -t $ZSH_TMUX_DEFAULT_SESSION_NAME + else + [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] && $tmux_cmd attach + fi # If failed, just run tmux, fixing the TERM variable if requested. if [[ $? -ne 0 ]]; then @@ -83,9 +87,9 @@ function _zsh_tmux_plugin_run() { tmux_cmd+=(-f "$ZSH_TMUX_CONFIG") fi if [[ -n "$ZSH_TMUX_DEFAULT_SESSION_NAME" ]]; then - $tmux_cmd new-session -s $ZSH_TMUX_DEFAULT_SESSION_NAME + $tmux_cmd new-session -s $ZSH_TMUX_DEFAULT_SESSION_NAME else - $tmux_cmd new-session + $tmux_cmd new-session fi fi From cc5100d1e9e3d843ab93a12a5b0bac71ae0425f3 Mon Sep 17 00:00:00 2001 From: Neil Girdhar Date: Fri, 9 Dec 2022 04:07:52 -0500 Subject: [PATCH 087/441] feat(pip): add several aliases (#10647) --- plugins/pip/README.md | 8 ++++++++ plugins/pip/pip.plugin.zsh | 26 +++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/plugins/pip/README.md b/plugins/pip/README.md index 88d88227e..70d40c79f 100644 --- a/plugins/pip/README.md +++ b/plugins/pip/README.md @@ -22,6 +22,14 @@ the next time you autocomplete `pip install`. | Alias | Description | | :------- | :-------------------------------------------- | +| pipi | Install packages | +| pipig | Install package from GitHub repository | +| pipigb | Install package from GitHub branch | +| pipigp | Install package from GitHub pull request | +| pipu | Upgrade packages | +| pipun | Uninstall packages | +| pipgi | Grep through installed packages | +| piplo | List outdated packages | | pipreq | Create requirements file | | pipir | Install packages from `requirements.txt` file | | pipupall | Update all installed packages | diff --git a/plugins/pip/pip.plugin.zsh b/plugins/pip/pip.plugin.zsh index 90e39e118..bf1aafd4a 100644 --- a/plugins/pip/pip.plugin.zsh +++ b/plugins/pip/pip.plugin.zsh @@ -88,6 +88,12 @@ else alias pip="noglob pip" fi +alias pipi="pip install" +alias pipu="pip install --upgrade" +alias pipun="pip uninstall" +alias pipgi="pip freeze | grep" +alias piplo="pip list -o" + # Create requirements file alias pipreq="pip freeze > requirements.txt" @@ -102,10 +108,28 @@ function pipupall { pip list --outdated | awk 'NR > 2 { print $1 }' | ${=xargs} pip install --upgrade } -# Uninstalled all installed packages +# Uninstall all installed packages function pipunall { # non-GNU xargs does not support nor need `--no-run-if-empty` local xargs="xargs --no-run-if-empty" xargs --version 2>/dev/null | grep -q GNU || xargs="xargs" pip list --format freeze | cut -d= -f1 | ${=xargs} pip uninstall } + +# Install from GitHub repository +function pipig { + pip install "git+https://github.com/$1.git" +} +compdef _pip pipig + +# Install from GitHub branch +function pipigb { + pip install "git+https://github.com/$1.git@$2" +} +compdef _pip pipigb + +# Install from GitHub pull request +function pipigp { + pip install "git+https://github.com/$1.git@refs/pull/$2/head" +} +compdef _pip pipigp From c189e8b40c2a9ed15850d5bb5a68e6789be5fc70 Mon Sep 17 00:00:00 2001 From: Dan Wallis Date: Fri, 9 Dec 2022 18:10:04 +0000 Subject: [PATCH 088/441] feat(agnoster): add remote-tracking status to prompt (#7209) --- themes/agnoster.zsh-theme | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme index 5f4efe813..88854eccd 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -116,6 +116,17 @@ prompt_git() { prompt_segment green $CURRENT_FG fi + local ahead behind + ahead=$(git log --oneline @{upstream}.. 2>/dev/null) + behind=$(git log --oneline ..@{upstream} 2>/dev/null) + if [[ -n "$ahead" ]] && [[ -n "$behind" ]]; then + PL_BRANCH_CHAR=$'\u21c5' + elif [[ -n "$ahead" ]]; then + PL_BRANCH_CHAR=$'\u21b1' + elif [[ -n "$behind" ]]; then + PL_BRANCH_CHAR=$'\u21b0' + fi + if [[ -e "${repo_path}/BISECT_LOG" ]]; then mode=" " elif [[ -e "${repo_path}/MERGE_HEAD" ]]; then From 82c0db41bcfd3fd97d6170dcb7575f98e38fc68d Mon Sep 17 00:00:00 2001 From: Basil Sh Date: Sat, 10 Dec 2022 00:11:16 +0600 Subject: [PATCH 089/441] docs(term_tab): rewrite README in markdown (#11381) --- plugins/term_tab/README | 16 ---------------- plugins/term_tab/README.md | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 16 deletions(-) delete mode 100644 plugins/term_tab/README create mode 100644 plugins/term_tab/README.md diff --git a/plugins/term_tab/README b/plugins/term_tab/README deleted file mode 100644 index 316062e73..000000000 --- a/plugins/term_tab/README +++ /dev/null @@ -1,16 +0,0 @@ - -term_tab - 'cwd' for all open zsh sessions -****************************************** - -What it does: -************* -This plugin allows to complete the 'cwd' of other Zsh sessions. Sounds -complicated but is rather simple. E.g. if you have three zsh sessions open, in -each session you are in a different folder, you can hit Ctrl+v in one session -to show you the current working directory of the other open zsh sessions. - -How it works: -************* -* It uses 'pidof zsh' to determine all zsh PIDs -* It reads procfs to get the current working directory of this session -* Everything is fed into zsh's completion magic diff --git a/plugins/term_tab/README.md b/plugins/term_tab/README.md new file mode 100644 index 000000000..7548fe6a8 --- /dev/null +++ b/plugins/term_tab/README.md @@ -0,0 +1,16 @@ +# term_tab plugin + +term_tab - `cwd` for all open zsh sessions + +## What it does: + +This plugin allows to complete the `cwd` of other Zsh sessions. Sounds +complicated but is rather simple. E.g. if you have three zsh sessions open, in +each session you are in a different folder, you can hit `Ctrl+V` in one session +to show you the current working directory of the other open zsh sessions. + +## How it works: + +* It uses `pidof zsh` to determine all zsh PIDs +* It reads procfs to get the current working directory of this session +* Everything is fed into zsh's completion magic From 29cf199b5d84eb4897f2e0e421a344174568eb9f Mon Sep 17 00:00:00 2001 From: Richard Mitchell Date: Mon, 12 Dec 2022 03:18:29 -0500 Subject: [PATCH 090/441] docs(term_tab): plugin can only be used with linux and solaris (#11385) --- plugins/term_tab/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/term_tab/README.md b/plugins/term_tab/README.md index 7548fe6a8..59462a825 100644 --- a/plugins/term_tab/README.md +++ b/plugins/term_tab/README.md @@ -1,5 +1,7 @@ # term_tab plugin +This plugin only works for Solaris and linux. + term_tab - `cwd` for all open zsh sessions ## What it does: From 3705edf557922f286a5054523d6d7208e2ed6f5e Mon Sep 17 00:00:00 2001 From: kormosi <53222723+kormosi@users.noreply.github.com> Date: Thu, 15 Dec 2022 11:47:10 +0100 Subject: [PATCH 091/441] feat(docker): add `drs` alias (#11393) --- plugins/docker/README.md | 1 + plugins/docker/docker.plugin.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/docker/README.md b/plugins/docker/README.md index 040a168d6..512b5d17c 100644 --- a/plugins/docker/README.md +++ b/plugins/docker/README.md @@ -58,6 +58,7 @@ file**, but be aware of the side effects: | drm | `docker container rm` | Remove the specified container(s) | | drm! | `docker container rm -f` | Force the removal of a running container (uses SIGKILL) | | dst | `docker container start` | Start one or more stopped containers | +| drs | `docker container restart` | Restart one or more containers | dsta | `docker stop $(docker ps -q)` | Stop all running containers | | dstp | `docker container stop` | Stop one or more running containers | | dtop | `docker top` | Display the running processes of a container | diff --git a/plugins/docker/docker.plugin.zsh b/plugins/docker/docker.plugin.zsh index 737803651..8684a9785 100644 --- a/plugins/docker/docker.plugin.zsh +++ b/plugins/docker/docker.plugin.zsh @@ -22,6 +22,7 @@ alias drit='docker container run -it' alias drm='docker container rm' alias 'drm!'='docker container rm -f' alias dst='docker container start' +alias drs='docker container restart' alias dsta='docker stop $(docker ps -q)' alias dstp='docker container stop' alias dtop='docker top' From 13082bb159361d1c0807eb7e5577f4c670cb0f88 Mon Sep 17 00:00:00 2001 From: Till Backhaus Date: Fri, 16 Dec 2022 12:46:34 +0100 Subject: [PATCH 092/441] feat(watson): add completion (#10886) Co-authored-by: Carlo Sala --- plugins/watson/README.md | 9 +++++++++ plugins/watson/_watson | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 plugins/watson/README.md create mode 100644 plugins/watson/_watson diff --git a/plugins/watson/README.md b/plugins/watson/README.md new file mode 100644 index 000000000..ef734ec63 --- /dev/null +++ b/plugins/watson/README.md @@ -0,0 +1,9 @@ +# Watson + +This plugin provides completion for [Watson](https://tailordev.github.io/Watson/). + +To use it add `watson` to the plugins array in your zshrc file. + +```zsh +plugins=(... watson) +``` diff --git a/plugins/watson/_watson b/plugins/watson/_watson new file mode 100644 index 000000000..0f599bd66 --- /dev/null +++ b/plugins/watson/_watson @@ -0,0 +1,34 @@ +#compdef watson + +_watson_completion() { + local -a completions + local -a completions_with_descriptions + local -a response + (( ! $+commands[watson] )) && return 1 + + response=("${(@f)$(env COMP_WORDS="${words[*]}" COMP_CWORD=$((CURRENT-1)) _WATSON_COMPLETE=zsh_complete watson)}") + + for type key descr in ${response}; do + if [[ "$type" == "plain" ]]; then + if [[ "$descr" == "_" ]]; then + completions+=("$key") + else + completions_with_descriptions+=("$key":"$descr") + fi + elif [[ "$type" == "dir" ]]; then + _path_files -/ + elif [[ "$type" == "file" ]]; then + _path_files -f + fi + done + + if [ -n "$completions_with_descriptions" ]; then + _describe -V unsorted completions_with_descriptions -U + fi + + if [ -n "$completions" ]; then + compadd -U -V unsorted -a completions + fi +} + +compdef _watson_completion watson; From 2bc42d223cfe3e21aef06648fb971bd9fb00828e Mon Sep 17 00:00:00 2001 From: Renjith Date: Sat, 17 Dec 2022 22:23:48 +0530 Subject: [PATCH 093/441] feat(docker-compose): add `dcupdb` alias (#10235) --- plugins/docker-compose/README.md | 39 ++++++++++--------- .../docker-compose/docker-compose.plugin.zsh | 1 + 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/plugins/docker-compose/README.md b/plugins/docker-compose/README.md index 13f3c2cea..bbcff2e0c 100644 --- a/plugins/docker-compose/README.md +++ b/plugins/docker-compose/README.md @@ -11,22 +11,23 @@ plugins=(... docker-compose) ## Aliases -| Alias | Command | Description | -|-----------|--------------------------------|------------------------------------------------------------------| -| dco | `docker-compose` | Docker-compose main command | -| dcb | `docker-compose build` | Build containers | -| dce | `docker-compose exec` | Execute command inside a container | -| dcps | `docker-compose ps` | List containers | -| dcrestart | `docker-compose restart` | Restart container | -| dcrm | `docker-compose rm` | Remove container | -| dcr | `docker-compose run` | Run a command in container | -| dcstop | `docker-compose stop` | Stop a container | -| dcup | `docker-compose up` | Build, (re)create, start, and attach to containers for a service | -| dcupb | `docker-compose up --build` | Same as `dcup`, but build images before starting containers | -| dcupd | `docker-compose up -d` | Same as `dcup`, but starts as daemon | -| dcdn | `docker-compose down` | Stop and remove containers | -| dcl | `docker-compose logs` | Show logs of container | -| dclf | `docker-compose logs -f` | Show logs and follow output | -| dcpull | `docker-compose pull` | Pull image of a service | -| dcstart | `docker-compose start` | Start a container | -| dck | `docker-compose kill` | Kills containers | +| Alias | Command | Description | +|-----------|--------------------------------|----------------------------------------------------------------------------------| +| dco | `docker-compose` | Docker-compose main command | +| dcb | `docker-compose build` | Build containers | +| dce | `docker-compose exec` | Execute command inside a container | +| dcps | `docker-compose ps` | List containers | +| dcrestart | `docker-compose restart` | Restart container | +| dcrm | `docker-compose rm` | Remove container | +| dcr | `docker-compose run` | Run a command in container | +| dcstop | `docker-compose stop` | Stop a container | +| dcup | `docker-compose up` | Build, (re)create, start, and attach to containers for a service | +| dcupb | `docker-compose up --build` | Same as `dcup`, but build images before starting containers | +| dcupd | `docker-compose up -d` | Same as `dcup`, but starts as daemon | +| dcupdb | `docker-compose up -d --build` | Same as `dcup`, but build images before starting containers and starts as daemon | +| dcdn | `docker-compose down` | Stop and remove containers | +| dcl | `docker-compose logs` | Show logs of container | +| dclf | `docker-compose logs -f` | Show logs and follow output | +| dcpull | `docker-compose pull` | Pull image of a service | +| dcstart | `docker-compose start` | Start a container | +| dck | `docker-compose kill` | Kills containers | diff --git a/plugins/docker-compose/docker-compose.plugin.zsh b/plugins/docker-compose/docker-compose.plugin.zsh index b8a4b067d..7a8bf4a03 100644 --- a/plugins/docker-compose/docker-compose.plugin.zsh +++ b/plugins/docker-compose/docker-compose.plugin.zsh @@ -12,6 +12,7 @@ alias dcstop="$dccmd stop" alias dcup="$dccmd up" alias dcupb="$dccmd up --build" alias dcupd="$dccmd up -d" +alias dcupdb="$dccmd up -d --build" alias dcdn="$dccmd down" alias dcl="$dccmd logs" alias dclf="$dccmd logs -f" From 9c2d1af8afa02b5439e8ccc81a160e62e1e59617 Mon Sep 17 00:00:00 2001 From: Andrew Starr-Bochicchio Date: Tue, 20 Dec 2022 14:56:30 -0500 Subject: [PATCH 094/441] fix(doctl): actually load completions (#11402) --- plugins/doctl/doctl.plugin.zsh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/plugins/doctl/doctl.plugin.zsh b/plugins/doctl/doctl.plugin.zsh index d23ed085c..7b3a384a9 100644 --- a/plugins/doctl/doctl.plugin.zsh +++ b/plugins/doctl/doctl.plugin.zsh @@ -4,6 +4,14 @@ # # Author: https://github.com/HalisCz -if [ $commands[doctl] ]; then - source <(doctl completion zsh) +if (( ! $+commands[doctl] )); then + return fi + +if [[ ! -f "$ZSH_CACHE_DIR/completions/_doctl" ]]; then + typeset -g -A _comps + autoload -Uz _doctl + _comps[doctl]=_doctl +fi + +doctl completion zsh >| "$ZSH_CACHE_DIR/completions/_doctl" &| From a3c579bf27b34942d4c6ad64e7cfd75788b05ea3 Mon Sep 17 00:00:00 2001 From: Nur Rony <2513341+nurrony@users.noreply.github.com> Date: Mon, 26 Dec 2022 14:41:30 +0600 Subject: [PATCH 095/441] feat(maven): add `quarkus` command support (#11405) --- plugins/mvn/mvn.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh index 151fbd2a6..da51f74df 100644 --- a/plugins/mvn/mvn.plugin.zsh +++ b/plugins/mvn/mvn.plugin.zsh @@ -196,7 +196,7 @@ function listMavenCompletions { # spring-boot spring-boot:run spring-boot:repackage # quarkus - quarkus:dev quarkus:list-extensions quarkus:add-extension quarkus:add-extensions quarkus:generate-config quarkus:help + quarkus:dev quarkus:list-extensions quarkus:add-extension quarkus:add-extensions quarkus:remove-extension quarkus:remove-extensions quarkus:generate-config quarkus:help # exec exec:exec exec:java # versions @@ -287,7 +287,7 @@ function listMavenCompletions { vaadin:prepare-frontend vaadin:build-frontend vaadin:clean-frontend vaadin:dance # options - "-Dmaven.test.skip=true" -DskipTests -DskipITs -Dmaven.surefire.debug -DenableCiProfile "-Dpmd.skip=true" "-Dcheckstyle.skip=true" "-Dtycho.mode=maven" "-Dmaven.test.failure.ignore=true" "-DgroupId=" "-DartifactId=" "-Dversion=" "-Dpackaging=jar" "-Dfile=" + "-Dmaven.test.skip=true" -DskipTests -DskipITs -Dmaven.surefire.debug -DenableCiProfile "-Dpmd.skip=true" "-Dcheckstyle.skip=true" "-Dtycho.mode=maven" "-Dmaven.test.failure.ignore=true" "-DgroupId=" "-DartifactId=" "-Dversion=" "-Dpackaging=jar" "-Dfile=" "-Dextensions=" # arguments -am --also-make From 55e4e6c73b2bb067974c6d49ba9da2ba1ee3295c Mon Sep 17 00:00:00 2001 From: "the.brain.w" Date: Fri, 30 Dec 2022 11:52:18 +0100 Subject: [PATCH 096/441] feat(systemd): add support for user units in prompt (#11417) --- plugins/systemd/systemd.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/systemd/systemd.plugin.zsh b/plugins/systemd/systemd.plugin.zsh index 7afd2be58..1270bea0e 100644 --- a/plugins/systemd/systemd.plugin.zsh +++ b/plugins/systemd/systemd.plugin.zsh @@ -107,6 +107,8 @@ function systemd_prompt_info { if systemctl is-active "$unit" &>/dev/null; then echo -n "$ZSH_THEME_SYSTEMD_PROMPT_ACTIVE" + elif systemctl --user is-active "$unit" &>/dev/null; then + echo -n "$ZSH_THEME_SYSTEMD_PROMPT_ACTIVE" else echo -n "$ZSH_THEME_SYSTEMD_PROMPT_NOTACTIVE" fi From 6710fd588aec2c0cb90e70c02db0837c3646af99 Mon Sep 17 00:00:00 2001 From: Ennio Mara Date: Mon, 2 Jan 2023 21:32:45 +0100 Subject: [PATCH 097/441] fix(autojump): fix autojump sourcing in nix (-darwin) (#11422) * fix(autojump): fix autojump sourcing in nix (-darwin) This plugin expects to source an sh/zsh file which sets up autojump, but that is not done when running Nix on macos using nix-darwin. Looking at the old value (/etc/profiles/per-user/$USER/bin/autojump), it points to a binary file instead of the setup script. * Use zsh file instead of sh --- plugins/autojump/autojump.plugin.zsh | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index e11f231b6..9bc190bdc 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -1,18 +1,18 @@ declare -a autojump_paths autojump_paths=( - $HOME/.autojump/etc/profile.d/autojump.zsh # manual installation - $HOME/.autojump/share/autojump/autojump.zsh # manual installation - $HOME/.nix-profile/etc/profile.d/autojump.sh # NixOS installation - /run/current-system/sw/share/autojump/autojump.zsh # NixOS installation - /usr/share/autojump/autojump.zsh # Debian and Ubuntu package - /etc/profile.d/autojump.zsh # manual installation - /etc/profile.d/autojump.sh # Gentoo installation - /usr/local/share/autojump/autojump.zsh # FreeBSD installation - /usr/pkg/share/autojump/autojump.zsh # NetBSD installation - /opt/local/etc/profile.d/autojump.sh # macOS with MacPorts - /usr/local/etc/profile.d/autojump.sh # macOS with Homebrew (default) - /opt/homebrew/etc/profile.d/autojump.sh # macOS with Homebrew (default on M1 macs) - /etc/profiles/per-user/$USER/bin/autojump # macOS Nix, Home Manager and flakes + $HOME/.autojump/etc/profile.d/autojump.zsh # manual installation + $HOME/.autojump/share/autojump/autojump.zsh # manual installation + $HOME/.nix-profile/etc/profile.d/autojump.sh # NixOS installation + /run/current-system/sw/share/autojump/autojump.zsh # NixOS installation + /usr/share/autojump/autojump.zsh # Debian and Ubuntu package + /etc/profile.d/autojump.zsh # manual installation + /etc/profile.d/autojump.sh # Gentoo installation + /usr/local/share/autojump/autojump.zsh # FreeBSD installation + /usr/pkg/share/autojump/autojump.zsh # NetBSD installation + /opt/local/etc/profile.d/autojump.sh # macOS with MacPorts + /usr/local/etc/profile.d/autojump.sh # macOS with Homebrew (default) + /opt/homebrew/etc/profile.d/autojump.sh # macOS with Homebrew (default on M1 macs) + /etc/profiles/per-user/$USER/etc/profile.d/autojump.zsh # macOS Nix, Home Manager and flakes ) for file in $autojump_paths; do From 36f1055eeea0f455676381539fcb3e6e0a4da731 Mon Sep 17 00:00:00 2001 From: Ennio Mara Date: Mon, 2 Jan 2023 21:55:47 +0100 Subject: [PATCH 098/441] fix(autojump): use sh file instead of zsh in NixOS (#11425) --- plugins/autojump/autojump.plugin.zsh | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index 9bc190bdc..1b868ee8d 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -1,18 +1,18 @@ declare -a autojump_paths autojump_paths=( - $HOME/.autojump/etc/profile.d/autojump.zsh # manual installation - $HOME/.autojump/share/autojump/autojump.zsh # manual installation - $HOME/.nix-profile/etc/profile.d/autojump.sh # NixOS installation - /run/current-system/sw/share/autojump/autojump.zsh # NixOS installation - /usr/share/autojump/autojump.zsh # Debian and Ubuntu package - /etc/profile.d/autojump.zsh # manual installation - /etc/profile.d/autojump.sh # Gentoo installation - /usr/local/share/autojump/autojump.zsh # FreeBSD installation - /usr/pkg/share/autojump/autojump.zsh # NetBSD installation - /opt/local/etc/profile.d/autojump.sh # macOS with MacPorts - /usr/local/etc/profile.d/autojump.sh # macOS with Homebrew (default) - /opt/homebrew/etc/profile.d/autojump.sh # macOS with Homebrew (default on M1 macs) - /etc/profiles/per-user/$USER/etc/profile.d/autojump.zsh # macOS Nix, Home Manager and flakes + $HOME/.autojump/etc/profile.d/autojump.zsh # manual installation + $HOME/.autojump/share/autojump/autojump.zsh # manual installation + $HOME/.nix-profile/etc/profile.d/autojump.sh # NixOS installation + /run/current-system/sw/share/autojump/autojump.zsh # NixOS installation + /usr/share/autojump/autojump.zsh # Debian and Ubuntu package + /etc/profile.d/autojump.zsh # manual installation + /etc/profile.d/autojump.sh # Gentoo installation + /usr/local/share/autojump/autojump.zsh # FreeBSD installation + /usr/pkg/share/autojump/autojump.zsh # NetBSD installation + /opt/local/etc/profile.d/autojump.sh # macOS with MacPorts + /usr/local/etc/profile.d/autojump.sh # macOS with Homebrew (default) + /opt/homebrew/etc/profile.d/autojump.sh # macOS with Homebrew (default on M1 macs) + /etc/profiles/per-user/$USER/etc/profile.d/autojump.sh # macOS Nix, Home Manager and flakes ) for file in $autojump_paths; do From 00c37b6991895aac0398a24d7d8b78cda63dec05 Mon Sep 17 00:00:00 2001 From: Alastair Rankine Date: Tue, 3 Jan 2023 03:44:53 -0500 Subject: [PATCH 099/441] feat(pipenv): standarize completion generation (#11424) Co-authored-by: Carlo Sala Closes #11423 --- plugins/pipenv/pipenv.plugin.zsh | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/plugins/pipenv/pipenv.plugin.zsh b/plugins/pipenv/pipenv.plugin.zsh index 4be61a920..244bd6b7c 100644 --- a/plugins/pipenv/pipenv.plugin.zsh +++ b/plugins/pipenv/pipenv.plugin.zsh @@ -1,8 +1,16 @@ -# Pipenv completion -_pipenv() { - eval $(env COMMANDLINE="${words[1,$CURRENT]}" _PIPENV_COMPLETE=complete-zsh pipenv) -} -compdef _pipenv pipenv +if (( ! $+commands[pipenv] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `pipenv`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_pipenv" ]]; then + typeset -g -A _comps + autoload -Uz _pipenv + _comps[pipenv]=_pipenv +fi + +_PIPENV_COMPLETE=zsh_source pipenv >| "$ZSH_CACHE_DIR/completions/_pipenv" &| # Automatic pipenv shell activation/deactivation _togglePipenvShell() { From 3fca9c8933afc5c118a73cedb171a3c7b8e92730 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 3 Jan 2023 10:02:03 +0100 Subject: [PATCH 100/441] fix(upgrade): check if git is available and working macOS seems to break dev tools when updating the system. This should prevent the previous issues. See #11309 Closes #11420 --- tools/check_for_upgrade.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index cc527e72d..3a6bb6555 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -24,7 +24,7 @@ zstyle -s ':omz:update' mode update_mode || { # - git is unavailable on the system. if [[ "$update_mode" = disabled ]] \ || [[ ! -w "$ZSH" || ! -O "$ZSH" ]] \ - || ! command -v git &>/dev/null; then + || ! command git --version 2>&1 >/dev/null; then unset update_mode return fi From 280c99dae691e468d12c94f64c97964b88cdad4e Mon Sep 17 00:00:00 2001 From: ZigZagT Date: Thu, 5 Jan 2023 15:03:12 -0800 Subject: [PATCH 101/441] feat(git): accept `default` and `mainline` as main branches (#11431) --- plugins/git/git.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 69745730c..76e58a121 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -31,7 +31,7 @@ function work_in_progress() { function git_main_branch() { command git rev-parse --git-dir &>/dev/null || return local ref - for ref in refs/{heads,remotes/{origin,upstream}}/{main,trunk}; do + for ref in refs/{heads,remotes/{origin,upstream}}/{main,trunk,mainline,default}; do if command git show-ref -q --verify $ref; then echo ${ref:t} return From 71ca38652b039c41ef9b415d0fc05926c37a0bfb Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Fri, 6 Jan 2023 00:14:33 +0100 Subject: [PATCH 102/441] fix(git-extras): type properly `__gitex_command_successful` calls Closes #11430 --- plugins/git-extras/git-extras.plugin.zsh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/git-extras/git-extras.plugin.zsh b/plugins/git-extras/git-extras.plugin.zsh index b86d7c5b6..6b96e12af 100644 --- a/plugins/git-extras/git-extras.plugin.zsh +++ b/plugins/git-extras/git-extras.plugin.zsh @@ -51,7 +51,7 @@ __gitex_remote_names() { local expl declare -a remote_names remote_names=(${(f)"$(_call_program remotes git remote 2>/dev/null)"}) - __git_command_successful || return + __gitex_command_successful || return _wanted remote-names expl remote-name compadd $* - $remote_names } @@ -59,7 +59,7 @@ __gitex_tag_names() { local expl declare -a tag_names tag_names=(${${(f)"$(_call_program tags git for-each-ref --format='"%(refname)"' refs/tags 2>/dev/null)"}#refs/tags/}) - __git_command_successful || return + __gitex_command_successful || return _wanted tag-names expl tag-name compadd $* - $tag_names } @@ -68,7 +68,7 @@ __gitex_branch_names() { local expl declare -a branch_names branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/}) - __git_command_successful || return + __gitex_command_successful || return _wanted branch-names expl branch-name compadd $* - $branch_names } @@ -76,7 +76,7 @@ __gitex_specific_branch_names() { local expl declare -a branch_names branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/"$1" 2>/dev/null)"}#refs/heads/$1/}) - __git_command_successful || return + __gitex_command_successful || return _wanted branch-names expl branch-name compadd - $branch_names } @@ -100,7 +100,7 @@ __gitex_submodule_names() { local expl declare -a submodule_names submodule_names=(${(f)"$(_call_program branchrefs git submodule status | awk '{print $2}')"}) # ' - __git_command_successful || return + __gitex_command_successful || return _wanted submodule-names expl submodule-name compadd $* - $submodule_names } @@ -109,7 +109,7 @@ __gitex_author_names() { local expl declare -a author_names author_names=(${(f)"$(_call_program branchrefs git log --format='%aN' | sort -u)"}) - __git_command_successful || return + __gitex_command_successful || return _wanted author-names expl author-name compadd $* - $author_names } From 69dfd7758033b3e771dcd184c1b143d166a85481 Mon Sep 17 00:00:00 2001 From: Maksym Date: Fri, 6 Jan 2023 14:39:45 +0000 Subject: [PATCH 103/441] chore: remove maksyms as maintainer of aws plugin (#11432) I'm afraid I no longer use `ohmyzsh` or even `zsh` in favour of `fish`. Hence, it doesn't make sense for me to continue being the code owner for the plugin. Good luck with an amazing tool! --- .github/CODEOWNERS | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index c6b3e8ce9..6668cd7ce 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,6 +1,5 @@ # Plugin owners plugins/archlinux/ @ratijas -plugins/aws/ @maksyms plugins/genpass/ @atoponce plugins/git-lfs/ @hellovietduc plugins/gitfast/ @felipec From 08c3ce8882ea0bbbfb0a734f1f8870a72ba21f8a Mon Sep 17 00:00:00 2001 From: Lee Stetson Date: Mon, 9 Jan 2023 13:59:02 -0500 Subject: [PATCH 104/441] feat(bridgetown): Add plugin for Ruby bridgetown site generator (#10496) --- plugins/bridgetown/README.md | 26 ++++++++++++++++++++++++ plugins/bridgetown/bridgetown.plugin.zsh | 12 +++++++++++ 2 files changed, 38 insertions(+) create mode 100644 plugins/bridgetown/README.md create mode 100644 plugins/bridgetown/bridgetown.plugin.zsh diff --git a/plugins/bridgetown/README.md b/plugins/bridgetown/README.md new file mode 100644 index 000000000..0a41814ee --- /dev/null +++ b/plugins/bridgetown/README.md @@ -0,0 +1,26 @@ +# Bridgetown plugin + +This plugin adds some aliases and autocompletion for common [Bridgetown](https://bridgetownrb.com/) commands. + +To use it, add `bridgetown` to the plugins array in your zshrc file: + +```zsh +plugins=(... bridgetown) +``` + +## Aliases + +| Alias | Command | +|-------|----------------------------| +| br | `bridgetown` | +| bra | `bin/bridgetown apply` | +| brb | `bin/bridgetown build` | +| brc | `bin/bridgetown console` | +| brclean | `bin/bridgetown clean` | +| brd | `bin/bridgetown deploy` | +| brdoc | `bin/bridgetown doctor` | +| brh | `bin/bridgetown help` | +| brn | `bridgetown new` | +| brp | `bridgetown plugins` | +| brpl | `bridgetown plugins list` | +| brs | `bin/bridgetown start` | diff --git a/plugins/bridgetown/bridgetown.plugin.zsh b/plugins/bridgetown/bridgetown.plugin.zsh new file mode 100644 index 000000000..502e9dfe0 --- /dev/null +++ b/plugins/bridgetown/bridgetown.plugin.zsh @@ -0,0 +1,12 @@ +alias br='bridgetown' +alias bra='bin/bridgetown apply' +alias brb='bin/bridgetown build' +alias brc='bin/bridgetown console' +alias brclean='bin/bridgetown clean' +alias brd='bin/bridgetown deploy' +alias brdoc='bin/bridgetown doctor' +alias brh='bin/bridgetown help' +alias brn='bridgetown new' +alias brp='bridgetown plugins' +alias brpl='bridgetown plugins list' +alias brs='bin/bridgetown start' From 746424f1614a70a8c318979f5cf348babe603d54 Mon Sep 17 00:00:00 2001 From: Sung kyung Park <44727001+sungkpark@users.noreply.github.com> Date: Mon, 9 Jan 2023 20:02:44 +0100 Subject: [PATCH 105/441] feat(homebrew): Adding new alias for brew uninstall --zap as buz closes #10329 (#10331) * Adding new alias for brew uninstall --zap as buz * Closes #10329 * add buz * closes #10329 * Fix typo * Closes ohmyzsh#10329 * Closes ohmyzsh#10329 Co-authored-by: Sung Co-authored-by: Robby Russell --- plugins/brew/README.md | 3 +++ plugins/brew/brew.plugin.zsh | 2 ++ 2 files changed, 5 insertions(+) diff --git a/plugins/brew/README.md b/plugins/brew/README.md index 9ce2c5bb0..cfaedccd8 100644 --- a/plugins/brew/README.md +++ b/plugins/brew/README.md @@ -21,6 +21,7 @@ defined for convenience. | -------- | ------------------------------------- | ------------------------------------------------------------------- | | `bcubc` | `brew upgrade --cask && brew cleanup` | Update outdated casks, then run cleanup. | | `bcubo` | `brew update && brew outdated --cask` | Update Homebrew data, then list outdated casks. | +| `bcubc` | `brew upgrade --cask && brew cleanup` | Update outdated casks, then run cleanup. | | `brewp` | `brew pin` | Pin a specified formula so that it's not upgraded. | | `brews` | `brew list -1` | List installed formulae or the installed files for a given formula. | | `brewsp` | `brew list --pinned` | List pinned formulae, or show the version of a given formula. | @@ -28,6 +29,8 @@ defined for convenience. | `bubo` | `brew update && brew outdated` | Update Homebrew data, then list outdated formulae and casks. | | `bubu` | `bubo && bubc` | Do the last two operations above. | | `buf` | `brew upgrade --formula` | Upgrade only formulas (not casks). | +| `buz` | `brew uninstall --zap` | Remove all files associated with a cask. | + ## Completion diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh index ea8900823..808c50907 100644 --- a/plugins/brew/brew.plugin.zsh +++ b/plugins/brew/brew.plugin.zsh @@ -27,12 +27,14 @@ fi alias bcubc='brew upgrade --cask && brew cleanup' alias bcubo='brew update && brew outdated --cask' +alias bcubc='brew upgrade --cask && brew cleanup' alias brewp='brew pin' alias brewsp='brew list --pinned' alias bubc='brew upgrade && brew cleanup' alias bubo='brew update && brew outdated' alias bubu='bubo && bubc' alias buf='brew upgrade --formula' +alias buz='brew uninstall --zap' function brews() { local formulae="$(brew leaves | xargs brew deps --installed --for-each)" From fc86a16255a92fad36882666e093750c1aba4b21 Mon Sep 17 00:00:00 2001 From: "F. Javier Campa L" Date: Mon, 9 Jan 2023 20:07:41 +0100 Subject: [PATCH 106/441] feat(homebrew): Brew greedy upgrade aliases (#9623) * Added 'greedy' brew upgrade aliases' * Added a description of the new 'greedy' upgrade aliases Co-authored-by: Robby Russell --- plugins/brew/README.md | 2 +- plugins/brew/brew.plugin.zsh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/brew/README.md b/plugins/brew/README.md index cfaedccd8..4a42b3d74 100644 --- a/plugins/brew/README.md +++ b/plugins/brew/README.md @@ -26,12 +26,12 @@ defined for convenience. | `brews` | `brew list -1` | List installed formulae or the installed files for a given formula. | | `brewsp` | `brew list --pinned` | List pinned formulae, or show the version of a given formula. | | `bubc` | `brew upgrade && brew cleanup` | Upgrade outdated formulae and casks, then run cleanup. | +| `bugbc` | `brew upgrade --greedy && brew cleanup` | Upgrade outdated formulae and casks (greedy), then run cleanup. | | `bubo` | `brew update && brew outdated` | Update Homebrew data, then list outdated formulae and casks. | | `bubu` | `bubo && bubc` | Do the last two operations above. | | `buf` | `brew upgrade --formula` | Upgrade only formulas (not casks). | | `buz` | `brew uninstall --zap` | Remove all files associated with a cask. | - ## Completion With the release of Homebrew 1.0, they decided to bundle the zsh completion as part of the diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh index 808c50907..8275454a4 100644 --- a/plugins/brew/brew.plugin.zsh +++ b/plugins/brew/brew.plugin.zsh @@ -31,8 +31,10 @@ alias bcubc='brew upgrade --cask && brew cleanup' alias brewp='brew pin' alias brewsp='brew list --pinned' alias bubc='brew upgrade && brew cleanup' +alias bugbc='brew upgrade --greedy && brew cleanup' alias bubo='brew update && brew outdated' alias bubu='bubo && bubc' +alias bubug='bubo && bugbc' alias buf='brew upgrade --formula' alias buz='brew uninstall --zap' From 6eefaf56afae27739c31e21be477688634a6b5fa Mon Sep 17 00:00:00 2001 From: Kenneth Tan Date: Tue, 10 Jan 2023 03:14:35 +0800 Subject: [PATCH 107/441] fix(brew): renamed buf alias to bfu (#11195) * chore(plugins/brew): rename buf alias to bfu The alias `buf` collides with the protobuf tooling (buf)[https://buf.build/]. This commit renames the `buf` alias to `bfu` (`brew upgrade --formula`) so its semantically more aligned with `bcu` (`brew upgrade --cask`) as well as to avoid command collision especially with existing scripts that refers to `buf` as the tool and not the alias. * chore(brew): updated README.md Updated README to reflect renamed alias (`buf` -> `bfu`) Co-authored-by: Robby Russell From bc36043e8f004e130df7dc2f4708e2313e400bff Mon Sep 17 00:00:00 2001 From: A2n Date: Mon, 9 Jan 2023 20:23:31 +0100 Subject: [PATCH 108/441] feature(heroku-cli): Add heroku cli alias (#9073) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ✨ feat(alias): import alias from local repo * 📝 feat(alias): import doc form local repo --- plugins/heroku-alias/README.md | 127 +++++++++++++++++++++++++++ plugins/heroku-alias/heroku.alias.sh | 92 +++++++++++++++++++ 2 files changed, 219 insertions(+) create mode 100644 plugins/heroku-alias/README.md create mode 100644 plugins/heroku-alias/heroku.alias.sh diff --git a/plugins/heroku-alias/README.md b/plugins/heroku-alias/README.md new file mode 100644 index 000000000..4b7b953fd --- /dev/null +++ b/plugins/heroku-alias/README.md @@ -0,0 +1,127 @@ +# heroku-alias +🧬 Full alias for heroku cli + +|🚀 last maj|📡 source| +|---|---| +|02/06/2020|[heroku cli doc](https://devcenter.heroku.com/articles/heroku-cli-commands)| + +# Alias list + +## general +| Alias | Command | +| ------------- | ------------- | +| h | heroku | +| hauto | heroku autocomplete $(echo $SHELL) | +| hl | heroku local | + +## config +| Alias | Command | +| ------------- | ------------- | +| hc | heroku config | +| hca | heroku config -a | +| hcr | heroku config -r | +| hcs | heroku config:set | +| hcu | heroku config:unset | +| hcfile | function hcfile bellow | + +```sh +hcfile() { + echo " Which platform [-r/a name] ? " + read platform + echo " Which file ? " + read file + while read line; + do heroku config:set "$platform" "$line"; + done < "$file" +} +``` + +## apps and favorites +| Alias | Command | +| ------------- | ------------- | +| ha | heroku apps | +| hpop | heroku create | +| hkill | heroku apps:destroy | +| hlog | heroku apps:errors | +| hfav | heroku apps:favorites | +| hfava | heroku apps:favorites:add | +| hfavr | heroku apps:favorites:remove | +| hai | heroku apps:info | +| hair | heroku apps:info -r | +| haia | heroku apps:info -a | + +# auth +| Alias | Command | +| ------------- | ------------- | +| h2fa | heroku auth:2fa | +| h2far | heroku auth:2fa:disable | + +# access +| Alias | Command | +| ------------- | ------------- | +| hac | heroku access | +| hacr | heroku access -r | +| haca | heroku access -a | +| hadd | heroku access:add | +| hdel | heroku access:remove | +| hup | heroku access:update | + +## addons +| Alias | Command | +| ------------- | ------------- | +| hads | heroku addons -A | +| hada | heroku addons -a | +| hadr | heroku addons -r | +| hadat | heroku addons:attach | +| hadc | heroku addons:create | +| hadel | heroku addons:destroy | +| hadde | heroku addons:detach | +| hadoc | heroku addons:docs | + +## login +| Alias | Command | +| ------------- | ------------- | +| hin | heroku login | +| hout | heroku logout | +| hi | heroku login -i | +| hwho | heroku auth:whoami | + +## authorizations +| Alias | Command | +| ------------- | ------------- | +| hth | heroku authorizations | +| hthadd | heroku authorizations:create | +| hthif | heroku authorizations:info | +| hthdel | heroku authorizations:revoke | +| hthrot | heroku authorizations:rotate | +| hthup | heroku authorizations:update | + +## plugins +| Alias | Command | +| ------------- | ------------- | +| hp | heroku plugins | + +# log +| Alias | Command | +| ------------- | ------------- | +|hg | heroku logs| +| hgt | heroku log tail | + +# database +| Alias | Command | +| ------------- | ------------- | +| hpg | heroku pg | +| hpsql | heroku pg:psql | +| hpb | heroku pg:backups | +| hpbc | heroku pg:backups:capture | +| hpbd | heroku pg:backups:download | +| hpbr | heroku pg:backups:restore | + +# certs +| Alias | Command | +| ------------- | ------------- | +| hssl | heroku certs | +| hssli | heroku certs:info | +| hssla | heroku certs:add | +| hsslu | heroku certs:update | +| hsslr | heroku certs:remove | diff --git a/plugins/heroku-alias/heroku.alias.sh b/plugins/heroku-alias/heroku.alias.sh new file mode 100644 index 000000000..7daf715b5 --- /dev/null +++ b/plugins/heroku-alias/heroku.alias.sh @@ -0,0 +1,92 @@ +# general +alias h='heroku' +alias hauto='heroku autocomplete $(echo $SHELL)' +alias hl='heroku local' + +# log +alias hg='heroku logs' +alias hgt='heroku log tail' + +# database +alias hpg='heroku pg' +alias hpsql='heroku pg:psql' +alias hpb='heroku pg:backups' +alias hpbc='heroku pg:backups:capture' +alias hpbd='heroku pg:backups:download' +alias hpbr='heroku pg:backups:restore' + +# config +alias hc='heroku config' +alias hca='heroku config -a' +alias hcr='heroku config -r' +alias hcs='heroku config:set' +alias hcu='heroku config:unset' + +# this function allow to load multi env set in a file +hcfile() { + echo 'Which platform [-r/a name] ?' + read platform + echo 'Which file ?' + read file + while read line; + do heroku config:set "$platform" "$line"; + done < "$file" +} + +# apps and favorites +alias ha='heroku apps' +alias hpop='heroku create' +alias hkill='heroku apps:destroy' +alias hlog='heroku apps:errors' +alias hfav='heroku apps:favorites' +alias hfava='heroku apps:favorites:add' +alias hfavr='heroku apps:favorites:remove' +alias hai='heroku apps:info' +alias hair='heroku apps:info -r' +alias haia='heroku apps:info -a' + +# auth +alias h2fa='heroku auth:2fa' +alias h2far='heroku auth:2fa:disable' + +# access +alias hac='heroku access' +alias hacr='heroku access -r' +alias haca='heroku access -a' +alias hadd='heroku access:add' +alias hdel='heroku access:remove' +alias hup='heroku access:update' + +# addons +alias hads='heroku addons -A' +alias hada='heroku addons -a' +alias hadr='heroku addons -r' +alias hadat='heroku addons:attach' +alias hadc='heroku addons:create' +alias hadel='heroku addons:destroy' +alias hadde='heroku addons:detach' +alias hadoc='heroku addons:docs' + +# login +alias hin='heroku login' +alias hout='heroku logout' +alias hi='heroku login -i' +alias hwho='heroku auth:whoami' + +# authorizations +alias hth='heroku authorizations' +alias hthadd='heroku authorizations:create' +alias hthif='heroku authorizations:info' +alias hthdel='heroku authorizations:revoke' +alias hthrot='heroku authorizations:rotate' +alias hthup='heroku authorizations:update' + +# plugins +alias hp='heroku plugins' + +# cert +alias hssl='heroku certs' +alias hssli='heroku certs:info' +alias hssla='heroku certs:add' +alias hsslu='heroku certs:update' +alias hsslr='heroku certs:remove' From 9f31951019401449e057a236886d133f58c5cc64 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 9 Jan 2023 13:30:08 -0600 Subject: [PATCH 109/441] fix(jira): Make prefix check on "jira branch" command case-insensitive (#8799) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Make prefix check on "jira branch" command case-insensitive * Update plugins/jira/jira.plugin.zsh Co-authored-by: Marc Cornellà * Fixing tabs to spaces Co-authored-by: Robby Russell Co-authored-by: Marc Cornellà --- plugins/jira/README.md | 5 +++++ plugins/jira/jira.plugin.zsh | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/jira/README.md b/plugins/jira/README.md index a5633af77..f8751aaa2 100644 --- a/plugins/jira/README.md +++ b/plugins/jira/README.md @@ -27,6 +27,11 @@ jira branch # opens an existing issue matching the current branch name # The branch name may have prefixes ending in "/": "feature/MP-1234", # and also suffixes starting with "_": "MP-1234_fix_dashboard" # In both these cases, the issue opened will be "MP-1234" + # This is also checks if the prefix is in the name, and adds it if not, so: + # "MP-1234" opens the issue "MP-1234", + # "mp-1234" opens the issue "mp-1234", + # and "1234" opens the issue "MP-1234". +# NOTE: since jira is case insensitive, the first two examples open the same issue jira ABC-123 # opens an existing issue jira ABC-123 m # opens an existing issue for adding a comment ``` diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh index 22807e0ae..37d7b6a27 100644 --- a/plugins/jira/jira.plugin.zsh +++ b/plugins/jira/jira.plugin.zsh @@ -75,7 +75,7 @@ function jira() { # Strip suffixes starting with _ issue_arg=(${(s:_:)issue_arg}) issue_arg=${issue_arg[1]} - if [[ "$issue_arg" = ${jira_prefix}* ]]; then + if [[ "${issue_arg:l}" = ${jira_prefix:l}* ]]; then issue="${issue_arg}" else issue="${jira_prefix}${issue_arg}" From fc722807f815bd170849f92d215ce2afa62e55b6 Mon Sep 17 00:00:00 2001 From: August Feng <46177585+augustfengd@users.noreply.github.com> Date: Mon, 9 Jan 2023 14:43:42 -0500 Subject: [PATCH 110/441] refactor(jira)!: rename myissues to mine and add completion (#10931) --- plugins/jira/README.md | 2 +- plugins/jira/_jira | 1 + plugins/jira/jira.plugin.zsh | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/jira/README.md b/plugins/jira/README.md index f8751aaa2..a7cfe6d9e 100644 --- a/plugins/jira/README.md +++ b/plugins/jira/README.md @@ -18,11 +18,11 @@ This plugin supplies one command, `jira`, through which all its features are exp jira # performs the default action jira new # opens a new issue +jira mine # queries for your own issues jira dashboard # opens your JIRA dashboard jira tempo # opens your JIRA Tempo jira reported [username] # queries for issues reported by a user jira assigned [username] # queries for issues assigned to a user -jira myissues # queries for you own issues jira branch # opens an existing issue matching the current branch name # The branch name may have prefixes ending in "/": "feature/MP-1234", # and also suffixes starting with "_": "MP-1234_fix_dashboard" diff --git a/plugins/jira/_jira b/plugins/jira/_jira index 1ac3eeda3..0e37b7e9d 100644 --- a/plugins/jira/_jira +++ b/plugins/jira/_jira @@ -4,6 +4,7 @@ local -a _1st_arguments _1st_arguments=( 'new:create a new issue' + 'mine:open my issues' 'dashboard:open the dashboard' 'tempo:open the tempo' 'reported:search for issues reported by a user' diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh index 37d7b6a27..0add040d1 100644 --- a/plugins/jira/jira.plugin.zsh +++ b/plugins/jira/jira.plugin.zsh @@ -44,7 +44,7 @@ function jira() { open_command "${jira_url}/secure/CreateIssue!default.jspa" elif [[ "$action" == "assigned" || "$action" == "reported" ]]; then _jira_query ${@:-$action} - elif [[ "$action" == "myissues" ]]; then + elif [[ "$action" == "mine" ]]; then echo "Opening my issues" open_command "${jira_url}/issues/?filter=-1" elif [[ "$action" == "dashboard" ]]; then From 585084354e7ecf3b93c6eedb2ece70e914ee28b9 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 9 Jan 2023 21:45:20 +0200 Subject: [PATCH 111/441] feat(jira): add optional plugin "tempo" path (#11121) CHANGE: added new environment variable JIRA_TEMPO_PATH to allow set an optional path Co-authored-by: Vladimir Antoscenco --- plugins/jira/README.md | 1 + plugins/jira/jira.plugin.zsh | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/jira/README.md b/plugins/jira/README.md index a7cfe6d9e..3d6d323a4 100644 --- a/plugins/jira/README.md +++ b/plugins/jira/README.md @@ -68,6 +68,7 @@ echo "https://jira.atlassian.com" >> .jira-url * `$JIRA_PREFIX` - Prefix added to issue ID arguments * `$JIRA_RAPID_BOARD` - Set to `true` if you use Rapid Board * `$JIRA_DEFAULT_ACTION` - Action to do when `jira` is called with no arguments; defaults to "new" +* `$JIRA_TEMPO_PATH` - Your JIRA tempo url path; defaults to "/secure/Tempo.jspa" ### Browser ### diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh index 0add040d1..71224bdfb 100644 --- a/plugins/jira/jira.plugin.zsh +++ b/plugins/jira/jira.plugin.zsh @@ -56,13 +56,18 @@ function jira() { fi elif [[ "$action" == "tempo" ]]; then echo "Opening tempo" - open_command "${jira_url}/secure/Tempo.jspa" + if [[ -n "$JIRA_TEMPO_PATH" ]]; then + open_command "${jira_url}${JIRA_TEMPO_PATH}" + else + open_command "${jira_url}/secure/Tempo.jspa" + fi elif [[ "$action" == "dumpconfig" ]]; then echo "JIRA_URL=$jira_url" echo "JIRA_PREFIX=$jira_prefix" echo "JIRA_NAME=$JIRA_NAME" echo "JIRA_RAPID_BOARD=$JIRA_RAPID_BOARD" echo "JIRA_DEFAULT_ACTION=$JIRA_DEFAULT_ACTION" + echo "JIRA_TEMPO_PATH=$JIRA_TEMPO_PATH" else # Anything that doesn't match a special action is considered an issue name # but `branch` is a special case that will parse the current git branch From e0d0dfb845a8f1eb35bce8ca5afcd76cb2ffbb35 Mon Sep 17 00:00:00 2001 From: Arnaud Zheng Date: Mon, 9 Jan 2023 20:53:32 +0100 Subject: [PATCH 112/441] feat(jira): support rapid view on rapid board mode (#9459) * feat(jira): support rapid view on rapid board mode * Update README to clarify how the rapid board/view works Co-authored-by: Robby Russell --- plugins/jira/README.md | 3 ++- plugins/jira/jira.plugin.zsh | 13 ++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/plugins/jira/README.md b/plugins/jira/README.md index 3d6d323a4..5dc5bfc96 100644 --- a/plugins/jira/README.md +++ b/plugins/jira/README.md @@ -18,8 +18,8 @@ This plugin supplies one command, `jira`, through which all its features are exp jira # performs the default action jira new # opens a new issue +jira dashboard [rapid_view] # opens your JIRA dashboard jira mine # queries for your own issues -jira dashboard # opens your JIRA dashboard jira tempo # opens your JIRA Tempo jira reported [username] # queries for issues reported by a user jira assigned [username] # queries for issues assigned to a user @@ -67,6 +67,7 @@ echo "https://jira.atlassian.com" >> .jira-url * `$JIRA_NAME` - Your JIRA username; used as the default user for `assigned`/`reported` searches * `$JIRA_PREFIX` - Prefix added to issue ID arguments * `$JIRA_RAPID_BOARD` - Set to `true` if you use Rapid Board +* `$JIRA_RAPID_VIEW` - Set the default rapid view; it doesn't work if `$JIRA_RAPID_BOARD` is set to false * `$JIRA_DEFAULT_ACTION` - Action to do when `jira` is called with no arguments; defaults to "new" * `$JIRA_TEMPO_PATH` - Your JIRA tempo url path; defaults to "/secure/Tempo.jspa" diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh index 71224bdfb..e789fce92 100644 --- a/plugins/jira/jira.plugin.zsh +++ b/plugins/jira/jira.plugin.zsh @@ -50,7 +50,7 @@ function jira() { elif [[ "$action" == "dashboard" ]]; then echo "Opening dashboard" if [[ "$JIRA_RAPID_BOARD" == "true" ]]; then - open_command "${jira_url}/secure/RapidBoard.jspa" + _jira_rapid_board ${@} else open_command "${jira_url}/secure/Dashboard.jspa" fi @@ -65,6 +65,7 @@ function jira() { echo "JIRA_URL=$jira_url" echo "JIRA_PREFIX=$jira_prefix" echo "JIRA_NAME=$JIRA_NAME" + echo "JIRA_RAPID_VIEW=$JIRA_RAPID_VIEW" echo "JIRA_RAPID_BOARD=$JIRA_RAPID_BOARD" echo "JIRA_DEFAULT_ACTION=$JIRA_DEFAULT_ACTION" echo "JIRA_TEMPO_PATH=$JIRA_TEMPO_PATH" @@ -112,6 +113,16 @@ Valid options, in order of precedence: EOF } +function _jira_rapid_board() { + rapid_view=${2:=$JIRA_RAPID_VIEW} + + if [[ -z $rapid_view ]]; then + open_command "${jira_url}/secure/RapidBoard.jspa" + else + open_command "${jira_url}/secure/RapidBoard.jspa?rapidView=$rapid_view" + fi +} + function _jira_query() { emulate -L zsh local verb="$1" From 2c2187b09d6dc488bb67968748ec07f7235a0238 Mon Sep 17 00:00:00 2001 From: cxy004 Date: Tue, 10 Jan 2023 04:02:51 +0800 Subject: [PATCH 113/441] fix(macos): fix `man-preview` for macOS Ventura (#11324) --- plugins/macos/macos.plugin.zsh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/macos/macos.plugin.zsh b/plugins/macos/macos.plugin.zsh index b540eecb5..e4d759dcf 100644 --- a/plugins/macos/macos.plugin.zsh +++ b/plugins/macos/macos.plugin.zsh @@ -224,8 +224,9 @@ function quick-look() { } function man-preview() { + local location # Don't let Preview.app steal focus if the man page doesn't exist - man -w "$@" &>/dev/null && man -t "$@" | open -f -a Preview || man "$@" + location=$(man -w "$@") && mandoc -Tpdf $location | open -f -a Preview } compdef _man man-preview From 046f0ca5571e28aa328566d5f81a338e074cf174 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Mon, 9 Jan 2023 20:25:08 +0000 Subject: [PATCH 114/441] fix(jira): Update README examples to a table format --- plugins/jira/README.md | 44 +++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/plugins/jira/README.md b/plugins/jira/README.md index 5dc5bfc96..d78ea15a4 100644 --- a/plugins/jira/README.md +++ b/plugins/jira/README.md @@ -14,27 +14,31 @@ In this document, "JIRA" refers to the JIRA issue tracking server, and `jira` re This plugin supplies one command, `jira`, through which all its features are exposed. Most forms of this command open a JIRA page in your web browser. -``` -jira # performs the default action +## Commands + +| Command | Description | +| :------------ | :-------------------------------------------------------- | +| `jira` | Performs the default action | +| `jira new` | Opens a new Jira issue dialogue | +| `jira ABC-123` | Opens an existing issue | +| `jira ABC-123 m` | Opens an existing issue for adding a comment | +| `jira dashboard [rapid_view]` | # opens your JIRA dashboard | +| `jira mine` | Queries for your own issues | +| `jira tempo` | Opens your JIRA Tempo | +| `jira reported [username]` | Queries for issues reported by a user | +| `jira assigned [username]` | Queries for issues assigned to a user | +| `jira branch` | Opens an existing issue matching the current branch name | + + +### Jira Branch usage notes + +The branch name may have prefixes ending in "/": "feature/MP-1234", and also suffixes +starting with "_": "MP-1234_fix_dashboard". In both these cases, the issue opened will be "MP-1234" + +This is also checks if the prefix is in the name, and adds it if not, so: "MP-1234" opens the issue "MP-1234", +"mp-1234" opens the issue "mp-1234", and "1234" opens the issue "MP-1234". + -jira new # opens a new issue -jira dashboard [rapid_view] # opens your JIRA dashboard -jira mine # queries for your own issues -jira tempo # opens your JIRA Tempo -jira reported [username] # queries for issues reported by a user -jira assigned [username] # queries for issues assigned to a user -jira branch # opens an existing issue matching the current branch name - # The branch name may have prefixes ending in "/": "feature/MP-1234", - # and also suffixes starting with "_": "MP-1234_fix_dashboard" - # In both these cases, the issue opened will be "MP-1234" - # This is also checks if the prefix is in the name, and adds it if not, so: - # "MP-1234" opens the issue "MP-1234", - # "mp-1234" opens the issue "mp-1234", - # and "1234" opens the issue "MP-1234". -# NOTE: since jira is case insensitive, the first two examples open the same issue -jira ABC-123 # opens an existing issue -jira ABC-123 m # opens an existing issue for adding a comment -``` #### Debugging usage #### From e583648195a33afb6ec4ebddb1926570a9a5e475 Mon Sep 17 00:00:00 2001 From: Celestino Gomes Date: Mon, 9 Jan 2023 17:46:54 -0300 Subject: [PATCH 115/441] feat(qrcode): new plugin to generate qrcode via https://qrcode.show (#10247) * feat(qrcode): new plugin to generate qrcode via https://qrcode.show * code fix suggested by @JuniorJPDJ * Update docs to clarify how to interact with it Co-authored-by: Robby Russell --- plugins/qrcode/README.md | 8 ++++++++ plugins/qrcode/qrcode.plugin.zsh | 17 +++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 plugins/qrcode/README.md create mode 100644 plugins/qrcode/qrcode.plugin.zsh diff --git a/plugins/qrcode/README.md b/plugins/qrcode/README.md new file mode 100644 index 000000000..bcc870541 --- /dev/null +++ b/plugins/qrcode/README.md @@ -0,0 +1,8 @@ +# QRCode plugin + +Generate a QR Code from the command line. Uses [QRcode.show](https://qrcode.show) via curl. + +alias | command +--------------- | -------- +`qrcode [text]` | `curl -d "text" qrcode.show` +`qrsvg [text]` | `curl -d "text" qrcode.show -H "Accepct: image.svg"` diff --git a/plugins/qrcode/qrcode.plugin.zsh b/plugins/qrcode/qrcode.plugin.zsh new file mode 100644 index 000000000..d757e135e --- /dev/null +++ b/plugins/qrcode/qrcode.plugin.zsh @@ -0,0 +1,17 @@ +# Imported and improved from https://qrcode.show/, section SHELL FUNCTIONS + +_qrcode_show_message() { + echo "Type or paste your text, add a new blank line, and press ^d" +} + +qrcode () { + local input="$*" + [ -z "$input" ] && _qrcode_show_message && local input="@/dev/stdin" + curl -d "$input" https://qrcode.show +} + +qrsvg () { + local input="$*" + [ -z "$input" ] && _qrcode_show_message && local input="@/dev/stdin" + curl -d "$input" https://qrcode.show -H "Accept: image/svg+xml" +} From 4181e8a2cc936bc7b7a89d674bf261023159ed35 Mon Sep 17 00:00:00 2001 From: Dmndz <46868530+d14mndz@users.noreply.github.com> Date: Mon, 9 Jan 2023 21:51:50 +0100 Subject: [PATCH 116/441] feat(yarn): add alias for `yarn why` (#10773) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(yarn): add `yarn why` * docs(yarn): update readme Co-authored-by: Basia Józefowska Co-authored-by: Robby Russell --- plugins/yarn/README.md | 1 + plugins/yarn/yarn.plugin.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/yarn/README.md b/plugins/yarn/README.md index 270bf6b7f..5c7c7f323 100644 --- a/plugins/yarn/README.md +++ b/plugins/yarn/README.md @@ -55,3 +55,4 @@ zstyle ':omz:plugins:yarn' global-path no | yv | `yarn version` | Update the version of your package | | yw | `yarn workspace` | Run a command within a single workspace. | | yws | `yarn workspaces` | Run a command within all defined workspaces. | +| yy | `yarn why` | Show why a package has been installed, detailing which other packages depend on it | diff --git a/plugins/yarn/yarn.plugin.zsh b/plugins/yarn/yarn.plugin.zsh index 7ba710df7..157044d71 100644 --- a/plugins/yarn/yarn.plugin.zsh +++ b/plugins/yarn/yarn.plugin.zsh @@ -43,3 +43,4 @@ alias yup="yarn upgrade" alias yv="yarn version" alias yw="yarn workspace" alias yws="yarn workspaces" +alias yy="yarn why" From 3dd83a22a160249a71631a51490fd3b89d1b3975 Mon Sep 17 00:00:00 2001 From: Lawton Nichols Date: Wed, 11 Jan 2023 10:44:29 -0800 Subject: [PATCH 117/441] fix(lib): send carriage return after `title` to fix #11314 (#11315) Window and tab titles are changed by emitting an unprintable escape sequence to the terminal. These escape sequences do not play nicely with the TAB character on multiple terminal emulators--they create un-deletable characters on the first line after command execution. Sending "\r" after changing the window and tab titles allows all characters on the first line to be deleted. Fixes #11314 --- lib/termsupport.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 80ca7ef78..fc1cde55e 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -36,6 +36,8 @@ function title { fi ;; esac + + print -Pn "\r" # move the cursor to the beginning of the line } ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD From 0f71cfd3c1b82cbc6b2ddd8782e193f38cf343f9 Mon Sep 17 00:00:00 2001 From: Rafael Laurindo Date: Wed, 11 Jan 2023 15:54:53 -0300 Subject: [PATCH 118/441] docs(qrsvg): fix command example (#11436) --- plugins/qrcode/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/qrcode/README.md b/plugins/qrcode/README.md index bcc870541..442838947 100644 --- a/plugins/qrcode/README.md +++ b/plugins/qrcode/README.md @@ -5,4 +5,4 @@ Generate a QR Code from the command line. Uses [QRcode.show](https://qrcode.show alias | command --------------- | -------- `qrcode [text]` | `curl -d "text" qrcode.show` -`qrsvg [text]` | `curl -d "text" qrcode.show -H "Accepct: image.svg"` +`qrsvg [text]` | `curl -d "text" qrcode.show -H "Accept: image/svg+xml"` From 17ea97332b2f2285e3c2e1a00f6745fb1fe1cec5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 12 Jan 2023 08:29:00 +0100 Subject: [PATCH 119/441] Revert "fix(lib): send carriage return after `title` to fix #11314 (#11315)" This reverts commit 3dd83a22a160249a71631a51490fd3b89d1b3975. See https://github.com/ohmyzsh/ohmyzsh/issues/11314#issuecomment-1379492472 --- lib/termsupport.zsh | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index fc1cde55e..80ca7ef78 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -36,8 +36,6 @@ function title { fi ;; esac - - print -Pn "\r" # move the cursor to the beginning of the line } ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD From 35454190f6aeae9b9f16acdbdd0cf72c32610ee8 Mon Sep 17 00:00:00 2001 From: Jack DeVries Date: Thu, 12 Jan 2023 13:41:47 +0100 Subject: [PATCH 120/441] feat(git): use verbose flags in aliases Closes #11244 Closes #11246 Closes #10101 Closes #11380 --- plugins/git/README.md | 366 ++++++++++++++++++------------------- plugins/git/git.plugin.zsh | 75 ++++---- 2 files changed, 219 insertions(+), 222 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 3beb0890a..8cb4215a9 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -10,191 +10,189 @@ plugins=(... git) ## Aliases -| Alias | Command | -|:---------------------|:---------------------------------------------------------------------------------------------------------------------------------| -| g | git | -| ga | git add | -| gaa | git add --all | -| gapa | git add --patch | -| gau | git add --update | -| gav | git add --verbose | -| gap | git apply | -| gapt | git apply --3way | -| gb | git branch | -| gba | git branch -a | -| gbd | git branch -d | -| gbda | git branch --no-color --merged \| grep -vE "^([+*]\|\s*($(git_main_branch)\|$(git_develop_branch))\s*$)" \| xargs git branch -d 2>/dev/null | -| gbD | git branch -D | -| gbl | git blame -b -w | -| gbnm | git branch --no-merged | -| gbr | git branch --remote | -| gbs | git bisect | -| gbsb | git bisect bad | -| gbsg | git bisect good | -| gbsr | git bisect reset | -| gbss | git bisect start | -| gc | git commit -v | -| gc! | git commit -v --amend | -| gcn | git commit -v --no-edit | -| gcn! | git commit -v --no-edit --amend | -| gca | git commit -v -a | -| gca! | git commit -v -a --amend | -| gcan! | git commit -v -a --no-edit --amend | -| gcans! | git commit -v -a -s --no-edit --amend | -| gcam | git commit -a -m | -| gcas | git commit -a -s | -| gcasm | git commit -a -s -m | -| gcsm | git commit -s -m | -| gcb | git checkout -b | -| gcf | git config --list | -| gcl | git clone --recurse-submodules | -| gccd | git clone --recurse-submodules "$@" && cd "$(basename $_ .git)" | -| gclean | git clean -id | -| gpristine | git reset --hard && git clean -dffx | -| gcm | git checkout $(git_main_branch) | -| gcd | git checkout $(git_develop_branch) | -| gcmsg | git commit -m | -| gco | git checkout | -| gcor | git checkout --recurse-submodules | -| gcount | git shortlog -sn | -| gcp | git cherry-pick | -| gcpa | git cherry-pick --abort | -| gcpc | git cherry-pick --continue | -| gcs | git commit -S | -| gd | git diff | -| gdca | git diff --cached | -| gdcw | git diff --cached --word-diff | -| gdct | git describe --tags $(git rev-list --tags --max-count=1) | -| gds | git diff --staged | -| gdt | git diff-tree --no-commit-id --name-only -r | -| gdnolock | git diff $@ ":(exclude)package-lock.json" ":(exclude)*.lock" | -| gdup | git diff @{upstream} | -| gdv | git diff -w $@ \| view - | -| gdw | git diff --word-diff | -| gf | git fetch | -| gfa | git fetch --all --prune | -| gfg | git ls-files \| grep | -| gfo | git fetch origin | -| gg | git gui citool | -| gga | git gui citool --amend | -| ggf | git push --force origin $(current_branch) | -| ggfl | git push --force-with-lease origin $(current_branch) | -| ggl | git pull origin $(current_branch) | -| ggp | git push origin $(current_branch) | -| ggpnp | ggl && ggp | -| ggpull | git pull origin "$(git_current_branch)" | -| ggpur | ggu | -| ggpush | git push origin "$(git_current_branch)" | -| ggsup | git branch --set-upstream-to=origin/$(git_current_branch) | -| ggu | git pull --rebase origin $(current_branch) | -| gpsup | git push --set-upstream origin $(git_current_branch) | -| ghh | git help | -| gignore | git update-index --assume-unchanged | -| gignored | git ls-files -v \| grep "^[[:lower:]]" | -| git-svn-dcommit-push | git svn dcommit && git push github $(git_main_branch):svntrunk | -| gk | gitk --all --branches &! | -| gke | gitk --all $(git log -g --pretty=%h) &! | -| gl | git pull | -| glg | git log --stat | -| glgp | git log --stat -p | -| glgg | git log --graph | -| glgga | git log --graph --decorate --all | -| glgm | git log --graph --max-count=10 | -| glo | git log --oneline --decorate | -| glol | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' | -| glols | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat | -| glod | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' | -| glods | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short | -| glola | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all | -| glog | git log --oneline --decorate --graph | -| gloga | git log --oneline --decorate --graph --all | -| glp | git log --pretty=\ | -| gm | git merge | -| gmom | git merge origin/$(git_main_branch) | -| gmtl | git mergetool --no-prompt | -| gmtlvim | git mergetool --no-prompt --tool=vimdiff | -| gmum | git merge upstream/$(git_main_branch) | -| gma | git merge --abort | -| gp | git push | -| gpd | git push --dry-run | -| gpf | git push --force-with-lease | -| gpf! | git push --force | -| gpoat | git push origin --all && git push origin --tags | -| gpr | git pull --rebase | -| gpu | git push upstream | -| gpv | git push -v | -| gr | git remote | -| gra | git remote add | -| grb | git rebase | -| grba | git rebase --abort | -| grbc | git rebase --continue | -| 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 | -| grh | git reset | -| grhh | git reset --hard | -| groh | git reset origin/$(git_current_branch) --hard | -| grm | git rm | -| grmc | git rm --cached | -| grmv | git remote rename | -| grrm | git remote remove | -| grs | git restore | -| grset | git remote set-url | -| grss | git restore --source | -| grst | git restore --staged | -| grt | cd "$(git rev-parse --show-toplevel \|\| echo .)" | -| gru | git reset -- | -| grup | git remote update | -| grv | git remote -v | -| gsb | git status -sb | -| gsd | git svn dcommit | -| gsh | git show | -| gsi | git submodule init | -| gsps | git show --pretty=short --show-signature | -| gsr | git svn rebase | -| gss | git status -s | -| gst | git status | -| gsta | git stash push | -| gsta | git stash save | -| gstaa | git stash apply | -| gstc | git stash clear | -| gstd | git stash drop | -| gstl | git stash list | -| gstp | git stash pop | -| gsts | git stash show --text | -| gstu | git stash --include-untracked | -| gstall | git stash --all | -| gsu | git submodule update | -| gsw | git switch | -| gswc | git switch -c | -| gswm | git switch $(git_main_branch) | -| gswd | git switch $(git_develop_branch) | -| gts | git tag -s | -| gtv | git tag \| sort -V | -| gtl | gtl(){ git tag --sort=-v:refname -n -l ${1}* }; noglob gtl | -| gunignore | git update-index --no-assume-unchanged | -| gunwip | git log -n 1 \| grep -q -c "\-\-wip\-\-" && git reset HEAD~1 | -| gup | git pull --rebase | -| gupv | git pull --rebase -v | -| gupa | git pull --rebase --autostash | -| gupav | git pull --rebase --autostash -v | -| gupom | git pull --rebase origin $(git_main_branch) | -| gupomi | git pull --rebase=interactive origin $(git_main_branch) | -| glum | git pull upstream $(git_main_branch) | -| gluc | git pull upstream $(git_current_branch) | -| gwch | git whatchanged -p --abbrev-commit --pretty=medium | -| gwip | git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign -m "--wip-- [skip ci]" | -| gam | git am | -| gamc | git am --continue | -| gams | git am --skip | -| gama | git am --abort | -| gamscp | git am --show-current-patch | +| Alias | Command | +| :------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| g | git | +| ga | git add | +| gaa | git add --all | +| gapa | git add --patch | +| gau | git add --update | +| gav | git add --verbose | +| gap | git apply | +| gapt | git apply --3way | +| gb | git branch | +| gba | git branch --all | +| gbd | git branch --delete | +| gbda | git branch --no-color --merged \| grep -vE "^([+*]\|\s*($(git_main_branch)\|$(git_develop_branch))\s*$)" \| xargs git branch --delete 2>/dev/null | +| gbD | git branch --delete --force | +| gbl | git blame -b -w | +| gbnm | git branch --no-merged | +| gbr | git branch --remote | +| gbs | git bisect | +| gbsb | git bisect bad | +| gbsg | git bisect good | +| gbsr | git bisect reset | +| gbss | git bisect start | +| gc | git commit --verbose | +| gc! | git commit --verbose --amend | +| gcn! | git commit --verbose --no-edit --amend | +| gca | git commit --verbose --all | +| gca! | git commit --verbose --all --amend | +| gcan! | git commit --verbose --all --no-edit --amend | +| gcans! | git commit --verbose --all --signoff --no-edit --amend | +| gcam | git commit --all --message | +| gcas | git commit --all --signoff | +| gcasm | git commit --all --signoff --message | +| gcsm | git commit --signoff --message | +| gcb | git checkout -b | +| gcf | git config --list | +| gcl | git clone --recurse-submodules | +| gccd | git clone --recurse-submodules "$@" && cd "$(basename $\_ .git)" | +| gclean | git clean --interactive -d | +| gpristine | git reset --hard && git clean -dffx | +| gcm | git checkout $(git_main_branch) | +| gcd | git checkout $(git_develop_branch) | +| gcmsg | git commit --message | +| gco | git checkout | +| gcor | git checkout --recurse-submodules | +| gcount | git shortlog --summary -n | +| gcp | git cherry-pick | +| gcpa | git cherry-pick --abort | +| gcpc | git cherry-pick --continue | +| gcs | git commit -S | +| gd | git diff | +| gdca | git diff --cached | +| gdcw | git diff --cached --word-diff | +| gdct | git describe --tags $(git rev-list --tags --max-count=1) | +| gds | git diff --staged | +| gdt | git diff-tree --no-commit-id --name-only -r | +| gdnolock | git diff $@ ":(exclude)package-lock.json" ":(exclude)\*.lock" | +| gdup | git diff @{upstream} | +| gdv | git diff -w $@ \| view - | +| gdw | git diff --word-diff | +| gf | git fetch | +| gfa | git fetch --all --prune | +| gfg | git ls-files \| grep | +| gfo | git fetch origin | +| gg | git gui citool | +| gga | git gui citool --amend | +| ggf | git push --force origin $(current_branch) | +| ggfl | git push --force-with-lease origin $(current_branch) | +| ggl | git pull origin $(current_branch) | +| ggp | git push origin $(current_branch) | +| ggpnp | ggl && ggp | +| ggpull | git pull origin "$(git_current_branch)" | +| ggpur | ggu | +| ggpush | git push origin "$(git_current_branch)" | +| ggsup | git branch --set-upstream-to=origin/$(git_current_branch) | +| ggu | git pull --rebase origin $(current_branch) | +| gpsup | git push --set-upstream origin $(git_current_branch) | +| ghh | git help | +| gignore | git update-index --assume-unchanged | +| gignored | git ls-files -v \| grep "^[[:lower:]]" | +| git-svn-dcommit-push | git svn dcommit && git push github $(git_main_branch):svntrunk | +| gk | gitk --all --branches &! | +| gke | gitk --all $(git log --walk-reflogs --pretty=%h) &! | +| gl | git pull | +| glg | git log --stat | +| glgp | git log --stat --patch | +| glgg | git log --graph | +| glgga | git log --graph --decorate --all | +| glgm | git log --graph --max-count=10 | +| glo | git log --oneline --decorate | +| glol | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' | +| glols | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat | +| glod | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' | +| glods | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short | +| glola | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all | +| glog | git log --oneline --decorate --graph | +| gloga | git log --oneline --decorate --graph --all | +| glp | git log --pretty=\ | +| gm | git merge | +| gmom | git merge origin/$(git_main_branch) | +| gmtl | git mergetool --no-prompt | +| gmtlvim | git mergetool --no-prompt --tool=vimdiff | +| gmum | git merge upstream/$(git_main_branch) | +| gma | git merge --abort | +| gp | git push | +| gpd | git push --dry-run | +| gpf | git push --force-with-lease | +| gpf! | git push --force | +| gpoat | git push origin --all && git push origin --tags | +| gpr | git pull --rebase | +| gpu | git push upstream | +| gpv | git push --verbose | +| gr | git remote | +| gra | git remote add | +| grb | git rebase | +| grba | git rebase --abort | +| grbc | git rebase --continue | +| grbd | git rebase $(git_develop_branch) | +| grbi | git rebase --interactive | +| grbm | git rebase $(git_main_branch) | +| grbom | git rebase origin/$(git_main_branch) | +| grbo | git rebase --onto | +| grbs | git rebase --skip | +| grev | git revert | +| grh | git reset | +| grhh | git reset --hard | +| groh | git reset origin/$(git_current_branch) --hard | +| grm | git rm | +| grmc | git rm --cached | +| grmv | git remote rename | +| grrm | git remote remove | +| grs | git restore | +| grset | git remote set-url | +| grss | git restore --source | +| grst | git restore --staged | +| grt | cd "$(git rev-parse --show-toplevel \|\| echo .)" | +| gru | git reset -- | +| grup | git remote update | +| grv | git remote --verbose | +| gsb | git status --short -b | +| gsd | git svn dcommit | +| gsh | git show | +| gsi | git submodule init | +| gsps | git show --pretty=short --show-signature | +| gsr | git svn rebase | +| gss | git status --short | +| gst | git status | +| gsta | git stash push | +| gsta | git stash save | +| gstaa | git stash apply | +| gstc | git stash clear | +| gstd | git stash drop | +| gstl | git stash list | +| gstp | git stash pop | +| gsts | git stash show --text | +| gstu | git stash --include-untracked | +| gstall | git stash --all | +| gsu | git submodule update | +| gsw | git switch | +| gswc | git switch -c | +| gswm | git switch $(git_main_branch) | +| gswd | git switch $(git_develop_branch) | +| gts | git tag -s | +| gtv | git tag \| sort -V | +| gtl | gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl | +| gunignore | git update-index --no-assume-unchanged | +| gunwip | git log --max-count=1 \| grep -q -c "\-\-wip\-\-" && git reset HEAD~1 | +| gup | git pull --rebase | +| gupv | git pull --rebase --verbose | +| gupa | git pull --rebase --autostash | +| gupav | git pull --rebase --autostash --verbose | +| gupom | git pull --rebase origin $(git_main_branch) | +| gupomi | git pull --rebase=interactive origin $(git_main_branch) | +| glum | git pull upstream $(git_main_branch) | +| gluc | git pull upstream $(git_current_branch) | +| gwch | git whatchanged -p --abbrev-commit --pretty=medium | +| gwip | git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]" | +| gam | git am | +| gamc | git am --continue | +| gams | git am --skip | +| gama | git am --abort | +| gamscp | git am --show-current-patch | | gwt | git worktree | -| gwta | git worktree add | | gwtls | git worktree list | | gwtmv | git worktree move | | gwtrm | git worktree remove | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 76e58a121..7544ca440 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -69,10 +69,10 @@ alias gap='git apply' alias gapt='git apply --3way' alias gb='git branch' -alias gba='git branch -a' -alias gbd='git branch -d' -alias gbda='git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch -d 2>/dev/null' -alias gbD='git branch -D' +alias gba='git branch --all' +alias gbd='git branch --delete' +alias gbda='git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null' +alias gbD='git branch --delete --force' alias gbl='git blame -b -w' alias gbnm='git branch --no-merged' alias gbr='git branch --remote' @@ -82,18 +82,17 @@ alias gbsg='git bisect good' alias gbsr='git bisect reset' alias gbss='git bisect start' -alias gc='git commit -v' -alias gc!='git commit -v --amend' -alias gcn='git commit -v --no-edit' -alias gcn!='git commit -v --no-edit --amend' -alias gca='git commit -v -a' -alias gca!='git commit -v -a --amend' -alias gcan!='git commit -v -a --no-edit --amend' -alias gcans!='git commit -v -a -s --no-edit --amend' -alias gcam='git commit -a -m' -alias gcsm='git commit -s -m' -alias gcas='git commit -a -s' -alias gcasm='git commit -a -s -m' +alias gc='git commit --verbose' +alias gc!='git commit --verbose --amend' +alias gcn!='git commit --verbose --no-edit --amend' +alias gca='git commit --verbose --all' +alias gca!='git commit --verbose --all --amend' +alias gcan!='git commit --verbose --all --no-edit --amend' +alias gcans!='git commit --verbose --all --signoff --no-edit --amend' +alias gcam='git commit --all --message' +alias gcsm='git commit --signoff --message' +alias gcas='git commit --all --signoff' +alias gcasm='git commit --all --signoff --message' alias gcb='git checkout -b' alias gcf='git config --list' @@ -104,20 +103,20 @@ function gccd() { compdef _git gccd=git-clone alias gcl='git clone --recurse-submodules' -alias gclean='git clean -id' -alias gpristine='git reset --hard && git clean -dffx' +alias gclean='git clean --interactive -d' +alias gpristine='git reset --hard && git clean --force -dx' alias gcm='git checkout $(git_main_branch)' alias gcd='git checkout $(git_develop_branch)' -alias gcmsg='git commit -m' +alias gcmsg='git commit --message' alias gco='git checkout' alias gcor='git checkout --recurse-submodules' -alias gcount='git shortlog -sn' +alias gcount='git shortlog --summary --numbered' alias gcp='git cherry-pick' alias gcpa='git cherry-pick --abort' alias gcpc='git cherry-pick --continue' -alias gcs='git commit -S' -alias gcss='git commit -S -s' -alias gcssm='git commit -S -s -m' +alias gcs='git commit --gpg-sign' +alias gcss='git commit --gpg-sign --signoff' +alias gcssm='git commit --gpg-sign --signoff --message' alias gd='git diff' alias gdca='git diff --cached' @@ -208,11 +207,11 @@ alias gignored='git ls-files -v | grep "^[[:lower:]]"' alias git-svn-dcommit-push='git svn dcommit && git push github $(git_main_branch):svntrunk' alias gk='\gitk --all --branches &!' -alias gke='\gitk --all $(git log -g --pretty=%h) &!' +alias gke='\gitk --all $(git log --walk-reflogs --pretty=%h) &!' alias gl='git pull' alias glg='git log --stat' -alias glgp='git log --stat -p' +alias glgp='git log --stat --patch' alias glgg='git log --graph' alias glgga='git log --graph --decorate --all' alias glgm='git log --graph --max-count=10' @@ -240,7 +239,7 @@ alias gpf!='git push --force' alias gpoat='git push origin --all && git push origin --tags' alias gpr='git pull --rebase' alias gpu='git push upstream' -alias gpv='git push -v' +alias gpv='git push --verbose' alias gr='git remote' alias gra='git remote add' @@ -248,7 +247,7 @@ alias grb='git rebase' alias grba='git rebase --abort' alias grbc='git rebase --continue' alias grbd='git rebase $(git_develop_branch)' -alias grbi='git rebase -i' +alias grbi='git rebase --interactive' alias grbm='git rebase $(git_main_branch)' alias grbom='git rebase origin/$(git_main_branch)' alias grbo='git rebase --onto' @@ -268,15 +267,15 @@ alias grst='git restore --staged' alias grt='cd "$(git rev-parse --show-toplevel || echo .)"' alias gru='git reset --' alias grup='git remote update' -alias grv='git remote -v' +alias grv='git remote --verbose' -alias gsb='git status -sb' +alias gsb='git status --short --branch' alias gsd='git svn dcommit' alias gsh='git show' alias gsi='git submodule init' alias gsps='git show --pretty=short --show-signature' alias gsr='git svn rebase' -alias gss='git status -s' +alias gss='git status --short' alias gst='git status' # use the default stash push on git 2.13 and newer @@ -294,27 +293,27 @@ alias gstu='gsta --include-untracked' alias gstall='git stash --all' alias gsu='git submodule update' alias gsw='git switch' -alias gswc='git switch -c' +alias gswc='git switch --create' alias gswm='git switch $(git_main_branch)' alias gswd='git switch $(git_develop_branch)' -alias gts='git tag -s' +alias gts='git tag --sign' alias gtv='git tag | sort -V' -alias gtl='gtl(){ git tag --sort=-v:refname -n -l "${1}*" }; noglob gtl' +alias gtl='gtl(){ git tag --sort=-v:refname -n --list "${1}*" }; noglob gtl' alias gunignore='git update-index --no-assume-unchanged' -alias gunwip='git log -n 1 | grep -q -c "\--wip--" && git reset HEAD~1' +alias gunwip='git log --max-count=1 | grep -q -c "\--wip--" && git reset HEAD~1' alias gup='git pull --rebase' -alias gupv='git pull --rebase -v' +alias gupv='git pull --rebase --verbose' alias gupa='git pull --rebase --autostash' -alias gupav='git pull --rebase --autostash -v' +alias gupav='git pull --rebase --autostash --verbose' alias gupom='git pull --rebase origin $(git_main_branch)' alias gupomi='git pull --rebase=interactive origin $(git_main_branch)' alias glum='git pull upstream $(git_main_branch)' alias gluc='git pull upstream $(git_current_branch)' alias gwch='git whatchanged -p --abbrev-commit --pretty=medium' -alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign -m "--wip-- [skip ci]"' +alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"' alias gwt='git worktree' alias gwta='git worktree add' @@ -342,4 +341,4 @@ function grename() { fi } -unset git_version +unset git_version \ No newline at end of file From 6dc6646d529a7dc6a1d8e1a2c1507dff7e528c8d Mon Sep 17 00:00:00 2001 From: Romain Janvier Date: Thu, 12 Jan 2023 13:56:26 +0100 Subject: [PATCH 121/441] docs(git): add missing entries and run formatter --- plugins/git/README.md | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 8cb4215a9..d455e0eff 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -60,6 +60,8 @@ plugins=(... git) | gcpa | git cherry-pick --abort | | gcpc | git cherry-pick --continue | | gcs | git commit -S | +| gcss | git commit -S -s | +| gcssm | git commit -S -s -m | | gd | git diff | | gdca | git diff --cached | | gdcw | git diff --cached --word-diff | @@ -157,8 +159,8 @@ plugins=(... git) | gsr | git svn rebase | | gss | git status --short | | gst | git status | -| gsta | git stash push | -| gsta | git stash save | +| gsta | git stash push (git version >= 2.13) | +| gsta | git stash save (git version < 2.13) | | gstaa | git stash apply | | gstc | git stash clear | | gstd | git stash drop | @@ -176,7 +178,7 @@ plugins=(... git) | gtv | git tag \| sort -V | | gtl | gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl | | gunignore | git update-index --no-assume-unchanged | -| gunwip | git log --max-count=1 \| grep -q -c "\-\-wip\-\-" && git reset HEAD~1 | +| gunwip | git log --max-count=1 \| grep -q -c "\-\-wip\-\-" && git reset HEAD~1 | | gup | git pull --rebase | | gupv | git pull --rebase --verbose | | gupa | git pull --rebase --autostash | @@ -192,10 +194,10 @@ plugins=(... git) | gams | git am --skip | | gama | git am --abort | | gamscp | git am --show-current-patch | -| gwt | git worktree | -| gwtls | git worktree list | -| gwtmv | git worktree move | -| gwtrm | git worktree remove | +| gwt | git worktree | +| gwtls | git worktree list | +| gwtmv | git worktree move | +| gwtrm | git worktree remove | ### Main branch preference @@ -227,7 +229,7 @@ These are aliases that have been removed, renamed, or otherwise modified in a wa ### Current | Command | Description | -|:-----------------------|:---------------------------------------------------------------------------------------------------------| +| :--------------------- | :------------------------------------------------------------------------------------------------------- | | `grename ` | Rename `old` branch to `new`, including in origin remote | | current_branch | Return the name of the current branch | | git_current_user_name | Returns the `user.name` config value | @@ -240,13 +242,13 @@ These are aliases that have been removed, renamed, or otherwise modified in a wa These features allow to pause a branch development and switch to another one (_"Work in Progress"_, or wip). When you want to go back to work, just unwip it. | Command | Description | -|:-----------------|:------------------------------------------------| +| :--------------- | :---------------------------------------------- | | work_in_progress | Echoes a warning if the current branch is a wip | | gwip | Commit wip branch | | gunwip | Uncommit wip branch | ### Deprecated functions -| Command | Description | Reason | -|:-----------------------|:----------------------------------------|:----------------------------------------------------------------| -| current_repository | Return the names of the current remotes | Didn't work properly. Use `git remote -v` instead (`grv` alias) | +| Command | Description | Reason | +| :----------------- | :-------------------------------------- | :-------------------------------------------------------------- | +| current_repository | Return the names of the current remotes | Didn't work properly. Use `git remote -v` instead (`grv` alias) | From ec0003f2faaf45e8e11660c5b66e98d10d462ee5 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Fri, 13 Jan 2023 12:40:47 +0100 Subject: [PATCH 122/441] ci: update to `checkout@v3` to avoid warnings --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 57a1e3833..8ee2df3d8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,7 +7,7 @@ on: branches: - master push: - branches: + branches: - master concurrency: @@ -27,7 +27,7 @@ jobs: os: [ubuntu-latest, macos-latest] steps: - name: Set up git repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install zsh if: runner.os == 'Linux' run: sudo apt-get update; sudo apt-get install zsh From eb2147c7159cf1ed14b1e5b6784d7d07c3662b52 Mon Sep 17 00:00:00 2001 From: Noam Cohen Date: Fri, 13 Jan 2023 15:35:30 +0200 Subject: [PATCH 123/441] feat(aws): load profiles from credentials file (#11196) Fixes #8472 --- plugins/aws/aws.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index 2167f552c..865e82f19 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -146,6 +146,7 @@ function aws_change_access_key() { } function aws_profiles() { + aws --no-cli-pager configure list-profiles 2> /dev/null && return [[ -r "${AWS_CONFIG_FILE:-$HOME/.aws/config}" ]] || return 1 grep --color=never -Eo '\[.*\]' "${AWS_CONFIG_FILE:-$HOME/.aws/config}" | sed -E 's/^[[:space:]]*\[(profile)?[[:space:]]*([^[:space:]]+)\][[:space:]]*$/\2/g' } From ca0acf31ef163fd2a6bf562c9b9d6077975b41f8 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Fri, 13 Jan 2023 14:42:11 +0100 Subject: [PATCH 124/441] fix(emacs): make `alternate-editor` work for emacs >28 Closes #11441 --- plugins/emacs/README.md | 2 +- plugins/emacs/emacs.plugin.zsh | 2 +- plugins/emacs/emacsclient.sh | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/emacs/README.md b/plugins/emacs/README.md index c8e33b5ab..8ed4a1473 100644 --- a/plugins/emacs/README.md +++ b/plugins/emacs/README.md @@ -25,6 +25,6 @@ The plugin uses a custom launcher (which we'll call here `$EMACS_LAUNCHER`) that | e | `emacs` | Same as emacs alias | | te | `$EMACS_LAUNCHER -nw` | Open terminal emacsclient | | eeval | `$EMACS_LAUNCHER --eval` | Same as `M-x eval` but from outside Emacs | -| eframe | `emacsclient --alternate-editor "" --create-frame` | Create new X frame | +| eframe | `emacsclient --alternate-editor="" --create-frame` | Create new X frame | | efile | - | Print the path to the file open in the current buffer | | ecd | - | Print the directory of the file open in the the current buffer | diff --git a/plugins/emacs/emacs.plugin.zsh b/plugins/emacs/emacs.plugin.zsh index fede5b0c4..4747f035b 100644 --- a/plugins/emacs/emacs.plugin.zsh +++ b/plugins/emacs/emacs.plugin.zsh @@ -32,7 +32,7 @@ alias te="$EMACS_PLUGIN_LAUNCHER -nw" # same than M-x eval but from outside Emacs. alias eeval="$EMACS_PLUGIN_LAUNCHER --eval" # create a new X frame -alias eframe='emacsclient --alternate-editor "" --create-frame' +alias eframe='emacsclient --alternate-editor="" --create-frame' # Emacs ANSI Term tracking if [[ -n "$INSIDE_EMACS" ]]; then diff --git a/plugins/emacs/emacsclient.sh b/plugins/emacs/emacsclient.sh index 96893c932..172c0ae96 100755 --- a/plugins/emacs/emacsclient.sh +++ b/plugins/emacs/emacsclient.sh @@ -15,11 +15,11 @@ emacsfun() { # Only create another X frame if there isn't one present if [ -z "$frames" -o "$frames" = nil ]; then - emacsclient --alternate-editor "" --create-frame "$@" + emacsclient --alternate-editor="" --create-frame "$@" return $? fi - emacsclient --alternate-editor "" "$@" + emacsclient --alternate-editor="" "$@" } # Adapted from https://github.com/davidshepherd7/emacs-read-stdin/blob/master/emacs-read-stdin.sh From df658350a38aa73920fdefa5b255f8d7a58d31dc Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Sun, 15 Jan 2023 17:11:29 +0100 Subject: [PATCH 125/441] fix(clipboard): move wsl detection to higher priority (#11440) Closes #8827 --- lib/clipboard.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/clipboard.zsh b/lib/clipboard.zsh index ad83fc4b2..2f3b6bcad 100644 --- a/lib/clipboard.zsh +++ b/lib/clipboard.zsh @@ -57,6 +57,9 @@ function detect-clipboard() { elif [[ "${OSTYPE}" == (cygwin|msys)* ]]; then function clipcopy() { cat "${1:-/dev/stdin}" > /dev/clipboard; } function clippaste() { cat /dev/clipboard; } + elif (( $+commands[clip.exe] )) && (( $+commands[powershell.exe] )); then + function clipcopy() { cat "${1:-/dev/stdin}" | clip.exe; } + function clippaste() { powershell.exe -noprofile -command Get-Clipboard; } elif [ -n "${WAYLAND_DISPLAY:-}" ] && (( ${+commands[wl-copy]} )) && (( ${+commands[wl-paste]} )); then function clipcopy() { cat "${1:-/dev/stdin}" | wl-copy &>/dev/null &|; } function clippaste() { wl-paste; } @@ -81,9 +84,6 @@ function detect-clipboard() { elif [ -n "${TMUX:-}" ] && (( ${+commands[tmux]} )); then function clipcopy() { tmux load-buffer "${1:--}"; } function clippaste() { tmux save-buffer -; } - elif [[ $(uname -r) = *icrosoft* ]]; then - function clipcopy() { cat "${1:-/dev/stdin}" | clip.exe; } - function clippaste() { powershell.exe -noprofile -command Get-Clipboard; } else function _retry_clipboard_detection_or_fail() { local clipcmd="${1}"; shift From 4b5076b5ec450d30270f31a68d0299392ada042d Mon Sep 17 00:00:00 2001 From: xiagw Date: Mon, 16 Jan 2023 20:19:01 +0800 Subject: [PATCH 126/441] feat(extract): add `pbzip2` and `pixz` (#11435) --- plugins/extract/extract.plugin.zsh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index 1112dd52f..563d88c72 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -30,12 +30,15 @@ EOF local extract_dir="${1:t:r}" local file="$1" full_path="${1:A}" case "${file:l}" in - (*.tar.gz|*.tgz) (( $+commands[pigz] )) && { pigz -dc "$file" | tar xv } || tar zxvf "$file" ;; - (*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$file" ;; + (*.tar.gz|*.tgz) + (( $+commands[pigz] )) && { tar -I pigz -xvf "$file" } || tar zxvf "$file" ;; + (*.tar.bz2|*.tbz|*.tbz2) + (( $+commands[pbzip2] )) && { tar -I pbzip2 -xvf "$file" } || tar xvjf "$file" ;; (*.tar.xz|*.txz) + (( $+commands[pixz] )) && { tar -I pixz -xvf "$file" } || { tar --xz --help &> /dev/null \ && tar --xz -xvf "$file" \ - || xzcat "$file" | tar xvf - ;; + || xzcat "$file" | tar xvf - } ;; (*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \ && tar --lzma -xvf "$file" \ From 8f0e296dbf27026ea0515ebae0d3cc41f236ecdc Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Mon, 16 Jan 2023 20:16:00 +0100 Subject: [PATCH 127/441] feat(nsc): add completion plugin --- plugins/nsc/README.md | 11 +++++++++++ plugins/nsc/nsc.plugin.zsh | 13 +++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 plugins/nsc/README.md create mode 100644 plugins/nsc/nsc.plugin.zsh diff --git a/plugins/nsc/README.md b/plugins/nsc/README.md new file mode 100644 index 000000000..ce0d2c15c --- /dev/null +++ b/plugins/nsc/README.md @@ -0,0 +1,11 @@ +# NSC plugin + +This plugin adds completion for the [NSC](https://github.com/nats-io/nsc). + +To use it, add `nsc` to the plugins array in your zshrc file: + +```zsh +plugins=(... nsc) +``` + +This plugin does not add any aliases. diff --git a/plugins/nsc/nsc.plugin.zsh b/plugins/nsc/nsc.plugin.zsh new file mode 100644 index 000000000..daa599e8f --- /dev/null +++ b/plugins/nsc/nsc.plugin.zsh @@ -0,0 +1,13 @@ +if (( ! $+commands[nsc] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `nsc`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_nsc" ]]; then + typeset -g -A _comps + autoload -Uz _nsc + _comps[nsc]=_nsc +fi + +nsc completion zsh >| "$ZSH_CACHE_DIR/completions/_nsc" &| From 5b9de6a5304ad5f74ccb5862122a23b9ba06f6e3 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Mon, 19 Dec 2022 23:32:24 +0100 Subject: [PATCH 128/441] fix(init): remove duplicated check It was added due to #9039. See https://github.com/ohmyzsh/ohmyzsh/pull/11400#pullrequestreview-1223587420 --- oh-my-zsh.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index e94c2f417..98bda8c8b 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -57,9 +57,7 @@ mkdir -p "$ZSH_CACHE_DIR/completions" (( ${fpath[(Ie)"$ZSH_CACHE_DIR/completions"]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath) # Check for updates on initial load... -if [[ "$DISABLE_AUTO_UPDATE" != true ]]; then - source "$ZSH/tools/check_for_upgrade.sh" -fi +source "$ZSH/tools/check_for_upgrade.sh" # Initializes Oh My Zsh From fe0dd8226d6f58ea98f9f84b279e6c3859993fb9 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Mon, 19 Dec 2022 23:33:55 +0100 Subject: [PATCH 129/441] fix(upgrade): do not upgrade if not called from tty Fixes #11390 --- .prettierrc | 4 ++++ tools/check_for_upgrade.sh | 2 ++ 2 files changed, 6 insertions(+) create mode 100644 .prettierrc diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 000000000..a8f5a14b0 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,4 @@ +{ + "printWidth": 110, + "proseWrap": "always" +} diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index 3a6bb6555..734714c94 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -21,9 +21,11 @@ zstyle -s ':omz:update' mode update_mode || { # Cancel update if: # - the automatic update is disabled. # - the current user doesn't have write permissions nor owns the $ZSH directory. +# - is not run from a tty # - git is unavailable on the system. if [[ "$update_mode" = disabled ]] \ || [[ ! -w "$ZSH" || ! -O "$ZSH" ]] \ + || [[ ! -t 1 ]] \ || ! command git --version 2>&1 >/dev/null; then unset update_mode return From 61dd3682e69aa990a8a3589c5c61ea2e1edf8312 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 17 Jan 2023 13:18:43 +0100 Subject: [PATCH 130/441] feat(nats)!: rename `nsc` plugin to `nats` --- plugins/nats/README.md | 14 ++++++++++++++ plugins/nats/nats.plugin.zsh | 23 +++++++++++++++++++++++ plugins/nsc/README.md | 11 ----------- plugins/nsc/nsc.plugin.zsh | 13 ------------- 4 files changed, 37 insertions(+), 24 deletions(-) create mode 100644 plugins/nats/README.md create mode 100644 plugins/nats/nats.plugin.zsh delete mode 100644 plugins/nsc/README.md delete mode 100644 plugins/nsc/nsc.plugin.zsh diff --git a/plugins/nats/README.md b/plugins/nats/README.md new file mode 100644 index 000000000..0ea26fca1 --- /dev/null +++ b/plugins/nats/README.md @@ -0,0 +1,14 @@ +# NATS plugin + +This plugin adds completion for several tools from [NATS](https://nats.io/). + +- [`nsc`](https://github.com/nats-io/nsc) +- [`natscli`](https://github.com/nats-io/natscli) + +To use it, add `nats` to the plugins array in your zshrc file: + +```zsh +plugins=(... nats) +``` + +This plugin does not add any aliases. diff --git a/plugins/nats/nats.plugin.zsh b/plugins/nats/nats.plugin.zsh new file mode 100644 index 000000000..8b95b07c6 --- /dev/null +++ b/plugins/nats/nats.plugin.zsh @@ -0,0 +1,23 @@ +if (( $+commands[nsc] )); then + # If the completion file doesn't exist yet, we need to autoload it and + # bind it to `nsc`. Otherwise, compinit will have already done that. + if [[ ! -f "$ZSH_CACHE_DIR/completions/_nsc" ]]; then + typeset -g -A _comps + autoload -Uz _nsc + _comps[nsc]=_nsc + fi + + nsc completion zsh >| "$ZSH_CACHE_DIR/completions/_nsc" &| +fi + +if (( $+commands[nats] )); then + # If the completion file doesn't exist yet, we need to autoload it and + # bind it to `nats`. Otherwise, compinit will have already done that. + if [[ ! -f "$ZSH_CACHE_DIR/completions/_nats" ]]; then + typeset -g -A _comps + autoload -Uz _nats + _comps[nats]=_nats + fi + + nats --completion-script-zsh >| "$ZSH_CACHE_DIR/completions/_nats" &| +fi diff --git a/plugins/nsc/README.md b/plugins/nsc/README.md deleted file mode 100644 index ce0d2c15c..000000000 --- a/plugins/nsc/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# NSC plugin - -This plugin adds completion for the [NSC](https://github.com/nats-io/nsc). - -To use it, add `nsc` to the plugins array in your zshrc file: - -```zsh -plugins=(... nsc) -``` - -This plugin does not add any aliases. diff --git a/plugins/nsc/nsc.plugin.zsh b/plugins/nsc/nsc.plugin.zsh deleted file mode 100644 index daa599e8f..000000000 --- a/plugins/nsc/nsc.plugin.zsh +++ /dev/null @@ -1,13 +0,0 @@ -if (( ! $+commands[nsc] )); then - return -fi - -# If the completion file doesn't exist yet, we need to autoload it and -# bind it to `nsc`. Otherwise, compinit will have already done that. -if [[ ! -f "$ZSH_CACHE_DIR/completions/_nsc" ]]; then - typeset -g -A _comps - autoload -Uz _nsc - _comps[nsc]=_nsc -fi - -nsc completion zsh >| "$ZSH_CACHE_DIR/completions/_nsc" &| From f1a800067f46fa990a11ea0055459560ce63a7ae Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Thu, 19 Jan 2023 12:20:44 +0100 Subject: [PATCH 131/441] fix(brew)!: rename `buf` alias to `bfu` BREAKING CHANGE: rename `buf` alias to `bfu` to avoid conflicts with protobuf tool --- plugins/brew/README.md | 28 ++++++++++++++-------------- plugins/brew/brew.plugin.zsh | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/plugins/brew/README.md b/plugins/brew/README.md index 4a42b3d74..d0c150237 100644 --- a/plugins/brew/README.md +++ b/plugins/brew/README.md @@ -17,20 +17,20 @@ defined for convenience. ## Aliases -| Alias | Command | Description | -| -------- | ------------------------------------- | ------------------------------------------------------------------- | -| `bcubc` | `brew upgrade --cask && brew cleanup` | Update outdated casks, then run cleanup. | -| `bcubo` | `brew update && brew outdated --cask` | Update Homebrew data, then list outdated casks. | -| `bcubc` | `brew upgrade --cask && brew cleanup` | Update outdated casks, then run cleanup. | -| `brewp` | `brew pin` | Pin a specified formula so that it's not upgraded. | -| `brews` | `brew list -1` | List installed formulae or the installed files for a given formula. | -| `brewsp` | `brew list --pinned` | List pinned formulae, or show the version of a given formula. | -| `bubc` | `brew upgrade && brew cleanup` | Upgrade outdated formulae and casks, then run cleanup. | -| `bugbc` | `brew upgrade --greedy && brew cleanup` | Upgrade outdated formulae and casks (greedy), then run cleanup. | -| `bubo` | `brew update && brew outdated` | Update Homebrew data, then list outdated formulae and casks. | -| `bubu` | `bubo && bubc` | Do the last two operations above. | -| `buf` | `brew upgrade --formula` | Upgrade only formulas (not casks). | -| `buz` | `brew uninstall --zap` | Remove all files associated with a cask. | +| Alias | Command | Description | +| -------- | --------------------------------------- | ------------------------------------------------------------------- | +| `bcubc` | `brew upgrade --cask && brew cleanup` | Update outdated casks, then run cleanup. | +| `bcubo` | `brew update && brew outdated --cask` | Update Homebrew data, then list outdated casks. | +| `bcubc` | `brew upgrade --cask && brew cleanup` | Update outdated casks, then run cleanup. | +| `brewp` | `brew pin` | Pin a specified formula so that it's not upgraded. | +| `brews` | `brew list -1` | List installed formulae or the installed files for a given formula. | +| `brewsp` | `brew list --pinned` | List pinned formulae, or show the version of a given formula. | +| `bubc` | `brew upgrade && brew cleanup` | Upgrade outdated formulae and casks, then run cleanup. | +| `bugbc` | `brew upgrade --greedy && brew cleanup` | Upgrade outdated formulae and casks (greedy), then run cleanup. | +| `bubo` | `brew update && brew outdated` | Update Homebrew data, then list outdated formulae and casks. | +| `bubu` | `bubo && bubc` | Do the last two operations above. | +| `bfu` | `brew upgrade --formula` | Upgrade only formulas (not casks). | +| `buz` | `brew uninstall --zap` | Remove all files associated with a cask. | ## Completion diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh index 8275454a4..f6abe0875 100644 --- a/plugins/brew/brew.plugin.zsh +++ b/plugins/brew/brew.plugin.zsh @@ -35,7 +35,7 @@ alias bugbc='brew upgrade --greedy && brew cleanup' alias bubo='brew update && brew outdated' alias bubu='bubo && bubc' alias bubug='bubo && bugbc' -alias buf='brew upgrade --formula' +alias bfu='brew upgrade --formula' alias buz='brew uninstall --zap' function brews() { From bf57b4ff3d53726a1317459b0f48853e90d7a6e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20Marc=C3=A8=20i=20Igual?= Date: Fri, 20 Jan 2023 19:45:14 +0100 Subject: [PATCH 132/441] feat(functions/take): make `.tgz` behave as `.tar.gz` (#11446) --- lib/functions.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/functions.zsh b/lib/functions.zsh index dfcc4d961..6e1faa6aa 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -56,7 +56,7 @@ function takegit() { } function take() { - if [[ $1 =~ ^(https?|ftp).*\.tar\.(gz|bz2|xz)$ ]]; then + if [[ $1 =~ ^(https?|ftp).*\.(tar\.(gz|bz2|xz)|tgz)$ ]]; then takeurl "$1" elif [[ $1 =~ ^([A-Za-z0-9]\+@|https?|git|ssh|ftps?|rsync).*\.git/?$ ]]; then takegit "$1" From ba8777fc3013a3c682d8144586e16457cbe12586 Mon Sep 17 00:00:00 2001 From: Yuxin Wu Date: Sat, 21 Jan 2023 02:36:07 -0800 Subject: [PATCH 133/441] perf(fzf): speed up startup on debian (#11122) --- plugins/fzf/fzf.plugin.zsh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/plugins/fzf/fzf.plugin.zsh b/plugins/fzf/fzf.plugin.zsh index 9c8dd8648..85a0bf270 100644 --- a/plugins/fzf/fzf.plugin.zsh +++ b/plugins/fzf/fzf.plugin.zsh @@ -60,8 +60,8 @@ function fzf_setup_using_base_dir() { function fzf_setup_using_debian() { - if (( ! $+commands[dpkg] )) || ! dpkg -s fzf &>/dev/null; then - # Either not a debian based distro, or no fzf installed + if (( ! $+commands[dpkg] )); then + # Not a debian based distro return 1 fi @@ -72,11 +72,19 @@ function fzf_setup_using_debian() { case $PREFIX in *com.termux*) + if [[ ! -f "${PREFIX}/bin/fzf" ]]; then + # fzf not installed + return 1 + fi # Support Termux package completions="${PREFIX}/share/fzf/completion.zsh" key_bindings="${PREFIX}/share/fzf/key-bindings.zsh" ;; *) + if [[ ! -f /usr/bin/fzf ]]; then + # fzf not installed + return 1 + fi # Determine completion file path: first bullseye/sid, then buster/stretch completions="/usr/share/doc/fzf/examples/completion.zsh" [[ -f "$completions" ]] || completions="/usr/share/zsh/vendor-completions/_fzf" From a1c54e03f98b594a6fcc368c2c113d469ffaa368 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Sun, 22 Jan 2023 23:36:57 +0100 Subject: [PATCH 134/441] feat(fzf): add `skip-dpkg` flag to avoid some regressions See https://github.com/ohmyzsh/ohmyzsh/pull/11122#issuecomment-1399607430 --- plugins/fzf/README.md | 9 +++++++++ plugins/fzf/fzf.plugin.zsh | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/plugins/fzf/README.md b/plugins/fzf/README.md index beedf4690..7e3e3e5b0 100644 --- a/plugins/fzf/README.md +++ b/plugins/fzf/README.md @@ -50,3 +50,12 @@ Set whether to disable key bindings (CTRL-T, CTRL-R, ALT-C): ```zsh DISABLE_FZF_KEY_BINDINGS="true" ``` + +### Skip `dpkg` loading + +If you have `dpkg` available in your `$PATH` but you don't want to load `fzf` from there, and facing some +issues, you can define this option before loading `oh-my-zsh` in order to skip that loading: + +```zsh +zstyle ':omz:plugins:fzf' skip-dpkg yes +``` diff --git a/plugins/fzf/fzf.plugin.zsh b/plugins/fzf/fzf.plugin.zsh index 85a0bf270..c07d38493 100644 --- a/plugins/fzf/fzf.plugin.zsh +++ b/plugins/fzf/fzf.plugin.zsh @@ -60,8 +60,8 @@ function fzf_setup_using_base_dir() { function fzf_setup_using_debian() { - if (( ! $+commands[dpkg] )); then - # Not a debian based distro + if (( ! $+commands[dpkg] )) || zstyle -t ':omz:plugins:fzf' skip-dpkg; then + # Not a debian based distro return 1 fi From 7de55844b26394688221b1cd12ef4053b3c7f6c7 Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Mon, 23 Jan 2023 19:40:42 +0100 Subject: [PATCH 135/441] feat(mlh): add separate prompt symbol for root user (#11451) --- themes/mlh.zsh-theme | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/themes/mlh.zsh-theme b/themes/mlh.zsh-theme index baff3fb63..c059bf850 100644 --- a/themes/mlh.zsh-theme +++ b/themes/mlh.zsh-theme @@ -47,6 +47,10 @@ if [ -z "$MLH_SHELL_SYMBOL" ]; then MLH_SHELL_SYMBOL="$ " fi +if [ -z "$MLH_SHELL_SYMBOL_ROOT" ]; then + MLH_SHELL_SYMBOL_ROOT="# " +fi + # colors USER_COLOR="%F{001}" DEVICE_COLOR="%F{033}" @@ -83,7 +87,11 @@ exit_code() { } prompt_end() { - printf "\n$MLH_SHELL_SYMBOL" + if [ "$UID" -eq 0 ]; then + printf "\n$MLH_SHELL_SYMBOL_ROOT" + else + printf "\n$MLH_SHELL_SYMBOL" + fi } # Set git_prompt_info text From 657ad0523d5a29e0bdc8af0cd63c23ac597406e8 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 25 Jan 2023 08:50:06 +0100 Subject: [PATCH 136/441] fix(theme-and-appearance): fix `diff` completion in macOS Closes #11416 Closes #11454 --- lib/theme-and-appearance.zsh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/theme-and-appearance.zsh b/lib/theme-and-appearance.zsh index 00947f72d..9b908bef0 100644 --- a/lib/theme-and-appearance.zsh +++ b/lib/theme-and-appearance.zsh @@ -41,7 +41,11 @@ fi # enable diff color if possible. if command diff --color /dev/null /dev/null &>/dev/null; then - alias diff='diff --color' + function color-diff { + diff --color $@ + } + alias diff="color-diff" + compdef _diff color-diff # compdef is already loaded by this point fi setopt auto_cd From e55e3f0f56ab4df21eb33e19569c295e7e5e71a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 26 Jan 2023 20:45:48 +0100 Subject: [PATCH 137/441] fix(systemadmin): handle error for no IPv6 route in `geteip` (#11458) --- plugins/systemadmin/systemadmin.plugin.zsh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/systemadmin/systemadmin.plugin.zsh b/plugins/systemadmin/systemadmin.plugin.zsh index 9b5159ff1..7ce62bac1 100644 --- a/plugins/systemadmin/systemadmin.plugin.zsh +++ b/plugins/systemadmin/systemadmin.plugin.zsh @@ -140,7 +140,13 @@ function d0() { # gather external ip address function geteip() { curl -s -S -4 https://icanhazip.com - curl -s -S -6 https://icanhazip.com + + # handle case when there is no IPv6 external IP, which shows error + # curl: (7) Couldn't connect to server + curl -s -S -6 https://icanhazip.com 2>/dev/null + local ret=$? + (( ret == 7 )) && print -P -u2 "%F{red}error: no IPv6 route to host%f" + return $ret } # determine local IP address(es) From b0bffcaf865434711d98b63eddd0aa52be0fbeb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Fri, 27 Jan 2023 16:22:27 +0100 Subject: [PATCH 138/441] fix(fzf): fix check for true Debian-like in debian setup function (#11460) Check for `apt` and `apt-get` in debian setup function. Look for exact directory in debian-like setup function. Fixes #11459 --- plugins/fzf/README.md | 9 --------- plugins/fzf/fzf.plugin.zsh | 4 ++-- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/plugins/fzf/README.md b/plugins/fzf/README.md index 7e3e3e5b0..beedf4690 100644 --- a/plugins/fzf/README.md +++ b/plugins/fzf/README.md @@ -50,12 +50,3 @@ Set whether to disable key bindings (CTRL-T, CTRL-R, ALT-C): ```zsh DISABLE_FZF_KEY_BINDINGS="true" ``` - -### Skip `dpkg` loading - -If you have `dpkg` available in your `$PATH` but you don't want to load `fzf` from there, and facing some -issues, you can define this option before loading `oh-my-zsh` in order to skip that loading: - -```zsh -zstyle ':omz:plugins:fzf' skip-dpkg yes -``` diff --git a/plugins/fzf/fzf.plugin.zsh b/plugins/fzf/fzf.plugin.zsh index c07d38493..7bb6667d0 100644 --- a/plugins/fzf/fzf.plugin.zsh +++ b/plugins/fzf/fzf.plugin.zsh @@ -60,7 +60,7 @@ function fzf_setup_using_base_dir() { function fzf_setup_using_debian() { - if (( ! $+commands[dpkg] )) || zstyle -t ':omz:plugins:fzf' skip-dpkg; then + if (( ! $+commands[apt] && ! $+commands[apt-get] )); then # Not a debian based distro return 1 fi @@ -81,7 +81,7 @@ function fzf_setup_using_debian() { key_bindings="${PREFIX}/share/fzf/key-bindings.zsh" ;; *) - if [[ ! -f /usr/bin/fzf ]]; then + if [[ ! -d /usr/share/doc/fzf/examples ]]; then # fzf not installed return 1 fi From 39525e5ec36052a83fadd47f377a26d33df851bd Mon Sep 17 00:00:00 2001 From: Taehyun Hwang Date: Sun, 29 Jan 2023 02:45:23 +0900 Subject: [PATCH 139/441] feat(git): add `gpsupf` alias (#11268) --- plugins/git/README.md | 1 + plugins/git/git.plugin.zsh | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index d455e0eff..d5eaaa53f 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -89,6 +89,7 @@ plugins=(... git) | ggsup | git branch --set-upstream-to=origin/$(git_current_branch) | | ggu | git pull --rebase origin $(current_branch) | | gpsup | git push --set-upstream origin $(git_current_branch) | +| gpsupf | git push --set-upstream origin $(git_current_branch) --force-with-lease | | ghh | git help | | gignore | git update-index --assume-unchanged | | gignored | git ls-files -v \| grep "^[[:lower:]]" | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 7544ca440..fc2c08ccd 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -199,6 +199,7 @@ alias ggpush='git push origin "$(git_current_branch)"' alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)' alias gpsup='git push --set-upstream origin $(git_current_branch)' +alias gpsupf='git push --set-upstream origin $(git_current_branch) --force-with-lease' alias ghh='git help' @@ -341,4 +342,4 @@ function grename() { fi } -unset git_version \ No newline at end of file +unset git_version From b2313ec7493dc127c9712f20654579221d0bcce6 Mon Sep 17 00:00:00 2001 From: Alex Date: Thu, 22 Oct 2020 21:57:23 -0400 Subject: [PATCH 140/441] feat(installer): respect and install in `$ZDOTDIR` if set (#9376) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #9001 Fixes #10479 Closes #9376 Co-authored-by: Marc Cornellà --- tools/install.sh | 45 ++++++++++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index a6538f9d7..4582ed03e 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -16,6 +16,9 @@ # ZSH=~/.zsh sh install.sh # # Respects the following environment variables: +# ZDOTDIR - path to Zsh dotfiles directory (default: unset). See [1][2] +# [1] https://zsh.sourceforge.io/Doc/Release/Parameters.html#index-ZDOTDIR +# [2] https://zsh.sourceforge.io/Doc/Release/Files.html#index-ZDOTDIR_002c-use-of # ZSH - path to the Oh My Zsh repository folder (default: $HOME/.oh-my-zsh) # REPO - name of the GitHub repo to install from (default: ohmyzsh/ohmyzsh) # REMOTE - full remote URL of the git repo to install (default: GitHub via HTTPS) @@ -53,8 +56,17 @@ HOME="${HOME:-$(eval echo ~$USER)}" # Track if $ZSH was provided custom_zsh=${ZSH:+yes} -# Default settings +# Use $zdot to keep track of where the directory is for zsh dotfiles +# To check if $ZDOTDIR was provided, explicitly check for $ZDOTDIR +zdot="${ZDOTDIR:-$HOME}" + +# Default value for $ZSH +# a) if $ZDOTDIR is supplied: $ZDOTDIR/ohmyzsh +# b) otherwise, $HOME/.oh-my-zsh +ZSH="${ZSH:-${ZDOTDIR:+$ZDOTDIR/ohmyzsh}}" ZSH="${ZSH:-$HOME/.oh-my-zsh}" + +# Default settings REPO=${REPO:-ohmyzsh/ohmyzsh} REMOTE=${REMOTE:-https://github.com/${REPO}.git} BRANCH=${BRANCH:-master} @@ -311,11 +323,11 @@ setup_zshrc() { echo "${FMT_BLUE}Looking for an existing zsh config...${FMT_RESET}" # Must use this exact name so uninstall.sh can find it - OLD_ZSHRC=~/.zshrc.pre-oh-my-zsh - if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]; then + OLD_ZSHRC="$zdot/.zshrc.pre-oh-my-zsh" + if [ -f "$zdot/.zshrc" ] || [ -h "$zdot/.zshrc" ]; then # Skip this if the user doesn't want to replace an existing .zshrc if [ "$KEEP_ZSHRC" = yes ]; then - echo "${FMT_YELLOW}Found ~/.zshrc.${FMT_RESET} ${FMT_GREEN}Keeping...${FMT_RESET}" + echo "${FMT_YELLOW}Found ${zdot}/.zshrc.${FMT_RESET} ${FMT_GREEN}Keeping...${FMT_RESET}" return fi if [ -e "$OLD_ZSHRC" ]; then @@ -327,19 +339,22 @@ setup_zshrc() { fi mv "$OLD_ZSHRC" "${OLD_OLD_ZSHRC}" - echo "${FMT_YELLOW}Found old ~/.zshrc.pre-oh-my-zsh." \ + echo "${FMT_YELLOW}Found old .zshrc.pre-oh-my-zsh." \ "${FMT_GREEN}Backing up to ${OLD_OLD_ZSHRC}${FMT_RESET}" fi - echo "${FMT_YELLOW}Found ~/.zshrc.${FMT_RESET} ${FMT_GREEN}Backing up to ${OLD_ZSHRC}${FMT_RESET}" - mv ~/.zshrc "$OLD_ZSHRC" + echo "${FMT_YELLOW}Found ${zdot}/.zshrc.${FMT_RESET} ${FMT_GREEN}Backing up to ${OLD_ZSHRC}${FMT_RESET}" + mv "$zdot/.zshrc" "$OLD_ZSHRC" fi - echo "${FMT_GREEN}Using the Oh My Zsh template file and adding it to ~/.zshrc.${FMT_RESET}" + echo "${FMT_GREEN}Using the Oh My Zsh template file and adding it to $zdot/.zshrc.${FMT_RESET}" - # Replace $HOME path with '$HOME' in $ZSH variable in .zshrc file - omz=$(echo "$ZSH" | sed "s|^$HOME/|\$HOME/|") - sed "s|^export ZSH=.*$|export ZSH=\"${omz}\"|" "$ZSH/templates/zshrc.zsh-template" > ~/.zshrc-omztemp - mv -f ~/.zshrc-omztemp ~/.zshrc + # Modify $ZSH variable in .zshrc directory to use the literal $ZDOTDIR or $HOME + omz="$ZSH" + [ -z "$ZDOTDIR" ] || omz=$(echo "$omz" | sed "s|^$ZDOTDIR/|\$ZDOTDIR/|") + omz=$(echo "$omz" | sed "s|^$HOME/|\$HOME/|") + + sed "s|^export ZSH=.*$|export ZSH=\"${omz}\"|" "$ZSH/templates/zshrc.zsh-template" > "$zdot/.zshrc-omztemp" + mv -f "$zdot/.zshrc-omztemp" "$zdot/.zshrc" echo } @@ -407,9 +422,9 @@ EOF # We're going to change the default shell, so back up the current one if [ -n "$SHELL" ]; then - echo "$SHELL" > ~/.shell.pre-oh-my-zsh + echo "$SHELL" > "$zdot/.shell.pre-oh-my-zsh" else - grep "^$USER:" /etc/passwd | awk -F: '{print $7}' > ~/.shell.pre-oh-my-zsh + grep "^$USER:" /etc/passwd | awk -F: '{print $7}' > "$zdot/.shell.pre-oh-my-zsh" fi echo "Changing your shell to $zsh..." @@ -451,7 +466,7 @@ print_success() { printf '\n' printf '\n' printf "%s %s %s\n" "Before you scream ${FMT_BOLD}${FMT_YELLOW}Oh My Zsh!${FMT_RESET} look over the" \ - "$(fmt_code "$(fmt_link ".zshrc" "file://$HOME/.zshrc" --text)")" \ + "$(fmt_code "$(fmt_link ".zshrc" "file://$zdot/.zshrc" --text)")" \ "file to select plugins, themes, and options." printf '\n' printf '%s\n' "• Follow us on Twitter: $(fmt_link @ohmyzsh https://twitter.com/ohmyzsh)" From 27f31799df369ffdd825014bbbb853ad6a1ee520 Mon Sep 17 00:00:00 2001 From: Stoyan Dimov Date: Wed, 1 Feb 2023 10:51:31 +0100 Subject: [PATCH 141/441] feat(dotnet): add `dwt` alias (#11470) --- 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 87dfd8f8d..a15e80577 100644 --- a/plugins/dotnet/README.md +++ b/plugins/dotnet/README.md @@ -17,6 +17,7 @@ plugins=(... dotnet) | dt | dotnet test | Run unit tests using the test runner specified in a .NET project. | | dw | dotnet watch | Watch for source file changes and restart the dotnet command. | | dwr | dotnet watch run | Watch for source file changes and restart the `run` command. | +| dwt | dotnet watch test| Watch for source file changes and restart the `test` command. | | ds | dotnet sln | Modify Visual Studio solution files. | | da | dotnet add | Add a package or reference to a .NET project. | | dp | dotnet pack | Create a NuGet package. | diff --git a/plugins/dotnet/dotnet.plugin.zsh b/plugins/dotnet/dotnet.plugin.zsh index 8ea31cdbd..89d464670 100644 --- a/plugins/dotnet/dotnet.plugin.zsh +++ b/plugins/dotnet/dotnet.plugin.zsh @@ -26,6 +26,7 @@ alias dr='dotnet run' alias dt='dotnet test' alias dw='dotnet watch' alias dwr='dotnet watch run' +alias dwt='dotnet watch test' alias ds='dotnet sln' alias da='dotnet add' alias dp='dotnet pack' From 5c9a3d2f4f5cecc019b49d8fa3c151e547f8b139 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 1 Feb 2023 21:19:55 +0100 Subject: [PATCH 142/441] fix(installer): don't use `$ZDOTDIR` in zshrc file if same as `$HOME` Fixes #11471 --- tools/install.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index 4582ed03e..3ea12f8d4 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -61,9 +61,9 @@ custom_zsh=${ZSH:+yes} zdot="${ZDOTDIR:-$HOME}" # Default value for $ZSH -# a) if $ZDOTDIR is supplied: $ZDOTDIR/ohmyzsh +# a) if $ZDOTDIR is supplied and not $HOME: $ZDOTDIR/ohmyzsh # b) otherwise, $HOME/.oh-my-zsh -ZSH="${ZSH:-${ZDOTDIR:+$ZDOTDIR/ohmyzsh}}" +[ "$ZDOTDIR" = "$HOME" ] || ZSH="${ZSH:-${ZDOTDIR:+$ZDOTDIR/ohmyzsh}}" ZSH="${ZSH:-$HOME/.oh-my-zsh}" # Default settings @@ -350,7 +350,9 @@ setup_zshrc() { # Modify $ZSH variable in .zshrc directory to use the literal $ZDOTDIR or $HOME omz="$ZSH" - [ -z "$ZDOTDIR" ] || omz=$(echo "$omz" | sed "s|^$ZDOTDIR/|\$ZDOTDIR/|") + if [ -n "$ZDOTDIR" ] && [ "$ZDOTDIR" != "$HOME" ]; then + omz=$(echo "$omz" | sed "s|^$ZDOTDIR/|\$ZDOTDIR/|") + fi omz=$(echo "$omz" | sed "s|^$HOME/|\$HOME/|") sed "s|^export ZSH=.*$|export ZSH=\"${omz}\"|" "$ZSH/templates/zshrc.zsh-template" > "$zdot/.zshrc-omztemp" From 6c3cf658f6f341f7c716d6ff16714465cb651725 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 2 Feb 2023 08:49:08 +0100 Subject: [PATCH 143/441] fix(installer): automatically create ZDOTDIR path if it doesn't exist --- tools/install.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/install.sh b/tools/install.sh index 3ea12f8d4..f4ef16a0c 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -523,6 +523,11 @@ EOF exit 1 fi + # Create ZDOTDIR folder structure if it doesn't exist + if [ -n "$ZDOTDIR" ]; then + mkdir -p "$ZDOTDIR" + fi + setup_ohmyzsh setup_zshrc setup_shell From b256c12d2e96d0fbe63910df82b9709cca4b38df Mon Sep 17 00:00:00 2001 From: David Yang Date: Thu, 2 Feb 2023 16:03:41 +0800 Subject: [PATCH 144/441] docs(fasd): recommend fork over original fasd (#11474) --- plugins/fasd/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/fasd/README.md b/plugins/fasd/README.md index a5c74e5b8..7c44ac84d 100644 --- a/plugins/fasd/README.md +++ b/plugins/fasd/README.md @@ -10,7 +10,7 @@ plugins=(... fasd) ## Installation -Please find detailed installation guide [`here`](https://github.com/clvv/fasd#install) +Please find detailed installation guide [`here`](https://github.com/whjvenyl/fasd#install) ## Aliases From ea4854dba3ef72e18df2c7cc79db2806d92322eb Mon Sep 17 00:00:00 2001 From: Hazael Sanchez Date: Thu, 2 Feb 2023 02:30:34 -0800 Subject: [PATCH 145/441] feat(directories): add config to skip aliases (#11469) Co-authored-by: Carlo Sala --- README.md | 10 ++++++++++ lib/directories.zsh | 2 ++ 2 files changed, 12 insertions(+) diff --git a/README.md b/README.md index 1e4b7ff70..7f4a26cab 100644 --- a/README.md +++ b/README.md @@ -276,6 +276,16 @@ If you have many functions that go well together, you can put them as a `XYZ.plu If you would like to override the functionality of a plugin distributed with Oh My Zsh, create a plugin of the same name in the `custom/plugins/` directory and it will be loaded instead of the one in `plugins/`. +### Remove directories aliases + +If you want to skip ohmyzsh default +[directories aliases](https://github.com/ohmyzsh/ohmyzsh/blob/master/lib/directories.zsh) you can add the +following snippet to your `zshrc`, before loading `oh-my-zsh.sh` script: + +```zsh +zstyle ':omz:directories' aliases no +``` + ## Getting Updates By default, you will be prompted to check for updates every 2 weeks. You can choose other update modes by adding a line to your `~/.zshrc` file, **before Oh My Zsh is loaded**: diff --git a/lib/directories.zsh b/lib/directories.zsh index c62f56468..5aa1b3d5b 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -3,6 +3,8 @@ setopt auto_pushd setopt pushd_ignore_dups setopt pushdminus +zstyle -T ':omz:directories' aliases || return + alias -g ...='../..' alias -g ....='../../..' alias -g .....='../../../..' From f8bf8f0029a475831ebfba0799975ede20e08742 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Thu, 15 Dec 2022 23:06:06 +0100 Subject: [PATCH 146/441] fix(sudo): only call redisplay if zle is enabled Fixes #11322 --- plugins/sudo/sudo.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/sudo/sudo.plugin.zsh b/plugins/sudo/sudo.plugin.zsh index 2a0b3bfc4..66b253fe7 100644 --- a/plugins/sudo/sudo.plugin.zsh +++ b/plugins/sudo/sudo.plugin.zsh @@ -96,7 +96,7 @@ sudo-command-line() { LBUFFER="${WHITESPACE}${LBUFFER}" # Redisplay edit buffer (compatibility with zsh-syntax-highlighting) - zle redisplay + zle && zle redisplay # only run redisplay if zle is enabled } } From 9b91e8256011240cbf65ba65fbe55c5fd9dbae07 Mon Sep 17 00:00:00 2001 From: david Date: Sun, 5 Feb 2023 11:32:49 +0400 Subject: [PATCH 147/441] feat(extract): add `zpaq` support (#11478) --- plugins/extract/README.md | 1 + plugins/extract/_extract | 2 +- plugins/extract/extract.plugin.zsh | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/extract/README.md b/plugins/extract/README.md index 44f0b05a1..f67b53618 100644 --- a/plugins/extract/README.md +++ b/plugins/extract/README.md @@ -55,6 +55,7 @@ plugins=(... extract) | `xz` | LZMA2 archive | | `zip` | Zip archive | | `zst` | Zstandard file (zstd) | +| `zpaq` | Zpaq file | See [list of archive formats](https://en.wikipedia.org/wiki/List_of_archive_formats) for more information regarding archive formats. diff --git a/plugins/extract/_extract b/plugins/extract/_extract index 27b099c9e..64678fede 100644 --- a/plugins/extract/_extract +++ b/plugins/extract/_extract @@ -3,5 +3,5 @@ _arguments \ '(-r --remove)'{-r,--remove}'[Remove archive.]' \ - "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|cab|cpio|deb|ear|gz|ipa|ipsw|jar|lrz|lz4|lzma|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.lrz|tar.lz|tar.lz4|tar.xz|tar.zma|tar.zst|tbz|tbz2|tgz|tlz|txz|tzst|war|whl|xpi|xz|zip|zst)(-.)'" \ + "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|cab|cpio|deb|ear|gz|ipa|ipsw|jar|lrz|lz4|lzma|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.lrz|tar.lz|tar.lz4|tar.xz|tar.zma|tar.zst|tbz|tbz2|tgz|tlz|txz|tzst|war|whl|xpi|xz|zip|zst|zpaq)(-.)'" \ && return 0 diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index 563d88c72..4c84ef883 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -73,6 +73,7 @@ EOF (*.zst) unzstd "$file" ;; (*.cab) cabextract -d "$extract_dir" "$file" ;; (*.cpio) cpio -idmvF "$file" ;; + (*.zpaq) zpaq x "$file" ;; (*) echo "extract: '$file' cannot be extracted" >&2 success=1 ;; From d48cbb82b1a44d646c6b12b6bfb13c5fd366e1ae Mon Sep 17 00:00:00 2001 From: Unnit Metaliya Date: Mon, 6 Feb 2023 06:07:40 -0500 Subject: [PATCH 148/441] feat(git)!: add `force-if-includes` flag (#11481) Co-authored-by: Carlo Sala Closes #11388 BREAKING CHANGE: `gpf` and `gpsupf` now have the `--force-if-includes` flag if git version is greater than 2.30. It will make force pushes more safer. See https://stackoverflow.com/questions/65837109/when-should-i-use-git-push-force-if-includes --- plugins/git/README.md | 5 ++++- plugins/git/git.plugin.zsh | 8 ++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index d5eaaa53f..cd018d435 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -89,7 +89,8 @@ plugins=(... git) | ggsup | git branch --set-upstream-to=origin/$(git_current_branch) | | ggu | git pull --rebase origin $(current_branch) | | gpsup | git push --set-upstream origin $(git_current_branch) | -| gpsupf | git push --set-upstream origin $(git_current_branch) --force-with-lease | +| gpsupf | git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes (git version >= 2.30) | +| gpsupf | git push --set-upstream origin $(git_current_branch) --force-with-lease (git version < 2.30) | | ghh | git help | | gignore | git update-index --assume-unchanged | | gignored | git ls-files -v \| grep "^[[:lower:]]" | @@ -120,6 +121,8 @@ plugins=(... git) | gp | git push | | gpd | git push --dry-run | | gpf | git push --force-with-lease | +| gpf | git push --force-with-lease --force-if-includes (git version >= 2.30) | +| gpf | git push --force-with-lease (git version < 2.30) | | gpf! | git push --force | | gpoat | git push origin --all && git push origin --tags | | gpr | git pull --rebase | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index fc2c08ccd..7541ccff2 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -199,7 +199,9 @@ alias ggpush='git push origin "$(git_current_branch)"' alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)' alias gpsup='git push --set-upstream origin $(git_current_branch)' -alias gpsupf='git push --set-upstream origin $(git_current_branch) --force-with-lease' +is-at-least 2.30 "$git_version" \ + && alias gpsupf='git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes' \ + || alias gpsupf='git push --set-upstream origin $(git_current_branch) --force-with-lease' alias ghh='git help' @@ -235,7 +237,9 @@ alias gma='git merge --abort' alias gp='git push' alias gpd='git push --dry-run' -alias gpf='git push --force-with-lease' +is-at-least 2.30 "$git_version" \ + && alias gpf='git push --force-with-lease --force-if-includes' \ + || alias gpf='git push --force-with-lease' alias gpf!='git push --force' alias gpoat='git push origin --all && git push origin --tags' alias gpr='git pull --rebase' From 3fd63fdf01344bb5f5f13a9c33eb0b7a72fe4771 Mon Sep 17 00:00:00 2001 From: Andrew Stone <61954919+adrwstone@users.noreply.github.com> Date: Mon, 6 Feb 2023 07:39:37 -0330 Subject: [PATCH 149/441] feat(zsh-interactive-cd): sync version with upstream (#11024) --- plugins/zsh-interactive-cd/LICENSE | 375 ++++++++++++++++++ plugins/zsh-interactive-cd/README.md | 22 +- plugins/zsh-interactive-cd/demo.gif | Bin 0 -> 1497944 bytes .../zsh-interactive-cd.plugin.zsh | 54 ++- 4 files changed, 425 insertions(+), 26 deletions(-) create mode 100644 plugins/zsh-interactive-cd/LICENSE create mode 100644 plugins/zsh-interactive-cd/demo.gif diff --git a/plugins/zsh-interactive-cd/LICENSE b/plugins/zsh-interactive-cd/LICENSE new file mode 100644 index 000000000..40b3f8d7a --- /dev/null +++ b/plugins/zsh-interactive-cd/LICENSE @@ -0,0 +1,375 @@ +Copyright 2017-2018 Henry Chang + +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/plugins/zsh-interactive-cd/README.md b/plugins/zsh-interactive-cd/README.md index c8337fbc8..4bffbf04a 100644 --- a/plugins/zsh-interactive-cd/README.md +++ b/plugins/zsh-interactive-cd/README.md @@ -1,23 +1,15 @@ # zsh-interactive-cd -This plugin adds a fish-like interactive tab completion for the `cd` command. +## Demo -To use it, add `zsh-interactive-cd` to the plugins array of your zshrc file: -```zsh -plugins=(... zsh-interactive-cd) -``` +![demo](demo.gif) -![demo](https://user-images.githubusercontent.com/1441704/74360670-cb202900-4dc5-11ea-9734-f60caf726e85.gif) +## Installation + +1. Install [fzf](https://github.com/junegunn/fzf) by following its [installation instruction](https://github.com/junegunn/fzf#installation). + +2. Source `zsh-interactive-cd.plugin.zsh` in `.zshrc`. ## Usage Press tab for completion as usual, it'll launch fzf automatically. Check fzf’s [readme](https://github.com/junegunn/fzf#search-syntax) for more search syntax usage. - -## Requirements - -This plugin requires [fzf](https://github.com/junegunn/fzf). Install it by following -its [installation instructions](https://github.com/junegunn/fzf#installation). - -## Author - -[Henry Chang](https://github.com/changyuheng) diff --git a/plugins/zsh-interactive-cd/demo.gif b/plugins/zsh-interactive-cd/demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..3568ecf954a3c2049908e97d355f6f187236be2e GIT binary patch literal 1497944 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±y+xcT>g~?;_hZnD&Uc{0w&iYDF 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 z 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

Y+KJy2nqQS;i?%+cjP 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

i0k$BB$>_gyLEY%Y~#XLH>(dW`jK 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�xJBbE%mkT;Q4|X>WML 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 literal 0 HcmV?d00001 diff --git a/plugins/zsh-interactive-cd/zsh-interactive-cd.plugin.zsh b/plugins/zsh-interactive-cd/zsh-interactive-cd.plugin.zsh index b0520c239..0ae9d50a7 100644 --- a/plugins/zsh-interactive-cd/zsh-interactive-cd.plugin.zsh +++ b/plugins/zsh-interactive-cd/zsh-interactive-cd.plugin.zsh @@ -1,4 +1,10 @@ -# Copyright (c) 2017 Henry Chang +#!/usr/bin/env zsh +# +# Copyright 2017-2018 Henry Chang +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. __zic_fzf_prog() { [ -n "$TMUX_PANE" ] && [ "${FZF_TMUX:-0}" != 0 ] && [ ${LINES:-40} -gt 15 ] \ @@ -17,7 +23,7 @@ __zic_matched_subdir_list() { length=0 fi find -L "$dir" -mindepth 1 -maxdepth 1 -type d 2>/dev/null \ - | cut -b $(( ${length} + 2 ))- | sed '/^$/d' | while read -r line; do + | cut -b $(( ${length} + 2 ))- | command sed '/^$/d' | while read -r line; do if [[ "${line[1]}" == "." ]]; then continue fi @@ -32,13 +38,19 @@ __zic_matched_subdir_list() { seg=$(basename -- "$1") starts_with_dir=$( \ find -L "$dir" -mindepth 1 -maxdepth 1 -type d \ - 2>/dev/null | cut -b $(( ${length} + 2 ))- | sed '/^$/d' \ + 2>/dev/null | cut -b $(( ${length} + 2 ))- | command sed '/^$/d' \ | while read -r line; do if [[ "${seg[1]}" != "." && "${line[1]}" == "." ]]; then continue fi - if [[ "$line" == "$seg"* ]]; then - echo "$line" + if [ "$zic_case_insensitive" = "true" ]; then + if [[ "$line:u" == "$seg:u"* ]]; then + echo "$line" + fi + else + if [[ "$line" == "$seg"* ]]; then + echo "$line" + fi fi done ) @@ -46,19 +58,36 @@ __zic_matched_subdir_list() { echo "$starts_with_dir" else find -L "$dir" -mindepth 1 -maxdepth 1 -type d \ - 2>/dev/null | cut -b $(( ${length} + 2 ))- | sed '/^$/d' \ + 2>/dev/null | cut -b $(( ${length} + 2 ))- | command sed '/^$/d' \ | while read -r line; do if [[ "${seg[1]}" != "." && "${line[1]}" == "." ]]; then continue fi - if [[ "$line" == *"$seg"* ]]; then - echo "$line" + if [ "$zic_case_insensitive" = "true" ]; then + if [[ "$line:u" == *"$seg:u"* ]]; then + echo "$line" + fi + else + if [[ "$line" == *"$seg"* ]]; then + echo "$line" + fi fi done fi fi } +__zic_fzf_bindings() { + autoload is-at-least + fzf=$(__zic_fzf_prog) + + if $(is-at-least '0.21.0' $(${=fzf} --version)); then + echo 'shift-tab:up,tab:down,bspace:backward-delete-char/eof' + else + echo 'shift-tab:up,tab:down' + fi +} + _zic_list_generator() { __zic_matched_subdir_list "${(Q)@[-1]}" | sort } @@ -75,6 +104,7 @@ _zic_complete() { fi fzf=$(__zic_fzf_prog) + fzf_bindings=$(__zic_fzf_bindings) if [ $(echo $l | wc -l) -eq 1 ]; then matches=${(q)l} @@ -82,7 +112,7 @@ _zic_complete() { matches=$(echo $l \ | FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} \ --reverse $FZF_DEFAULT_OPTS $FZF_COMPLETION_OPTS \ - --bind 'shift-tab:up,tab:down'" ${=fzf} \ + --bind '${fzf_bindings}'" ${=fzf} \ | while read -r item; do echo -n "${(q)item} " done) @@ -144,5 +174,7 @@ zic-completion() { } zle -N zic-completion -bindkey -M emacs '^I' zic-completion -bindkey -M viins '^I' zic-completion +if [ -z $zic_custom_binding ]; then + zic_custom_binding='^I' +fi +bindkey "${zic_custom_binding}" zic-completion From 379fe0fe131cff7a480f7975b32b0ea6fc7c2370 Mon Sep 17 00:00:00 2001 From: Julien Rottenberg Date: Tue, 7 Feb 2023 03:33:59 -0800 Subject: [PATCH 150/441] feat(azure): add `azure` plugin (#8848) Co-authored-by: hagridaaron Co-authored-by: Terry Closes #8847 --- lib/prompt_info_functions.zsh | 1 + plugins/azure/README.md | 49 +++++++++++++++++++++++++++ plugins/azure/azure.plugin.zsh | 60 ++++++++++++++++++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 plugins/azure/README.md create mode 100644 plugins/azure/azure.plugin.zsh diff --git a/lib/prompt_info_functions.zsh b/lib/prompt_info_functions.zsh index e5535848b..3dc9b6d10 100644 --- a/lib/prompt_info_functions.zsh +++ b/lib/prompt_info_functions.zsh @@ -18,6 +18,7 @@ function chruby_prompt_info \ vi_mode_prompt_info \ virtualenv_prompt_info \ jenv_prompt_info \ + azure_prompt_info \ tf_prompt_info \ { return 1 diff --git a/plugins/azure/README.md b/plugins/azure/README.md new file mode 100644 index 000000000..f39930851 --- /dev/null +++ b/plugins/azure/README.md @@ -0,0 +1,49 @@ +# azure + +This plugin provides completion support for [azure cli](https://docs.microsoft.com/en-us/cli/azure/) +and a few utilities to manage azure subscriptions and display them in the prompt. + +To use it, add `azure` to the plugins array in your zshrc file. + +```zsh +plugins=(... azure) +``` + +## Plugin commands + + +* `az_subscriptions`: lists the available subscriptions in the `AZURE_CONFIG_DIR` (default: `~/.azure/`). + Used to provide completion for the `azss` function. + +* `azgs`: gets the current value of `$azure_subscription`. + +* `azss []`: sets the `$azure_subscription`. + + +NOTE : because azure keeps the state of active subscription in ${AZURE_CONFIG_DIR:-$HOME/.azure/azureProfile.json}, the prompt command requires `jq` to be enabled to parse the file. If jq is not in the path the prompt will show nothing + +## Theme + +The plugin creates an `azure_prompt_info` function that you can use in your theme, which displays +the current `$azure_subscription`. It uses two variables to control how that is shown: + +- ZSH_THEME_AZURE_PREFIX: sets the prefix of the azure_subscription. Defaults to ``. + + +``` +RPROMPT='$(azure_prompt_info)' +``` + +## Develop + +On ubuntu get a working environment with : + +` docker run -it -v $(pwd):/mnt -w /mnt ubuntu bash` + +``` +apt install -y curl jq zsh git vim +sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" +curl -sL https://aka.ms/InstallAzureCLIDeb | bash +``` \ No newline at end of file diff --git a/plugins/azure/azure.plugin.zsh b/plugins/azure/azure.plugin.zsh new file mode 100644 index 000000000..7bb173a5c --- /dev/null +++ b/plugins/azure/azure.plugin.zsh @@ -0,0 +1,60 @@ +# AZ Get Subscritions +function azgs() { + az account show --output tsv --query 'name' 2>/dev/null +} + +# AZ Subscription Selection +alias azss="az account set --subscription" + + +function az_subscriptions() { + az account list --all --output tsv --query '[*].name' 2> /dev/null +} + +function _az_subscriptions() { + reply=($(az_subscriptions)) +} +compctl -K _az_subscriptions azss + +# Azure prompt +function azure_prompt_info() { + [[ ! -f "${AZURE_CONFIG_DIR:-$HOME/.azure/azureProfile.json}" ]] && return + # azgs is too expensive, if we have jq, we enable the prompt + (( $+commands[jq] )) || return 1 + azgs=$(jq -r '.subscriptions[] | select(.isDefault==true) .name' ${AZURE_CONFIG_DIR:-$HOME/.azure/azureProfile.json}) + echo "${ZSH_THEME_AZURE_PREFIX:=}" +} + + +# Load az completions +function _az-homebrew-installed() { + # check if Homebrew is installed + (( $+commands[brew] )) || return 1 + + # speculatively check default brew prefix + if [ -h /usr/local/opt/az ]; then + _brew_prefix=/usr/local/opt/az + else + # ok, it is not in the default prefix + # this call to brew is expensive (about 400 ms), so at least let's make it only once + _brew_prefix=$(brew --prefix azure-cli) + fi +} + + +# get az.completion.sh location from $PATH +_az_zsh_completer_path="$commands[az_zsh_completer.sh]" + +# otherwise check common locations +if [[ -z $_az_zsh_completer_path ]]; then + # Homebrew + if _az-homebrew-installed; then + _az_zsh_completer_path=$_brew_prefix/libexec/bin/az.completion.sh + # Linux + else + _az_zsh_completer_path=/etc/bash_completion.d/azure-cli + fi +fi + +[[ -r $_az_zsh_completer_path ]] && source $_az_zsh_completer_path +unset _az_zsh_completer_path _brew_prefix From 87f1941d27df2e9a3390e5d1cddf6c264ba7311d Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 7 Feb 2023 16:17:07 +0100 Subject: [PATCH 151/441] docs(git): remove duplicated line --- plugins/git/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index cd018d435..1c3f8acf0 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -120,7 +120,6 @@ plugins=(... git) | gma | git merge --abort | | gp | git push | | gpd | git push --dry-run | -| gpf | git push --force-with-lease | | gpf | git push --force-with-lease --force-if-includes (git version >= 2.30) | | gpf | git push --force-with-lease (git version < 2.30) | | gpf! | git push --force | From 45571bfa03934359a49f7043cbcf50abccdf448c Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 8 Feb 2023 11:35:48 +0100 Subject: [PATCH 152/441] fix(git): `gpristine` requires two `--force` flags Fixes #11483 --- plugins/git/git.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 7541ccff2..70e6b4439 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -104,7 +104,7 @@ compdef _git gccd=git-clone alias gcl='git clone --recurse-submodules' alias gclean='git clean --interactive -d' -alias gpristine='git reset --hard && git clean --force -dx' +alias gpristine='git reset --hard && git clean --force -dfx' alias gcm='git checkout $(git_main_branch)' alias gcd='git checkout $(git_develop_branch)' alias gcmsg='git commit --message' From 0e9e5360c400cda5a80c9394583b9acbf7cfe711 Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Thu, 9 Feb 2023 12:24:39 +0100 Subject: [PATCH 153/441] feat(gradle): update completion from upstream (#11485) --- plugins/gradle/_gradle | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/plugins/gradle/_gradle b/plugins/gradle/_gradle index 770723d85..1da5aebee 100644 --- a/plugins/gradle/_gradle +++ b/plugins/gradle/_gradle @@ -1,4 +1,3 @@ -#compdef gradle gradlew gw # # Taken from https://github.com/gradle/gradle-completion # Copyright (c) 2017 Eric Wendelin @@ -22,6 +21,8 @@ # SOFTWARE. # Terms +#compdef gradle gradlew gw + __gradle-set-project-root-dir() { local dir=`pwd` project_root_dir=`pwd` @@ -96,7 +97,7 @@ __gradle-generate-script-cache() { zle -R "Generating Gradle build script cache" # Cache all Gradle scripts local -a gradle_build_scripts - gradle_build_scripts=( $(find $project_root_dir -type f -name "*.gradle" -o -name "*.gradle.kts" 2>/dev/null | grep -E -v "$script_exclude_pattern") ) + gradle_build_scripts=( $(find $project_root_dir -type f -name "*.gradle" -o -name "*.gradle.kts" 2>/dev/null | egrep -v "$script_exclude_pattern") ) printf "%s\n" "${gradle_build_scripts[@]}" >| $cache_dir/$cache_name fi } @@ -116,9 +117,9 @@ __gradle-generate-tasks-cache() { # Reuse Gradle Daemon if IDLE but don't start a new one. local gradle_tasks_output if [[ ! -z "$($gradle_cmd --status 2>/dev/null | grep IDLE)" ]]; then - gradle_tasks_output="$($gradle_cmd --daemon --build-file $gradle_build_file --console plain -q tasks --all 2>/dev/null)" + gradle_tasks_output="$($gradle_cmd --daemon --no-scan --build-file $gradle_build_file --console=plain -q tasks --all 2>/dev/null)" else - gradle_tasks_output="$($gradle_cmd --no-daemon --build-file $gradle_build_file --console plain -q tasks --all 2>/dev/null)" + gradle_tasks_output="$($gradle_cmd --no-daemon --no-scan --build-file $gradle_build_file --console=plain -q tasks --all 2>/dev/null)" fi local gradle_all_tasks="" root_tasks="" subproject_tasks="" output_line local -a match @@ -180,7 +181,7 @@ __gradle_tasks() { local cached_checksum="$(cat $cache_dir/$cache_name.md5)" local -a cached_tasks if [[ -z $cur ]]; then - cached_tasks=(${(f)"$(cat $cache_dir/$cached_checksum)"}) + cached_tasks=(${(f)"$(grep -v "^\\\:" $cache_dir/$cached_checksum)"}) else cached_tasks=(${(f)"$(grep "^${cur//:/\\\\:}" $cache_dir/$cached_checksum)"}) fi @@ -191,7 +192,7 @@ __gradle_tasks() { # Regenerate tasks cache in the background if [[ $gradle_files_checksum != "$(cat $cache_dir/$cache_name.md5)" || ! -f $cache_dir/$gradle_files_checksum || $(wc -c < $cache_dir/$gradle_files_checksum) -le 1 ]]; then - $(__gradle-generate-tasks-cache 1>&2 2>/dev/null &) + $(__gradle-generate-tasks-cache &> /dev/null &) fi else _describe 'built-in tasks' '( @@ -262,7 +263,10 @@ __gradle_subcommand() { {-b,--build-file}'[Specifies the build file.]:build script:_files -g \*.gradle' \ {-C,--cache}'[Specifies how compiled build scripts should be cached.]:cache policy:(on rebuild)' \ {-c,--settings-file}'[Specifies the settings file.]:settings file:_files -g \*.gradle' \ + '(--configuration-cache)--no-configuration-cache[Disables the configuration cache. Gradle will not reuse the build configuration from previous builds.]' \ + '--configuration-cache-problems=[Configures how the configuration cache handles problems]:problem handling:(fail warn)' \ '(--no-configure-on-demand)--configure-on-demand[Only relevant projects are configured in this build run.]' \ + '(--no-configuration-cache)--configuration-cache[Enables the configuration cache. Gradle will try to reuse the build configuration from previous builds.]' \ '--console=[Specifies which type of console output to generate.]:console output type:(plain auto rich verbose)' \ '--continue[Continues task execution after a task failure.]' \ '-Dorg.gradle.cache.reserved.mb=[Reserve Gradle Daemon memory for operations.]' \ @@ -276,6 +280,7 @@ __gradle_subcommand() { '-Dorg.gradle.logging.level=[Set default Gradle log level.]:log level:(quiet warn lifecycle info debug)' \ '-Dorg.gradle.parallel=[Set true to enable parallel project builds.]:enable parallel build:(true false)' \ '-Dorg.gradle.priority=[Set priority for Gradle worker processes.]:priority:(low normal)' \ + '-Dorg.gradle.unsafe.watch-fs=[Set true to enable Gradle file watcher.]:enable watcher:(true false)' \ '-Dorg.gradle.warning.mode=[Set types of warnings to log.]:warning level:(all summary none)' \ '-Dorg.gradle.workers.max=[Set the number of workers Gradle is allowed to use.]' \ '(-i --info -w --warn -q --quiet)'{-d,--debug}'[Log in debug mode (includes normal stacktrace).]' \ @@ -314,6 +319,7 @@ __gradle_subcommand() { '(--write-locks)--update-locks[Perform a partial update of the dependency lock.]' \ '(-d --debug -q --quiet -i --info)'{-w,--warn}'[Log warnings and errors only.]' \ '--warning-mode=[Set types of warnings to log.]:warning mode:(all summary none)' \ + '(--no-watch-fs)--watch-fs[Gradle watches filesystem for incremental builds.]' \ '(--update-locks)--write-locks[Persists dependency resolution for locked configurations.]' \ {-x,--exclude-task}'[Specify a task to be excluded from execution.]' && ret=0 ;; @@ -347,6 +353,9 @@ _gradle() { {-b,--build-file}'[Specifies the build file.]:build script:_files -g \*.gradle' \ {-C,--cache}'[Specifies how compiled build scripts should be cached.]:cache policy:(on rebuild)' \ {-c,--settings-file}'[Specifies the settings file.]:settings file:_files -g \*.gradle:->argument-expected' \ + '(--no-configuration-cache)--configuration-cache[Enables the configuration cache. Gradle will try to reuse the build configuration from previous builds.]' \ + '(--configuration-cache)--no-configuration-cache[Disables the configuration cache. Gradle will not reuse the build configuration from previous builds.]' \ + '--configuration-cache-problems=[Configures how the configuration cache handles problems]:problem handling:(fail warn)' \ '(--no-configure-on-demand)--configure-on-demand[Only relevant projects are configured in this build run.]' \ '--console=[Specifies which type of console output to generate.]:console output type:(plain auto rich verbose)' \ '--continue[Continues task execution after a task failure.]' \ @@ -361,6 +370,7 @@ _gradle() { '-Dorg.gradle.logging.level=[Set default Gradle log level.]:log level:(quiet warn lifecycle info debug)' \ '-Dorg.gradle.parallel=[Set true to enable parallel project builds.]:(true false)' \ '-Dorg.gradle.priority=[Set priority for Gradle worker processes.]:priority:(low normal)' \ + '-Dorg.gradle.unsafe.watch-fs=[Set true to enable Gradle file watcher.]:enable watcher:(true false)' \ '-Dorg.gradle.warning.mode=[Set types of warnings to log.]:warning level:(all summary none)' \ '-Dorg.gradle.workers.max=[Set the number of workers Gradle is allowed to use.]' \ '(-i --info -w --warn -q --quiet)'{-d,--debug}'[Log in debug mode (includes normal stacktrace).]' \ @@ -404,6 +414,7 @@ _gradle() { '(-d --debug -q --quiet -i --info)'{-w,--warn}'[Log warnings and errors only.]' \ '--warning-mode=[Set types of warnings to log.]:warning mode:(all summary none)' \ '(--update-locks)--write-locks[Persists dependency resolution for locked configurations.]' \ + '(--no-watch-fs)--watch-fs[Gradle watches filesystem for incremental builds.]' \ {-x,--exclude-task}'[Specify a task to be excluded from execution.]' \ '(-)*:: :->task-or-option' && ret=0 From 041c35ffc8cd97dd6327f44e35fa777af6f8e845 Mon Sep 17 00:00:00 2001 From: Samyak Sarnayak Date: Thu, 9 Feb 2023 16:57:41 +0530 Subject: [PATCH 154/441] feat(amuse): add virtualenv support (#8987) Fixes #7766 Closes #8814 --- themes/amuse.zsh-theme | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/themes/amuse.zsh-theme b/themes/amuse.zsh-theme index 3f7ec0bc5..d787fdaa4 100644 --- a/themes/amuse.zsh-theme +++ b/themes/amuse.zsh-theme @@ -11,8 +11,14 @@ ZSH_THEME_RUBY_PROMPT_PREFIX="%{$fg_bold[red]%}‹" ZSH_THEME_RUBY_PROMPT_SUFFIX="›%{$reset_color%}" PROMPT=' -%{$fg_bold[green]%}%~%{$reset_color%}$(git_prompt_info) ⌚ %{$fg_bold[red]%}%*%{$reset_color%} +%{$fg_bold[green]%}%~%{$reset_color%}$(git_prompt_info)$(virtualenv_prompt_info) ⌚ %{$fg_bold[red]%}%*%{$reset_color%} $ ' RPROMPT='$(ruby_prompt_info)' +VIRTUAL_ENV_DISABLE_PROMPT=0 +ZSH_THEME_VIRTUAL_ENV_PROMPT_PREFIX=" %{$fg[green]%}🐍" +ZSH_THEME_VIRTUAL_ENV_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_VIRTUALENV_PREFIX=$ZSH_THEME_VIRTUAL_ENV_PROMPT_PREFIX +ZSH_THEME_VIRTUALENV_SUFFIX=$ZSH_THEME_VIRTUAL_ENV_PROMPT_SUFFIX + From f9104d155f618f2d6f5e13af648c81a5d036a592 Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Sat, 11 Feb 2023 20:54:20 +0100 Subject: [PATCH 155/441] fix(gradle): move compdef line (#11488) --- plugins/gradle/_gradle | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/gradle/_gradle b/plugins/gradle/_gradle index 1da5aebee..f8df928b4 100644 --- a/plugins/gradle/_gradle +++ b/plugins/gradle/_gradle @@ -1,3 +1,6 @@ +#compdef gradle gradlew gw +# THE LINE ABOVE MUST BE THE FIRST LINE OF THIS FILE IN ORDER FOR COMPLETION TO WORK + # # Taken from https://github.com/gradle/gradle-completion # Copyright (c) 2017 Eric Wendelin @@ -21,8 +24,6 @@ # SOFTWARE. # Terms -#compdef gradle gradlew gw - __gradle-set-project-root-dir() { local dir=`pwd` project_root_dir=`pwd` From 3e1c0d51cb66cf02357b25f514d55a3de8197647 Mon Sep 17 00:00:00 2001 From: GrandZhuo Date: Sun, 12 Feb 2023 16:53:04 +0800 Subject: [PATCH 156/441] fix(fzf): installation dir for brew M1 (#11490) --- plugins/fzf/fzf.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/fzf/fzf.plugin.zsh b/plugins/fzf/fzf.plugin.zsh index 7bb6667d0..b253a23d2 100644 --- a/plugins/fzf/fzf.plugin.zsh +++ b/plugins/fzf/fzf.plugin.zsh @@ -9,7 +9,7 @@ function fzf_setup_using_base_dir() { "${HOME}/.nix-profile/share/fzf" "${XDG_DATA_HOME:-$HOME/.local/share}/fzf" "/usr/local/opt/fzf" - "/opt/homebrew/bin/fzf" + "/opt/homebrew/opt/fzf" "/usr/share/fzf" "/usr/local/share/examples/fzf" ) From ed407466b8ae3c12c2f03da004d721618e64fd49 Mon Sep 17 00:00:00 2001 From: Ruben van Erk Date: Sun, 12 Feb 2023 16:05:06 +0100 Subject: [PATCH 157/441] docs(lando): php support (#11491) --- plugins/lando/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/lando/README.md b/plugins/lando/README.md index 928a42bca..6daeae4e4 100644 --- a/plugins/lando/README.md +++ b/plugins/lando/README.md @@ -17,6 +17,7 @@ plugins=(... lando) | `drush` | `lando drush` | | `gulp` | `lando gulp` | | `npm` | `lando npm` | +| `php` | `lando php` | | `wp` | `lando wp` | | `yarn` | `lando yarn` | From 416560c9bf0c03afe6f576ab9e420256843bfb8b Mon Sep 17 00:00:00 2001 From: Richard Mitchell Date: Sun, 12 Feb 2023 11:46:25 -0500 Subject: [PATCH 158/441] docs(lib/directories): comment how to disable alias (#11489) --- lib/directories.zsh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/directories.zsh b/lib/directories.zsh index 5aa1b3d5b..091140626 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -3,6 +3,11 @@ setopt auto_pushd setopt pushd_ignore_dups setopt pushdminus +# add (uncommented): +# zstyle ':omz:directories' aliases no +# to your `zshrc` before loading `oh-my-zsh.sh` +# to disable the following aliases and functions + zstyle -T ':omz:directories' aliases || return alias -g ...='../..' From 69b5737daf0448ad7e6686174638be74f86afdec Mon Sep 17 00:00:00 2001 From: shelfofclub Date: Tue, 14 Feb 2023 20:44:23 +0800 Subject: [PATCH 159/441] fix(af-magic): fix python venv checking logic (#11495) --- themes/af-magic.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/af-magic.zsh-theme b/themes/af-magic.zsh-theme index 2ef9b02d7..1b629e43a 100644 --- a/themes/af-magic.zsh-theme +++ b/themes/af-magic.zsh-theme @@ -10,7 +10,7 @@ function afmagic_dashes { # if there is a python virtual environment and it is displayed in # the prompt, account for it when returning the number of dashes - if [[ -n "$python_env" && "$PS1" = \(* ]]; then + if [[ -n "$python_env" && "$PS1" = *\(${python_env}\)* ]]; then echo $(( COLUMNS - ${#python_env} - 3 )) else echo $COLUMNS From 574669da6b71462c1f92c75ad75f66476b92974c Mon Sep 17 00:00:00 2001 From: Richard Mitchell Date: Sat, 11 Feb 2023 10:46:31 -0500 Subject: [PATCH 160/441] fix(correction)!: remove aliases for non standard commands BREAKING CHANGE: This commit removes aliases for some commands that previously were not being autocorrected. If you are using autocorrection, please check it. --- lib/correction.zsh | 5 ----- 1 file changed, 5 deletions(-) diff --git a/lib/correction.zsh b/lib/correction.zsh index 4259d3418..ba9664fcb 100644 --- a/lib/correction.zsh +++ b/lib/correction.zsh @@ -1,13 +1,8 @@ if [[ "$ENABLE_CORRECTION" == "true" ]]; then alias cp='nocorrect cp' - alias ebuild='nocorrect ebuild' - alias gist='nocorrect gist' - alias heroku='nocorrect heroku' - alias hpodder='nocorrect hpodder' alias man='nocorrect man' alias mkdir='nocorrect mkdir' alias mv='nocorrect mv' - alias mysql='nocorrect mysql' alias sudo='nocorrect sudo' alias su='nocorrect su' From 8a68bf67720a6a5442ae947d10d74b1dd3558d91 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Thu, 16 Feb 2023 12:54:23 +0100 Subject: [PATCH 161/441] fix(theme-and-appearance): test color ls with $ZSH directory Fixes #11500 --- lib/theme-and-appearance.zsh | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/theme-and-appearance.zsh b/lib/theme-and-appearance.zsh index 9b908bef0..c83f58c7b 100644 --- a/lib/theme-and-appearance.zsh +++ b/lib/theme-and-appearance.zsh @@ -7,32 +7,37 @@ export LSCOLORS="Gxfxcxdxbxegedabagacad" # TODO organise this chaotic logic if [[ "$DISABLE_LS_COLORS" != "true" ]]; then + if [[ -d "$ZSH" ]]; then + _test_dir="$ZSH" + else + _test_dir="." + fi # Find the option for using colors in ls, depending on the version if [[ "$OSTYPE" == netbsd* ]]; then # On NetBSD, test if "gls" (GNU ls) is installed (this one supports colors); # otherwise, leave ls as is, because NetBSD's ls doesn't support -G - gls --color -d . &>/dev/null && alias ls='gls --color=tty' + gls --color -d "$_test_dir" &>/dev/null && alias ls='gls --color=tty' elif [[ "$OSTYPE" == openbsd* ]]; then # On OpenBSD, "gls" (ls from GNU coreutils) and "colorls" (ls from base, # with color and multibyte support) are available from ports. "colorls" # will be installed on purpose and can't be pulled in by installing # coreutils, so prefer it to "gls". - gls --color -d . &>/dev/null && alias ls='gls --color=tty' - colorls -G -d . &>/dev/null && alias ls='colorls -G' + gls --color -d "$_test_dir" &>/dev/null && alias ls='gls --color=tty' + colorls -G -d "$_test_dir" &>/dev/null && alias ls='colorls -G' elif [[ "$OSTYPE" == (darwin|freebsd)* ]]; then # this is a good alias, it works by default just using $LSCOLORS - ls -G . &>/dev/null && alias ls='ls -G' + ls -G "$_test_dir" &>/dev/null && alias ls='ls -G' # only use coreutils ls if there is a dircolors customization present ($LS_COLORS or .dircolors file) # otherwise, gls will use the default color scheme which is ugly af - [[ -n "$LS_COLORS" || -f "$HOME/.dircolors" ]] && gls --color -d . &>/dev/null && alias ls='gls --color=tty' + [[ -n "$LS_COLORS" || -f "$HOME/.dircolors" ]] && gls --color -d "$_test_dir" &>/dev/null && alias ls='gls --color=tty' else # For GNU ls, we use the default ls color theme. They can later be overwritten by themes. if [[ -z "$LS_COLORS" ]]; then (( $+commands[dircolors] )) && eval "$(dircolors -b)" fi - ls --color -d . &>/dev/null && alias ls='ls --color=tty' || { ls -G . &>/dev/null && alias ls='ls -G' } + ls --color -d "$_test_dir" &>/dev/null && alias ls='ls --color=tty' || { ls -G "$_test_dir" &>/dev/null && alias ls='ls -G' } # Take advantage of $LS_COLORS for completion as well. zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" From 25368f9a65e805a961884ce70206c907218fc741 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Antonio=20Ram=C3=ADrez?= Date: Fri, 17 Feb 2023 03:09:00 -0400 Subject: [PATCH 162/441] fix(gcloud): add location of latest snap install (#11502) Latest snap installs gcloud at /snap/google-cloud-cli, so add that to the list of possible locations. --- plugins/gcloud/gcloud.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/gcloud/gcloud.plugin.zsh b/plugins/gcloud/gcloud.plugin.zsh index 9be9d68aa..30f1dba8f 100644 --- a/plugins/gcloud/gcloud.plugin.zsh +++ b/plugins/gcloud/gcloud.plugin.zsh @@ -10,6 +10,7 @@ if [[ -z "${CLOUDSDK_HOME}" ]]; then "/opt/homebrew/Caskroom/google-cloud-sdk/latest/google-cloud-sdk" "/usr/share/google-cloud-sdk" "/snap/google-cloud-sdk/current" + "/snap/google-cloud-cli/current" "/usr/lib/google-cloud-sdk" "/usr/lib64/google-cloud-sdk" "/opt/google-cloud-sdk" From aace3a6144a859d877927746a865de820e5af838 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Fri, 17 Feb 2023 16:42:59 +0100 Subject: [PATCH 163/441] chore: add `.idea` directory to `.gitignore` --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 71ae444e5..10bd4bebc 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ log/ .DS_Store # editor configs -.vscode \ No newline at end of file +.vscode +.idea From cc73a929f637899407d7a17648f89c63b71cc1ff Mon Sep 17 00:00:00 2001 From: guenthgr Date: Fri, 17 Feb 2023 17:29:10 +0100 Subject: [PATCH 164/441] feat(git): add `gpod` alias Closes #11501 --- 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 1c3f8acf0..9972a6d8d 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -124,6 +124,7 @@ plugins=(... git) | gpf | git push --force-with-lease (git version < 2.30) | | gpf! | git push --force | | gpoat | git push origin --all && git push origin --tags | +| gpod | git push origin --delete | | gpr | git pull --rebase | | gpu | git push upstream | | gpv | git push --verbose | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 70e6b4439..b016d80db 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -242,6 +242,7 @@ is-at-least 2.30 "$git_version" \ || alias gpf='git push --force-with-lease' alias gpf!='git push --force' alias gpoat='git push origin --all && git push origin --tags' +alias gpod='git push origin --delete' alias gpr='git pull --rebase' alias gpu='git push upstream' alias gpv='git push --verbose' From 8c808da23c9bafdc9d4b7b73934d6621d3a1f83e Mon Sep 17 00:00:00 2001 From: Francesco Ilario Date: Mon, 20 Feb 2023 15:35:58 +0100 Subject: [PATCH 165/441] feat(git): add aliases for gone branches (#9250) Closes #8457 Closes #9973 --- plugins/git/README.md | 3 +++ plugins/git/git.plugin.zsh | 3 +++ 2 files changed, 6 insertions(+) diff --git a/plugins/git/README.md b/plugins/git/README.md index 9972a6d8d..0895ce39c 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -25,6 +25,9 @@ plugins=(... git) | gbd | git branch --delete | | gbda | git branch --no-color --merged \| grep -vE "^([+*]\|\s*($(git_main_branch)\|$(git_develop_branch))\s*$)" \| xargs git branch --delete 2>/dev/null | | gbD | git branch --delete --force | +| gbg | git branch -vv | grep ": gone\]" | +| gbgd | local res=$(git branch -vv | grep ": gone\]" | awk '{print $1}') && [[ $res ]] && echo $res | xargs git branch -d | +| gbgD | local res=$(git branch -vv | grep ": gone\]" | awk '{print $1}') && [[ $res ]] && echo $res | xargs git branch -D | | gbl | git blame -b -w | | gbnm | git branch --no-merged | | gbr | git branch --remote | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index b016d80db..ed17436e8 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -73,6 +73,9 @@ alias gba='git branch --all' alias gbd='git branch --delete' alias gbda='git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null' alias gbD='git branch --delete --force' +alias gbg='git branch -vv | grep ": gone\]"' +alias gbgd='local res=$(gbg | awk '"'"'{print $1}'"'"') && [[ $res ]] && echo $res | xargs git branch -d' +alias gbgD='local res=$(gbg | awk '"'"'{print $1}'"'"') && [[ $res ]] && echo $res | xargs git branch -D' alias gbl='git blame -b -w' alias gbnm='git branch --no-merged' alias gbr='git branch --remote' From c50bac7b42e7d24dd9ef314fa9bf17859e4218ed Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 21 Feb 2023 11:19:56 +0100 Subject: [PATCH 166/441] fix(terraform): go back to zsh custom completion Revert fcbfdf42de702d55174fe2b19142ba232289671e --- plugins/terraform/_terraform | 411 +++++++++++++++++++++++++ plugins/terraform/terraform.plugin.zsh | 5 - 2 files changed, 411 insertions(+), 5 deletions(-) create mode 100644 plugins/terraform/_terraform diff --git a/plugins/terraform/_terraform b/plugins/terraform/_terraform new file mode 100644 index 000000000..625834563 --- /dev/null +++ b/plugins/terraform/_terraform @@ -0,0 +1,411 @@ +#compdef terraform + +local -a _terraform_cmds opt_args +_terraform_cmds=( + 'apply:Builds or changes infrastructure' + 'console:Interactive console for Terraform interpolations' + 'destroy:Destroy Terraform-managed infrastructure' + 'fmt:Rewrites config files to canonical format' + 'force-unlock:Manually unlock the terraform state' + 'get:Download and install modules for the configuration' + 'graph:Create a visual graph of Terraform resources' + 'import:Import existing infrastructure into Terraform' + 'init:Initialize a Terraform working directory' + 'login:Obtain and save credentials for a remote host' + 'logout:Remove locally-stored credentials for a remote host' + 'output:Read an output from a state file' + 'plan:Generate and show an execution plan' + 'providers:Prints a tree of the providers used in the configuration' + 'refresh:Update local state file against real resources' + 'show:Inspect Terraform state or plan' + 'state:Advanced state management' + 'taint:Manually mark a resource for recreation' + 'untaint:Manually unmark a resource as tainted' + 'validate:Validates the Terraform files' + 'version:Prints the Terraform version' + 'workspace:Workspace management' + '0.12upgrade:Rewrites pre-0.12 module source code for v0.12' + '0.13upgrade:Rewrites pre-0.13 module source code for v0.13' +) + +__012upgrade() { + _arguments \ + '-yes[Skip the initial introduction messages and interactive confirmation. This can be used to run this command in batch from a script.]' \ + '-force[ Override the heuristic that attempts to detect if a configuration is already written for v0.12 or later. Some of the transformations made by this command are not idempotent, so re-running against the same module may change the meanings expressions in the module.]' +} + +__013upgrade() { + _arguments \ + '-yes[Skip the initial introduction messages and interactive confirmation. This can be used to run this command in batch from a script.]' +} + +__apply() { + _arguments \ + '-auto-approve[Skip interactive approval of plan before applying.]' \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ + '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ + '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-input=[(true) Ask for input for variables if not directly set.]' \ + '-no-color[If specified, output will be colorless.]' \ + '-parallelism=[(10) Limit the number of parallel resource operations.]' \ + '-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]' \ + '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -g "*.tfstate"' \ + '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -g "*.tfstate"' \ + '*-target=[(resource) Resource to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \ + '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ + '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' +} + +__console() { + _arguments \ + '-state=[(terraform.tfstate) Path to read state.]' \ + '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ + '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' +} + +__destroy() { + _arguments \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ + '-auto-approve[Skip interactive approval before destroying.]' \ + '-force[Deprecated: same as auto-approve.]' \ + '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-no-color[If specified, output will contain no color.]' \ + '-parallelism=[(10) Limit the number of concurrent operations.]' \ + '-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]' \ + '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -g "*.tfstate"' \ + '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -g "*.tfstate"' \ + '*-target=[(resource) Resource to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \ + '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ + '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' +} + +__fmt() { + _arguments \ + '-list=[(true) List files whose formatting differs (always false if using STDIN)]' \ + '-write=[(true) Write result to source file instead of STDOUT (always false if using STDIN or -check)]' \ + '-diff=[(false) Display diffs of formatting changes]' \ + '-check=[(false) Check if the input is formatted. Exit status will be 0 if all input is properly formatted and non-zero otherwise.]' \ + '-recursive=[(false) Also process files in subdirectories. By default, only the given directory (or current directory) is processed.]' +} + +__force_unlock() { + _arguments \ + "-force[Don't ask for input for unlock confirmation.]" +} + +__get() { + _arguments \ + '-update=[(false) If true, modules already downloaded will be checked for updates and updated if necessary.]' \ + '-no-color[Disable text coloring in the output.]' +} + +__graph() { + _arguments \ + '-draw-cycles[Highlight any cycles in the graph with colored edges. This helps when diagnosing cycle errors.]' \ + '-type=[(plan) Type of graph to output. Can be: plan, plan-destroy, apply, validate, input, refresh.]' +} + +__import() { + _arguments \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ + '-config=[(path) Path to a directory of Terraform configuration files to use to configure the provider. Defaults to pwd. If no config files are present, they must be provided via the input prompts or env vars.]' \ + '-allow-missing-config[Allow import when no resource configuration block exists.]' \ + '-input=[(true) Ask for input for variables if not directly set.]' \ + '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-no-color[If specified, output will contain no color.]' \ + '-state=[(PATH) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -g "*.tfstate"' \ + '-state-out=[(PATH) Path to the destination state file to write to. If this is not specified, the source state file will be used. This can be a new or existing path.]:statefile:_files -g "*.tfstate"' \ + '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times. This is only useful with the "-config" flag.]' \ + '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' +} + +__init() { + _arguments \ + '-backend=[(true) Configure the backend for this configuration.]' \ + '-backend-config=[This can be either a path to an HCL file with key/value assignments (same format as terraform.tfvars) or a 'key=value' format. This is merged with what is in the configuration file. This can be specified multiple times. The backend type must be in the configuration itself.]' \ + '-force-copy[Suppress prompts about copying state data. This is equivalent to providing a "yes" to all confirmation prompts.]' \ + '-from-module=[(SOURCE) Copy the contents of the given module into the target directory before initialization.]' \ + '-get=[(true) Download any modules for this configuration.]' \ + '-get-plugins=[(true) Download any missing plugins for this configuration.]' \ + '-input=[(true) Ask for input if necessary. If false, will error if input was required.]' \ + '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-no-color[If specified, output will contain no color.]' \ + '-plugin-dir[Directory containing plugin binaries. This overrides all default search paths for plugins, and prevents the automatic installation of plugins. This flag can be used multiple times.]:plugin_dir:_files -/' \ + '-reconfigure[Reconfigure the backend, ignoring any saved configuration.]' \ + '-upgrade=[(false) If installing modules (-get) or plugins (-get-plugins), ignore previously-downloaded objects and install the latest version allowed within configured constraints.]' \ + '-verify-plugins=[(true) Verify the authenticity and integrity of automatically downloaded plugins.]' +} + +__login() { + _arguments \ + +} + +__logout() { + _arguments \ + +} + +__output() { + _arguments \ + '-state=[(path) Path to the state file to read. Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ + '-no-color[If specified, output will contain no color.]' \ + '-json[If specified, machine readable output will be printed in JSON format]' +} + +__plan() { + _arguments \ + '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ + '-destroy[If set, a plan will be generated to destroy all resources managed by the given configuration and state.]' \ + '-detailed-exitcode[() Return detailed exit codes when the command exits. This will change the meaning of exit codes to: 0 - Succeeded, diff is empty (no changes); 1 - Errored, 2 - Succeeded; there is a diff]' \ + '-input=[(true) Ask for input for variables if not directly set.]' \ + '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-no-color[() If specified, output will contain no color.]' \ + '-out=[(path) Write a plan file to the given path. This can be used as input to the "apply" command.]' \ + '-parallelism=[(10) Limit the number of concurrent operations.]' \ + '-refresh=[(true) Update state prior to checking for differences.]' \ + '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]:statefile:_files -g "*.tfstate"' \ + '*-target=[(resource) Resource to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \ + '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ + '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' +} + +__providers() { + local -a __providers_cmds + __providers_cmds=( + 'mirror:Mirrors the provider plugins needed for the current configuration' + 'schema:Prints the schemas of the providers used in the configuration' + ) + _describe -t providers "providers commands" __providers_cmds + +} + +__providers_mirror() { + _arguments \ + '-platform=[(os_arch) Choose which target platform to build a mirror for.]' \ + "*:target_dir:_files -/" +} + +__providers_schema() { + _arguments \ + '-json[]' \ + '::' +} + +__refresh() { + _arguments \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]::backupfile:_files -g "*.backup"' \ + '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ + '-input=[(true) Ask for input for variables if not directly set.]' \ + '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-no-color[If specified, output will not contain any color.]' \ + '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ + '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -g "*.tfstate"' \ + '*-target=[(resource) A Resource Address to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \ + '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ + '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' +} + +__show() { + _arguments \ + '-json[If specified, output the Terraform plan or state in a machine-readable form.]' \ + '-no-color[If specified, output will not contain any color.]' +} + +__state() { + local -a __state_cmds + __state_cmds=( + 'list:List resources in the state' + 'mv:Move an item in the state' + 'pull:Pull current state and output to stdout' + 'push:Update remote state from a local state file' + 'replace-provider:Replace provider for resources in the Terraform state' + 'rm:Remove instances from the state' + 'show:Show a resource in the state' + ) + _describe -t state "state commands" __state_cmds +} + +__state_list() { + _arguments \ + '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default, Terraform will consult the state of the currently-selected workspace.]' \ + '-id=[(id) Filters the results to include only instances whose resource types have an attribute named id whose value equals the given id string.]' \ + "*:address:__statelist" +} + +__state_mv() { + _arguments \ + "-dry-run[If set, prints out what would've been moved but doesn't actually move anything.]" \ + '-backup=[(PATH) Path where Terraform should write the backup for the original state. This can"t be disabled. If not set, Terraform will write it to the same path as the statefile with a ".backup" extension.]:backupfile:_files -g "*.backup"' \ + '-backup-out=[(PATH) Path where Terraform should write the backup for the destination state. This can"t be disabled. If not set, Terraform will write it to the same path as the destination state file with a backup extension. This only needs to be specified if -state-out is set to a different path than -state.]:backupfile:_files -g "*.backup"' \ + "-lock=[(true) Lock the state files when locking is supported.]:lock:(true false)" \ + "-lock-timeout=[(0s) Duration to retry a state lock.]" \ + '-state=[(path) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -g "*.tfstate"' \ + '-state-out=[(path) Path to the destination state file to write to. If this isn"t specified, the source state file will be used. This can be a new or existing path.]:statefile:_files -g "*.tfstate"' \ + "::" \ + ":source:__statelist" \ + ":destination: " +} + +__state_push() { + _arguments \ + "-force[Write the state even if lineages don't match or the remote serial is higher.]" \ + '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ + "-lock-timeout=[(0s) Duration to retry a state lock.]" \ + "::" \ + ":destination:_files" +} + +__state_replace_provider() { + _arguments \ + '-auto-approve[Skip interactive approval.]' \ + '-backup=[(PATH) Path where Terraform should write the backup for the state file. This can"t be disabled. If not set, Terraform will write it to the same path as the state file with a ".backup" extension.]:backupfile:_files -g "*.backup"' \ + "-lock=[(true) Lock the state files when locking is supported.]:lock:(true false)" \ + "-lock-timeout=[(0s) Duration to retry a state lock.]" \ + '-state=[(PATH) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -g "*.tfstate"' \ + ":from_provider_fqn:" \ + ":to_provider_fqn:" +} + +__state_rm() { + _arguments \ + "-dry-run[If set, prints out what would've been removed but doesn't actually remove anything.]" \ + '-backup=[(PATH) Path where Terraform should write the backup for the original state.]::backupfile:_files -g "*.backup"' \ + "-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)" \ + "-lock-timeout=[(0s) Duration to retry a state lock.]" \ + '-state=[(PATH) Path to the state file to update. Defaults to the current workspace state.]:statefile:_files -g "*.tfstate"' \ + "*:address:__statelist" +} + + +__state_show() { + _arguments \ + '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]:statefile:_files -g "*.tfstate"' \ + "*:address:__statelist" +} + +__statelist() { + compadd $(terraform state list $opt_args[-state]) +} + +__taint() { + _arguments \ + '-allow-missing[If specified, the command will succeed (exit code 0) even if the resource is missing.]' \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ + '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-module=[(path) The module path where the resource lives. By default this will be root. Child modules can be specified by names. Ex. "consul" or "consul.vpc" (nested modules).]' \ + '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ + '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]:statefile:_files -g "*.tfstate"' \ + "*:address:__statelist" +} + +__untaint() { + _arguments \ + '-allow-missing[If specified, the command will succeed (exit code 0) even if the resource is missing.]' \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ + '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-module=[(path) The module path where the resource lives. By default this will be root. Child modules can be specified by names. Ex. "consul" or "consul.vpc" (nested modules).]' \ + '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ + '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]:statefile:_files -g "*.tfstate"' +} + +__validate() { + _arguments \ + '-no-color[If specified, output will not contain any color.]' \ + '-json[Produce output in a machine-readable JSON format, suitable for use in text editor integrations and other automated systems.]' \ + ':dir:_files -/' +} + +__version() { + _arguments \ + '-json[Output the version information as a JSON object.]' +} + +__workspace() { + local -a __workspace_cmds + __workspace_cmds=( + 'delete:Delete a workspace' + 'list:List Workspaces' + 'new:Create a new workspace' + 'select:Select a workspace' + 'show:Show the name of the current workspace' + ) + _describe -t workspace "workspace commands" __workspace_cmds +} + +_arguments '*:: :->command' + +if (( CURRENT == 1 )); then + _describe -t commands "terraform command" _terraform_cmds + return +fi + +local -a _command_args +case "$words[1]" in + 0.12upgrade) + __012upgrade ;; + 0.13upgrade) + __013upgrade ;; + apply) + __apply ;; + console) + __console;; + destroy) + __destroy ;; + fmt) + __fmt;; + force-unlock) + __force_unlock;; + get) + __get ;; + graph) + __graph ;; + import) + __import;; + init) + __init ;; + login) + __login ;; + logout) + __logout ;; + output) + __output ;; + plan) + __plan ;; + providers) + test $CURRENT -lt 3 && __providers + [[ $words[2] = "mirror" ]] && __providers_mirror + [[ $words[2] = "schema" ]] && __providers_schema + ;; + refresh) + __refresh ;; + show) + __show ;; + state) + test $CURRENT -lt 3 && __state + [[ $words[2] = "list" ]] && __state_list + [[ $words[2] = "mv" ]] && __state_mv + [[ $words[2] = "push" ]] && __state_push + [[ $words[2] = "replace-provider" ]] && __state_replace_provider + [[ $words[2] = "rm" ]] && __state_rm + [[ $words[2] = "show" ]] && __state_show + ;; + taint) + __taint ;; + untaint) + __untaint ;; + validate) + __validate ;; + version) + __version ;; + workspace) + test $CURRENT -lt 3 && __workspace ;; +esac diff --git a/plugins/terraform/terraform.plugin.zsh b/plugins/terraform/terraform.plugin.zsh index eaa1e2e81..d9e39e6ac 100644 --- a/plugins/terraform/terraform.plugin.zsh +++ b/plugins/terraform/terraform.plugin.zsh @@ -16,8 +16,3 @@ alias tfi='terraform init' alias tfo='terraform output' alias tfp='terraform plan' alias tfv='terraform validate' - -if (( $+commands[terraform] )); then - autoload -U +X bashcompinit && bashcompinit - complete -o nospace -C terraform terraform -fi From 9f9d3b7d247b3c3e21542abaaf107e3d15aac1a5 Mon Sep 17 00:00:00 2001 From: rohitbahekar <57762527+rohitbahekar@users.noreply.github.com> Date: Tue, 21 Feb 2023 15:53:04 +0530 Subject: [PATCH 167/441] feat(terraform): add `tfc` alias (#10815) --- plugins/terraform/README.md | 1 + plugins/terraform/terraform.plugin.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/terraform/README.md b/plugins/terraform/README.md index 59c6e7f2a..c19f2ad1c 100644 --- a/plugins/terraform/README.md +++ b/plugins/terraform/README.md @@ -19,6 +19,7 @@ plugins=(... terraform) | ----- | -------------------- | | `tf` | `terraform` | | `tfa` | `terraform apply` | +| `tfc` | `terraform console` | | `tfd` | `terraform destroy` | | `tff` | `terraform fmt` | | `tfi` | `terraform init` | diff --git a/plugins/terraform/terraform.plugin.zsh b/plugins/terraform/terraform.plugin.zsh index d9e39e6ac..7006f204b 100644 --- a/plugins/terraform/terraform.plugin.zsh +++ b/plugins/terraform/terraform.plugin.zsh @@ -10,6 +10,7 @@ function tf_prompt_info() { alias tf='terraform' alias tfa='terraform apply' +alias tfc='terraform console' alias tfd='terraform destroy' alias tff='terraform fmt' alias tfi='terraform init' From a4f08ad238dba23a68df2a89b8fd47b8a9d26b0e Mon Sep 17 00:00:00 2001 From: Filippo Bonazzi Date: Wed, 22 Feb 2023 10:16:28 +0100 Subject: [PATCH 168/441] feat(extract): support `obscpio` format (#11511) Co-authored-by: Carlo Sala --- plugins/extract/README.md | 15 ++++++++------- plugins/extract/_extract | 2 +- plugins/extract/extract.plugin.zsh | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/plugins/extract/README.md b/plugins/extract/README.md index f67b53618..ac4a8e197 100644 --- a/plugins/extract/README.md +++ b/plugins/extract/README.md @@ -1,10 +1,10 @@ # extract plugin -This plugin defines a function called `extract` that extracts the archive file -you pass it, and it supports a wide variety of archive filetypes. +This plugin defines a function called `extract` that extracts the archive file you pass it, and it supports a +wide variety of archive filetypes. -This way you don't have to know what specific command extracts a file, you just -do `extract ` and the function takes care of the rest. +This way you don't have to know what specific command extracts a file, you just do `extract ` and +the function takes care of the rest. To use it, add `extract` to the plugins array in your zshrc file: @@ -15,7 +15,7 @@ plugins=(... extract) ## Supported file extensions | Extension | Description | -|:------------------|:-------------------------------------| +| :---------------- | :----------------------------------- | | `7z` | 7zip file | | `Z` | Z archive (LZW) | | `apk` | Android app file | @@ -32,6 +32,7 @@ plugins=(... extract) | `lrz` | LRZ archive | | `lz4` | LZ4 archive | | `lzma` | LZMA archive | +| `obscpio` | cpio archive used on OBS | | `rar` | WinRAR archive | | `rpm` | RPM package | | `sublime-package` | Sublime Text package | @@ -57,5 +58,5 @@ plugins=(... extract) | `zst` | Zstandard file (zstd) | | `zpaq` | Zpaq file | -See [list of archive formats](https://en.wikipedia.org/wiki/List_of_archive_formats) for -more information regarding archive formats. +See [list of archive formats](https://en.wikipedia.org/wiki/List_of_archive_formats) for more information +regarding archive formats. diff --git a/plugins/extract/_extract b/plugins/extract/_extract index 64678fede..56b17058f 100644 --- a/plugins/extract/_extract +++ b/plugins/extract/_extract @@ -3,5 +3,5 @@ _arguments \ '(-r --remove)'{-r,--remove}'[Remove archive.]' \ - "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|cab|cpio|deb|ear|gz|ipa|ipsw|jar|lrz|lz4|lzma|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.lrz|tar.lz|tar.lz4|tar.xz|tar.zma|tar.zst|tbz|tbz2|tgz|tlz|txz|tzst|war|whl|xpi|xz|zip|zst|zpaq)(-.)'" \ + "*::archive file:_files -g '(#i)*.(7z|Z|apk|aar|bz2|cab|cpio|deb|ear|gz|ipa|ipsw|jar|lrz|lz4|lzma|obscpio|rar|rpm|sublime-package|tar|tar.bz2|tar.gz|tar.lrz|tar.lz|tar.lz4|tar.xz|tar.zma|tar.zst|tbz|tbz2|tgz|tlz|txz|tzst|war|whl|xpi|xz|zip|zst|zpaq)(-.)'" \ && return 0 diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index 4c84ef883..7b7a2fa4f 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -72,7 +72,7 @@ EOF builtin cd -q ..; command rm *.tar.* debian-binary ;; (*.zst) unzstd "$file" ;; (*.cab) cabextract -d "$extract_dir" "$file" ;; - (*.cpio) cpio -idmvF "$file" ;; + (*.cpio|*.obscpio) cpio -idmvF "$file" ;; (*.zpaq) zpaq x "$file" ;; (*) echo "extract: '$file' cannot be extracted" >&2 From 221eb9b90ab4d03b6f00e62f31e979459e08e7ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E4=B8=8D=E6=B8=B8?= <71683364+mefengl@users.noreply.github.com> Date: Tue, 21 Feb 2023 03:07:45 +0800 Subject: [PATCH 169/441] feat(marktext): add plugin Closes #11507 --- plugins/marktext/README.md | 17 +++++++++++++++++ plugins/marktext/marktext.plugin.zsh | 7 +++++++ 2 files changed, 24 insertions(+) create mode 100644 plugins/marktext/README.md create mode 100644 plugins/marktext/marktext.plugin.zsh diff --git a/plugins/marktext/README.md b/plugins/marktext/README.md new file mode 100644 index 000000000..71d287451 --- /dev/null +++ b/plugins/marktext/README.md @@ -0,0 +1,17 @@ +## marktext + +Plugin for MarkText, a previewer for Markdown files on Mac OS X + +### Requirements + + * [MarkText](https://github.com/marktext/marktext) + +### Usage + + * If `marktext` is called without an argument, open MarkText + + * If `marktext` is passed a file, open it in MarkText + +### Credits + + * just copied from plugins/marked2, all credits to marked2 plugin author diff --git a/plugins/marktext/marktext.plugin.zsh b/plugins/marktext/marktext.plugin.zsh new file mode 100644 index 000000000..1da85bcca --- /dev/null +++ b/plugins/marktext/marktext.plugin.zsh @@ -0,0 +1,7 @@ +# +# If marktext is called without an argument, open MarkText +# If marktext is passed a file, open it in MarkText +# +function marktext() { + open -a "MarkText.app" "$1" +} From a24e91908adb25dfc222e6a6f6431e2fbc890545 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E4=B8=8D=E6=B8=B8?= <71683364+mefengl@users.noreply.github.com> Date: Wed, 22 Feb 2023 18:26:30 +0800 Subject: [PATCH 170/441] feat(marked): remove unnecessary code --- plugins/marked2/marked2.plugin.zsh | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/plugins/marked2/marked2.plugin.zsh b/plugins/marked2/marked2.plugin.zsh index 56863ade5..45f4b65c1 100644 --- a/plugins/marked2/marked2.plugin.zsh +++ b/plugins/marked2/marked2.plugin.zsh @@ -3,10 +3,5 @@ # If marked is passed a file, open it in Marked # function marked() { - if [ "$1" ] - then - open -a "marked 2.app" "$1" - else - open -a "marked 2.app" - fi + open -a "marked 2.app" "$1" } From aca048814b2462501ab82938ff2473661182fffb Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 22 Feb 2023 15:35:12 +0100 Subject: [PATCH 171/441] fix(theme-and-appearance): avoid infinite recursion --- lib/theme-and-appearance.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/theme-and-appearance.zsh b/lib/theme-and-appearance.zsh index c83f58c7b..1b64b51d4 100644 --- a/lib/theme-and-appearance.zsh +++ b/lib/theme-and-appearance.zsh @@ -47,7 +47,7 @@ fi # enable diff color if possible. if command diff --color /dev/null /dev/null &>/dev/null; then function color-diff { - diff --color $@ + command diff --color $@ } alias diff="color-diff" compdef _diff color-diff # compdef is already loaded by this point From b54ef89fab89eaa62ece588f96d8cbd7c222d854 Mon Sep 17 00:00:00 2001 From: WaferJay <17383312+WaferJay@users.noreply.github.com> Date: Fri, 24 Feb 2023 05:32:40 +0800 Subject: [PATCH 172/441] fix(af-magic): fix logic for separator with virtualenv (#11518) --- themes/af-magic.zsh-theme | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/themes/af-magic.zsh-theme b/themes/af-magic.zsh-theme index 1b629e43a..70549d01f 100644 --- a/themes/af-magic.zsh-theme +++ b/themes/af-magic.zsh-theme @@ -6,7 +6,8 @@ # dashed separator size function afmagic_dashes { # check either virtualenv or condaenv variables - local python_env="${VIRTUAL_ENV:-$CONDA_DEFAULT_ENV}" + local python_env_dir="${VIRTUAL_ENV:-$CONDA_DEFAULT_ENV}" + local python_env="${python_env_dir##*/}" # if there is a python virtual environment and it is displayed in # the prompt, account for it when returning the number of dashes From 8a008e1f51d451db21232edd6f1709e6c5ea334e Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Thu, 23 Feb 2023 23:00:31 +0100 Subject: [PATCH 173/441] fix(azure): load completion properly for brew (#11499) Closes #11497 --- plugins/azure/azure.plugin.zsh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/plugins/azure/azure.plugin.zsh b/plugins/azure/azure.plugin.zsh index 7bb173a5c..51b54dbc1 100644 --- a/plugins/azure/azure.plugin.zsh +++ b/plugins/azure/azure.plugin.zsh @@ -32,12 +32,14 @@ function _az-homebrew-installed() { (( $+commands[brew] )) || return 1 # speculatively check default brew prefix - if [ -h /usr/local/opt/az ]; then - _brew_prefix=/usr/local/opt/az + if [[ -d /usr/local ]]; then + _brew_prefix=/usr/local + elif [[ -d /opt/homebrew ]]; then + _brew_prefix=/opt/homebrew else # ok, it is not in the default prefix # this call to brew is expensive (about 400 ms), so at least let's make it only once - _brew_prefix=$(brew --prefix azure-cli) + _brew_prefix=$(brew --prefix) fi } @@ -49,12 +51,12 @@ _az_zsh_completer_path="$commands[az_zsh_completer.sh]" if [[ -z $_az_zsh_completer_path ]]; then # Homebrew if _az-homebrew-installed; then - _az_zsh_completer_path=$_brew_prefix/libexec/bin/az.completion.sh + _az_zsh_completer_path=$_brew_prefix/etc/bash_completion.d/az # Linux else _az_zsh_completer_path=/etc/bash_completion.d/azure-cli fi fi -[[ -r $_az_zsh_completer_path ]] && source $_az_zsh_completer_path +[[ -r $_az_zsh_completer_path ]] && autoload -U +X bashcompinit && bashcompinit && source $_az_zsh_completer_path unset _az_zsh_completer_path _brew_prefix From bd9c216fe04a1542913f524cad1719797ce39ba2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Reegn?= Date: Fri, 24 Feb 2023 17:27:15 +0100 Subject: [PATCH 174/441] feat(iterm2): add shell integration script (#11509) --- plugins/iterm2/README.md | 12 ++ plugins/iterm2/iterm2.plugin.zsh | 11 ++ plugins/iterm2/iterm2_shell_integration.zsh | 178 ++++++++++++++++++++ plugins/iterm2/update | 4 + 4 files changed, 205 insertions(+) create mode 100644 plugins/iterm2/iterm2_shell_integration.zsh create mode 100755 plugins/iterm2/update diff --git a/plugins/iterm2/README.md b/plugins/iterm2/README.md index 50cdebf5e..3d11622df 100644 --- a/plugins/iterm2/README.md +++ b/plugins/iterm2/README.md @@ -2,11 +2,20 @@ This plugin adds a few functions that are useful when using [iTerm2](https://www.iterm2.com/). + To use it, add _iterm2_ to the plugins array of your zshrc file: ``` plugins=(... iterm2) ``` +Optionally, the plugin also applies the [Shell Integration Script for iTerm2](https://iterm2.com/documentation-shell-integration.html). +You can enable the integration with zstyle. It's important to add this line +before the line sourcing oh-my-zsh: + +``` +zstyle :omz:plugins:iterm2 shell-integration yes +``` + ## Plugin commands * `_iterm2_command ` @@ -24,6 +33,9 @@ plugins=(... iterm2) * `iterm2_tab_color_reset` resets the color of iTerm2's current tab back to default. + +For shell integration features see the [official documentation](https://iterm2.com/documentation-shell-integration.html). + ## Contributors - [Aviv Rosenberg](https://github.com/avivrosenberg) diff --git a/plugins/iterm2/iterm2.plugin.zsh b/plugins/iterm2/iterm2.plugin.zsh index 9d8e40bf6..d00232a30 100644 --- a/plugins/iterm2/iterm2.plugin.zsh +++ b/plugins/iterm2/iterm2.plugin.zsh @@ -7,6 +7,17 @@ # This plugin is only relevant if the terminal is iTerm2 on OSX. if [[ "$OSTYPE" == darwin* ]] && [[ -n "$ITERM_SESSION_ID" ]] ; then + # maybe make it the default in the future and allow opting out? + if zstyle -t ':omz:plugins:iterm2' shell-integration; then + # Handle $0 according to the standard: + # https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html + 0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" + 0="${${(M)0:#/*}:-$PWD/$0}" + + # See official docs: https://iterm2.com/documentation-shell-integration.html + source "${0:A:h}/iterm2_shell_integration.zsh" + fi + ### # Executes an arbitrary iTerm2 command via an escape code sequence. # See https://iterm2.com/documentation-escape-codes.html for all supported commands. diff --git a/plugins/iterm2/iterm2_shell_integration.zsh b/plugins/iterm2/iterm2_shell_integration.zsh new file mode 100644 index 000000000..7871ddded --- /dev/null +++ b/plugins/iterm2/iterm2_shell_integration.zsh @@ -0,0 +1,178 @@ +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +if [[ -o interactive ]]; then + if [ "${ITERM_ENABLE_SHELL_INTEGRATION_WITH_TMUX-}""$TERM" != "tmux-256color" -a "${ITERM_ENABLE_SHELL_INTEGRATION_WITH_TMUX-}""$TERM" != "screen" -a "${ITERM_SHELL_INTEGRATION_INSTALLED-}" = "" -a "$TERM" != linux -a "$TERM" != dumb ]; then + ITERM_SHELL_INTEGRATION_INSTALLED=Yes + ITERM2_SHOULD_DECORATE_PROMPT="1" + # Indicates start of command output. Runs just before command executes. + iterm2_before_cmd_executes() { + if [ "$TERM_PROGRAM" = "iTerm.app" ]; then + printf "\033]133;C;\r\007" + else + printf "\033]133;C;\007" + fi + } + + iterm2_set_user_var() { + printf "\033]1337;SetUserVar=%s=%s\007" "$1" $(printf "%s" "$2" | base64 | tr -d '\n') + } + + # Users can write their own version of this method. It should call + # iterm2_set_user_var but not produce any other output. + # e.g., iterm2_set_user_var currentDirectory $PWD + # Accessible in iTerm2 (in a badge now, elsewhere in the future) as + # \(user.currentDirectory). + whence -v iterm2_print_user_vars > /dev/null 2>&1 + if [ $? -ne 0 ]; then + iterm2_print_user_vars() { + true + } + fi + + iterm2_print_state_data() { + local _iterm2_hostname="${iterm2_hostname-}" + if [ -z "${iterm2_hostname:-}" ]; then + _iterm2_hostname=$(hostname -f 2>/dev/null) + fi + printf "\033]1337;RemoteHost=%s@%s\007" "$USER" "${_iterm2_hostname-}" + printf "\033]1337;CurrentDir=%s\007" "$PWD" + iterm2_print_user_vars + } + + # Report return code of command; runs after command finishes but before prompt + iterm2_after_cmd_executes() { + printf "\033]133;D;%s\007" "$STATUS" + iterm2_print_state_data + } + + # Mark start of prompt + iterm2_prompt_mark() { + printf "\033]133;A\007" + } + + # Mark end of prompt + iterm2_prompt_end() { + printf "\033]133;B\007" + } + + # There are three possible paths in life. + # + # 1) A command is entered at the prompt and you press return. + # The following steps happen: + # * iterm2_preexec is invoked + # * PS1 is set to ITERM2_PRECMD_PS1 + # * ITERM2_SHOULD_DECORATE_PROMPT is set to 1 + # * The command executes (possibly reading or modifying PS1) + # * iterm2_precmd is invoked + # * ITERM2_PRECMD_PS1 is set to PS1 (as modified by command execution) + # * PS1 gets our escape sequences added to it + # * zsh displays your prompt + # * You start entering a command + # + # 2) You press ^C while entering a command at the prompt. + # The following steps happen: + # * (iterm2_preexec is NOT invoked) + # * iterm2_precmd is invoked + # * iterm2_before_cmd_executes is called since we detected that iterm2_preexec was not run + # * (ITERM2_PRECMD_PS1 and PS1 are not messed with, since PS1 already has our escape + # sequences and ITERM2_PRECMD_PS1 already has PS1's original value) + # * zsh displays your prompt + # * You start entering a command + # + # 3) A new shell is born. + # * PS1 has some initial value, either zsh's default or a value set before this script is sourced. + # * iterm2_precmd is invoked + # * ITERM2_SHOULD_DECORATE_PROMPT is initialized to 1 + # * ITERM2_PRECMD_PS1 is set to the initial value of PS1 + # * PS1 gets our escape sequences added to it + # * Your prompt is shown and you may begin entering a command. + # + # Invariants: + # * ITERM2_SHOULD_DECORATE_PROMPT is 1 during and just after command execution, and "" while the prompt is + # shown and until you enter a command and press return. + # * PS1 does not have our escape sequences during command execution + # * After the command executes but before a new one begins, PS1 has escape sequences and + # ITERM2_PRECMD_PS1 has PS1's original value. + iterm2_decorate_prompt() { + # This should be a raw PS1 without iTerm2's stuff. It could be changed during command + # execution. + ITERM2_PRECMD_PS1="$PS1" + ITERM2_SHOULD_DECORATE_PROMPT="" + + # Add our escape sequences just before the prompt is shown. + # Use ITERM2_SQUELCH_MARK for people who can't mdoify PS1 directly, like powerlevel9k users. + # This is gross but I had a heck of a time writing a correct if statetment for zsh 5.0.2. + local PREFIX="" + if [[ $PS1 == *"$(iterm2_prompt_mark)"* ]]; then + PREFIX="" + elif [[ "${ITERM2_SQUELCH_MARK-}" != "" ]]; then + PREFIX="" + else + PREFIX="%{$(iterm2_prompt_mark)%}" + fi + PS1="$PREFIX$PS1%{$(iterm2_prompt_end)%}" + ITERM2_DECORATED_PS1="$PS1" + } + + iterm2_precmd() { + local STATUS="$?" + if [ -z "${ITERM2_SHOULD_DECORATE_PROMPT-}" ]; then + # You pressed ^C while entering a command (iterm2_preexec did not run) + iterm2_before_cmd_executes + if [ "$PS1" != "${ITERM2_DECORATED_PS1-}" ]; then + # PS1 changed, perhaps in another precmd. See issue 9938. + ITERM2_SHOULD_DECORATE_PROMPT="1" + fi + fi + + iterm2_after_cmd_executes "$STATUS" + + if [ -n "$ITERM2_SHOULD_DECORATE_PROMPT" ]; then + iterm2_decorate_prompt + fi + } + + # This is not run if you press ^C while entering a command. + iterm2_preexec() { + # Set PS1 back to its raw value prior to executing the command. + PS1="$ITERM2_PRECMD_PS1" + ITERM2_SHOULD_DECORATE_PROMPT="1" + iterm2_before_cmd_executes + } + + # If hostname -f is slow on your system set iterm2_hostname prior to + # sourcing this script. We know it is fast on macOS so we don't cache + # it. That lets us handle the hostname changing like when you attach + # to a VPN. + if [ -z "${iterm2_hostname-}" ]; then + if [ "$(uname)" != "Darwin" ]; then + iterm2_hostname=`hostname -f 2>/dev/null` + # Some flavors of BSD (i.e. NetBSD and OpenBSD) don't have the -f option. + if [ $? -ne 0 ]; then + iterm2_hostname=`hostname` + fi + fi + fi + + [[ -z ${precmd_functions-} ]] && precmd_functions=() + precmd_functions=($precmd_functions iterm2_precmd) + + [[ -z ${preexec_functions-} ]] && preexec_functions=() + preexec_functions=($preexec_functions iterm2_preexec) + + iterm2_print_state_data + printf "\033]1337;ShellIntegrationVersion=14;shell=zsh\007" + fi +fi diff --git a/plugins/iterm2/update b/plugins/iterm2/update new file mode 100755 index 000000000..da8dae690 --- /dev/null +++ b/plugins/iterm2/update @@ -0,0 +1,4 @@ +#!/bin/sh + +curl -s -L https://iterm2.com/shell_integration/zsh \ + -o iterm2_shell_integration.zsh From 5cb943eea46d322542c5c2a9f54b201eddc2aa67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Fri, 24 Feb 2023 17:27:23 +0100 Subject: [PATCH 175/441] fix(lib): fix return code after expected non-zero exit code (#11524) Fixes #11524 --- lib/directories.zsh | 2 +- lib/vcs_info.zsh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/directories.zsh b/lib/directories.zsh index 091140626..9274b5f5f 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -8,7 +8,7 @@ setopt pushdminus # to your `zshrc` before loading `oh-my-zsh.sh` # to disable the following aliases and functions -zstyle -T ':omz:directories' aliases || return +zstyle -T ':omz:directories' aliases || return 0 alias -g ...='../..' alias -g ....='../../..' diff --git a/lib/vcs_info.zsh b/lib/vcs_info.zsh index e60938c14..be6d32ee9 100644 --- a/lib/vcs_info.zsh +++ b/lib/vcs_info.zsh @@ -38,7 +38,7 @@ # due to malicious input as a consequence of CVE-2021-45444, which affects # zsh versions from 5.0.3 to 5.8. # -autoload -Uz +X regexp-replace VCS_INFO_formats 2>/dev/null || return +autoload -Uz +X regexp-replace VCS_INFO_formats 2>/dev/null || return 0 # We use $tmp here because it's already a local variable in VCS_INFO_formats typeset PATCH='for tmp (base base-name branch misc revision subdir) hook_com[$tmp]="${hook_com[$tmp]//\%/%%}"' From 277f38212aef31a6baba2cf1a0a355af611be5e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Fri, 24 Feb 2023 20:55:31 +0100 Subject: [PATCH 176/441] refactor: reorganize setopts in lib folder --- lib/directories.zsh | 1 + lib/misc.zsh | 8 +++----- lib/theme-and-appearance.zsh | 2 -- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/lib/directories.zsh b/lib/directories.zsh index 9274b5f5f..13b680c19 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -1,4 +1,5 @@ # Changing/making/removing directory +setopt auto_cd setopt auto_pushd setopt pushd_ignore_dups setopt pushdminus diff --git a/lib/misc.zsh b/lib/misc.zsh index 1f637083a..132f33551 100644 --- a/lib/misc.zsh +++ b/lib/misc.zsh @@ -15,8 +15,9 @@ if [[ $DISABLE_MAGIC_FUNCTIONS != true ]]; then done fi -## jobs -setopt long_list_jobs +setopt multios # enable redirect to multiple streams: echo >file1 >file2 +setopt long_list_jobs # show long list format job notifications +setopt interactivecomments # recognize comments env_default 'PAGER' 'less' env_default 'LESS' '-R' @@ -30,6 +31,3 @@ if (( $+commands[ack-grep] )); then elif (( $+commands[ack] )); then alias afind='ack -il' fi - -# recognize comments -setopt interactivecomments diff --git a/lib/theme-and-appearance.zsh b/lib/theme-and-appearance.zsh index 1b64b51d4..208ab9ce5 100644 --- a/lib/theme-and-appearance.zsh +++ b/lib/theme-and-appearance.zsh @@ -53,8 +53,6 @@ if command diff --color /dev/null /dev/null &>/dev/null; then compdef _diff color-diff # compdef is already loaded by this point fi -setopt auto_cd -setopt multios setopt prompt_subst [[ -n "$WINDOW" ]] && SCREEN_NO="%B$WINDOW%b " || SCREEN_NO="" From cd647b6dc6779a1aafa2bcc3a81ec10b65c783ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sun, 26 Feb 2023 15:44:18 +0100 Subject: [PATCH 177/441] fix(gnu-utils): reset ls alias to use GNU-based --color argument (#11527) Fixes #11503 --- plugins/gnu-utils/gnu-utils.plugin.zsh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/plugins/gnu-utils/gnu-utils.plugin.zsh b/plugins/gnu-utils/gnu-utils.plugin.zsh index 9419127d8..6bd3e8463 100644 --- a/plugins/gnu-utils/gnu-utils.plugin.zsh +++ b/plugins/gnu-utils/gnu-utils.plugin.zsh @@ -61,3 +61,14 @@ __gnu_utils_preexec() { autoload -Uz add-zsh-hook add-zsh-hook preexec __gnu_utils_preexec + +# lib/theme-and-appearance.zsh sets the alias for ls not knowing that +# we'll be using GNU ls. We'll reset this to use GNU ls --color. +# See https://github.com/ohmyzsh/ohmyzsh/issues/11503 +# +# The ls alias might look like: +# - ls='ls -G' +# - ls='gls --color=tty' +if [[ -x "${commands[gls]}" && "${aliases[ls]}" = (*-G*|gls*) ]]; then + alias ls='ls --color=tty' +fi From 0ca8907f0e6185545c5e38f77ae2f09ca2a44e77 Mon Sep 17 00:00:00 2001 From: Jannik Date: Sun, 26 Feb 2023 20:37:03 +0100 Subject: [PATCH 178/441] fix(lib): fix case-insensitive completion for zsh 5.9 (#11526) --- lib/completion.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/completion.zsh b/lib/completion.zsh index 2c5695487..63379b53f 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -18,9 +18,9 @@ if [[ "$CASE_SENSITIVE" = true ]]; then zstyle ':completion:*' matcher-list 'r:|=*' 'l:|=* r:|=*' else if [[ "$HYPHEN_INSENSITIVE" = true ]]; then - zstyle ':completion:*' matcher-list 'm:{a-zA-Z-_}={A-Za-z_-}' 'r:|=*' 'l:|=* r:|=*' + zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]-_}={[:upper:][:lower:]_-}' 'r:|=*' 'l:|=* r:|=*' else - zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|=*' 'l:|=* r:|=*' + zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'r:|=*' 'l:|=* r:|=*' fi fi unset CASE_SENSITIVE HYPHEN_INSENSITIVE From 16050ab80e63f8e53c07777b4c2ae16ad085e5ad Mon Sep 17 00:00:00 2001 From: Richard Mitchell Date: Sun, 26 Feb 2023 16:40:44 -0500 Subject: [PATCH 179/441] feat(macos): allow multiple man pages in `man-preview` (#11365) --- plugins/macos/README.md | 2 +- plugins/macos/macos.plugin.zsh | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/macos/README.md b/plugins/macos/README.md index 1bc4244a4..1cb9b395d 100644 --- a/plugins/macos/README.md +++ b/plugins/macos/README.md @@ -25,7 +25,7 @@ Original author: [Sorin Ionescu](https://github.com/sorin-ionescu) | `pxd` | Return the current Xcode project directory | | `cdx` | `cd` to the current Xcode project directory | | `quick-look` | Quick-Look a specified file | -| `man-preview` | Open a specified man page in Preview app | +| `man-preview` | Open man pages in Preview app | | `showfiles` | Show hidden files in Finder | | `hidefiles` | Hide the hidden files in Finder | | `itunes` | _DEPRECATED_. Use `music` from macOS Catalina on | diff --git a/plugins/macos/macos.plugin.zsh b/plugins/macos/macos.plugin.zsh index e4d759dcf..e27d412c8 100644 --- a/plugins/macos/macos.plugin.zsh +++ b/plugins/macos/macos.plugin.zsh @@ -224,9 +224,10 @@ function quick-look() { } function man-preview() { - local location - # Don't let Preview.app steal focus if the man page doesn't exist - location=$(man -w "$@") && mandoc -Tpdf $location | open -f -a Preview + local page + for page in "${(@f)"$(man -w $@)"}"; do + command mandoc -Tpdf $page | open -f -a Preview + done } compdef _man man-preview From 21bdb18b2d1fe8b547a42da7ac7b58fb28563a2c Mon Sep 17 00:00:00 2001 From: Carlos Eduardo Monti Date: Mon, 27 Feb 2023 20:22:39 +0100 Subject: [PATCH 180/441] feat(nodenv): add plugin for `nodenv` (#9880) Co-authored-by: Matthew Boston --- plugins/nodenv/README.md | 20 +++++++++++++++ plugins/nodenv/nodenv.plugin.zsh | 43 ++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 plugins/nodenv/README.md create mode 100644 plugins/nodenv/nodenv.plugin.zsh diff --git a/plugins/nodenv/README.md b/plugins/nodenv/README.md new file mode 100644 index 000000000..550597025 --- /dev/null +++ b/plugins/nodenv/README.md @@ -0,0 +1,20 @@ +# nodenv plugin + +The primary job of this plugin is to provide `nodenv_prompt_info` which can be added to your theme to include Node +version information into your prompt. + +To use it, add `nodenv` to the plugins array in your zshrc file: + +```zsh +plugins=(... nodenv) +``` + +## Functions + +* `nodenv_prompt_info`: displays the Node version in use by nodenv; or the global Node + version, if nodenv wasn't found. You can use this function in your prompt by adding + `$(nodenv_prompt_info)` to PROMPT or RPROMPT: + + ```zsh + RPROMPT='$(nodenv_prompt_info)' + ``` diff --git a/plugins/nodenv/nodenv.plugin.zsh b/plugins/nodenv/nodenv.plugin.zsh new file mode 100644 index 000000000..79a4ffbb5 --- /dev/null +++ b/plugins/nodenv/nodenv.plugin.zsh @@ -0,0 +1,43 @@ +# This plugin loads nodenv into the current shell and provides prompt info via +# the 'nodenv_prompt_info' function. + +FOUND_NODENV=${+commands[nodenv]} + +if [[ $FOUND_NODENV -ne 1 ]]; then + nodenvdirs=( + "$HOME/.nodenv" + "/usr/local/nodenv" + "/opt/nodenv" + "/usr/local/opt/nodenv" + ) + for dir in $nodenvdirs; do + if [[ -d "${dir}/bin" ]]; then + export PATH="$PATH:${dir}/bin" + FOUND_NODENV=1 + break + fi + done + + if [[ $FOUND_NODENV -ne 1 ]]; then + if (( $+commands[brew] )) && dir=$(brew --prefix nodenv 2>/dev/null); then + if [[ -d "${dir}/bin" ]]; then + export PATH="$PATH:${dir}/bin" + FOUND_NODENV=1 + fi + fi + fi +fi + +if [[ $FOUND_NODENV -eq 1 ]]; then + eval "$(nodenv init --no-rehash - zsh)" + function nodenv_prompt_info() { + nodenv version-name 2>/dev/null + } +else + # fallback to system node + function nodenv_prompt_info() { + echo "system: $(node -v 2>&1 | cut -c 2-)" + } +fi + +unset FOUND_NODENV nodenvdirs dir From f42c965da44be6940134b805edb54c5eca37d9ae Mon Sep 17 00:00:00 2001 From: ZYX Date: Mon, 27 Feb 2023 14:39:38 -0500 Subject: [PATCH 181/441] fix(aliases): clarify how to pass in keywords to `acs` (#11521) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Marc Cornellà --- plugins/aliases/README.md | 2 +- plugins/aliases/cheatsheet.py | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/aliases/README.md b/plugins/aliases/README.md index 4e77f67b3..6a2da3d74 100644 --- a/plugins/aliases/README.md +++ b/plugins/aliases/README.md @@ -19,7 +19,7 @@ Requirements: Python needs to be installed. - `acs -h/--help`: print help mesage -- `acs `: filter aliases by `` and highlight +- `acs `: filter and highlight aliases by `` - `acs -g /--group `: show only aliases for group ``. Multiple uses of the flag show all groups diff --git a/plugins/aliases/cheatsheet.py b/plugins/aliases/cheatsheet.py index 3362a6ab6..fb8c74aa4 100644 --- a/plugins/aliases/cheatsheet.py +++ b/plugins/aliases/cheatsheet.py @@ -51,18 +51,18 @@ def pretty_print(cheatsheet, wfilter, group_list=None, groups_only=False): continue aliases = cheatsheet.get(key) if not wfilter: - pretty_print_group(key, aliases, wfilter, groups_only) + pretty_print_group(key, aliases, only_groupname=groups_only) else: - pretty_print_group(key, [ alias for alias in aliases if alias[0].find(wfilter)>-1 or alias[1].find(wfilter)>-1], wfilter) + pretty_print_group(key, [ alias for alias in aliases if wfilter in alias[0] or wfilter in alias[1] ], wfilter) if __name__ == '__main__': - parser = argparse.ArgumentParser(description="Pretty print aliases.") - parser.add_argument('filter', nargs="*", help="search aliases matching string") + parser = argparse.ArgumentParser(description="Pretty print aliases.", prog="acs") + parser.add_argument('filter', nargs="*", metavar="", help="search aliases matching keywords") parser.add_argument('-g', '--group', dest="group_list", action='append', help="only print aliases in given groups") parser.add_argument('--groups', dest='groups_only', action='store_true', help="only print alias groups") args = parser.parse_args() lines = sys.stdin.readlines() group_list = args.group_list or None - wfilter = " ".join(args.filter) or None + wfilter = " ".join(args.filter[1:]) if args.filter else None pretty_print(cheatsheet(lines), wfilter, group_list, args.groups_only) From b602e0a066d8c98e8c02201ad16c764447fd8531 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 27 Feb 2023 20:46:42 +0100 Subject: [PATCH 182/441] fix(aliases): fix regression in filter argument --- plugins/aliases/cheatsheet.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/aliases/cheatsheet.py b/plugins/aliases/cheatsheet.py index fb8c74aa4..7505d304b 100644 --- a/plugins/aliases/cheatsheet.py +++ b/plugins/aliases/cheatsheet.py @@ -51,9 +51,9 @@ def pretty_print(cheatsheet, wfilter, group_list=None, groups_only=False): continue aliases = cheatsheet.get(key) if not wfilter: - pretty_print_group(key, aliases, only_groupname=groups_only) + pretty_print_group(key, aliases, wfilter, groups_only) else: - pretty_print_group(key, [ alias for alias in aliases if wfilter in alias[0] or wfilter in alias[1] ], wfilter) + pretty_print_group(key, [ alias for alias in aliases if alias[0].find(wfilter)>-1 or alias[1].find(wfilter)>-1], wfilter) if __name__ == '__main__': parser = argparse.ArgumentParser(description="Pretty print aliases.", prog="acs") @@ -64,5 +64,5 @@ if __name__ == '__main__': lines = sys.stdin.readlines() group_list = args.group_list or None - wfilter = " ".join(args.filter[1:]) if args.filter else None + wfilter = " ".join(args.filter) or None pretty_print(cheatsheet(lines), wfilter, group_list, args.groups_only) From a4a9a8cd8ccb4240a7c5df5f6766bd5340646e63 Mon Sep 17 00:00:00 2001 From: Julian Suarez <49501306+jsred@users.noreply.github.com> Date: Wed, 1 Mar 2023 07:23:32 -0300 Subject: [PATCH 183/441] feat(rvm): add `rb32` alias (#11533) --- plugins/rvm/README.md | 1 + plugins/rvm/rvm.plugin.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/rvm/README.md b/plugins/rvm/README.md index 576b037b0..410bd60c0 100644 --- a/plugins/rvm/README.md +++ b/plugins/rvm/README.md @@ -24,6 +24,7 @@ plugins=(... rvm) | `rb27` | `rvm use ruby-2.7` | | `rb30` | `rvm use ruby-3.0` | | `rb31` | `rvm use ruby-3.1` | +| `rb32` | `rvm use ruby-3.2` | | `rvm-update` | `rvm get head` | | `gems` | `gem list` | | `rvms` | `rvm gemset` | diff --git a/plugins/rvm/rvm.plugin.zsh b/plugins/rvm/rvm.plugin.zsh index 2a091d019..3ddf04176 100644 --- a/plugins/rvm/rvm.plugin.zsh +++ b/plugins/rvm/rvm.plugin.zsh @@ -27,6 +27,7 @@ rubies=( 27 'ruby-2.7' 30 'ruby-3.0' 31 'ruby-3.1' + 32 'ruby-3.2' ) for v in ${(k)rubies}; do From 14978859c5b8d9385c9b836cd09c97cc08b6035b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Batuhan=20=C5=9Eanl=C4=B1?= <32306925+batuhan0sanli@users.noreply.github.com> Date: Thu, 2 Mar 2023 12:03:50 +0300 Subject: [PATCH 184/441] docs(brew): remove duplication (#11535) --- plugins/brew/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/brew/README.md b/plugins/brew/README.md index d0c150237..412daae63 100644 --- a/plugins/brew/README.md +++ b/plugins/brew/README.md @@ -21,7 +21,6 @@ defined for convenience. | -------- | --------------------------------------- | ------------------------------------------------------------------- | | `bcubc` | `brew upgrade --cask && brew cleanup` | Update outdated casks, then run cleanup. | | `bcubo` | `brew update && brew outdated --cask` | Update Homebrew data, then list outdated casks. | -| `bcubc` | `brew upgrade --cask && brew cleanup` | Update outdated casks, then run cleanup. | | `brewp` | `brew pin` | Pin a specified formula so that it's not upgraded. | | `brews` | `brew list -1` | List installed formulae or the installed files for a given formula. | | `brewsp` | `brew list --pinned` | List pinned formulae, or show the version of a given formula. | From 5bf7f9c83325a6cb2752e14ca01a574dbeef206e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Fri, 3 Mar 2023 12:34:31 +0100 Subject: [PATCH 185/441] fix(lib): use `$BROWSER` in `open_command` if set (#11532) Fixes #11098 --- lib/functions.zsh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/functions.zsh b/lib/functions.zsh index 6e1faa6aa..1d85ea38a 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -30,6 +30,13 @@ function open_command() { ;; esac + # If a URL is passed, $BROWSER might be set to a local browser within SSH. + # See https://github.com/ohmyzsh/ohmyzsh/issues/11098 + if [[ -n "$BROWSER" && "$1" = (http|https)://* ]]; then + "$BROWSER" "$@" + return + fi + ${=open_cmd} "$@" &>/dev/null } From 95d0c4b603e0c880bcf20bc9211b2162e94ed925 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Fri, 3 Mar 2023 14:38:50 +0100 Subject: [PATCH 186/441] refactor(theme-and-appearance): reorganize and clean up logic (#11529) Co-authored-by: Andrew Janke Co-authored-by: Marcelo Parada Co-authored-by: Uy Ha Co-authored-by: Valentin Uveges --- lib/theme-and-appearance.zsh | 147 +++++++++++++++++++++-------------- 1 file changed, 87 insertions(+), 60 deletions(-) diff --git a/lib/theme-and-appearance.zsh b/lib/theme-and-appearance.zsh index 208ab9ce5..985d3bc11 100644 --- a/lib/theme-and-appearance.zsh +++ b/lib/theme-and-appearance.zsh @@ -1,66 +1,93 @@ -# ls colors +# Sets color variable such as $fg, $bg, $color and $reset_color autoload -U colors && colors -# Enable ls colors -export LSCOLORS="Gxfxcxdxbxegedabagacad" - -# TODO organise this chaotic logic - -if [[ "$DISABLE_LS_COLORS" != "true" ]]; then - if [[ -d "$ZSH" ]]; then - _test_dir="$ZSH" - else - _test_dir="." - fi - # Find the option for using colors in ls, depending on the version - if [[ "$OSTYPE" == netbsd* ]]; then - # On NetBSD, test if "gls" (GNU ls) is installed (this one supports colors); - # otherwise, leave ls as is, because NetBSD's ls doesn't support -G - gls --color -d "$_test_dir" &>/dev/null && alias ls='gls --color=tty' - elif [[ "$OSTYPE" == openbsd* ]]; then - # On OpenBSD, "gls" (ls from GNU coreutils) and "colorls" (ls from base, - # with color and multibyte support) are available from ports. "colorls" - # will be installed on purpose and can't be pulled in by installing - # coreutils, so prefer it to "gls". - gls --color -d "$_test_dir" &>/dev/null && alias ls='gls --color=tty' - colorls -G -d "$_test_dir" &>/dev/null && alias ls='colorls -G' - elif [[ "$OSTYPE" == (darwin|freebsd)* ]]; then - # this is a good alias, it works by default just using $LSCOLORS - ls -G "$_test_dir" &>/dev/null && alias ls='ls -G' - - # only use coreutils ls if there is a dircolors customization present ($LS_COLORS or .dircolors file) - # otherwise, gls will use the default color scheme which is ugly af - [[ -n "$LS_COLORS" || -f "$HOME/.dircolors" ]] && gls --color -d "$_test_dir" &>/dev/null && alias ls='gls --color=tty' - else - # For GNU ls, we use the default ls color theme. They can later be overwritten by themes. - if [[ -z "$LS_COLORS" ]]; then - (( $+commands[dircolors] )) && eval "$(dircolors -b)" - fi - - ls --color -d "$_test_dir" &>/dev/null && alias ls='ls --color=tty' || { ls -G "$_test_dir" &>/dev/null && alias ls='ls -G' } - - # Take advantage of $LS_COLORS for completion as well. - zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" - fi -fi - -# enable diff color if possible. -if command diff --color /dev/null /dev/null &>/dev/null; then - function color-diff { - command diff --color $@ - } - alias diff="color-diff" - compdef _diff color-diff # compdef is already loaded by this point -fi - +# Expand variables and commands in PROMPT variables setopt prompt_subst -[[ -n "$WINDOW" ]] && SCREEN_NO="%B$WINDOW%b " || SCREEN_NO="" - -# git theming default: Variables for theming the git info prompt -ZSH_THEME_GIT_PROMPT_PREFIX="git:(" # Prefix at the very beginning of the prompt, before the branch name -ZSH_THEME_GIT_PROMPT_SUFFIX=")" # At the very end of the prompt -ZSH_THEME_GIT_PROMPT_DIRTY="*" # Text to display if the branch is dirty -ZSH_THEME_GIT_PROMPT_CLEAN="" # Text to display if the branch is clean +# Prompt function theming defaults +ZSH_THEME_GIT_PROMPT_PREFIX="git:(" # Beginning of the git prompt, before the branch name +ZSH_THEME_GIT_PROMPT_SUFFIX=")" # End of the git prompt +ZSH_THEME_GIT_PROMPT_DIRTY="*" # Text to display if the branch is dirty +ZSH_THEME_GIT_PROMPT_CLEAN="" # Text to display if the branch is clean ZSH_THEME_RUBY_PROMPT_PREFIX="(" ZSH_THEME_RUBY_PROMPT_SUFFIX=")" + + +# Use diff --color if available +if command diff --color /dev/null{,} &>/dev/null; then + function diff { + command diff --color "$@" + } +fi + + +# Don't set ls coloring if disabled +[[ "$DISABLE_LS_COLORS" != true ]] || return 0 + +function test-ls-args { + local cmd="$1" # ls, gls, colorls, ... + local args="${@[2,-1]}" # arguments except the first one + command "$cmd" "$args" /dev/null &>/dev/null +} + +# Find the option for using colors in ls, depending on the version +case "$OSTYPE" in + netbsd*) + # On NetBSD, test if `gls` (GNU ls) is installed (this one supports colors); + # otherwise, leave ls as is, because NetBSD's ls doesn't support -G + test-ls-args gls --color && alias ls='gls --color=tty' + ;; + openbsd*) + # On OpenBSD, `gls` (ls from GNU coreutils) and `colorls` (ls from base, + # with color and multibyte support) are available from ports. + # `colorls` will be installed on purpose and can't be pulled in by installing + # coreutils (which might be installed for ), so prefer it to `gls`. + test-ls-args gls --color && alias ls='gls --color=tty' + test-ls-args colorls -G && alias ls='colorls -G' + ;; + (darwin|freebsd)*) + # This alias works by default just using $LSCOLORS + test-ls-args ls -G && alias ls='ls -G' + # Only use GNU ls if installed and there are user defaults for $LS_COLORS, + # as the default coloring scheme is not very pretty + [[ -n "$LS_COLORS" || -f "$HOME/.dircolors" ]] \ + && test-ls-args gls --color \ + && alias ls='gls --color=tty' + ;; + *) + if test-ls-args ls --color; then + alias ls='ls --color=tty' + elif test-ls-args ls -G; then + alias ls='ls -G' + fi + ;; +esac + +unfunction test-ls-args + + +# Default coloring for BSD-based ls +export LSCOLORS="Gxfxcxdxbxegedabagacad" + +# Default coloring for GNU-based ls +if [[ -z "$LS_COLORS" ]]; then + # Define LS_COLORS via dircolors if available. Otherwise, set a default + # equivalent to LSCOLORS (generated via https://geoff.greer.fm/lscolors) + if (( $+commands[dircolors] )); then + [[ -f "$HOME/.dircolors" ]] \ + && source <(dircolors -b "$HOME/.dircolors") \ + || source <(dircolors -b) + else + export LS_COLORS="di=34:ln=35:so=32:pi=33:ex=31:bd=34;46:cd=34;43:su=37;41:sg=30;43:tw=30;42:ow=34;42:" + fi +fi + +# Take advantage of $LS_COLORS for completion as well. +function omz_set_completion_colors { + zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" + add-zsh-hook -d precmd omz_set_completion_colors + unfunction omz_set_completion_colors +} + +autoload -Uz add-zsh-hook +add-zsh-hook precmd omz_set_completion_colors From 6f3304f442afde6e1cf3e7e8641a405d29d2e73d Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Sat, 4 Mar 2023 09:25:01 +0100 Subject: [PATCH 187/441] feat(argocd): add completion plugin Co-authored-by: Sumudu Lansakara Closes #9900 --- plugins/argocd/README.md | 20 ++++++++++++++++++++ plugins/argocd/gh.plugin.zsh | 14 ++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 plugins/argocd/README.md create mode 100644 plugins/argocd/gh.plugin.zsh diff --git a/plugins/argocd/README.md b/plugins/argocd/README.md new file mode 100644 index 000000000..0f900ff22 --- /dev/null +++ b/plugins/argocd/README.md @@ -0,0 +1,20 @@ +# Argo CD plugin + +This plugin adds completion for the [Argo CD](https://argoproj.github.io/cd/) CLI. + +To use it, add `argocd` to the plugins array in your zshrc file: + +```zsh +plugins=(... argocd) +``` + +This plugin does not add any aliases. + +## Cache + +This plugin caches the completion script and is automatically updated asynchronously when the plugin is +loaded, which is usually when you start up a new terminal emulator. + +The cache is stored at: + +- `$ZSH_CACHE/completions/_argocd` completions script diff --git a/plugins/argocd/gh.plugin.zsh b/plugins/argocd/gh.plugin.zsh new file mode 100644 index 000000000..8de7b0238 --- /dev/null +++ b/plugins/argocd/gh.plugin.zsh @@ -0,0 +1,14 @@ +# Autocompletion for argocd. +if (( ! $+commands[argocd] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `argocd`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_argocd" ]]; then + typeset -g -A _comps + autoload -Uz _argocd + _comps[argocd]=_argocd +fi + +argocd completion zsh >| "$ZSH_CACHE_DIR/completions/_argocd" &| From 3b759c5dc926d0973d82fa1b8ffed45d770d20e8 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Mon, 6 Mar 2023 11:25:47 +0100 Subject: [PATCH 188/441] fix(argocd): typo in filename --- plugins/argocd/{gh.plugin.zsh => argocd.plugin.zsh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/argocd/{gh.plugin.zsh => argocd.plugin.zsh} (100%) diff --git a/plugins/argocd/gh.plugin.zsh b/plugins/argocd/argocd.plugin.zsh similarity index 100% rename from plugins/argocd/gh.plugin.zsh rename to plugins/argocd/argocd.plugin.zsh From 06c16175ea4aa81d4b64c0772f44c11e505a0eb7 Mon Sep 17 00:00:00 2001 From: Karim Benbourenane Date: Tue, 7 Mar 2023 03:25:34 -0500 Subject: [PATCH 189/441] fix(aliases): group properly aliases (#11546) --- plugins/aliases/cheatsheet.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/aliases/cheatsheet.py b/plugins/aliases/cheatsheet.py index 7505d304b..f742fba9e 100644 --- a/plugins/aliases/cheatsheet.py +++ b/plugins/aliases/cheatsheet.py @@ -15,6 +15,7 @@ def parse(line): def cheatsheet(lines): exps = [ parse(line) for line in lines ] + exps.sort(key=lambda exp:exp[2]) cheatsheet = {'_default': []} for key, group in itertools.groupby(exps, lambda exp:exp[2]): group_list = [ item for item in group ] From 46fd7972a2170388c9b8e9f6e58d6c8408ad4904 Mon Sep 17 00:00:00 2001 From: potato <851951875@qq.com> Date: Tue, 7 Mar 2023 20:33:16 +0800 Subject: [PATCH 190/441] feat(aws): add AWS_REGION to aws_prompt_info (#10062) --- plugins/aws/README.md | 22 +++++++++++++++----- plugins/aws/aws.plugin.zsh | 41 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 56 insertions(+), 7 deletions(-) diff --git a/plugins/aws/README.md b/plugins/aws/README.md index d6f4f4600..e1e355741 100644 --- a/plugins/aws/README.md +++ b/plugins/aws/README.md @@ -1,7 +1,7 @@ # aws This plugin provides completion support for [awscli](https://docs.aws.amazon.com/cli/latest/reference/index.html) -and a few utilities to manage AWS profiles and display them in the prompt. +and a few utilities to manage AWS profiles/regions and display them in the prompt. To use it, add `aws` to the plugins array in your zshrc file. @@ -16,6 +16,9 @@ plugins=(... aws) 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. +* `asr []`: sets `$AWS_REGION` and `$AWS_DEFAULT_REGION` (legacy) to ``. + Run `asr` without arguments to clear the profile. + * `acp [] []`: in addition to `asp` functionality, it actually changes the profile by assuming the role specified in the `` configuration. It supports MFA and sets `$AWS_ACCESS_KEY_ID`, `$AWS_SECRET_ACCESS_KEY` and `$AWS_SESSION_TOKEN`, if @@ -25,25 +28,34 @@ plugins=(... aws) * `agp`: gets the current value of `$AWS_PROFILE`. +* `agr`: gets the current value of `$AWS_REGION`. + * `aws_change_access_key`: changes the AWS access key of a profile. * `aws_profiles`: lists the available profiles in the `$AWS_CONFIG_FILE` (default: `~/.aws/config`). Used to provide completion for the `asp` function. +* `aws_regions`: lists the available regions. + Used to provide completion for the `asr` function. + ## Plugin options * Set `SHOW_AWS_PROMPT=false` in your zshrc file if you want to prevent the plugin from modifying your RPROMPT. Some themes might overwrite the value of RPROMPT instead of appending to it, so they'll need to be fixed to - see the AWS profile prompt. + see the AWS profile/region prompt. ## Theme The plugin creates an `aws_prompt_info` function that you can use in your theme, which displays -the current `$AWS_PROFILE`. It uses two variables to control how that is shown: +the current `$AWS_PROFILE` and `$AWS_REGION`. It uses four variables to control how that is shown: -* ZSH_THEME_AWS_PREFIX: sets the prefix of the AWS_PROFILE. Defaults to ``. +* ZSH_THEME_AWS_PROFILE_SUFFIX: sets the suffix of the AWS_PROFILE. Defaults to `>`. + +* ZSH_THEME_AWS_REGION_PREFIX: sets the prefix of the AWS_REGION. Defaults to ``. ## Configuration diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index 865e82f19..1c386a3e1 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -2,6 +2,10 @@ function agp() { echo $AWS_PROFILE } +function agr() { + echo $AWS_REGION +} + # AWS profile selection function asp() { if [[ -z "$1" ]]; then @@ -27,6 +31,25 @@ function asp() { fi } +# AWS region selection +function asr() { + if [[ -z "$1" ]]; then + unset AWS_DEFAULT_REGION AWS_REGION + echo AWS region cleared. + return + fi + + local -a available_regions + available_regions=($(aws_regions)) + if [[ -z "${available_regions[(r)$1]}" ]]; then + echo "${fg[red]}Available regions: \n$(aws_regions)" + return 1 + fi + + export AWS_REGION=$1 + export AWS_DEFAULT_REGION=$1 +} + # AWS profile switch function acp() { if [[ -z "$1" ]]; then @@ -145,12 +168,25 @@ function aws_change_access_key() { AWS_PAGER="" aws iam list-access-keys } +function aws_regions() { + if [[ $AWS_DEFAULT_PROFILE || $AWS_PROFILE ]];then + aws ec2 describe-regions |grep RegionName | awk -F ':' '{gsub(/"/, "", $2);gsub(/,/, "", $2);gsub(/ /, "", $2); print $2}' + else + echo "You must specify a AWS profile." + fi +} + function aws_profiles() { aws --no-cli-pager configure list-profiles 2> /dev/null && return [[ -r "${AWS_CONFIG_FILE:-$HOME/.aws/config}" ]] || return 1 grep --color=never -Eo '\[.*\]' "${AWS_CONFIG_FILE:-$HOME/.aws/config}" | sed -E 's/^[[:space:]]*\[(profile)?[[:space:]]*([^[:space:]]+)\][[:space:]]*$/\2/g' } +function _aws_regions() { + reply=($(aws_regions)) +} +compctl -K _aws_regions asr + function _aws_profiles() { reply=($(aws_profiles)) } @@ -158,8 +194,8 @@ compctl -K _aws_profiles asp acp aws_change_access_key # AWS prompt function aws_prompt_info() { - [[ -n "$AWS_PROFILE" ]] || return - echo "${ZSH_THEME_AWS_PREFIX=}" + if [[ -z $AWS_REGION && -z $AWS_PROFILE ]];then return; fi + echo "${ZSH_THEME_AWS_PROFILE_PREFIX:=} ${ZSH_THEME_AWS_REGION_PREFIX:=}" } if [[ "$SHOW_AWS_PROMPT" != false && "$RPROMPT" != *'$(aws_prompt_info)'* ]]; then @@ -211,3 +247,4 @@ else [[ -r $_aws_zsh_completer_path ]] && source $_aws_zsh_completer_path unset _aws_zsh_completer_path _brew_prefix fi + From d342b353e32091ef7384b86fd86b1a88dbd44609 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Tue, 7 Mar 2023 18:49:17 +0100 Subject: [PATCH 191/441] fix(init): set completion colors on theme load, not with `precmd` This fixes an edge case where the user actually sets zstyle ':completion:*' list-colors in their zshrc, but the previous code used a precmd hook, which would override the user changes. With this change our modifications will be set in the init script, after the theme loads, so that later changes can affect our defaults. Note that this will not be run for users on plugin managers, as these don't generally run our init script. --- lib/theme-and-appearance.zsh | 10 ---------- oh-my-zsh.sh | 3 +++ 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/lib/theme-and-appearance.zsh b/lib/theme-and-appearance.zsh index 985d3bc11..e245570e3 100644 --- a/lib/theme-and-appearance.zsh +++ b/lib/theme-and-appearance.zsh @@ -81,13 +81,3 @@ if [[ -z "$LS_COLORS" ]]; then export LS_COLORS="di=34:ln=35:so=32:pi=33:ex=31:bd=34;46:cd=34;43:su=37;41:sg=30;43:tw=30;42:ow=34;42:" fi fi - -# Take advantage of $LS_COLORS for completion as well. -function omz_set_completion_colors { - zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" - add-zsh-hook -d precmd omz_set_completion_colors - unfunction omz_set_completion_colors -} - -autoload -Uz add-zsh-hook -add-zsh-hook precmd omz_set_completion_colors diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 98bda8c8b..363cfca8b 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -189,3 +189,6 @@ if [[ -n "$ZSH_THEME" ]]; then echo "[oh-my-zsh] theme '$ZSH_THEME' not found" fi fi + +# set completion colors to be the same as `ls`, after theme has been loaded +[[ -z "$LS_COLORS" ]] || zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" From e0f92c8df52335c266f73e3cc3384b277f3e9a34 Mon Sep 17 00:00:00 2001 From: Julien Vincent Date: Tue, 7 Mar 2023 21:46:21 +0200 Subject: [PATCH 192/441] feat(vi-mode): add settings for vi-mode cursor styles (#10860) --- plugins/vi-mode/README.md | 21 +++++++++++++++++++++ plugins/vi-mode/vi-mode.plugin.zsh | 23 ++++++++++++++++------- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/plugins/vi-mode/README.md b/plugins/vi-mode/README.md index 476666bf6..3b819c7cb 100644 --- a/plugins/vi-mode/README.md +++ b/plugins/vi-mode/README.md @@ -29,6 +29,8 @@ plugins=(... vi-mode) VI_MODE_SET_CURSOR=true ``` + See [Cursor Styles](#cursor-styles) for controlling how the cursor looks in different modes + - `MODE_INDICATOR`: controls the string displayed when the shell is in normal mode. See [Mode indicators](#mode-indicators) for details. @@ -52,6 +54,25 @@ INSERT_MODE_INDICATOR="%F{yellow}+%f" You can also use the `vi_mode_prompt_info` function in your prompt, which will display this mode indicator. +## Cursor Styles + +You can control the cursor style used in each active vim mode by changing the values of the following variables. + +```zsh +# defaults +VI_MODE_CURSOR_NORMAL=2 +VI_MODE_CURSOR_VISUAL=6 +VI_MODE_CURSOR_INSERT=6 +VI_MODE_CURSOR_OPPEND=0 +``` + +- 0, 1 - Blinking block +- 2 - Solid block +- 3 - Blinking underline +- 4 - Solid underline +- 5 - Blinking line +- 6 - Solid line + ## Key bindings Use `ESC` or `CTRL-[` to enter `Normal mode`. diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index 149d6bbd5..9a410c1fb 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -14,6 +14,15 @@ typeset -g VI_MODE_RESET_PROMPT_ON_MODE_CHANGE # Unset or set to any other value to do the opposite. typeset -g VI_MODE_SET_CURSOR +# Control how the cursor appears in the various vim modes. This only applies +# if $VI_MODE_SET_CURSOR=true. +# +# See https://vt100.net/docs/vt510-rm/DECSCUSR for cursor styles +typeset -g VI_MODE_CURSOR_NORMAL=2 +typeset -g VI_MODE_CURSOR_VISUAL=6 +typeset -g VI_MODE_CURSOR_INSERT=6 +typeset -g VI_MODE_CURSOR_OPPEND=0 + typeset -g VI_KEYMAP=main function _vi-mode-set-cursor-shape-for-keymap() { @@ -22,13 +31,13 @@ function _vi-mode-set-cursor-shape-for-keymap() { # https://vt100.net/docs/vt510-rm/DECSCUSR local _shape=0 case "${1:-${VI_KEYMAP:-main}}" in - main) _shape=6 ;; # vi insert: line - viins) _shape=6 ;; # vi insert: line - isearch) _shape=6 ;; # inc search: line - command) _shape=6 ;; # read a command name - vicmd) _shape=2 ;; # vi cmd: block - visual) _shape=2 ;; # vi visual mode: block - viopp) _shape=0 ;; # vi operation pending: blinking block + main) _shape=$VI_MODE_CURSOR_INSERT ;; # vi insert: line + viins) _shape=$VI_MODE_CURSOR_INSERT ;; # vi insert: line + isearch) _shape=$VI_MODE_CURSOR_INSERT ;; # inc search: line + command) _shape=$VI_MODE_CURSOR_INSERT ;; # read a command name + vicmd) _shape=$VI_MODE_CURSOR_NORMAL ;; # vi cmd: block + visual) _shape=$VI_MODE_CURSOR_VISUAL ;; # vi visual mode: block + viopp) _shape=$VI_MODE_CURSOR_OPPEND ;; # vi operation pending: blinking block *) _shape=0 ;; esac printf $'\e[%d q' "${_shape}" From 1c325de464117aa058d5f810b96ed54d65e5d0d5 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Tue, 7 Mar 2023 11:52:38 -0800 Subject: [PATCH 193/441] Fixing link to PA website in README Was linking to an old URL --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7f4a26cab..4042c8c26 100644 --- a/README.md +++ b/README.md @@ -374,4 +374,4 @@ Oh My Zsh is released under the [MIT license](LICENSE.txt). ![Planet Argon](https://pa-github-assets.s3.amazonaws.com/PARGON_logo_digital_COL-small.jpg) -Oh My Zsh was started by the team at [Planet Argon](https://www.planetargon.com/?utm_source=github), a [Ruby on Rails development agency](https://www.planetargon.com/skills/ruby-on-rails-development?utm_source=github). Check out our [other open source projects](https://www.planetargon.com/open-source?utm_source=github). +Oh My Zsh was started by the team at [Planet Argon](https://www.planetargon.com/?utm_source=github), a [Ruby on Rails development agency](http://www.planetargon.com/services/ruby-on-rails-development?utm_source=github). Check out our [other open source projects](https://www.planetargon.com/open-source?utm_source=github). From 3ea0e0d2343a2e79be0c2c6ace030a595d5cec2f Mon Sep 17 00:00:00 2001 From: Benjamin Lieb Date: Wed, 8 Mar 2023 03:29:21 -0500 Subject: [PATCH 194/441] docs(vi-mode): document how to add vi-mode info on the prompt (#11548) --- plugins/vi-mode/README.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/plugins/vi-mode/README.md b/plugins/vi-mode/README.md index 3b819c7cb..0cb516751 100644 --- a/plugins/vi-mode/README.md +++ b/plugins/vi-mode/README.md @@ -51,8 +51,23 @@ MODE_INDICATOR="%F{white}+%f" INSERT_MODE_INDICATOR="%F{yellow}+%f" ``` -You can also use the `vi_mode_prompt_info` function in your prompt, which will display -this mode indicator. +### Adding mode indicators to your prompt + +`Vi-mode` by default will add mode indicators to `RPROMPT` **unless** that is defined by +a preceding plugin. + +If `PROMPT` or `RPROMPT` is not defined to your liking, you can add mode info manually. The `vi_mode_prompt_info` function is available to insert mode indicator information. + +Here are some examples: + +```bash +source $ZSH/oh-my-zsh.sh + +PROMPT="$PROMPT\$(vi_mode_prompt_info)" +RPROMPT="\$(vi_mode_prompt_info)$RPROMPT" +``` + +Note the `\$` here, which importantly prevents interpolation at the time of defining, but allows it to be executed for each prompt update event. ## Cursor Styles From 92387d9fff83934a8628697a4397a65030f0301e Mon Sep 17 00:00:00 2001 From: Zhong Zheng Date: Sat, 11 Mar 2023 01:52:44 +1100 Subject: [PATCH 195/441] feat(rails): add `rta` alias (#11553) --- plugins/rails/README.md | 1 + plugins/rails/rails.plugin.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/rails/README.md b/plugins/rails/README.md index fa66750f0..b2425aabc 100644 --- a/plugins/rails/README.md +++ b/plugins/rails/README.md @@ -47,6 +47,7 @@ plugins=(... rails) | `rsp` | `rails server --port` | Launch a web server and specify the listening port | | `rsts` | `rails stats` | Print code statistics | | `rt` | `rails test` | Run Rails tests | +| `rta` | `rails test:all` | Runs all Rails tests, including system tests | | `ru` | `rails runner` | Run Ruby code in the context of Rails | ### Foreman diff --git a/plugins/rails/rails.plugin.zsh b/plugins/rails/rails.plugin.zsh index b11cbb5c7..015dc9ecb 100644 --- a/plugins/rails/rails.plugin.zsh +++ b/plugins/rails/rails.plugin.zsh @@ -75,6 +75,7 @@ alias rsd='rails server --debugger' alias rsp='rails server --port' alias rsts='rails stats' alias rt='rails test' +alias rta='rails test:all' alias ru='rails runner' # Foreman aliases From 72732a224e886933df6b64a49ec6f5e94c884612 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sun, 12 Mar 2023 15:47:58 +0100 Subject: [PATCH 196/441] fix(lib): set equivalent LS_COLORS and LSCOLORS variables As reported by https://geoff.greer.fm/lscolors Fixes #11554 --- lib/theme-and-appearance.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/theme-and-appearance.zsh b/lib/theme-and-appearance.zsh index e245570e3..d8859b04c 100644 --- a/lib/theme-and-appearance.zsh +++ b/lib/theme-and-appearance.zsh @@ -78,6 +78,6 @@ if [[ -z "$LS_COLORS" ]]; then && source <(dircolors -b "$HOME/.dircolors") \ || source <(dircolors -b) else - export LS_COLORS="di=34:ln=35:so=32:pi=33:ex=31:bd=34;46:cd=34;43:su=37;41:sg=30;43:tw=30;42:ow=34;42:" + export LS_COLORS="di=1;36:ln=35:so=32:pi=33:ex=31:bd=34;46:cd=34;43:su=30;41:sg=30;46:tw=30;42:ow=30;43" fi fi From 82d261603d968dfe5e86a44464c38fd88dda802c Mon Sep 17 00:00:00 2001 From: vladislav doster <10052309+vladdoster@users.noreply.github.com> Date: Mon, 20 Mar 2023 02:11:03 -0500 Subject: [PATCH 197/441] feat(gnu-utils): add `gindent` (#11569) --- plugins/gnu-utils/gnu-utils.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/gnu-utils/gnu-utils.plugin.zsh b/plugins/gnu-utils/gnu-utils.plugin.zsh index 6bd3e8463..6023bf2b4 100644 --- a/plugins/gnu-utils/gnu-utils.plugin.zsh +++ b/plugins/gnu-utils/gnu-utils.plugin.zsh @@ -19,7 +19,7 @@ __gnu_utils() { 'gchown' 'gchroot' 'gcksum' 'gcomm' 'gcp' 'gcsplit' 'gcut' 'gdate' 'gdd' 'gdf' 'gdir' 'gdircolors' 'gdirname' 'gdu' 'gecho' 'genv' 'gexpand' 'gexpr' 'gfactor' 'gfalse' 'gfmt' 'gfold' 'ggroups' 'ghead' 'ghostid' - 'gid' 'ginstall' 'gjoin' 'gkill' 'glink' 'gln' 'glogname' 'gls' 'gmd5sum' + 'gid' 'gindent' 'ginstall' 'gjoin' 'gkill' 'glink' 'gln' 'glogname' 'gls' 'gmd5sum' 'gmkdir' 'gmkfifo' 'gmknod' 'gmktemp' 'gmv' 'gnice' 'gnl' 'gnohup' 'gnproc' 'god' 'gpaste' 'gpathchk' 'gpinky' 'gpr' 'gprintenv' 'gprintf' 'gptx' 'gpwd' 'greadlink' 'grm' 'grmdir' 'gruncon' 'gseq' 'gsha1sum' 'gsha224sum' From 4a39779067eda369152bfd6b653f843286c930c0 Mon Sep 17 00:00:00 2001 From: Yu Xiang Zhang Date: Tue, 14 Mar 2023 19:02:54 +0000 Subject: [PATCH 198/441] feat(aws): set region when AWS_REGION is not set --- plugins/aws/README.md | 2 +- plugins/aws/aws.plugin.zsh | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/aws/README.md b/plugins/aws/README.md index e1e355741..846bf1414 100644 --- a/plugins/aws/README.md +++ b/plugins/aws/README.md @@ -12,7 +12,7 @@ plugins=(... aws) ## Plugin commands * `asp []`: sets `$AWS_PROFILE` and `$AWS_DEFAULT_PROFILE` (legacy) to ``. - It also sets `$AWS_EB_PROFILE` to `` for the Elastic Beanstalk CLI. + It also sets `$AWS_EB_PROFILE` to `` for the Elastic Beanstalk CLI. It sets `$AWS_PROFILE_REGION` for display in `aws_prompt_info`. 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. diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index 1c386a3e1..39c47d572 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -9,7 +9,7 @@ function agr() { # AWS profile selection function asp() { if [[ -z "$1" ]]; then - unset AWS_DEFAULT_PROFILE AWS_PROFILE AWS_EB_PROFILE + unset AWS_DEFAULT_PROFILE AWS_PROFILE AWS_EB_PROFILE AWS_PROFILE_REGION echo AWS profile cleared. return fi @@ -26,6 +26,8 @@ function asp() { export AWS_PROFILE=$1 export AWS_EB_PROFILE=$1 + export AWS_PROFILE_REGION=$(aws configure get region) + if [[ "$2" == "login" ]]; then aws sso login fi @@ -195,7 +197,8 @@ compctl -K _aws_profiles asp acp aws_change_access_key # AWS prompt function aws_prompt_info() { if [[ -z $AWS_REGION && -z $AWS_PROFILE ]];then return; fi - echo "${ZSH_THEME_AWS_PROFILE_PREFIX:=} ${ZSH_THEME_AWS_REGION_PREFIX:=}" + region=${AWS_REGION:-${AWS_DEFAULT_REGION:-$AWS_PROFILE_REGION}} + echo "${ZSH_THEME_AWS_PROFILE_PREFIX:=} ${ZSH_THEME_AWS_REGION_PREFIX:=}" } if [[ "$SHOW_AWS_PROMPT" != false && "$RPROMPT" != *'$(aws_prompt_info)'* ]]; then From f9f01e48a890ad4359a6973d1b8a7039f57b2d08 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 21 Mar 2023 15:29:48 +0100 Subject: [PATCH 199/441] fix(aws): do not print region if it's not defined Closes #11568 Closes #11570 --- plugins/aws/aws.plugin.zsh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index 39c47d572..0242be97e 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -196,9 +196,15 @@ compctl -K _aws_profiles asp acp aws_change_access_key # AWS prompt function aws_prompt_info() { - if [[ -z $AWS_REGION && -z $AWS_PROFILE ]];then return; fi - region=${AWS_REGION:-${AWS_DEFAULT_REGION:-$AWS_PROFILE_REGION}} - echo "${ZSH_THEME_AWS_PROFILE_PREFIX:=} ${ZSH_THEME_AWS_REGION_PREFIX:=}" + local _aws_to_show + if [[ -n $AWS_PROFILE ]];then + _aws_to_show+="${ZSH_THEME_AWS_PROFILE_PREFIX:=}" + fi + if [[ -n $AWS_REGION ]]; then + [[ -n $AWS_PROFILE ]] && _aws_to_show+=" " + _aws_to_show+="${ZSH_THEME_AWS_REGION_PREFIX:=}" + fi + echo "$_aws_to_show" } if [[ "$SHOW_AWS_PROMPT" != false && "$RPROMPT" != *'$(aws_prompt_info)'* ]]; then From 5efcfc39735c818a9778172356f82ec0eb3e5916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20C=2E=20Mass=C3=B3n?= <939888+Abuelodelanada@users.noreply.github.com> Date: Thu, 23 Mar 2023 05:42:20 -0300 Subject: [PATCH 200/441] feat(juju): add functions to get current controller and model (#11572) --- plugins/juju/README.md | 2 ++ plugins/juju/juju.plugin.zsh | 32 +++++++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/plugins/juju/README.md b/plugins/juju/README.md index f0c65309c..6ee333f50 100644 --- a/plugins/juju/README.md +++ b/plugins/juju/README.md @@ -126,5 +126,7 @@ Naming convention: - `jaddr [unit_num]`: display app or unit IP address. - `jreld `: display app and unit relation data. - `jclean`: destroy all controllers +- `jcontroller`: display the controller your are connected to. +- `jmodel`: display the model your are connected to. - `wjst [interval_secs] [args_for_watch]`: watch juju status, with optional interval (default: 5s); you may pass additional arguments to `watch`. diff --git a/plugins/juju/juju.plugin.zsh b/plugins/juju/juju.plugin.zsh index be8a2c7ae..0c60e35ce 100644 --- a/plugins/juju/juju.plugin.zsh +++ b/plugins/juju/juju.plugin.zsh @@ -163,10 +163,40 @@ jreld() { juju run "relation-get -r $relid - $2" --unit $2/$3 } +# Return Juju current controller +jcontroller() { + local controller="$(awk '/current-controller/ {print $2}' ~/.local/share/juju/controllers.yaml)" + if [[ -z "$controller" ]]; then + return 1 + fi + + echo $controller + return 0 +} + +# Return Juju current model +jmodel() { + local yqbin="$(whereis yq | awk '{print $2}')" + + if [[ -z "$yqbin" ]]; then + echo "--" + return 1 + fi + + local model="$(yq e ".controllers.$(jcontroller).current-model" < ~/.local/share/juju/models.yaml | cut -d/ -f2)" + + if [[ -z "$model" ]]; then + echo "--" + return 1 + fi + + echo $model + return 0 +} + # Watch juju status, with optional interval (default: 5 sec) wjst() { local interval="${1:-5}" shift $(( $# > 0 )) watch -n "$interval" --color juju status --relations --color "$@" } - From c08b925d282e35ea7bd9a8f4c29de2ece0debb49 Mon Sep 17 00:00:00 2001 From: Michele Bologna Date: Thu, 23 Mar 2023 14:34:43 +0100 Subject: [PATCH 201/441] fix(uninstall): abort uninstall if unable to change shell (#10357) --- tools/uninstall.sh | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/tools/uninstall.sh b/tools/uninstall.sh index 6a0e7b4c7..6e3df7aca 100644 --- a/tools/uninstall.sh +++ b/tools/uninstall.sh @@ -1,3 +1,15 @@ +if hash chsh >/dev/null 2>&1 && [ -f ~/.shell.pre-oh-my-zsh ]; then + old_shell=$(cat ~/.shell.pre-oh-my-zsh) + echo "Switching your shell back to '$old_shell':" + if chsh -s "$old_shell"; then + rm -f ~/.shell.pre-oh-my-zsh + else + echo "Could not change default shell. Change it manually by running chsh" + echo "or editing the /etc/passwd file." + exit + fi +fi + read -r -p "Are you sure you want to remove Oh My Zsh? [y/N] " confirmation if [ "$confirmation" != y ] && [ "$confirmation" != Y ]; then echo "Uninstall cancelled" @@ -25,16 +37,5 @@ else echo "No original zsh config found" fi -if hash chsh >/dev/null 2>&1 && [ -f ~/.shell.pre-oh-my-zsh ]; then - old_shell=$(cat ~/.shell.pre-oh-my-zsh) - echo "Switching your shell back to '$old_shell':" - if chsh -s "$old_shell"; then - rm -f ~/.shell.pre-oh-my-zsh - else - echo "Could not change default shell. Change it manually by running chsh" - echo "or editing the /etc/passwd file." - fi -fi - echo "Thanks for trying out Oh My Zsh. It's been uninstalled." echo "Don't forget to restart your terminal!" From 8f6fbe238969ecb22fbdae75450a9f8705c9f979 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A5vard=20Bartnes?= Date: Tue, 28 Mar 2023 12:50:05 +0200 Subject: [PATCH 202/441] feat(upgrade): add verbosity settings Co-authored-by: Carlo Sala Closes #11574 Closes #11579 --- README.md | 12 +++++++++ lib/cli.zsh | 5 ++-- tools/check_for_upgrade.sh | 3 ++- tools/upgrade.sh | 53 ++++++++++++++++++++++++++++---------- 4 files changed, 56 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 4042c8c26..4f0aeb7b4 100644 --- a/README.md +++ b/README.md @@ -317,6 +317,18 @@ zstyle ':omz:update' frequency 7 zstyle ':omz:update' frequency 0 ``` +### Updates verbosity + +You can also limit the update verbosity with the following settings: + +```sh +zstyle ':omz:update' verbose default # default update prompt + +zstyle ':omz:update' verbose minimal # only few lines + +zstyle ':omz:update' verbose silent # only errors +``` + ### Manual Updates If you'd like to update at any point in time (maybe someone just released a new plugin and you don't want to wait a week?) you just need to run: diff --git a/lib/cli.zsh b/lib/cli.zsh index fed00d21d..ba3e39eb5 100644 --- a/lib/cli.zsh +++ b/lib/cli.zsh @@ -776,10 +776,11 @@ function _omz::update { local last_commit=$(builtin cd -q "$ZSH"; git rev-parse HEAD) # Run update script + zstyle -s ':omz:update' verbose verbose_mode || verbose_mode=default if [[ "$1" != --unattended ]]; then - ZSH="$ZSH" command zsh -f "$ZSH/tools/upgrade.sh" --interactive || return $? + ZSH="$ZSH" command zsh -f "$ZSH/tools/upgrade.sh" -i -v $verbose_mode || return $? else - ZSH="$ZSH" command zsh -f "$ZSH/tools/upgrade.sh" || return $? + ZSH="$ZSH" command zsh -f "$ZSH/tools/upgrade.sh" -v $verbose_mode || return $? fi # Update last updated file diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index 734714c94..81c371b3f 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -95,7 +95,8 @@ function update_last_updated_file() { } function update_ohmyzsh() { - if ZSH="$ZSH" zsh -f "$ZSH/tools/upgrade.sh" --interactive; then + zstyle -s ':omz:update' verbose verbose_mode || verbose_mode=default + if ZSH="$ZSH" zsh -f "$ZSH/tools/upgrade.sh" -i -v $verbose_mode; then update_last_updated_file fi } diff --git a/tools/upgrade.sh b/tools/upgrade.sh index 596a59302..684ad894a 100755 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -12,6 +12,23 @@ esac cd "$ZSH" +verbose_mode="default" +interactive=false + +while getopts "v:i" opt; do + case $opt in + v) + if [[ $OPTARG == default || $OPTARG == minimal || $OPTARG == silent ]]; then + verbose_mode=$OPTARG + else + echo "[oh-my-zsh] update verbosity '$OPTARG' is not valid" + echo "[oh-my-zsh] valid options are 'default', 'minimal' and 'silent'" + fi + ;; + i) interactive=true ;; + esac +done + # Use colors, but only if connected to a terminal # and that terminal supports them. @@ -203,7 +220,9 @@ git checkout -q "$branch" -- || exit 1 last_commit=$(git rev-parse "$branch") # Update Oh My Zsh -printf "${BLUE}%s${RESET}\n" "Updating Oh My Zsh" +if [[ $verbose_mode != silent ]]; then + printf "${BLUE}%s${RESET}\n" "Updating Oh My Zsh" +fi if LANG= git pull --quiet --rebase $remote $branch; then # Check if it was really updated or not if [[ "$(git rev-parse HEAD)" = "$last_commit" ]]; then @@ -215,24 +234,30 @@ if LANG= git pull --quiet --rebase $remote $branch; then git config oh-my-zsh.lastVersion "$last_commit" # Print changelog to the terminal - if [[ "$1" = --interactive ]]; then + if [[ interactive == true && $verbose_mode == default ]] ; then "$ZSH/tools/changelog.sh" HEAD "$last_commit" fi - printf "${BLUE}%s \`${BOLD}%s${RESET}${BLUE}\`${RESET}\n" "You can see the changelog with" "omz changelog" + if [[ $verbose_mode != silent ]]; then + printf "${BLUE}%s \`${BOLD}%s${RESET}${BLUE}\`${RESET}\n" "You can see the changelog with" "omz changelog" + fi 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 '\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)" - printf "${BLUE}${BOLD}%s %s${RESET}\n" "Want to get involved in the community? Join our Discord:" "$(fmt_link "Discord server" https://discord.gg/ohmyzsh)" - printf "${BLUE}${BOLD}%s %s${RESET}\n" "Get your Oh My Zsh swag at:" "$(fmt_link "Planet Argon Shop" https://shop.planetargon.com/collections/oh-my-zsh)" + if [[ $verbose_mode == default ]]; then + 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)" + printf "${BLUE}${BOLD}%s %s${RESET}\n" "Want to get involved in the community? Join our Discord:" "$(fmt_link "Discord server" https://discord.gg/ohmyzsh)" + printf "${BLUE}${BOLD}%s %s${RESET}\n" "Get your Oh My Zsh swag at:" "$(fmt_link "Planet Argon Shop" https://shop.planetargon.com/collections/oh-my-zsh)" + elif [[ $verbose_mode == minimal ]]; then + printf "${BLUE}%s${RESET}\n" "$message" + fi else ret=$? printf "${RED}%s${RESET}\n" 'There was an error updating. Try again later?' From fcbdc330ff50617c8b84d39ce069cc75df41108f Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 28 Mar 2023 16:55:53 +0200 Subject: [PATCH 203/441] fix(aws): restore accidentally deleted variable Closes #11589 --- plugins/aws/aws.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index 0242be97e..a379eaa18 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -197,6 +197,7 @@ compctl -K _aws_profiles asp acp aws_change_access_key # AWS prompt function aws_prompt_info() { local _aws_to_show + local region="${AWS_REGION:-${AWS_DEFAULT_REGION:-$AWS_PROFILE_REGION}}" if [[ -n $AWS_PROFILE ]];then _aws_to_show+="${ZSH_THEME_AWS_PROFILE_PREFIX:=}" fi @@ -211,7 +212,6 @@ if [[ "$SHOW_AWS_PROMPT" != false && "$RPROMPT" != *'$(aws_prompt_info)'* ]]; th RPROMPT='$(aws_prompt_info)'"$RPROMPT" fi - # Load awscli completions # AWS CLI v2 comes with its own autocompletion. Check if that is there, otherwise fall back From 7837ba6a993fb2243b3e69fdbd63b437a8674b4c Mon Sep 17 00:00:00 2001 From: Webpage-gh <70434775+Webpage-gh@users.noreply.github.com> Date: Fri, 31 Mar 2023 13:37:01 +0800 Subject: [PATCH 204/441] fix(installer): don't use `sudo` when user is in Termux (#11591) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Marc Cornellà --- tools/install.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/install.sh b/tools/install.sh index f4ef16a0c..efdb7d482 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -84,6 +84,11 @@ command_exists() { user_can_sudo() { # Check if sudo is installed command_exists sudo || return 1 + # Termux can't run sudo unless the device is rooted. Either way, `chsh` works + # without sudo, so we can detect it and exit the function early. + case "$PREFIX" in + *com.termux*) return 1 ;; + esac # The following command has 3 parts: # # 1. Run `sudo` with `-v`. Does the following: From b9c4e2e82337594c2899db1f9ca005bb02fe20cd Mon Sep 17 00:00:00 2001 From: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com> Date: Fri, 31 Mar 2023 18:49:59 +1300 Subject: [PATCH 205/441] feat(changelog): provide links in changelog (#11578) --- tools/changelog.sh | 98 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 96 insertions(+), 2 deletions(-) diff --git a/tools/changelog.sh b/tools/changelog.sh index a5cc468f2..5f7a14d03 100755 --- a/tools/changelog.sh +++ b/tools/changelog.sh @@ -157,6 +157,89 @@ function parse-commit { fi } +################################ +# SUPPORTS HYPERLINKS FUNCTION # +################################ + +# The code for checking if a terminal supports hyperlinks is copied from install.sh + +# The [ -t 1 ] check only works when the function is not called from +# a subshell (like in `$(...)` or `(...)`, so this hack redefines the +# function at the top level to always return false when stdout is not +# a tty. +if [ -t 1 ]; then + is_tty() { + true + } +else + is_tty() { + false + } +fi + +# This function uses the logic from supports-hyperlinks[1][2], which is +# made by Kat Marchán (@zkat) and licensed under the Apache License 2.0. +# [1] https://github.com/zkat/supports-hyperlinks +# [2] https://crates.io/crates/supports-hyperlinks +# +# Copyright (c) 2021 Kat Marchán +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +supports_hyperlinks() { + # $FORCE_HYPERLINK must be set and be non-zero (this acts as a logic bypass) + if [ -n "$FORCE_HYPERLINK" ]; then + [ "$FORCE_HYPERLINK" != 0 ] + return $? + fi + + # If stdout is not a tty, it doesn't support hyperlinks + is_tty || return 1 + + # DomTerm terminal emulator (domterm.org) + if [ -n "$DOMTERM" ]; then + return 0 + fi + + # VTE-based terminals above v0.50 (Gnome Terminal, Guake, ROXTerm, etc) + if [ -n "$VTE_VERSION" ]; then + [ $VTE_VERSION -ge 5000 ] + return $? + fi + + # If $TERM_PROGRAM is set, these terminals support hyperlinks + case "$TERM_PROGRAM" in + Hyper|iTerm.app|terminology|WezTerm) return 0 ;; + esac + + # kitty supports hyperlinks + if [ "$TERM" = xterm-kitty ]; then + return 0 + fi + + # Windows Terminal also supports hyperlinks + if [ -n "$WT_SESSION" ]; then + return 0 + fi + + # Konsole supports hyperlinks, but it's an opt-in setting that can't be detected + # https://github.com/ohmyzsh/ohmyzsh/issues/10964 + # if [ -n "$KONSOLE_VERSION" ]; then + # return 0 + # fi + + return 1 +} + ############################# # RELEASE CHANGELOG DISPLAY # ############################# @@ -208,7 +291,13 @@ function display-release { local hash="${1:-$hash}" case "$output" in raw) printf '%s' "$hash" ;; - text) printf '\e[33m%s\e[0m' "$hash" ;; # red + text) + local text="\e[33m$hash\e[0m"; # red + if supports_hyperlinks; then + printf "\e]8;;%s\a%s\e]8;;\a" "https://github.com/ohmyzsh/ohmyzsh/commit/$hash" $text; + else + echo $text; + fi ;; md) printf '[`%s`](https://github.com/ohmyzsh/ohmyzsh/commit/%s)' "$hash" "$hash" ;; esac } @@ -272,7 +361,12 @@ function display-release { case "$output" in raw) printf '%s' "$subject" ;; # In text mode, highlight (#) and dim text between `backticks` - text) sed -E $'s|#([0-9]+)|\e[32m#\\1\e[0m|g;s|`([^`]+)`|`\e[2m\\1\e[0m`|g' <<< "$subject" ;; + text) + if supports_hyperlinks; then + sed -E $'s|#([0-9]+)|\e]8;;https://github.com/ohmyzsh/ohmyzsh/issues/\\1\a\e[32m#\\1\e[0m\e]8;;\a|g' <<< "$subject" + else + sed -E $'s|#([0-9]+)|\e[32m#\\1\e[0m|g;s|`([^`]+)`|`\e[2m\\1\e[0m`|g' <<< "$subject" + fi ;; # In markdown mode, link to (#) issues md) sed -E 's|#([0-9]+)|[#\1](https://github.com/ohmyzsh/ohmyzsh/issues/\1)|g' <<< "$subject" ;; esac From cc9913210498e2d527486310f1e8a53b93f55ca8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Fri, 31 Mar 2023 07:51:10 +0200 Subject: [PATCH 206/441] fix(vi-mode): fix check for prompt redisplay on mode change (#11547) --- plugins/vi-mode/vi-mode.plugin.zsh | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index 9a410c1fb..d44be69d4 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -43,12 +43,25 @@ function _vi-mode-set-cursor-shape-for-keymap() { printf $'\e[%d q' "${_shape}" } +function _vi-mode-should-reset-prompt() { + # If $VI_MODE_RESET_PROMPT_ON_MODE_CHANGE is unset (default), dynamically + # check whether we're using the prompt to display vi-mode info + if [[ -z "${VI_MODE_RESET_PROMPT_ON_MODE_CHANGE:-}" ]]; then + [[ "${PS1} ${RPS1}" = *'$(vi_mode_prompt_info)'* ]] + return $? + fi + + # If $VI_MODE_RESET_PROMPT_ON_MODE_CHANGE was manually set, let's check + # if it was specifically set to true or it was disabled with any other value + [[ "${VI_MODE_RESET_PROMPT_ON_MODE_CHANGE}" = true ]] +} + # Updates editor information when the keymap changes. function zle-keymap-select() { # update keymap variable for the prompt typeset -g VI_KEYMAP=$KEYMAP - if [[ "${VI_MODE_RESET_PROMPT_ON_MODE_CHANGE:-}" = true ]]; then + if _vi-mode-should-reset-prompt; then zle reset-prompt zle -R fi @@ -59,10 +72,9 @@ zle -N zle-keymap-select # These "echoti" statements were originally set in lib/key-bindings.zsh # Not sure the best way to extend without overriding. function zle-line-init() { - local prev_vi_keymap - prev_vi_keymap="${VI_KEYMAP:-}" + local prev_vi_keymap="${VI_KEYMAP:-}" typeset -g VI_KEYMAP=main - [[ "$prev_vi_keymap" != 'main' ]] && [[ "${VI_MODE_RESET_PROMPT_ON_MODE_CHANGE:-}" = true ]] && zle reset-prompt + [[ "$prev_vi_keymap" != 'main' ]] && _vi-mode-should-reset-prompt && zle reset-prompt (( ! ${+terminfo[smkx]} )) || echoti smkx _vi-mode-set-cursor-shape-for-keymap "${VI_KEYMAP}" } @@ -138,13 +150,6 @@ if [[ -z "$MODE_INDICATOR" ]]; then fi function vi_mode_prompt_info() { - # If we're using the prompt to display mode info, and we haven't explicitly - # disabled "reset prompt on mode change", then set it here. - # - # We do that here instead of the `if` statement below because the user may - # set RPS1/RPROMPT to something else in their custom config. - : "${VI_MODE_RESET_PROMPT_ON_MODE_CHANGE:=true}" - echo "${${VI_KEYMAP/vicmd/$MODE_INDICATOR}/(main|viins)/$INSERT_MODE_INDICATOR}" } From 029a6d2de8681d52142129eb8b6ff0f20be9f0a6 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Fri, 31 Mar 2023 15:30:19 +0200 Subject: [PATCH 207/441] fix(upgrade): typo in variable check --- tools/upgrade.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/upgrade.sh b/tools/upgrade.sh index 684ad894a..d9a372d13 100755 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -234,7 +234,7 @@ if LANG= git pull --quiet --rebase $remote $branch; then git config oh-my-zsh.lastVersion "$last_commit" # Print changelog to the terminal - if [[ interactive == true && $verbose_mode == default ]] ; then + if [[ $interactive == true && $verbose_mode == default ]]; then "$ZSH/tools/changelog.sh" HEAD "$last_commit" fi From 6ef236dd99f2090b54911f9135d00ac37d6757ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sat, 1 Apr 2023 10:14:18 +0200 Subject: [PATCH 208/441] fix(updater): search for upstream remote if using non-conventional name (#11135) Fixes #11135 --- tools/upgrade.sh | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/tools/upgrade.sh b/tools/upgrade.sh index d9a372d13..34ff3f027 100755 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -1,5 +1,7 @@ #!/usr/bin/env zsh +local ret=0 # exit code + # Protect against running with shells other than zsh if [ -z "$ZSH_VERSION" ]; then exec zsh "$0" "$@" @@ -181,17 +183,23 @@ fi # Update upstream remote to ohmyzsh org git remote -v | while read remote url extra; do case "$url" in - https://github.com/robbyrussell/oh-my-zsh(|.git)) - git remote set-url "$remote" "https://github.com/ohmyzsh/ohmyzsh.git" - break ;; - git@github.com:robbyrussell/oh-my-zsh(|.git)) - git remote set-url "$remote" "git@github.com:ohmyzsh/ohmyzsh.git" - break ;; - # Update out-of-date "unauthenticated git protocol on port 9418" to https git://github.com/robbyrussell/oh-my-zsh(|.git)) - git remote set-url "$remote" "https://github.com/ohmyzsh/ohmyzsh.git" - break ;; + # Update out-of-date "unauthenticated git protocol on port 9418" to https + git remote set-url "$remote" "https://github.com/ohmyzsh/ohmyzsh.git" ;; + https://github.com/robbyrussell/oh-my-zsh(|.git)) + git remote set-url "$remote" "https://github.com/ohmyzsh/ohmyzsh.git" ;; + git@github.com:robbyrussell/oh-my-zsh(|.git)) + git remote set-url "$remote" "git@github.com:ohmyzsh/ohmyzsh.git" ;; + https://github.com/ohmyzsh/ohmyzsh(|.git)) ;; + git@github.com:ohmyzsh/ohmyzsh(|.git)) ;; + *) continue ;; esac + + # If we reach this point we have found the proper ohmyzsh upstream remote. If we don't, + # we'll only update from the set remote if `oh-my-zsh.remote` has been set to a remote, + # as when installing from a fork. + git config --local oh-my-zsh.remote "$remote" + break done # Set git-config values known to fix git errors From 68005b887055ddd1c6d3fd1381b6eb7b786a0a38 Mon Sep 17 00:00:00 2001 From: Saverio Guzzo Date: Sun, 2 Apr 2023 12:54:55 +0200 Subject: [PATCH 209/441] docs(spotify): fix link (#11593) --- plugins/macos/spotify | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/macos/spotify b/plugins/macos/spotify index 491a60686..5fb40517c 100644 --- a/plugins/macos/spotify +++ b/plugins/macos/spotify @@ -43,7 +43,7 @@ showAPIHelp() { echo " find music by name. It is very likely you want this feature!"; echo; echo " To get this to work, you need to sign up (or in) and create an 'Application' at:"; - echo " https://developer.spotify.com/my-applications/#!/applications/create"; + echo " https://developer.spotify.com/dashboard/create"; echo; echo " Once you've created an application, find the 'Client ID' and 'Client Secret'"; echo " values, and enter them into your shpotify config file at '${USER_CONFIG_FILE}'"; From f7d903f3a31567f326d0f8ec2414722d0e3b992a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sun, 2 Apr 2023 13:40:49 +0200 Subject: [PATCH 210/441] fix(vi-mode): fix cursor change on visual mode (#11586) Fixes #11586 --- plugins/vi-mode/vi-mode.plugin.zsh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index d44be69d4..cc9817a74 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -43,6 +43,13 @@ function _vi-mode-set-cursor-shape-for-keymap() { printf $'\e[%d q' "${_shape}" } +function _visual-mode { + typeset -g VI_KEYMAP=visual + _vi-mode-set-cursor-shape-for-keymap "$VI_KEYMAP" + zle .visual-mode +} +zle -N visual-mode _visual-mode + function _vi-mode-should-reset-prompt() { # If $VI_MODE_RESET_PROMPT_ON_MODE_CHANGE is unset (default), dynamically # check whether we're using the prompt to display vi-mode info From 75405b7b0ae03a1fdf2fdb172d2a50cd5f570162 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sun, 2 Apr 2023 14:28:01 +0200 Subject: [PATCH 211/441] feat(extract): always extract files into its own folder (#11596) --- plugins/extract/extract.plugin.zsh | 84 ++++++++++++++++++------------ 1 file changed, 51 insertions(+), 33 deletions(-) diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index 7b7a2fa4f..c416f49ce 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -29,61 +29,79 @@ EOF local success=0 local extract_dir="${1:t:r}" local file="$1" full_path="${1:A}" + + # Create an extraction directory based on the file name + command mkdir -p "$extract_dir" + builtin cd -q "$extract_dir" + case "${file:l}" in (*.tar.gz|*.tgz) - (( $+commands[pigz] )) && { tar -I pigz -xvf "$file" } || tar zxvf "$file" ;; + (( $+commands[pigz] )) && { tar -I pigz -xvf "$full_path" } || tar zxvf "$full_path" ;; (*.tar.bz2|*.tbz|*.tbz2) - (( $+commands[pbzip2] )) && { tar -I pbzip2 -xvf "$file" } || tar xvjf "$file" ;; + (( $+commands[pbzip2] )) && { tar -I pbzip2 -xvf "$full_path" } || tar xvjf "$full_path" ;; (*.tar.xz|*.txz) - (( $+commands[pixz] )) && { tar -I pixz -xvf "$file" } || { + (( $+commands[pixz] )) && { tar -I pixz -xvf "$full_path" } || { tar --xz --help &> /dev/null \ - && tar --xz -xvf "$file" \ - || xzcat "$file" | tar xvf - } ;; + && tar --xz -xvf "$full_path" \ + || xzcat "$full_path" | tar xvf - } ;; (*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \ - && tar --lzma -xvf "$file" \ - || lzcat "$file" | tar xvf - ;; + && tar --lzma -xvf "$full_path" \ + || lzcat "$full_path" | tar xvf - ;; (*.tar.zst|*.tzst) tar --zstd --help &> /dev/null \ - && tar --zstd -xvf "$file" \ - || zstdcat "$file" | tar xvf - ;; - (*.tar) tar xvf "$file" ;; - (*.tar.lz) (( $+commands[lzip] )) && tar xvf "$file" ;; - (*.tar.lz4) lz4 -c -d "$file" | tar xvf - ;; - (*.tar.lrz) (( $+commands[lrzuntar] )) && lrzuntar "$file" ;; - (*.gz) (( $+commands[pigz] )) && pigz -dk "$file" || gunzip -k "$file" ;; - (*.bz2) bunzip2 "$file" ;; - (*.xz) unxz "$file" ;; - (*.lrz) (( $+commands[lrunzip] )) && lrunzip "$file" ;; - (*.lz4) lz4 -d "$file" ;; - (*.lzma) unlzma "$file" ;; - (*.z) uncompress "$file" ;; - (*.zip|*.war|*.jar|*.ear|*.sublime-package|*.ipa|*.ipsw|*.xpi|*.apk|*.aar|*.whl) unzip "$file" -d "$extract_dir" ;; - (*.rar) unrar x -ad "$file" ;; + && tar --zstd -xvf "$full_path" \ + || zstdcat "$full_path" | tar xvf - ;; + (*.tar) tar xvf "$full_path" ;; + (*.tar.lz) (( $+commands[lzip] )) && tar xvf "$full_path" ;; + (*.tar.lz4) lz4 -c -d "$full_path" | tar xvf - ;; + (*.tar.lrz) (( $+commands[lrzuntar] )) && lrzuntar "$full_path" ;; + (*.gz) (( $+commands[pigz] )) && pigz -dk "$full_path" || gunzip -k "$full_path" ;; + (*.bz2) bunzip2 "$full_path" ;; + (*.xz) unxz "$full_path" ;; + (*.lrz) (( $+commands[lrunzip] )) && lrunzip "$full_path" ;; + (*.lz4) lz4 -d "$full_path" ;; + (*.lzma) unlzma "$full_path" ;; + (*.z) uncompress "$full_path" ;; + (*.zip|*.war|*.jar|*.ear|*.sublime-package|*.ipa|*.ipsw|*.xpi|*.apk|*.aar|*.whl) unzip "$full_path" ;; + (*.rar) unrar x -ad "$full_path" ;; (*.rpm) - command mkdir -p "$extract_dir" && builtin cd -q "$extract_dir" \ - && rpm2cpio "$full_path" | cpio --quiet -id ;; - (*.7z) 7za x "$file" ;; + rpm2cpio "$full_path" | cpio --quiet -id ;; + (*.7z) 7za x "$full_path" ;; (*.deb) - command mkdir -p "$extract_dir/control" "$extract_dir/data" - builtin cd -q "$extract_dir"; ar vx "$full_path" > /dev/null + command mkdir -p "control" "data" + ar vx "$full_path" > /dev/null builtin cd -q control; extract ../control.tar.* builtin cd -q ../data; extract ../data.tar.* builtin cd -q ..; command rm *.tar.* debian-binary ;; - (*.zst) unzstd "$file" ;; - (*.cab) cabextract -d "$extract_dir" "$file" ;; - (*.cpio|*.obscpio) cpio -idmvF "$file" ;; - (*.zpaq) zpaq x "$file" ;; + (*.zst) unzstd "$full_path" ;; + (*.cab) cabextract "$full_path" ;; + (*.cpio|*.obscpio) cpio -idmvF "$full_path" ;; + (*.zpaq) zpaq x "$full_path" ;; (*) echo "extract: '$file' cannot be extracted" >&2 success=1 ;; esac (( success = success > 0 ? success : $? )) - (( success == 0 && remove_archive == 0 )) && rm "$full_path" + (( success == 0 && remove_archive == 0 )) && command rm "$full_path" shift - # Go back to original working directory in case we ran cd previously + # Go back to original working directory + # and remove extraction directory if there was an error builtin cd -q "$pwd" + (( success > 0 )) && command rm -r "$extract_dir" + + # If content of extract dir is a single directory, move its contents up + # Glob flags: + # - D: include files starting with . + # - N: no error if directory is empty + # - Y2: at most give 2 files + local -a content + content=("${extract_dir}"/*(DNY2)) + if [[ ${#content} -eq 1 && -d "${content[1]}" ]]; then + command mv -f "${content[1]}" . + command rmdir "$extract_dir" + fi done } From d47e1d65f66f9bb2e7a96ba58797b33f0e91a623 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sun, 2 Apr 2023 16:33:54 +0200 Subject: [PATCH 212/441] fix(extract): safely remove extract directory The previous code would remove the extract directory if the command failed. This could be bad because we're not checking if the extract directory already existed (since we're using `mkdir -p`), so it could be possible that the extract operation failed, and we'd be removing a directory that already existed and had files in it. This change only removes the directory if there are no files in it, regardless of whether the extract operation was successful or not. This is much safer. --- plugins/extract/extract.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index c416f49ce..40e67575f 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -88,9 +88,7 @@ EOF shift # Go back to original working directory - # and remove extraction directory if there was an error builtin cd -q "$pwd" - (( success > 0 )) && command rm -r "$extract_dir" # If content of extract dir is a single directory, move its contents up # Glob flags: @@ -102,6 +100,8 @@ EOF if [[ ${#content} -eq 1 && -d "${content[1]}" ]]; then command mv -f "${content[1]}" . command rmdir "$extract_dir" + elif [[ ${#content} -eq 0 ]]; then + command rmdir "$extract_dir" fi done } From f8bf88edca7a3246e065f13cefac2c5f1ab396e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 3 Apr 2023 22:21:49 +0200 Subject: [PATCH 213/441] chore(installer): remove words triggering false positives in antiviruses --- tools/install.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index efdb7d482..fcfbcf778 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -84,8 +84,7 @@ command_exists() { user_can_sudo() { # Check if sudo is installed command_exists sudo || return 1 - # Termux can't run sudo unless the device is rooted. Either way, `chsh` works - # without sudo, so we can detect it and exit the function early. + # Termux can't run sudo, so we can detect it and exit the function early. case "$PREFIX" in *com.termux*) return 1 ;; esac From 1ad167dfac325a9f92e0693c70d0ab3f7c4c574b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 3 Apr 2023 23:14:36 +0200 Subject: [PATCH 214/441] feat(init)!: allow turning off aliases for libs and plugins (#11550) BREAKING CHANGE: the previous zstyle setting to disable `lib/directories.zsh` aliases has been changed to the new syntax: `zstyle ':omz:lib:directories' aliases no`. See https://github.com/ohmyzsh/ohmyzsh#skip-aliases to see other ways you can use this setting. Co-authored-by: Carlo Sala --- README.md | 54 ++++++++++++++++++++++++++++++++++++++++----- lib/directories.zsh | 6 ----- oh-my-zsh.sh | 45 ++++++++++++++++++++++++++++++------- 3 files changed, 86 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 4f0aeb7b4..556d4c8c5 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,9 @@ To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twi - [Manual Installation](#manual-installation) - [Installation Problems](#installation-problems) - [Custom Plugins and Themes](#custom-plugins-and-themes) + - [Skip aliases](#skip-aliases) - [Getting Updates](#getting-updates) + - [Updates verbosity](#updates-verbosity) - [Manual Updates](#manual-updates) - [Uninstalling Oh My Zsh](#uninstalling-oh-my-zsh) - [How do I contribute to Oh My Zsh?](#how-do-i-contribute-to-oh-my-zsh) @@ -276,16 +278,58 @@ If you have many functions that go well together, you can put them as a `XYZ.plu If you would like to override the functionality of a plugin distributed with Oh My Zsh, create a plugin of the same name in the `custom/plugins/` directory and it will be loaded instead of the one in `plugins/`. -### Remove directories aliases +### Skip aliases -If you want to skip ohmyzsh default -[directories aliases](https://github.com/ohmyzsh/ohmyzsh/blob/master/lib/directories.zsh) you can add the -following snippet to your `zshrc`, before loading `oh-my-zsh.sh` script: + -```zsh +If you want to skip default Oh My Zsh aliases (those defined in `lib/*` files) or plugin aliases, +you can use the settings below in your `~/.zshrc` file, **before Oh My Zsh is loaded**. Note that +there are many different ways to skip aliases, depending on your needs. + +```sh +# Skip all aliases, in lib files and enabled plugins +zstyle ':omz:*' aliases no + +# Skip all aliases in lib files +zstyle ':omz:lib:*' aliases no +# Skip only aliases defined in the directories.zsh lib file +zstyle ':omz:lib:directories' aliases no + +# Skip all plugin aliases +zstyle ':omz:plugins:*' aliases no +# Skip only the aliases from the git plugin +zstyle ':omz:plugins:git' aliases no +``` + +You can combine these in other ways taking into account that more specific scopes takes precedence: + +```sh +# Skip all plugin aliases, except for the git plugin +zstyle ':omz:plugins:*' aliases no +zstyle ':omz:plugins:git' aliases yes +``` + +A previous version of this feature was using the setting below, which has been removed: + +```sh zstyle ':omz:directories' aliases no ``` +Instead, you can now use the following: + +```sh +zstyle ':omz:lib:directories' aliases no +``` + +#### Notice + +> This feature is currently in a testing phase and it may be subject to change in the future. +> It is also not currently compatible with plugin managers such as zpm or zinit, which don't +> source the init script (`oh-my-zsh.sh`) where this feature is implemented in. + +> It is also not currently aware of "aliases" that are defined as functions. Example of such +> are `gccd`, `ggf`, or `ggl` functions from the git plugin. + ## Getting Updates By default, you will be prompted to check for updates every 2 weeks. You can choose other update modes by adding a line to your `~/.zshrc` file, **before Oh My Zsh is loaded**: diff --git a/lib/directories.zsh b/lib/directories.zsh index 13b680c19..8927a56ad 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -4,12 +4,6 @@ setopt auto_pushd setopt pushd_ignore_dups setopt pushdminus -# add (uncommented): -# zstyle ':omz:directories' aliases no -# to your `zshrc` before loading `oh-my-zsh.sh` -# to disable the following aliases and functions - -zstyle -T ':omz:directories' aliases || return 0 alias -g ...='../..' alias -g ....='../../..' diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 363cfca8b..20d2e354c 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -146,22 +146,51 @@ if command mkdir "${ZSH_COMPDUMP}.lock" 2>/dev/null; then command rm -rf "$ZSH_COMPDUMP.zwc.old" "${ZSH_COMPDUMP}.lock" fi +_omz_source() { + local context filepath="$1" + + # Construct zstyle context based on path + case "$filepath" in + lib/*) context="lib:${filepath:t:r}" ;; # :t = lib_name.zsh, :r = lib_name + plugins/*) context="plugins:${filepath:h2:t}" ;; # :h2 = plugins/plugin_name, :t = plugin_name + esac + + local disable_aliases=0 + zstyle -T ":omz:${context}" aliases || disable_aliases=1 + + # Back up alias names prior to sourcing + local -a aliases_pre galiases_pre + if (( disable_aliases )); then + aliases_pre=("${(@k)aliases}") + galiases_pre=("${(@k)galiases}") + fi + + # Source file from $ZSH_CUSTOM if it exists, otherwise from $ZSH + if [[ -f "$ZSH_CUSTOM/$filepath" ]]; then + source "$ZSH_CUSTOM/$filepath" + elif [[ -f "$ZSH/$filepath" ]]; then + source "$ZSH/$filepath" + fi + + # Unset all aliases that don't appear in the backed up list of aliases + if (( disable_aliases )); then + local -a disabled + # ${var:|array} gets the list of items in var not in array + disabled=("${(@k)aliases:|aliases_pre}" "${(@k)galiases:|galiases_pre}") + (( $#disabled == 0 )) || unalias "${(@)disabled}" + fi +} + # Load all of the config files in ~/oh-my-zsh that end in .zsh # TIP: Add files you don't want in git to .gitignore for config_file ("$ZSH"/lib/*.zsh); do - custom_config_file="$ZSH_CUSTOM/lib/${config_file:t}" - [[ -f "$custom_config_file" ]] && config_file="$custom_config_file" - source "$config_file" + _omz_source "${config_file:t2}" done unset custom_config_file # Load all of the plugins that were defined in ~/.zshrc for plugin ($plugins); do - if [[ -f "$ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh" ]]; then - source "$ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh" - elif [[ -f "$ZSH/plugins/$plugin/$plugin.plugin.zsh" ]]; then - source "$ZSH/plugins/$plugin/$plugin.plugin.zsh" - fi + _omz_source "plugins/$plugin/$plugin.plugin.zsh" done unset plugin From c7bb88f9ad3eb742aecca2e36b615819cead10f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 3 Apr 2023 23:27:14 +0200 Subject: [PATCH 215/441] fix(changelog): ignore lines containing whitespace in breaking change commits --- tools/changelog.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/changelog.sh b/tools/changelog.sh index 5f7a14d03..1af74e42d 100755 --- a/tools/changelog.sh +++ b/tools/changelog.sh @@ -106,6 +106,9 @@ function parse-commit { message="${match[1]}" # remove CR characters (might be inserted in GitHub UI commit description form) message="${message//$'\r'/}" + # remove lines containing only whitespace + local nlnl=$'\n\n' + message="${message//$'\n'[[:space:]]##$'\n'/$nlnl}" # skip next paragraphs (separated by two newlines or more) message="${message%%$'\n\n'*}" # ... and replace newlines with spaces From 9233ef75f28423d147a2f9f64a45a77b1886ee5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 3 Apr 2023 23:36:44 +0200 Subject: [PATCH 216/441] fix(init): don't use digits in parameter modifiers for compatibility (#11598) Digit modifiers were introduced in zsh 5.7.1 [1]. This commit uses readily available alternatives for backwards compatibility. [1] https://github.com/zsh-users/zsh/commit/b8dc5a7f6d Fixes #11598 --- oh-my-zsh.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 20d2e354c..e047d4834 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -151,8 +151,8 @@ _omz_source() { # Construct zstyle context based on path case "$filepath" in - lib/*) context="lib:${filepath:t:r}" ;; # :t = lib_name.zsh, :r = lib_name - plugins/*) context="plugins:${filepath:h2:t}" ;; # :h2 = plugins/plugin_name, :t = plugin_name + lib/*) context="lib:${filepath:t:r}" ;; # :t = lib_name.zsh, :r = lib_name + plugins/*) context="plugins:${filepath:h:t}" ;; # :h = plugins/plugin_name, :t = plugin_name esac local disable_aliases=0 @@ -184,7 +184,7 @@ _omz_source() { # Load all of the config files in ~/oh-my-zsh that end in .zsh # TIP: Add files you don't want in git to .gitignore for config_file ("$ZSH"/lib/*.zsh); do - _omz_source "${config_file:t2}" + _omz_source "lib/${config_file:t}" done unset custom_config_file From 8d23fbd6964b8446bbc73ff04507362d1fd49eb5 Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Tue, 4 Apr 2023 16:47:13 +0200 Subject: [PATCH 217/441] feat(termsupport): add contour terminal (#11599) Signed-off-by: Christian Parpart --- lib/termsupport.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 80ca7ef78..5bc418761 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -17,7 +17,7 @@ function title { : ${2=$1} case "$TERM" in - cygwin|xterm*|putty*|rxvt*|konsole*|ansi|mlterm*|alacritty|st*|foot) + cygwin|xterm*|putty*|rxvt*|konsole*|ansi|mlterm*|alacritty|st*|foot|contour*) print -Pn "\e]2;${2:q}\a" # set window name print -Pn "\e]1;${1:q}\a" # set tab name ;; From 33aadeced0bf17b8abc7d680b424de7c5e71dd45 Mon Sep 17 00:00:00 2001 From: Richard Mitchell Date: Tue, 4 Apr 2023 17:52:16 -0400 Subject: [PATCH 218/441] feat(term_tab): add support for macOS (#11391) --- plugins/term_tab/term_tab.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/term_tab/term_tab.plugin.zsh b/plugins/term_tab/term_tab.plugin.zsh index 1b612df68..89acd9103 100644 --- a/plugins/term_tab/term_tab.plugin.zsh +++ b/plugins/term_tab/term_tab.plugin.zsh @@ -28,6 +28,7 @@ function _term_list(){ case $OSTYPE in solaris*) dirs=( ${(M)${${(f)"$(pgrep -U $UID -x zsh|xargs pwdx)"}:#$$:*}%%/*} ) ;; linux*) dirs=( /proc/${^$(pidof zsh):#$$}/cwd(N:A) ) ;; + darwin*) dirs=( $( lsof -d cwd -c zsh -a -w -Fn | sed -n 's/^n//p' ) ) ;; esac dirs=( ${(D)dirs} ) From 25c2c3a4683be60c3526858be960ee6ce1249245 Mon Sep 17 00:00:00 2001 From: Alexander Schlarb Date: Sun, 16 May 2021 18:58:38 +0200 Subject: [PATCH 219/441] feat(lib): send OSC 7 on directory change for more supported terminals (#9914) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously this was only emitted on macOS with Apple's Terminal.app (and compatible clones like iTerm2), but it is used by other terminal emulators as well to obtain the actual current working directory wiht symlinks intact. All non-supporting terminal emulators tested gracefully ignored this value, so emit this on these as well in case they (or some other app masquarading as them) add future support for this value. Closes #9914 Co-authored-by: Marc Cornellà --- lib/termsupport.zsh | 70 ++++++++++++++++++++++++++++++--------------- 1 file changed, 47 insertions(+), 23 deletions(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 5bc418761..cf8f08741 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -109,28 +109,52 @@ if [[ -z "$INSIDE_EMACS" || "$INSIDE_EMACS" = vterm ]]; then add-zsh-hook preexec omz_termsupport_preexec fi -# Keep Apple Terminal.app's current working directory updated -# Based on this answer: https://superuser.com/a/315029 -# With extra fixes to handle multibyte chars and non-UTF-8 locales +# Keep terminal emulator's current working directory correct, +# even if the current working directory path contains symbolic links +# +# References: +# - Apple's Terminal.app: https://superuser.com/a/315029 +# - iTerm2: https://iterm2.com/documentation-escape-codes.html (iTerm2 Extension / CurrentDir+RemoteHost) +# - Konsole: https://bugs.kde.org/show_bug.cgi?id=327720#c1 +# - libvte (gnome-terminal, mate-terminal, …): https://bugzilla.gnome.org/show_bug.cgi?id=675987#c14 +# Apparently it had a bug before ~2012 were it would display the unknown OSC 7 code +# +# As of May 2021 mlterm, PuTTY, rxvt, screen, termux & xterm simply ignore the unknown OSC. -if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]]; then - # Emits the control sequence to notify Terminal.app of the cwd - # Identifies the directory using a file: URI scheme, including - # the host name to disambiguate local vs. remote paths. - function update_terminalapp_cwd() { - emulate -L zsh - - # Percent-encode the host and path names. - local URL_HOST URL_PATH - URL_HOST="$(omz_urlencode -P $HOST)" || return 1 - URL_PATH="$(omz_urlencode -P $PWD)" || return 1 - - # Undocumented Terminal.app-specific control sequence - printf '\e]7;%s\a' "file://$URL_HOST$URL_PATH" - } - - # Use a precmd hook instead of a chpwd hook to avoid contaminating output - add-zsh-hook precmd update_terminalapp_cwd - # Run once to get initial cwd set - update_terminalapp_cwd +# Don't define the function if we're inside Emacs +if [[ -n "$INSIDE_EMACS" ]]; then + return fi + +# Don't define the function if we're in an unsupported terminal +case "$TERM" in + # all of these either process OSC 7 correctly or ignore entirely + xterm*|putty*|rxvt*|konsole*|mlterm*|alacritty|screen*|tmux*) ;; + contour*|foot*) ;; + *) + # Terminal.app and iTerm2 process OSC 7 correctly + case "$TERM_PROGRAM" in + Apple_Terminal|iTerm.app) ;; + *) return ;; + esac ;; +esac + +# Emits the control sequence to notify many terminal emulators +# of the cwd +# +# Identifies the directory using a file: URI scheme, including +# the host name to disambiguate local vs. remote paths. +function omz_termsupport_cwd { + # Percent-encode the host and path names. + local URL_HOST URL_PATH + URL_HOST="$(omz_urlencode -P $HOST)" || return 1 + URL_PATH="$(omz_urlencode -P $PWD)" || return 1 + + # common control sequence (OSC 7) to set current host and path + printf "\e]7;%s\a" "file://${URL_HOST}${URL_PATH}" +} + +# Use a precmd hook instead of a chpwd hook to avoid contaminating output +# i.e. when a script or function changes directory without `cd -q`, chpwd +# will be called the output may be swallowed by the script or function. +add-zsh-hook precmd omz_termsupport_cwd From cf0c80049288d1029aee824bf975016c4201a3ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20M?= Date: Thu, 6 Apr 2023 15:11:52 +0200 Subject: [PATCH 220/441] feat(toolbox)!: rename and add aliases (#11580) --- plugins/toolbox/README.md | 3 ++- plugins/toolbox/toolbox.plugin.zsh | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/toolbox/README.md b/plugins/toolbox/README.md index abaca31f4..bc04a906b 100644 --- a/plugins/toolbox/README.md +++ b/plugins/toolbox/README.md @@ -22,4 +22,5 @@ RPROMPT='$(toolbox_prompt_info)' | Alias | Command | Description | |-------|----------------------|----------------------------------------| -| tb | `toolbox enter` | Enters the toolbox environment | +| tbe | `toolbox enter` | Enters the toolbox environment | +| tbr | `toolbox run` | Run a command in an existing toolbox | diff --git a/plugins/toolbox/toolbox.plugin.zsh b/plugins/toolbox/toolbox.plugin.zsh index d24d6d396..377e498cd 100644 --- a/plugins/toolbox/toolbox.plugin.zsh +++ b/plugins/toolbox/toolbox.plugin.zsh @@ -2,4 +2,5 @@ function toolbox_prompt_info() { [[ -f /run/.toolboxenv ]] && echo "⬢" } -alias tb="toolbox enter" +alias tbe="toolbox enter" +alias tbr="toolbox run" From 49d34d00cdaf132f318700398bf42120ff1af8e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 6 Apr 2023 21:06:16 +0200 Subject: [PATCH 221/441] fix(extract): fix conflict if compressed file has a folder of the same name This change fixes the case where the compressed file (e.g. tools.tgz) only contains a folder with the same name (e.g. tools) in its root folder. tools.tgz: |- tools |- fileA.txt |- fileB.txt \- fileC.txt In that case, the "smart" folder creation mechanism will extract the files in a folder "tools", and this extraction folder will contain a single folder with the same name. Before this fix, the tool would try to move out the inside folder to the parent one, but there would already be a folder named "tools", so it would generate a conflict. This change first renames the inside folder to a random string, and only then it is moved outside and the old extraction folder is deleted. --- plugins/extract/extract.plugin.zsh | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index 40e67575f..34c080653 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -98,8 +98,22 @@ EOF local -a content content=("${extract_dir}"/*(DNY2)) if [[ ${#content} -eq 1 && -d "${content[1]}" ]]; then - command mv -f "${content[1]}" . - command rmdir "$extract_dir" + # The extracted folder (${content[1]}) may have the same name as $extract_dir + # If so, we need to rename it to avoid conflicts in a 3-step process + # + # 1. Move and rename the extracted folder to a temporary random name + # 2. Delete the empty folder + # 3. Rename the extracted folder to the original name + if [[ "${content[1]:t}" == "$extract_dir" ]]; then + # =(:) gives /tmp/zsh, with :t it gives zsh + local tmp_dir==(:); tmp_dir="${tmp_dir:t}" + command mv -f "${content[1]}" "$tmp_dir" \ + && command rmdir "$extract_dir" \ + && command mv -f "$tmp_dir" "$extract_dir" + else + command mv -f "${content[1]}" . \ + && command rmdir "$extract_dir" + fi elif [[ ${#content} -eq 0 ]]; then command rmdir "$extract_dir" fi From 01c82c381d90f10239908ace41df9532c8c45495 Mon Sep 17 00:00:00 2001 From: Alexander Huynh Date: Fri, 7 Apr 2023 07:35:12 -0400 Subject: [PATCH 222/441] fix(jump): even spacing between marks (#11601) --- plugins/jump/jump.plugin.zsh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/plugins/jump/jump.plugin.zsh b/plugins/jump/jump.plugin.zsh index c2da1144e..829c9d9cb 100644 --- a/plugins/jump/jump.plugin.zsh +++ b/plugins/jump/jump.plugin.zsh @@ -35,12 +35,11 @@ marks() { max=${#link:t} fi done - local printf_markname_template="$(printf -- "%%%us " "$max")" + local printf_markname_template="$(printf -- "%%%us" "$max")" for link in $MARKPATH/{,.}*(@N); do - local markname="$fg[cyan]${link:t}$reset_color" + local markname="$fg[cyan]$(printf -- "$printf_markname_template" "${link:t}")$reset_color" local markpath="$fg[blue]$(readlink $link)$reset_color" - printf -- "$printf_markname_template" "$markname" - printf -- "-> %s\n" "$markpath" + printf -- "%s -> %s\n" "$markname" "$markpath" done } From 9b1ef262bcc8d47a6d20b4efc673557560df6647 Mon Sep 17 00:00:00 2001 From: deimosian Date: Fri, 7 Apr 2023 11:43:45 +0000 Subject: [PATCH 223/441] feat(archlinux): unify `upgrade` function (#11597) Co-authored-by: Carlo Sala --- plugins/archlinux/archlinux.plugin.zsh | 31 +++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index 4f1364779..e3b1b1261 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -23,7 +23,6 @@ alias pacfiles='pacman -F' alias pacls='pacman -Ql' alias pacown='pacman -Qo' alias pacupd="sudo pacman -Sy" -alias upgrade='sudo pacman -Syu' function paclist() { # Based on https://bbs.archlinux.org/viewtopic.php?id=93683 @@ -109,7 +108,6 @@ if (( $+commands[aura] )); then alias auupd="sudo aura -Sy" alias auupg='sudo sh -c "aura -Syu && aura -Au"' alias ausu='sudo sh -c "aura -Syu --no-confirm && aura -Au --no-confirm"' - alias upgrade='sudo aura -Syu' # extra bonus specially for aura alias auown="aura -Qqo" @@ -136,7 +134,6 @@ if (( $+commands[pacaur] )); then alias painsd='pacaur -S --asdeps' alias pamir='pacaur -Syy' alias paupd="pacaur -Sy" - alias upgrade='pacaur -Syu' fi if (( $+commands[trizen] )); then @@ -158,7 +155,6 @@ if (( $+commands[trizen] )); then alias trinsd='trizen -S --asdeps' alias trmir='trizen -Syy' alias trupd="trizen -Sy" - alias upgrade='trizen -Syu' fi if (( $+commands[yay] )); then @@ -180,5 +176,30 @@ if (( $+commands[yay] )); then alias yainsd='yay -S --asdeps' alias yamir='yay -Syy' alias yaupd="yay -Sy" - alias upgrade='yay -Syu' fi + +# Check Arch Linux PGP Keyring before System Upgrade to prevent failure. +function upgrade() { + echo "[oh-my-zsh] Checking Arch Linux PGP Keyring" + local installedver="$(sudo pacman -Qi archlinux-keyring | grep -Po '(?<=Version : ).*')" + local currentver="$(sudo pacman -Si archlinux-keyring | grep -Po '(?<=Version : ).*')" + if [ $installedver != $currentver ]; then + echo "[oh-my-zsh] Arch Linux PGP Keyring is out of date." + echo "[oh-my-zsh] Updating before full system upgrade." + sudo pacman -Syu --needed --noconfirm archlinux-keyring + else + echo "[oh-my-zsh] Arch Linux PGP Keyring is up to date." + fi + echo "[oh-mh-zsh] Proceeding with full system upgrade." + if (( $+commands[yay] )); then + yay -Syu + elif (( $+commands[trizen] )); then + trizen -Syu + elif (( $+commands[pacaur] )); then + pacaur -Syu + elif (( $+commands[aura] )); then + sudo aura -Syu + else + sudo pacman -Syu + fi +} From e906a3130eb5031a2c82d9187ea17387881631db Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Sat, 8 Apr 2023 11:13:30 +0200 Subject: [PATCH 224/441] fix(azure): look properly for azure config file Closes #11606 --- plugins/azure/azure.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/azure/azure.plugin.zsh b/plugins/azure/azure.plugin.zsh index 51b54dbc1..8fec3c1f7 100644 --- a/plugins/azure/azure.plugin.zsh +++ b/plugins/azure/azure.plugin.zsh @@ -18,10 +18,10 @@ compctl -K _az_subscriptions azss # Azure prompt function azure_prompt_info() { - [[ ! -f "${AZURE_CONFIG_DIR:-$HOME/.azure/azureProfile.json}" ]] && return + [[ ! -f "${AZURE_CONFIG_DIR:-$HOME/.azure}/azureProfile.json" ]] && return # azgs is too expensive, if we have jq, we enable the prompt (( $+commands[jq] )) || return 1 - azgs=$(jq -r '.subscriptions[] | select(.isDefault==true) .name' ${AZURE_CONFIG_DIR:-$HOME/.azure/azureProfile.json}) + azgs=$(jq -r '.subscriptions[] | select(.isDefault==true) .name' "${AZURE_CONFIG_DIR:-$HOME/.azure}/azureProfile.json") echo "${ZSH_THEME_AZURE_PREFIX:=}" } From ad99f0c164111fa3cfcbfc5b9cda321800541936 Mon Sep 17 00:00:00 2001 From: Aleks Date: Sat, 8 Apr 2023 13:36:54 +0200 Subject: [PATCH 225/441] feat(git): add merge squash alias (`gms`) (#10937) --- 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 0895ce39c..f87d3fbca 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -116,6 +116,7 @@ plugins=(... git) | gloga | git log --oneline --decorate --graph --all | | glp | git log --pretty=\ | | gm | git merge | +| gms | git merge --squash | | gmom | git merge origin/$(git_main_branch) | | gmtl | git mergetool --no-prompt | | gmtlvim | git mergetool --no-prompt --tool=vimdiff | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index ed17436e8..3c8d53c8c 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -237,6 +237,7 @@ alias gmtl='git mergetool --no-prompt' alias gmtlvim='git mergetool --no-prompt --tool=vimdiff' alias gmum='git merge upstream/$(git_main_branch)' alias gma='git merge --abort' +alias gms="git merge --squash" alias gp='git push' alias gpd='git push --dry-run' From 90ec2d1a68049d8b7e57b87c3661d8cacf54655c Mon Sep 17 00:00:00 2001 From: deimosian Date: Sun, 9 Apr 2023 04:24:55 -0400 Subject: [PATCH 226/441] fix(archlinux): keyring update function (#11607) --- plugins/archlinux/archlinux.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index e3b1b1261..ce7bfdf23 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -186,7 +186,7 @@ function upgrade() { if [ $installedver != $currentver ]; then echo "[oh-my-zsh] Arch Linux PGP Keyring is out of date." echo "[oh-my-zsh] Updating before full system upgrade." - sudo pacman -Syu --needed --noconfirm archlinux-keyring + sudo pacman -Sy --needed --noconfirm archlinux-keyring else echo "[oh-my-zsh] Arch Linux PGP Keyring is up to date." fi From 4586808f86bf3bfdf97685380472b63597ce43c0 Mon Sep 17 00:00:00 2001 From: deimosian Date: Sun, 9 Apr 2023 06:58:38 -0400 Subject: [PATCH 227/441] feat(archlinux): improve update function messages (#11608) --- plugins/archlinux/archlinux.plugin.zsh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index ce7bfdf23..da170f488 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -180,17 +180,17 @@ fi # Check Arch Linux PGP Keyring before System Upgrade to prevent failure. function upgrade() { - echo "[oh-my-zsh] Checking Arch Linux PGP Keyring" + echo ":: Checking Arch Linux PGP Keyring..." local installedver="$(sudo pacman -Qi archlinux-keyring | grep -Po '(?<=Version : ).*')" local currentver="$(sudo pacman -Si archlinux-keyring | grep -Po '(?<=Version : ).*')" if [ $installedver != $currentver ]; then - echo "[oh-my-zsh] Arch Linux PGP Keyring is out of date." - echo "[oh-my-zsh] Updating before full system upgrade." + echo " Arch Linux PGP Keyring is out of date." + echo " Updating before full system upgrade." sudo pacman -Sy --needed --noconfirm archlinux-keyring else - echo "[oh-my-zsh] Arch Linux PGP Keyring is up to date." + echo " Arch Linux PGP Keyring is up to date." + echo " Proceeding with full system upgrade." fi - echo "[oh-mh-zsh] Proceeding with full system upgrade." if (( $+commands[yay] )); then yay -Syu elif (( $+commands[trizen] )); then From b4f9698733d7b29cc495e649e26fd6c3a5dcfcae Mon Sep 17 00:00:00 2001 From: Josh McKinney Date: Tue, 11 Apr 2023 01:41:00 -0700 Subject: [PATCH 228/441] docs(ssh-agent): macOS and p10k advices (#11612) --- plugins/ssh-agent/README.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/plugins/ssh-agent/README.md b/plugins/ssh-agent/README.md index fa6a996d4..8c118e65b 100644 --- a/plugins/ssh-agent/README.md +++ b/plugins/ssh-agent/README.md @@ -99,6 +99,33 @@ ssh-add -K -c -a /run/user/1000/ssh-auth For valid `ssh-add` arguments run `ssh-add --help` or `man ssh-add`. +### Powerline 10k specific settings + +Powerline10k has an instant prompt setting that doesn't like when this plugin +writes to the console. Consider using the following settings if you're using +p10k (documented above): + +``` +zstyle :omz:plugins:ssh-agent quiet yes +zstyle :omz:plugins:ssh-agent lazy yes +``` + +### macOS specific settings + +macOS supports using passphrases stored in the keychain when adding identities +to the ssh-agent. + +``` +ssh-add --apple-use-keychain ~/.ssh/id_rsa ... +``` + + +This plugin can be configured to use the keychain when loading using the following: + +``` +zstyle :omz:plugins:ssh-agent ssh-add-args --apple-load-keychain +``` + ## Credits Based on code from Joseph M. Reagle: https://www.cygwin.com/ml/cygwin/2001-06/msg00537.html From bd5ebba834c53e730671d9d24d93eb98b812a579 Mon Sep 17 00:00:00 2001 From: Eddie Romanov <81505200+SnoopDraugg@users.noreply.github.com> Date: Sun, 16 Apr 2023 03:49:04 -0400 Subject: [PATCH 229/441] feat(pipenv): add pupd alias (#11616) --- plugins/pipenv/README.md | 1 + plugins/pipenv/pipenv.plugin.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/pipenv/README.md b/plugins/pipenv/README.md index ab1c1e442..4329feb32 100644 --- a/plugins/pipenv/README.md +++ b/plugins/pipenv/README.md @@ -23,6 +23,7 @@ This plugin provides some features to simplify the use of Pipenv while working o - `psh` is aliased to `pipenv shell` - `psy` is aliased to `pipenv sync` - `pu` is aliased to `pipenv uninstall` + - `pupd` is aliased to `pipenv update` - `pwh` is aliased to `pipenv --where` - `pvenv` is aliased to `pipenv --venv` - `ppy` is aliased to `pipenv --py` diff --git a/plugins/pipenv/pipenv.plugin.zsh b/plugins/pipenv/pipenv.plugin.zsh index 244bd6b7c..22d1a3131 100644 --- a/plugins/pipenv/pipenv.plugin.zsh +++ b/plugins/pipenv/pipenv.plugin.zsh @@ -47,6 +47,7 @@ alias prun="pipenv run" alias psh="pipenv shell" alias psy="pipenv sync" alias pu="pipenv uninstall" +alias pupd="pipenv update" alias pwh="pipenv --where" alias pvenv="pipenv --venv" alias ppy="pipenv --py" From d889eca72633b7a66d6c832736a5460c5f1a1833 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Mon, 17 Apr 2023 20:09:30 +0200 Subject: [PATCH 230/441] fix(check_for_upgrade): update properly `LAST_EPOCH` Fixes #11617 --- tools/check_for_upgrade.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index 81c371b3f..3210e4375 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -180,6 +180,7 @@ function has_typed_input() { # Check if there are updates available before proceeding if ! is_update_available; then + update_last_updated_file return fi From 673b9fc3317d48a169fe612575186b3eb1a42a13 Mon Sep 17 00:00:00 2001 From: Mark Keisler Date: Tue, 18 Apr 2023 03:36:07 -0500 Subject: [PATCH 231/441] feat(aws)!: improve `aws_change_access_key` (#11378) BREAKING CHANGE: This commit removes compatibility for `aws` cli v1. Now only v2 is supported. --- plugins/aws/README.md | 11 ++++++----- plugins/aws/aws.plugin.zsh | 37 +++++++++++++++++++++++++++++++------ 2 files changed, 37 insertions(+), 11 deletions(-) diff --git a/plugins/aws/README.md b/plugins/aws/README.md index 846bf1414..54bc7a44d 100644 --- a/plugins/aws/README.md +++ b/plugins/aws/README.md @@ -1,7 +1,8 @@ # aws -This plugin provides completion support for [awscli](https://docs.aws.amazon.com/cli/latest/reference/index.html) +This plugin provides completion support for [awscli v2](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/index.html) and a few utilities to manage AWS profiles/regions and display them in the prompt. +[awscli v1](https://docs.aws.amazon.com/cli/latest/userguide/cliv2-migration.html) is no longer supported. To use it, add `aws` to the plugins array in your zshrc file. @@ -12,9 +13,9 @@ plugins=(... aws) ## Plugin commands * `asp []`: sets `$AWS_PROFILE` and `$AWS_DEFAULT_PROFILE` (legacy) to ``. - It also sets `$AWS_EB_PROFILE` to `` for the Elastic Beanstalk CLI. It sets `$AWS_PROFILE_REGION` for display in `aws_prompt_info`. + It also sets `$AWS_EB_PROFILE` to `` for the Elastic Beanstalk CLI. It sets `$AWS_PROFILE_REGION` for display in `aws_prompt_info`. 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. +* `asp [] login`: If AWS SSO has been configured in your aws profile, it will run the `aws sso login` command following profile selection. * `asr []`: sets `$AWS_REGION` and `$AWS_DEFAULT_REGION` (legacy) to ``. Run `asr` without arguments to clear the profile. @@ -65,7 +66,7 @@ the current `$AWS_PROFILE` and `$AWS_REGION`. It uses four variables to control Source profile credentials in `~/.aws/credentials`: -``` +```ini [source-profile-name] aws_access_key_id = ... aws_secret_access_key = ... @@ -73,7 +74,7 @@ aws_secret_access_key = ... Role configuration in `~/.aws/config`: -``` +```ini [profile source-profile-name] mfa_serial = arn:aws:iam::111111111111:mfa/myuser region = us-east-1 diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index a379eaa18..d45abba57 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -160,14 +160,39 @@ function aws_change_access_key() { return 1 fi - echo "Insert the credentials when asked." - asp "$1" || return 1 - AWS_PAGER="" aws iam create-access-key - AWS_PAGER="" aws configure --profile "$1" + local profile="$1" + # Get current access key + local original_aws_access_key_id="$(aws configure get aws_access_key_id --profile $profile)" - echo "You can now safely delete the old access key running \`aws iam delete-access-key --access-key-id ID\`" + asp "$profile" || return 1 + echo "Generating a new access key pair for you now." + if aws --no-cli-pager iam create-access-key; then + echo "Insert the newly generated credentials when asked." + aws --no-cli-pager configure --profile $profile + else + echo "Current access keys:" + aws --no-cli-pager iam list-access-keys + echo "Profile \"${profile}\" is currently using the $original_aws_access_key_id key. You can delete an old access key by running \`aws --profile $profile iam delete-access-key --access-key-id AccessKeyId\`" + return 1 + fi + + read -q "yn?Would you like to disable your previous access key (${original_aws_access_key_id}) now? " + case $yn in + [Yy]*) + echo -n "\nDisabling access key ${original_aws_access_key_id}..." + if aws --no-cli-pager update-access-key --access-key-id ${original_aws_access_key_id} --status Inactive; then + echo "done." + else + echo "\nFailed to disable ${original_aws_access_key_id} key." + fi + ;; + *) + echo "" + ;; + esac + echo "You can now safely delete the old access key by running \`aws --profile $profile iam delete-access-key --access-key-id ${original_aws_access_key_id}\`" echo "Your current keys are:" - AWS_PAGER="" aws iam list-access-keys + aws --no-cli-pager iam list-access-keys } function aws_regions() { From 9139d30ca30f8f687cc21121ed9b4f5238bc5260 Mon Sep 17 00:00:00 2001 From: Roeniss Moon Date: Wed, 19 Apr 2023 22:46:10 +0900 Subject: [PATCH 232/441] feat(aws): allow more customisation in prompt function (#11619) --- plugins/aws/README.md | 2 ++ plugins/aws/aws.plugin.zsh | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/plugins/aws/README.md b/plugins/aws/README.md index 54bc7a44d..9e1e055b8 100644 --- a/plugins/aws/README.md +++ b/plugins/aws/README.md @@ -58,6 +58,8 @@ the current `$AWS_PROFILE` and `$AWS_REGION`. It uses four variables to control * ZSH_THEME_AWS_REGION_SUFFIX: sets the suffix of the AWS_REGION. Defaults to `>`. +* ZSH_THEME_AWS_DIVIDER: sets the divider between ZSH_THEME_AWS_PROFILE_SUFFIX and ZSH_THEME_AWS_REGION_PREFIX. Defaults to ` ` (single space). + ## Configuration [Configuration and credential file settings](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) by AWS diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index d45abba57..0da91bc22 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -223,13 +223,16 @@ compctl -K _aws_profiles asp acp aws_change_access_key function aws_prompt_info() { local _aws_to_show local region="${AWS_REGION:-${AWS_DEFAULT_REGION:-$AWS_PROFILE_REGION}}" + if [[ -n $AWS_PROFILE ]];then - _aws_to_show+="${ZSH_THEME_AWS_PROFILE_PREFIX:=}" + _aws_to_show+="${ZSH_THEME_AWS_PROFILE_PREFIX=""}" fi + if [[ -n $AWS_REGION ]]; then - [[ -n $AWS_PROFILE ]] && _aws_to_show+=" " - _aws_to_show+="${ZSH_THEME_AWS_REGION_PREFIX:=}" + [[ -n $AWS_PROFILE ]] && _aws_to_show+="${ZSH_THEME_AWS_DIVIDER=' '}" + _aws_to_show+="${ZSH_THEME_AWS_REGION_PREFIX=""}" fi + echo "$_aws_to_show" } From 18c837b136a9591117ef059eb8266c490d5eeee1 Mon Sep 17 00:00:00 2001 From: Erin Schlarb Date: Thu, 20 Apr 2023 13:30:49 +0200 Subject: [PATCH 233/441] fix(dirhistory): run properly if `ksh_arrays` is set (#11630) --- plugins/dirhistory/dirhistory.plugin.zsh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/dirhistory/dirhistory.plugin.zsh b/plugins/dirhistory/dirhistory.plugin.zsh index 7021fc03a..8d67c6188 100644 --- a/plugins/dirhistory/dirhistory.plugin.zsh +++ b/plugins/dirhistory/dirhistory.plugin.zsh @@ -19,15 +19,17 @@ export DIRHISTORY_SIZE=30 # Returns the element if the array was not empty, # otherwise returns empty string. function pop_past() { - typeset -g $1="${dirhistory_past[$#dirhistory_past]}" + setopt localoptions no_ksh_arrays if [[ $#dirhistory_past -gt 0 ]]; then + typeset -g $1="${dirhistory_past[$#dirhistory_past]}" dirhistory_past[$#dirhistory_past]=() fi } function pop_future() { - typeset -g $1="${dirhistory_future[$#dirhistory_future]}" + setopt localoptions no_ksh_arrays if [[ $#dirhistory_future -gt 0 ]]; then + typeset -g $1="${dirhistory_future[$#dirhistory_future]}" dirhistory_future[$#dirhistory_future]=() fi } @@ -35,6 +37,7 @@ function pop_future() { # Push a new element onto the end of dirhistory_past. If the size of the array # is >= DIRHISTORY_SIZE, the array is shifted function push_past() { + setopt localoptions no_ksh_arrays if [[ $#dirhistory_past -ge $DIRHISTORY_SIZE ]]; then shift dirhistory_past fi @@ -44,6 +47,7 @@ function push_past() { } function push_future() { + setopt localoptions no_ksh_arrays if [[ $#dirhistory_future -ge $DIRHISTORY_SIZE ]]; then shift dirhistory_future fi From 5b11e70a9617c6e248fd6947e84016bd8c37028e Mon Sep 17 00:00:00 2001 From: Erin Schlarb Date: Thu, 20 Apr 2023 13:32:32 +0200 Subject: [PATCH 234/441] fix(cli): execute as expected if `ksh_arrays` is set (#11629) --- lib/cli.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cli.zsh b/lib/cli.zsh index ba3e39eb5..561c1b98b 100644 --- a/lib/cli.zsh +++ b/lib/cli.zsh @@ -11,7 +11,7 @@ function omz { # Subcommand functions start with _ so that they don't # appear as completion entries when looking for `omz` - (( $+functions[_omz::$command] )) || { + (( ${+functions[_omz::$command]} )) || { _omz::help return 1 } From 91c7ed45a312a71b7d3b856228047ddcd51d4651 Mon Sep 17 00:00:00 2001 From: Nathanial Spearing Date: Thu, 20 Apr 2023 07:42:47 -0400 Subject: [PATCH 235/441] feat(npm): add `npmrd` alias (#11627) --- plugins/npm/README.md | 1 + plugins/npm/npm.plugin.zsh | 3 +++ 2 files changed, 4 insertions(+) diff --git a/plugins/npm/README.md b/plugins/npm/README.md index 8eafc6d61..420dd710a 100644 --- a/plugins/npm/README.md +++ b/plugins/npm/README.md @@ -29,6 +29,7 @@ plugins=(... npm) | `npmI` | `npm init` | Run npm init | | `npmi` | `npm info` | Run npm info | | `npmSe` | `npm search` | Run npm search | +| `npmrd` | `npm run dev` | Run npm run dev | ## `npm install` / `npm uninstall` toggle diff --git a/plugins/npm/npm.plugin.zsh b/plugins/npm/npm.plugin.zsh index e0dcbf142..3cba18f6c 100644 --- a/plugins/npm/npm.plugin.zsh +++ b/plugins/npm/npm.plugin.zsh @@ -70,6 +70,9 @@ alias npmi="npm info" # Run npm search alias npmSe="npm search" +# Run npm run dev +alias npmrd="npm run dev" + npm_toggle_install_uninstall() { # Look up to the previous 2 history commands local line From 07454029bd67239ce42aaa68b427fbbe8e428e7d Mon Sep 17 00:00:00 2001 From: Andrew Xie <62098008+axieax@users.noreply.github.com> Date: Fri, 21 Apr 2023 16:59:58 +1000 Subject: [PATCH 236/441] feat(starship): create plugin (#10947) Co-authored-by: Carlo Sala --- .github/CODEOWNERS | 1 + plugins/starship/README.md | 21 +++++++++++++++++++++ plugins/starship/starship.plugin.zsh | 8 ++++++++ 3 files changed, 30 insertions(+) create mode 100644 plugins/starship/README.md create mode 100644 plugins/starship/starship.plugin.zsh diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6668cd7ce..599b765ca 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -9,3 +9,4 @@ plugins/shell-proxy/ @septs plugins/universalarchive/ @Konfekt plugins/wp-cli/ @joshmedeski plugins/zoxide/ @ajeetdsouza +plugins/starship/ @axieax diff --git a/plugins/starship/README.md b/plugins/starship/README.md new file mode 100644 index 000000000..0e66c5294 --- /dev/null +++ b/plugins/starship/README.md @@ -0,0 +1,21 @@ +# starship plugin + +Initializes [starship prompt](https://starship.rs) - a minimal, blazing-fast and infinitely customizable cross-shell prompt. + +[Demo](https://user-images.githubusercontent.com/62098008/169764279-50b48262-9506-4651-ba89-f6611a88ebf0.mp4) + +[External repository](https://github.com/axieax/zsh-starship) for this zsh plugin. + +# Installation + +**Note:** you have to [install starship](https://starship.rs/guide/#%F0%9F%9A%80-installation) first. + +## [oh-my-zsh](https://github.com/ohmyzsh/ohmyzsh) + +Add `starship` to the plugins array in your `.zshrc` file: + +```zsh +plugins=(... starship) +``` + +## ⚠️ ENABLING THIS PLUGIN WILL UNSET YOUR ZSH_THEME VARIABLE diff --git a/plugins/starship/starship.plugin.zsh b/plugins/starship/starship.plugin.zsh new file mode 100644 index 000000000..8c5d9135e --- /dev/null +++ b/plugins/starship/starship.plugin.zsh @@ -0,0 +1,8 @@ +# ignore oh-my-zsh theme +unset ZSH_THEME + +if (( $+commands[starship] )); then + eval "$(starship init zsh)" +else + echo '[oh-my-zsh] starship not found, please install it from https://starship.rs' +fi From 5d3e86e2a48adf7a308773f8f1b725d187c7c5ef Mon Sep 17 00:00:00 2001 From: Miguel Sempere Date: Fri, 21 Apr 2023 08:15:31 +0100 Subject: [PATCH 237/441] feat(dbt): create plugin (#11635) Co-authored-by: Carlo Sala --- .github/CODEOWNERS | 1 + plugins/dbt/README.md | 29 +++++++++++++++++++++++++++++ plugins/dbt/dbt.plugin.zsh | 23 +++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 plugins/dbt/README.md create mode 100644 plugins/dbt/dbt.plugin.zsh diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 599b765ca..0c5f3acee 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -10,3 +10,4 @@ plugins/universalarchive/ @Konfekt plugins/wp-cli/ @joshmedeski plugins/zoxide/ @ajeetdsouza plugins/starship/ @axieax +plugins/dbt/ @msempere diff --git a/plugins/dbt/README.md b/plugins/dbt/README.md new file mode 100644 index 000000000..e05d79cc3 --- /dev/null +++ b/plugins/dbt/README.md @@ -0,0 +1,29 @@ +# dbt plugin + +## Introduction + +The `dbt plugin` adds several aliases for useful [dbt](https://docs.getdbt.com/) commands and +[aliases](#aliases). + +To use it, add `dbt` to the plugins array of your zshrc file: + +``` +plugins=(... dbt) +``` + +## Aliases + +| Alias | Command | Description | +| ------ | ------------------------------------------------ | ---------------------------------------------------- | +| dbtlm | `dbt ls -s state:modified` | List modified models only | +| dbtrm | `dbt run -s state:modified` | Run modified models only | +| dbttm | `dbt test -m state:modified` | Test modified models only | +| dbtrtm | `dbtrm && dbttm` | Run and test modified models only | +| dbtrs | `dbt clean; dbt deps; dbt seed` | Re-seed data | +| dbtfrt | `dbtrs; dbt run --full-refresh; dbt test` | Perform a full fresh run with tests | +| dbtcds | `dbt docs generate; dbt docs serve` | Generate docs without compiling | +| dbtds | `dbt docs generate --no-compile; dbt docs serve` | Generate and serve docs skipping doc. re-compilation | + +## Maintainer + +### [msempere](https://github.com/msempere) diff --git a/plugins/dbt/dbt.plugin.zsh b/plugins/dbt/dbt.plugin.zsh new file mode 100644 index 000000000..6fcc2eecf --- /dev/null +++ b/plugins/dbt/dbt.plugin.zsh @@ -0,0 +1,23 @@ +# list modified models only +alias dbtlm="dbt ls -s state:modified" + +# run modified models only +alias dbtrm="dbt run -s state:modified" + +# test modified models only +alias dbttm="dbt test -m state:modified" + +# run and test modified models only +alias dbtrtm="dbtrm && dbttm" + +# re-seed data +alias dbtrs="dbt clean; dbt deps; dbt seed" + +# perform a full fresh run with tests +alias dbtfrt="dbtrs; dbt run --full-refresh; dbt test" + +# generate and serve docs +alias dbtcds="dbt docs generate; dbt docs serve" + +# generate and serve docs skipping doc. re-compilation +alias dbtds="dbt docs generate --no-compile; dbt docs serve" From 343c78ae91ff03ea66517b1d69b25fa262ce5408 Mon Sep 17 00:00:00 2001 From: Idan Fishman Date: Thu, 27 Apr 2023 11:49:26 +0200 Subject: [PATCH 238/441] fix(aws): set properly set divider to space Closes #11649 Co-authored-by: Carlo Sala --- plugins/aws/aws.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index 0da91bc22..a437dc8e8 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -229,7 +229,7 @@ function aws_prompt_info() { fi if [[ -n $AWS_REGION ]]; then - [[ -n $AWS_PROFILE ]] && _aws_to_show+="${ZSH_THEME_AWS_DIVIDER=' '}" + [[ -n $AWS_PROFILE ]] && _aws_to_show+="${ZSH_THEME_AWS_DIVIDER=" "}" _aws_to_show+="${ZSH_THEME_AWS_REGION_PREFIX=""}" fi From 65699912be974d36b732b63e32c3b9428d23ace8 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Thu, 27 Apr 2023 09:57:44 +0200 Subject: [PATCH 239/441] fix(azure): recognize properly linuxbrew Closes #11644 --- plugins/azure/azure.plugin.zsh | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/plugins/azure/azure.plugin.zsh b/plugins/azure/azure.plugin.zsh index 8fec3c1f7..22fbea80f 100644 --- a/plugins/azure/azure.plugin.zsh +++ b/plugins/azure/azure.plugin.zsh @@ -31,11 +31,9 @@ function _az-homebrew-installed() { # check if Homebrew is installed (( $+commands[brew] )) || return 1 - # speculatively check default brew prefix - if [[ -d /usr/local ]]; then - _brew_prefix=/usr/local - elif [[ -d /opt/homebrew ]]; then - _brew_prefix=/opt/homebrew + # if so, we assume it's default way to install brew + if [[ ${commands[brew]:t2} == bin/brew ]]; then + _brew_prefix="${commands[brew]:h:h}" # remove trailing /bin/brew else # ok, it is not in the default prefix # this call to brew is expensive (about 400 ms), so at least let's make it only once From 5fc1118fd240a0d87ad022d36f48cb31d869ab2e Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Thu, 27 Apr 2023 19:42:55 +0200 Subject: [PATCH 240/441] chore(azure): fix typo --- plugins/azure/azure.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/azure/azure.plugin.zsh b/plugins/azure/azure.plugin.zsh index 22fbea80f..b33b0f805 100644 --- a/plugins/azure/azure.plugin.zsh +++ b/plugins/azure/azure.plugin.zsh @@ -1,4 +1,4 @@ -# AZ Get Subscritions +# AZ Get Subscriptions function azgs() { az account show --output tsv --query 'name' 2>/dev/null } From 2e7a247cab663fbc0aafdefa15bf10eb4dd64563 Mon Sep 17 00:00:00 2001 From: Bas Nijholt Date: Fri, 28 Apr 2023 09:05:36 +0200 Subject: [PATCH 241/441] feat(z): update to latest upstream version Mirror of https://github.com/agkozak/zsh-z/commit/6bfe418332866d15373392164df11b4fbec2083f Closes #11652 Co-authored-by: Carlo Sala --- plugins/z/LICENSE | 2 +- plugins/z/MANUAL.md | 21 ++++++++++-- plugins/z/_z | 2 +- plugins/z/img/mit_license.svg | 1 + plugins/z/img/zsh_4.3.11_plus.svg | 1 + plugins/z/z.plugin.zsh | 54 ++++++++++++++++++++++++------- 6 files changed, 65 insertions(+), 16 deletions(-) create mode 100644 plugins/z/img/mit_license.svg create mode 100644 plugins/z/img/zsh_4.3.11_plus.svg diff --git a/plugins/z/LICENSE b/plugins/z/LICENSE index d1cca7ae5..6af13b9e0 100644 --- a/plugins/z/LICENSE +++ b/plugins/z/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2018-2022 Alexandros Kozak +Copyright (c) 2018-2023 Alexandros Kozak Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/z/MANUAL.md b/plugins/z/MANUAL.md index dcca3c452..d367c3026 100644 --- a/plugins/z/MANUAL.md +++ b/plugins/z/MANUAL.md @@ -1,5 +1,9 @@ # Zsh-z +[![MIT License](img/mit_license.svg)](https://opensource.org/licenses/MIT) +![Zsh version 4.3.11 and higher](img/zsh_4.3.11_plus.svg) +[![GitHub stars](https://img.shields.io/github/stars/agkozak/zsh-z.svg)](https://github.com/agkozak/zsh-z/stargazers) + Zsh-z is a command line tool that allows you to jump quickly to directories that you have visited frequently in the past, or recently -- but most often a combination of the two (a concept known as ["frecency"](https://en.wikipedia.org/wiki/Frecency)). It works by keeping track of when you go to directories and how much time you spend in them. It is then in the position to guess where you want to go when you type a partial string, e.g., `z src` might take you to `~/src/zsh`. `z zsh` might also get you there, and `z c/z` might prove to be even more specific -- it all depends on your habits and how much time you have been using Zsh-z to build up a database. After using Zsh-z for a little while, you will get to where you want to be by typing considerably less than you would need if you were using `cd`. Zsh-z is a native Zsh port of [rupa/z](https://github.com/rupa/z), a tool written for `bash` and Zsh that uses embedded `awk` scripts to do the heavy lifting. It was quite possibly my most used command line tool for a couple of years. I decided to translate it, `awk` parts and all, into pure Zsh script, to see if by eliminating calls to external tools (`awk`, `sort`, `date`, `sed`, `mv`, `rm`, and `chown`) and reducing forking through subshells I could make it faster. The performance increase is impressive, particularly on systems where forking is slow, such as Cygwin, MSYS2, and WSL. I have found that, in those environments, switching directories using Zsh-z can be over 100% faster than it is using `rupa/z`. @@ -28,6 +32,10 @@ Zsh-z is a drop-in replacement for `rupa/z` and will, by default, use the same d
Here are the latest features and updates. +- April 27, 2023 + + Zsh-z now allows the user to specify the directory-changing command using the `ZSHZ_CD` environment variable (default: `builtin cd`; props @basnijholt). +- January 27, 2023 + + If the datafile directory specified by `ZSHZ_DATA` or `_Z_DATA` does not already exist, create it (props @mattmc3). - June 29, 2022 + Zsh-z is less likely to leave temporary files sitting around (props @mafredri). - June 27, 2022 @@ -118,13 +126,19 @@ Add the line to your `.zshrc`, somewhere above the line that says `antigen apply`. -### For [oh-my-zsh](http://ohmyz.sh/) users +### For [Oh My Zsh](http://ohmyz.sh/) users -Execute the following command: +Zsh-z is now included as part of Oh My Zsh! As long as you are using an up-to-date installation of Oh My Zsh, you can activate Zsh-z simply by adding `z` to your `plugins` array in your `.zshrc`, e.g., + + plugins=( git z ) + +It is as simple as that. + +If, however, you prefer always to use the latest version of Zsh-z from the `agkozak/zsh-z` repo, you may install it thus: git clone https://github.com/agkozak/zsh-z ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-z -and add `zsh-z` to the line of your `.zshrc` that specifies `plugins=()`, e.g., `plugins=( git zsh-z )`. +and activate it by adding `zsh-z` to the line of your `.zshrc` that specifies `plugins=()`, e.g., `plugins=( git zsh-z )`. ### For [prezto](https://github.com/sorin-ionescu/prezto) users @@ -246,6 +260,7 @@ to install `zsh-z`. Zsh-z has environment variables (they all begin with `ZSHZ_`) that change its behavior if you set them; you can also keep your old ones if you have been using `rupa/z` (they begin with `_Z_`). * `ZSHZ_CMD` changes the command name (default: `z`) +* `ZSHZ_CD` specifies the default directory-changing command (default: `builtin cd`) * `ZSHZ_COMPLETION` can be `'frecent'` (default) or `'legacy'`, depending on whether you want your completion results sorted according to frecency or simply sorted alphabetically * `ZSHZ_DATA` changes the database file (default: `~/.z`) * `ZSHZ_ECHO` displays the new path name when changing directories (default: `0`) diff --git a/plugins/z/_z b/plugins/z/_z index 9891a52ed..a493f35ba 100644 --- a/plugins/z/_z +++ b/plugins/z/_z @@ -5,7 +5,7 @@ # # https://github.com/agkozak/zsh-z # -# Copyright (c) 2018-2022 Alexandros Kozak +# Copyright (c) 2018-2023 Alexandros Kozak # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/z/img/mit_license.svg b/plugins/z/img/mit_license.svg new file mode 100644 index 000000000..1c02079d7 --- /dev/null +++ b/plugins/z/img/mit_license.svg @@ -0,0 +1 @@ +licenselicenseMITMIT \ No newline at end of file diff --git a/plugins/z/img/zsh_4.3.11_plus.svg b/plugins/z/img/zsh_4.3.11_plus.svg new file mode 100644 index 000000000..f46d947d0 --- /dev/null +++ b/plugins/z/img/zsh_4.3.11_plus.svg @@ -0,0 +1 @@ +zshzsh4.3.11+4.3.11+ \ No newline at end of file diff --git a/plugins/z/z.plugin.zsh b/plugins/z/z.plugin.zsh index 209edfea7..60a630624 100644 --- a/plugins/z/z.plugin.zsh +++ b/plugins/z/z.plugin.zsh @@ -4,7 +4,7 @@ # # https://github.com/agkozak/zsh-z # -# Copyright (c) 2018-2022 Alexandros Kozak +# Copyright (c) 2018-2023 Alexandros Kozak # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -52,6 +52,7 @@ # ZSHZ_CASE -> if `ignore', pattern matching is case-insensitive; if `smart', # pattern matching is case-insensitive only when the pattern is all # lowercase +# ZSHZ_CD -> the directory-changing command that is used (default: builtin cd) # ZSHZ_CMD -> name of command (default: z) # ZSHZ_COMPLETION -> completion method (default: 'frecent'; 'legacy' for # alphabetic sorting) @@ -129,6 +130,7 @@ is-at-least 5.3.0 && ZSHZ[PRINTV]=1 # Globals: # ZSHZ # ZSHZ_CASE +# ZSHZ_CD # ZSHZ_COMPLETION # ZSHZ_DATA # ZSHZ_DEBUG @@ -149,9 +151,19 @@ zshz() { local REPLY local -a lines - # Allow the user to specify the datafile name in $ZSHZ_DATA (default: ~/.z) + # Allow the user to specify a custom datafile in $ZSHZ_DATA (or legacy $_Z_DATA) + local custom_datafile="${ZSHZ_DATA:-$_Z_DATA}" + + # If a datafile was provided as a standalone file without a directory path + # print a warning and exit + if [[ -n ${custom_datafile} && ${custom_datafile} != */* ]]; then + print "ERROR: You configured a custom Zsh-z datafile (${custom_datafile}), but have not specified its directory." >&2 + exit + fi + + # If the user specified a datafile, use that or default to ~/.z # If the datafile is a symlink, it gets dereferenced - local datafile=${${ZSHZ_DATA:-${_Z_DATA:-${HOME}/.z}}:A} + local datafile=${${custom_datafile:-$HOME/.z}:A} # If the datafile is a directory, print a warning and exit if [[ -d $datafile ]]; then @@ -161,7 +173,7 @@ zshz() { # Make sure that the datafile exists before attempting to read it or lock it # for writing - [[ -f $datafile ]] || touch "$datafile" + [[ -f $datafile ]] || { mkdir -p "${datafile:h}" && touch "$datafile" } # Bail if we don't own the datafile and $ZSHZ_OWNER is not set [[ -z ${ZSHZ_OWNER:-${_Z_OWNER}} && -f $datafile && ! -O $datafile ]] && @@ -620,7 +632,7 @@ zshz() { *) # Frecency routine (( dx = EPOCHSECONDS - time_field )) - rank=$(( 10000 * rank_field * (3.75/((0.0001 * dx + 1) + 0.25)) )) + rank=$(( 10000 * rank_field * (3.75/( (0.0001 * dx + 1) + 0.25)) )) ;; esac @@ -756,6 +768,26 @@ zshz() { [[ $output_format != 'completion' ]] && output_format='list' } + ######################################################### + # Allow the user to specify directory-changing command + # using $ZSHZ_CD (default: builtin cd). + # + # Globals: + # ZSHZ_CD + # + # Arguments: + # $* Path + ######################################################### + zshz_cd() { + setopt LOCAL_OPTIONS NO_WARN_CREATE_GLOBAL + + if [[ -z $ZSHZ_CD ]]; then + builtin cd "$*" + else + ${=ZSHZ_CD} "$*" + fi + } + ######################################################### # If $ZSHZ_ECHO == 1, display paths as you jump to them. # If it is also the case that $ZSHZ_TILDE == 1, display @@ -773,7 +805,7 @@ zshz() { if [[ ${@: -1} == /* ]] && (( ! $+opts[-e] && ! $+opts[-l] )); then # cd if possible; echo the new path if $ZSHZ_ECHO == 1 - [[ -d ${@: -1} ]] && builtin cd ${@: -1} && _zshz_echo && return + [[ -d ${@: -1} ]] && zshz_cd ${@: -1} && _zshz_echo && return fi # With option -c, make sure query string matches beginning of matches; @@ -830,12 +862,12 @@ zshz() { print -- "$cd" else # cd if possible; echo the new path if $ZSHZ_ECHO == 1 - [[ -d $cd ]] && builtin cd "$cd" && _zshz_echo + [[ -d $cd ]] && zshz_cd "$cd" && _zshz_echo fi else # if $req is a valid path, cd to it; echo the new path if $ZSHZ_ECHO == 1 if ! (( $+opts[-e] || $+opts[-l] )) && [[ -d $req ]]; then - builtin cd "$req" && _zshz_echo + zshz_cd "$req" && _zshz_echo else return $ret2 fi @@ -900,9 +932,9 @@ add-zsh-hook chpwd _zshz_chpwd ############################################################ # Standarized $0 handling -# (See https://github.com/agkozak/Zsh-100-Commits-Club/blob/master/Zsh-Plugin-Standard.adoc) -0=${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}} -0=${${(M)0:#/*}:-$PWD/$0} +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" (( ${fpath[(ie)${0:A:h}]} <= ${#fpath} )) || fpath=( "${0:A:h}" "${fpath[@]}" ) From b22593cf179bae479ab32700c5a7b94d3053762d Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Mon, 1 May 2023 22:21:01 +0200 Subject: [PATCH 242/441] fix(init): avoid overwriting existing aliases Fix regression introduced in #11550. If an existing alias was present in the moment of sourcing, and oh-my-zsh aliases were disabled for that file, it'd be overwritten aswell. See #11658. --- oh-my-zsh.sh | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index e047d4834..a577c1f41 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -159,10 +159,10 @@ _omz_source() { zstyle -T ":omz:${context}" aliases || disable_aliases=1 # Back up alias names prior to sourcing - local -a aliases_pre galiases_pre + local -A aliases_pre galiases_pre if (( disable_aliases )); then - aliases_pre=("${(@k)aliases}") - galiases_pre=("${(@k)galiases}") + aliases_pre=("${(@kv)aliases}") + galiases_pre=("${(@kv)galiases}") fi # Source file from $ZSH_CUSTOM if it exists, otherwise from $ZSH @@ -174,10 +174,16 @@ _omz_source() { # Unset all aliases that don't appear in the backed up list of aliases if (( disable_aliases )); then - local -a disabled - # ${var:|array} gets the list of items in var not in array - disabled=("${(@k)aliases:|aliases_pre}" "${(@k)galiases:|galiases_pre}") - (( $#disabled == 0 )) || unalias "${(@)disabled}" + if (( #aliases_pre )); then + aliases=("${(@kv)aliases_pre}") + else + (( #aliases )) && unalias "${(@k)aliases}" + fi + if (( #galiases_pre )); then + galiases=("${(@kv)galiases_pre}") + else + (( #galiases )) && unalias "${(@k)galiases}" + fi fi } From 693e3dcc447b5d6fa611eea43166ea2b4e0ed877 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 2 May 2023 10:03:24 +0200 Subject: [PATCH 243/441] fix(apple): replace deprecated nerdfonts icon --- themes/apple.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/apple.zsh-theme b/themes/apple.zsh-theme index 0c183258e..65a2b80fe 100644 --- a/themes/apple.zsh-theme +++ b/themes/apple.zsh-theme @@ -1,5 +1,5 @@ function toon { - echo -n "" + echo -n "󰐀" } autoload -Uz vcs_info From dab09cc0eec220f5c1a541ccb75449c62c20bdb4 Mon Sep 17 00:00:00 2001 From: Oleg Grigoriev Date: Tue, 2 May 2023 13:27:57 +0300 Subject: [PATCH 244/441] feat(rake-fast): show task descriptions in autocomplete (#11653) --- plugins/rake-fast/rake-fast.plugin.zsh | 39 ++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/plugins/rake-fast/rake-fast.plugin.zsh b/plugins/rake-fast/rake-fast.plugin.zsh index 19dab154b..86e5ed586 100644 --- a/plugins/rake-fast/rake-fast.plugin.zsh +++ b/plugins/rake-fast/rake-fast.plugin.zsh @@ -1,5 +1,28 @@ +# The version of the format of .rake_tasks. If the output of _rake_generate +# changes, incrementing this number will force it to regenerate +_rake_tasks_version=2 + _rake_does_task_list_need_generating () { - [[ ! -f .rake_tasks ]] || [[ Rakefile -nt .rake_tasks ]] || { _is_rails_app && _tasks_changed } + _rake_tasks_missing || _rake_tasks_version_changed || _rakefile_has_changes || { _is_rails_app && _tasks_changed } +} + +_rake_tasks_missing () { + [[ ! -f .rake_tasks ]] +} + +_rake_tasks_version_changed () { + local -a file_version + file_version=`head -n 1 .rake_tasks | sed "s/^version\://"` + + if ! [[ $file_version =~ '^[0-9]*$' ]]; then + return true + fi + + [[ $file_version -ne $_rake_tasks_version ]] +} + +_rakefile_has_changes () { + [[ Rakefile -nt .rake_tasks ]] } _is_rails_app () { @@ -20,7 +43,14 @@ _tasks_changed () { } _rake_generate () { - rake --silent --tasks | cut -d " " -f 2 | sed 's/\[.*\]//g' > .rake_tasks + echo "version:$_rake_tasks_version" > .rake_tasks + + rake --silent --tasks --all \ + | sed "s/^rake //" | sed "s/\:/\\\:/g" \ + | sed "s/\[[^]]*\]//g" \ + | sed "s/ *# /\:/" \ + | sed "s/\:$//" \ + >> .rake_tasks } _rake () { @@ -29,7 +59,10 @@ _rake () { echo "\nGenerating .rake_tasks..." >&2 _rake_generate fi - compadd $(cat .rake_tasks) + local -a rake_options + rake_options=("${(@f)$(cat .rake_tasks)}") + shift rake_options + _describe 'rake tasks' rake_options fi } compdef _rake rake From 85fdbfe21692a3fa7bdd7bc509163e23fb385279 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 3 May 2023 11:17:47 +0200 Subject: [PATCH 245/441] fix(apple): go back to previous icon Turns out that is a reserved unicode code that is Apple logo in Apple systems. Nerd fonts was overwritting that code to other stuff in v2 and that's why I thought it needed to be replaced. Closes #11665 This reverts commit 693e3dcc447b5d6fa611eea43166ea2b4e0ed877. --- themes/apple.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/apple.zsh-theme b/themes/apple.zsh-theme index 65a2b80fe..0c183258e 100644 --- a/themes/apple.zsh-theme +++ b/themes/apple.zsh-theme @@ -1,5 +1,5 @@ function toon { - echo -n "󰐀" + echo -n "" } autoload -Uz vcs_info From 5a3f565e7d4371db92ba574f231b396c2c8c9a19 Mon Sep 17 00:00:00 2001 From: kang <1115610574@qq.com> Date: Wed, 3 May 2023 23:48:37 +0800 Subject: [PATCH 246/441] feat(deno): add `dru` alias for `--unstable` (#11667) --- plugins/deno/README.md | 27 ++++++++++++++------------- plugins/deno/deno.plugin.zsh | 1 + 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/plugins/deno/README.md b/plugins/deno/README.md index 691318397..38f9f2033 100644 --- a/plugins/deno/README.md +++ b/plugins/deno/README.md @@ -4,16 +4,17 @@ This plugin sets up completion and aliases for [Deno](https://deno.land). ## Aliases -| Alias | Full command | -| ----- | ---------------- | -| db | deno bundle | -| dc | deno compile | -| dca | deno cache | -| dfmt | deno fmt | -| dh | deno help | -| dli | deno lint | -| drn | deno run | -| drA | deno run -A | -| drw | deno run --watch | -| dts | deno test | -| dup | deno upgrade | +| Alias | Full command | +| ----- | ------------------- | +| db | deno bundle | +| dc | deno compile | +| dca | deno cache | +| dfmt | deno fmt | +| dh | deno help | +| dli | deno lint | +| drn | deno run | +| drA | deno run -A | +| drw | deno run --watch | +| dru | deno run --unstable | +| dts | deno test | +| dup | deno upgrade | diff --git a/plugins/deno/deno.plugin.zsh b/plugins/deno/deno.plugin.zsh index 7708f84df..bf97d6f03 100644 --- a/plugins/deno/deno.plugin.zsh +++ b/plugins/deno/deno.plugin.zsh @@ -8,6 +8,7 @@ alias dli='deno lint' alias drn='deno run' alias drA='deno run -A' alias drw='deno run --watch' +alias dru='deno run --unstable' alias dts='deno test' alias dup='deno upgrade' From c5208867f1eb46f722e040b239150817abec87a6 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 2 May 2023 12:41:01 +0200 Subject: [PATCH 247/441] feat(theme-and-appearance): allow disabling gnu-ls in bsd To disable gnu-ls (`gls`) even if it's installed in freeBSD and macOS you can set it up with: ```zsh zstyle ':omz:lib:theme-and-appearance' gnu-ls no ``` Closes #11647 --- README.md | 13 +++++++++++++ lib/theme-and-appearance.zsh | 36 +++++++++++++++++------------------- 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 556d4c8c5..650fb00ea 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@ To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twi - [Manual Installation](#manual-installation) - [Installation Problems](#installation-problems) - [Custom Plugins and Themes](#custom-plugins-and-themes) + - [Disable GNU ls in macOS and freeBSD systems](#disable-gnu-ls) - [Skip aliases](#skip-aliases) - [Getting Updates](#getting-updates) - [Updates verbosity](#updates-verbosity) @@ -278,6 +279,18 @@ If you have many functions that go well together, you can put them as a `XYZ.plu If you would like to override the functionality of a plugin distributed with Oh My Zsh, create a plugin of the same name in the `custom/plugins/` directory and it will be loaded instead of the one in `plugins/`. +### Disable GNU ls in macOS and freeBSD systems + + + +The default behaviour in Oh My Zsh is to use GNU `ls` even in macOS and freeBSD systems if it's installed (as +`gls` command) when enabling colorized `ls` in `lib/theme-and-appearance.zsh`. If you want to disable this +behaviour you can use zstyle-based config before sourcing `oh-my-zsh.sh`: + +```zsh +zstyle ':omz:lib:theme-and-appearance' gnu-ls no +``` + ### Skip aliases diff --git a/lib/theme-and-appearance.zsh b/lib/theme-and-appearance.zsh index d8859b04c..96bdb00e5 100644 --- a/lib/theme-and-appearance.zsh +++ b/lib/theme-and-appearance.zsh @@ -20,10 +20,25 @@ if command diff --color /dev/null{,} &>/dev/null; then } fi - # Don't set ls coloring if disabled [[ "$DISABLE_LS_COLORS" != true ]] || return 0 +# Default coloring for BSD-based ls +export LSCOLORS="Gxfxcxdxbxegedabagacad" + +# Default coloring for GNU-based ls +if [[ -z "$LS_COLORS" ]]; then + # Define LS_COLORS via dircolors if available. Otherwise, set a default + # equivalent to LSCOLORS (generated via https://geoff.greer.fm/lscolors) + if (( $+commands[dircolors] )); then + [[ -f "$HOME/.dircolors" ]] \ + && source <(dircolors -b "$HOME/.dircolors") \ + || source <(dircolors -b) + else + export LS_COLORS="di=1;36:ln=35:so=32:pi=33:ex=31:bd=34;46:cd=34;43:su=30;41:sg=30;46:tw=30;42:ow=30;43" + fi +fi + function test-ls-args { local cmd="$1" # ls, gls, colorls, ... local args="${@[2,-1]}" # arguments except the first one @@ -50,7 +65,7 @@ case "$OSTYPE" in test-ls-args ls -G && alias ls='ls -G' # Only use GNU ls if installed and there are user defaults for $LS_COLORS, # as the default coloring scheme is not very pretty - [[ -n "$LS_COLORS" || -f "$HOME/.dircolors" ]] \ + zstyle -T ':omz:lib:theme-and-appearance' gnu-ls \ && test-ls-args gls --color \ && alias ls='gls --color=tty' ;; @@ -64,20 +79,3 @@ case "$OSTYPE" in esac unfunction test-ls-args - - -# Default coloring for BSD-based ls -export LSCOLORS="Gxfxcxdxbxegedabagacad" - -# Default coloring for GNU-based ls -if [[ -z "$LS_COLORS" ]]; then - # Define LS_COLORS via dircolors if available. Otherwise, set a default - # equivalent to LSCOLORS (generated via https://geoff.greer.fm/lscolors) - if (( $+commands[dircolors] )); then - [[ -f "$HOME/.dircolors" ]] \ - && source <(dircolors -b "$HOME/.dircolors") \ - || source <(dircolors -b) - else - export LS_COLORS="di=1;36:ln=35:so=32:pi=33:ex=31:bd=34;46:cd=34;43:su=30;41:sg=30;46:tw=30;42:ow=30;43" - fi -fi From 017e288560ef7bdfb8835516d6b3b77bbdcdde6c Mon Sep 17 00:00:00 2001 From: Mark Keisler Date: Sat, 6 May 2023 06:40:06 -0500 Subject: [PATCH 248/441] fix(aws): correct access key disable command (#11671) --- plugins/aws/aws.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index a437dc8e8..b2415b737 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -180,7 +180,7 @@ function aws_change_access_key() { case $yn in [Yy]*) echo -n "\nDisabling access key ${original_aws_access_key_id}..." - if aws --no-cli-pager update-access-key --access-key-id ${original_aws_access_key_id} --status Inactive; then + if aws --no-cli-pager iam update-access-key --access-key-id ${original_aws_access_key_id} --status Inactive; then echo "done." else echo "\nFailed to disable ${original_aws_access_key_id} key." From dcff7a7f0854591ee1b4f25266f292ec1b1904eb Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 9 May 2023 12:05:15 +0200 Subject: [PATCH 249/441] fix(theme-and-appearance): make bsd `ls` to be default --- lib/theme-and-appearance.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/theme-and-appearance.zsh b/lib/theme-and-appearance.zsh index 96bdb00e5..585e969d8 100644 --- a/lib/theme-and-appearance.zsh +++ b/lib/theme-and-appearance.zsh @@ -65,7 +65,7 @@ case "$OSTYPE" in test-ls-args ls -G && alias ls='ls -G' # Only use GNU ls if installed and there are user defaults for $LS_COLORS, # as the default coloring scheme is not very pretty - zstyle -T ':omz:lib:theme-and-appearance' gnu-ls \ + zstyle -t ':omz:lib:theme-and-appearance' gnu-ls \ && test-ls-args gls --color \ && alias ls='gls --color=tty' ;; From aaf83d37aa1cc5ed2cb96dd29328502003a70848 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 9 May 2023 12:10:05 +0200 Subject: [PATCH 250/441] docs(theme-and-appearance): reflect properly dcff7a7 changes --- README.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 650fb00ea..2249b49dd 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twi - [Manual Installation](#manual-installation) - [Installation Problems](#installation-problems) - [Custom Plugins and Themes](#custom-plugins-and-themes) - - [Disable GNU ls in macOS and freeBSD systems](#disable-gnu-ls) + - [Enable GNU ls in macOS and freeBSD systems](#enable-gnu-ls) - [Skip aliases](#skip-aliases) - [Getting Updates](#getting-updates) - [Updates verbosity](#updates-verbosity) @@ -279,18 +279,20 @@ If you have many functions that go well together, you can put them as a `XYZ.plu If you would like to override the functionality of a plugin distributed with Oh My Zsh, create a plugin of the same name in the `custom/plugins/` directory and it will be loaded instead of the one in `plugins/`. -### Disable GNU ls in macOS and freeBSD systems +### Enable GNU ls in macOS and freeBSD systems - + -The default behaviour in Oh My Zsh is to use GNU `ls` even in macOS and freeBSD systems if it's installed (as -`gls` command) when enabling colorized `ls` in `lib/theme-and-appearance.zsh`. If you want to disable this -behaviour you can use zstyle-based config before sourcing `oh-my-zsh.sh`: +The default behaviour in Oh My Zsh is to use BSD `ls` in macOS and freeBSD systems. If GNU `ls` is installed +(as `gls` command), you can choose to use it instead. To do it, you can use zstyle-based config before +sourcing `oh-my-zsh.sh`: ```zsh zstyle ':omz:lib:theme-and-appearance' gnu-ls no ``` +_Note: this is not compatible with `DISABLE_LS_COLORS=true`_ + ### Skip aliases From aab3bfff9f27a261dcd4cd4a2082a2ce3fff8c59 Mon Sep 17 00:00:00 2001 From: roodkcab Date: Tue, 9 May 2023 18:27:22 +0800 Subject: [PATCH 251/441] fix(robbyrussell) multiline command editing (#11681) Co-authored-by: chenshuoshi Closes #11680 --- themes/robbyrussell.zsh-theme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/robbyrussell.zsh-theme b/themes/robbyrussell.zsh-theme index 2fd5f2cdc..173e6d579 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_bold[green]%}➜ :%{$fg_bold[red]%}➜ ) %{$fg[cyan]%}%c%{$reset_color%}" +PROMPT+=' $(git_prompt_info)' ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} " From f01eea76da194fef6005f53a281b6f5a998db126 Mon Sep 17 00:00:00 2001 From: ZYX Date: Fri, 12 May 2023 02:42:30 -0700 Subject: [PATCH 252/441] fix(aws): use the correct variable to assert region is defined (#11691) --- plugins/aws/aws.plugin.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index b2415b737..c946515be 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -224,12 +224,12 @@ function aws_prompt_info() { local _aws_to_show local region="${AWS_REGION:-${AWS_DEFAULT_REGION:-$AWS_PROFILE_REGION}}" - if [[ -n $AWS_PROFILE ]];then + if [[ -n "$AWS_PROFILE" ]];then _aws_to_show+="${ZSH_THEME_AWS_PROFILE_PREFIX=""}" fi - if [[ -n $AWS_REGION ]]; then - [[ -n $AWS_PROFILE ]] && _aws_to_show+="${ZSH_THEME_AWS_DIVIDER=" "}" + if [[ -n "$region" ]]; then + [[ -n "$_aws_to_show" ]] && _aws_to_show+="${ZSH_THEME_AWS_DIVIDER=" "}" _aws_to_show+="${ZSH_THEME_AWS_REGION_PREFIX=""}" fi From 7a030f6bd6c15259052c7007020cf3ecf8a3f299 Mon Sep 17 00:00:00 2001 From: Joe Date: Mon, 15 May 2023 09:27:31 -0400 Subject: [PATCH 253/441] docs(pyenv): warn about pyenv init (#11692) --- plugins/pyenv/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/plugins/pyenv/README.md b/plugins/pyenv/README.md index b9ee937b7..f1ca3d288 100644 --- a/plugins/pyenv/README.md +++ b/plugins/pyenv/README.md @@ -10,6 +10,14 @@ To use it, add `pyenv` to the plugins array in your zshrc file: plugins=(... pyenv) ``` +If you receive a `Found pyenv, but it is badly configured.` error on startup, you may need to ensure that `pyenv` is initialized before the oh-my-zsh pyenv plugin is loaded. This can be achived by adding the following earlier in the `.zshrc` file than the `plugins=(...)` line: + +```zsh +export PYENV_ROOT="$HOME/.pyenv" +export PATH="$PYENV_ROOT/bin:$PATH" +eval "$(pyenv init --path)" +``` + ## Settings - `ZSH_PYENV_QUIET`: if set to `true`, the plugin will not print any messages if it From bfeeda1491b5366aa5798a86cf6f3621536b171c Mon Sep 17 00:00:00 2001 From: Craig Furman Date: Sun, 21 May 2023 11:47:38 +0100 Subject: [PATCH 254/441] docs(theme-and-appearance): fix gnu-ls snippet (#11701) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2249b49dd..a30595581 100644 --- a/README.md +++ b/README.md @@ -288,7 +288,7 @@ The default behaviour in Oh My Zsh is to use BSD `ls` in macOS and freeBSD syste sourcing `oh-my-zsh.sh`: ```zsh -zstyle ':omz:lib:theme-and-appearance' gnu-ls no +zstyle ':omz:lib:theme-and-appearance' gnu-ls yes ``` _Note: this is not compatible with `DISABLE_LS_COLORS=true`_ From 3a01d7df82157a5f3aef01eab9a940e4cba2283a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sun, 21 May 2023 19:58:26 +0200 Subject: [PATCH 255/441] fix(extract): fix extract dir naming conflicts Fixes #11642 --- plugins/extract/extract.plugin.zsh | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index 34c080653..ee1d38b3f 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -27,12 +27,20 @@ EOF fi local success=0 - local extract_dir="${1:t:r}" local file="$1" full_path="${1:A}" + local extract_dir="${1:t:r}" + + # If there's a file or directory with the same name as the archive + # add a random string to the end of the extract directory + if [[ -e "$extract_dir" ]]; then + local rnd="${(L)"${$(( [##36]$RANDOM*$RANDOM ))}":1:5}" + extract_dir="${extract_dir}-${rnd}" + fi # Create an extraction directory based on the file name command mkdir -p "$extract_dir" builtin cd -q "$extract_dir" + echo "extract: extracting to $extract_dir" >&2 case "${file:l}" in (*.tar.gz|*.tgz) @@ -107,11 +115,13 @@ EOF if [[ "${content[1]:t}" == "$extract_dir" ]]; then # =(:) gives /tmp/zsh, with :t it gives zsh local tmp_dir==(:); tmp_dir="${tmp_dir:t}" - command mv -f "${content[1]}" "$tmp_dir" \ + command mv "${content[1]}" "$tmp_dir" \ && command rmdir "$extract_dir" \ - && command mv -f "$tmp_dir" "$extract_dir" - else - command mv -f "${content[1]}" . \ + && command mv "$tmp_dir" "$extract_dir" + # Otherwise, if the extracted folder name already exists in the current + # directory (because of a previous file / folder), keep the extract_dir + elif [[ ! -e "${content[1]:t}" ]]; then + command mv "${content[1]}" . \ && command rmdir "$extract_dir" fi elif [[ ${#content} -eq 0 ]]; then From b06663df23b2910a6e542dc114dc7adc2cdce22f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sun, 21 May 2023 20:14:32 +0200 Subject: [PATCH 256/441] feat(extract): add support for `.zlib` and `.exe` files (#11085) Fixes #11085 --- plugins/extract/README.md | 3 +++ plugins/extract/extract.plugin.zsh | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/extract/README.md b/plugins/extract/README.md index ac4a8e197..c8d98b229 100644 --- a/plugins/extract/README.md +++ b/plugins/extract/README.md @@ -25,6 +25,7 @@ plugins=(... extract) | `cpio` | Cpio archive | | `deb` | Debian package | | `ear` | Enterprise Application aRchive | +| `exe` | Windows executable file | | `gz` | Gzip file | | `ipa` | iOS app package | | `ipsw` | iOS firmware file | @@ -52,9 +53,11 @@ plugins=(... extract) | `txz` | Tarball with lzma2 compression | | `tzst` | Tarball with zstd compression | | `war` | Web Application archive (Java-based) | +| `whl` | Python wheel file | | `xpi` | Mozilla XPI module file | | `xz` | LZMA2 archive | | `zip` | Zip archive | +| `zlib` | zlib archive | | `zst` | Zstandard file (zstd) | | `zpaq` | Zpaq file | diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index ee1d38b3f..b7a823c9f 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -83,9 +83,10 @@ EOF builtin cd -q ../data; extract ../data.tar.* builtin cd -q ..; command rm *.tar.* debian-binary ;; (*.zst) unzstd "$full_path" ;; - (*.cab) cabextract "$full_path" ;; + (*.cab|*.exe) cabextract "$full_path" ;; (*.cpio|*.obscpio) cpio -idmvF "$full_path" ;; (*.zpaq) zpaq x "$full_path" ;; + (*.zlib) zlib-flate -uncompress < "$full_path" > "${file:r}" ;; (*) echo "extract: '$file' cannot be extracted" >&2 success=1 ;; From 444e715766c4a8b267dba82f3f0f562584d61adc Mon Sep 17 00:00:00 2001 From: rogarb <69053978+rogarb@users.noreply.github.com> Date: Mon, 22 May 2023 10:49:10 +0000 Subject: [PATCH 257/441] feat(bureau): ignore hidden git repos (#11707) The git_prompt_info() function in lib/git.zsh ignores git repos which contains a specific config key, allowing to effectively "hide" them from the prompt. Unfortunately, the bureau theme doesn't use the library function to build its prompt. This commit modifies the specific prompt generation function in the bureau theme in order to achieve the same behaviour. --- themes/bureau.zsh-theme | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/themes/bureau.zsh-theme b/themes/bureau.zsh-theme index 698aa2ff8..9943a0c8c 100644 --- a/themes/bureau.zsh-theme +++ b/themes/bureau.zsh-theme @@ -67,6 +67,12 @@ bureau_git_status() { } bureau_git_prompt() { + # ignore non git folders and hidden repos (adapted from lib/git.zsh) + if ! command git rev-parse --git-dir &> /dev/null \ + || [[ "$(command git config --get oh-my-zsh.hide-info 2>/dev/null)" == 1 ]]; then + return + fi + # check git information local gitinfo=$(bureau_git_info) if [[ -z "$gitinfo" ]]; then From 902b79e635fedf4a12542d2ed8bd29665d3d281c Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 23 May 2023 08:43:47 +0200 Subject: [PATCH 258/441] fix(functions): use `command` env Closes #11709 --- lib/functions.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/functions.zsh b/lib/functions.zsh index 1d85ea38a..a252d0a33 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -5,7 +5,7 @@ function zsh_stats() { } function uninstall_oh_my_zsh() { - env ZSH="$ZSH" sh "$ZSH/tools/uninstall.sh" + command env ZSH="$ZSH" sh "$ZSH/tools/uninstall.sh" } function upgrade_oh_my_zsh() { From 1bbe4d8d2431b5ac06d7402b570431884786db58 Mon Sep 17 00:00:00 2001 From: Felipe Francisco Date: Tue, 23 May 2023 03:46:46 -0300 Subject: [PATCH 259/441] feat(half-life): add virtualenv prompt (#11708) --- themes/half-life.zsh-theme | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/themes/half-life.zsh-theme b/themes/half-life.zsh-theme index c4d785126..2ad84ac83 100644 --- a/themes/half-life.zsh-theme +++ b/themes/half-life.zsh-theme @@ -89,5 +89,9 @@ ZSH_THEME_RUBY_PROMPT_PREFIX="with%F{red} " ZSH_THEME_RUBY_PROMPT_SUFFIX="%{$reset_color%}" ZSH_THEME_RVM_PROMPT_OPTIONS="v g" +# virtualenv prompt settings +ZSH_THEME_VIRTUALENV_PREFIX=" with%F{red} " +ZSH_THEME_VIRTUALENV_SUFFIX="%{$reset_color%}" + setopt prompt_subst -PROMPT="${purple}%n%{$reset_color%} in ${limegreen}%~%{$reset_color%}\$(ruby_prompt_info)\$vcs_info_msg_0_${orange} λ%{$reset_color%} " +PROMPT="${purple}%n%{$reset_color%} in ${limegreen}%~%{$reset_color%}\$(virtualenv_prompt_info)\$(ruby_prompt_info)\$vcs_info_msg_0_${orange} λ%{$reset_color%} " From ec369bb38e873fa2e8954bc45bc192fdb0051313 Mon Sep 17 00:00:00 2001 From: rogarb <69053978+rogarb@users.noreply.github.com> Date: Wed, 24 May 2023 12:32:26 +0000 Subject: [PATCH 260/441] fix(bureau): properly display git stash info (#11711) --- themes/bureau.zsh-theme | 1 + 1 file changed, 1 insertion(+) diff --git a/themes/bureau.zsh-theme b/themes/bureau.zsh-theme index 9943a0c8c..e87a594cd 100644 --- a/themes/bureau.zsh-theme +++ b/themes/bureau.zsh-theme @@ -15,6 +15,7 @@ ZSH_THEME_GIT_PROMPT_BEHIND="%{$fg[magenta]%}▾%{$reset_color%}" ZSH_THEME_GIT_PROMPT_STAGED="%{$fg_bold[green]%}●%{$reset_color%}" ZSH_THEME_GIT_PROMPT_UNSTAGED="%{$fg_bold[yellow]%}●%{$reset_color%}" ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg_bold[red]%}●%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_STASHED="(%{$fg_bold[blue]%}✹%{$reset_color%})" bureau_git_info () { local ref From 5901f30b44fc5a3055e6b801d3d71af6d2359ee8 Mon Sep 17 00:00:00 2001 From: WH-2099 Date: Thu, 25 May 2023 18:43:01 +0800 Subject: [PATCH 261/441] feat(archlinux): optimize `paclist` and `pacdisowned` (#11398) Co-authored-by: ratijas --- plugins/archlinux/README.md | 1 + plugins/archlinux/archlinux.plugin.zsh | 23 ++++++++++++----------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/plugins/archlinux/README.md b/plugins/archlinux/README.md index fd772c61a..5e015dbaa 100644 --- a/plugins/archlinux/README.md +++ b/plugins/archlinux/README.md @@ -181,3 +181,4 @@ whether the package manager is installed, checked in the following order: - Ybalrid (Arthur Brainville) - ybalrid@ybalrid.info - Jeff M. Hubbard - jeffmhubbard@gmail.com - K. Harishankar(harishnkr) - hari2menon1234@gmail.com +- WH-2099 - wh2099@outlook.com \ No newline at end of file diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index da170f488..796ff7adf 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -25,27 +25,28 @@ alias pacown='pacman -Qo' alias pacupd="sudo pacman -Sy" function paclist() { - # Based on https://bbs.archlinux.org/viewtopic.php?id=93683 - pacman -Qqe | \ - xargs -I '{}' \ - expac "${bold_color}% 20n ${fg_no_bold[white]}%d${reset_color}" '{}' + local pkgs=$(LC_ALL=C pacman -Qqe) + for pkg in ${(f)pkgs}; do + pacman -Qs --color=auto "^${pkg}\$" || break + done } function pacdisowned() { - local tmp db fs - tmp=${TMPDIR-/tmp}/pacman-disowned-$UID-$$ - db=$tmp/db - fs=$tmp/fs + local tmp_dir db fs + tmp_dir=$(mktemp --directory) + db=$tmp_dir/db + fs=$tmp_dir/fs - mkdir "$tmp" - trap 'rm -rf "$tmp"' EXIT + trap "rm -rf $tmp_dir" EXIT pacman -Qlq | sort -u > "$db" - find /bin /etc /lib /sbin /usr ! -name lost+found \ + find /etc /usr ! -name lost+found \ \( -type d -printf '%p/\n' -o -print \) | sort > "$fs" comm -23 "$fs" "$db" + + rm -rf $tmp_dir } alias pacmanallkeys='sudo pacman-key --refresh-keys' From fb4213c34ff8ec83cbe6251f432fdac383378562 Mon Sep 17 00:00:00 2001 From: Tom D Date: Fri, 26 May 2023 09:43:17 +0200 Subject: [PATCH 262/441] perf(git): improve `gunwip` alias (#11714) --- plugins/git/README.md | 2 +- plugins/git/git.plugin.zsh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index f87d3fbca..2742aa539 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -186,7 +186,7 @@ plugins=(... git) | gtv | git tag \| sort -V | | gtl | gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl | | gunignore | git update-index --no-assume-unchanged | -| gunwip | git log --max-count=1 \| grep -q -c "\-\-wip\-\-" && git reset HEAD~1 | +| gunwip | git rev-list --max-count=1 --format="%s" HEAD \| grep -q "\-\-wip\-\-" && git reset HEAD~1 | | gup | git pull --rebase | | gupv | git pull --rebase --verbose | | gupa | git pull --rebase --autostash | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 3c8d53c8c..4be865f6a 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -312,7 +312,7 @@ alias gtv='git tag | sort -V' alias gtl='gtl(){ git tag --sort=-v:refname -n --list "${1}*" }; noglob gtl' alias gunignore='git update-index --no-assume-unchanged' -alias gunwip='git log --max-count=1 | grep -q -c "\--wip--" && git reset HEAD~1' +alias gunwip='git rev-list --max-count=1 --format="%s" HEAD | grep -q "\--wip--" && git reset HEAD~1' alias gup='git pull --rebase' alias gupv='git pull --rebase --verbose' alias gupa='git pull --rebase --autostash' From 00241073105643874531e1826b7df6d2cb3cadfb Mon Sep 17 00:00:00 2001 From: William Snyders Date: Wed, 31 May 2023 14:59:41 -0700 Subject: [PATCH 263/441] fix(gcloud): update AUR default location (#11718) --- plugins/gcloud/gcloud.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/gcloud/gcloud.plugin.zsh b/plugins/gcloud/gcloud.plugin.zsh index 30f1dba8f..9c26aea10 100644 --- a/plugins/gcloud/gcloud.plugin.zsh +++ b/plugins/gcloud/gcloud.plugin.zsh @@ -14,6 +14,7 @@ if [[ -z "${CLOUDSDK_HOME}" ]]; then "/usr/lib/google-cloud-sdk" "/usr/lib64/google-cloud-sdk" "/opt/google-cloud-sdk" + "/opt/google-cloud-cli" "/opt/local/libexec/google-cloud-sdk" ) From 6101106916147b1716ff2d5de4a53260e7607bae Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Fri, 2 Jun 2023 21:37:48 +0200 Subject: [PATCH 264/441] feat(install): deploy installer to install.ohmyz.sh (#11722) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Marc Cornellà --- .github/workflows/installer.yml | 55 +++++++++++++++++++++++ .github/workflows/installer/.gitignore | 1 + .github/workflows/installer/.vercelignore | 2 + .github/workflows/installer/vercel.json | 14 ++++++ .github/workflows/main.yml | 2 - 5 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/installer.yml create mode 100644 .github/workflows/installer/.gitignore create mode 100644 .github/workflows/installer/.vercelignore create mode 100644 .github/workflows/installer/vercel.json diff --git a/.github/workflows/installer.yml b/.github/workflows/installer.yml new file mode 100644 index 000000000..ac88d10b0 --- /dev/null +++ b/.github/workflows/installer.yml @@ -0,0 +1,55 @@ +name: Test and Deploy installer +on: + workflow_dispatch: {} + push: + paths: + - tools/install.sh + - .github/workflows/installer + - .github/workflows/installer.yml + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: false + +permissions: + contents: read # to checkout + +jobs: + test: + name: Test installer + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: + - ubuntu-latest + - macos-latest + steps: + - name: Set up git repository + uses: actions/checkout@v3 + - name: Install zsh + if: runner.os == 'Linux' + run: sudo apt-get update; sudo apt-get install zsh + - name: Test installer + run: sh ./tools/install.sh + + deploy: + name: Deploy installer in install.ohmyz.sh + if: github.ref == 'refs/heads/master' + runs-on: ubuntu-latest + environment: vercel + needs: + - test + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Install Vercel CLI + run: npm install -g vercel + - name: Setup project and deploy + env: + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} + run: | + cp tools/install.sh .github/workflows/installer/install.sh + cd .github/workflows/installer + vc link --yes -t ${{ secrets.VERCEL_TOKEN }} + vc deploy --prod -t ${{ secrets.VERCEL_TOKEN }} diff --git a/.github/workflows/installer/.gitignore b/.github/workflows/installer/.gitignore new file mode 100644 index 000000000..f66fce310 --- /dev/null +++ b/.github/workflows/installer/.gitignore @@ -0,0 +1 @@ +install.sh diff --git a/.github/workflows/installer/.vercelignore b/.github/workflows/installer/.vercelignore new file mode 100644 index 000000000..41b233364 --- /dev/null +++ b/.github/workflows/installer/.vercelignore @@ -0,0 +1,2 @@ +/* +!/install.sh diff --git a/.github/workflows/installer/vercel.json b/.github/workflows/installer/vercel.json new file mode 100644 index 000000000..8c5aec5e0 --- /dev/null +++ b/.github/workflows/installer/vercel.json @@ -0,0 +1,14 @@ +{ + "headers": [ + { + "source": "/((?!favicon.ico).*)", + "headers": [{ "key": "Content-Type", "value": "text/plain" }] + } + ], + "rewrites": [ + { + "source": "/((?!favicon.ico|install.sh).*)", + "destination": "/install.sh" + } + ] +} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8ee2df3d8..57403629c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -31,8 +31,6 @@ jobs: - name: Install zsh if: runner.os == 'Linux' run: sudo apt-get update; sudo apt-get install zsh - - name: Test installer - run: sh ./tools/install.sh - name: Check syntax run: | for file in ./oh-my-zsh.sh \ From 62ab5406dd89848bb26e8c6e648eb7d860e9dce5 Mon Sep 17 00:00:00 2001 From: Lawrence Shah Date: Mon, 5 Jun 2023 01:20:32 -0700 Subject: [PATCH 265/441] docs(custom): update comments in example files (#11727) --- custom/example.zsh | 18 ++++++++++-------- custom/plugins/example/example.plugin.zsh | 1 + custom/themes/example.zsh-theme | 2 ++ 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/custom/example.zsh b/custom/example.zsh index c505a9673..21a8d8be7 100644 --- a/custom/example.zsh +++ b/custom/example.zsh @@ -1,10 +1,12 @@ -# You can put files here to add functionality separated per file, which -# will be ignored by git. -# Files on the custom/ directory will be automatically loaded by the init -# script, in alphabetical order. - -# For example: add yourself some shortcuts to projects you often work on. -# +# Put files in this folder to add your own custom functionality. +# See: https://github.com/ohmyzsh/ohmyzsh/wiki/Customization +# +# Files in the custom/ directory will be: +# - loaded automatically by the init script, in alphabetical order +# - loaded last, after all built-ins in the lib/ directory, to override them +# - ignored by git by default +# +# Example: add custom/shortcuts.zsh for shortcuts to your local projects +# # brainstormr=~/Projects/development/planetargon/brainstormr # cd $brainstormr -# diff --git a/custom/plugins/example/example.plugin.zsh b/custom/plugins/example/example.plugin.zsh index 406f27445..83611fe3f 100644 --- a/custom/plugins/example/example.plugin.zsh +++ b/custom/plugins/example/example.plugin.zsh @@ -1,2 +1,3 @@ # Add your own custom plugins in the custom/plugins directory. Plugins placed # here will override ones with the same name in the main plugins directory. +# See: https://github.com/ohmyzsh/ohmyzsh/wiki/Customization#overriding-and-adding-plugins diff --git a/custom/themes/example.zsh-theme b/custom/themes/example.zsh-theme index ef8f1c630..494d029e8 100644 --- a/custom/themes/example.zsh-theme +++ b/custom/themes/example.zsh-theme @@ -1,4 +1,6 @@ # Put your custom themes in this folder. +# See: https://github.com/ohmyzsh/ohmyzsh/wiki/Customization#overriding-and-adding-themes +# # Example: PROMPT="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%~ %{$reset_color%}%% " From b36c90d9abd2fd2ffe53d19b11e47077dfdb38a8 Mon Sep 17 00:00:00 2001 From: Diego Costa R <62116423+diegocostares@users.noreply.github.com> Date: Mon, 5 Jun 2023 04:25:17 -0400 Subject: [PATCH 266/441] feat(autoenv): macOS compatibility, add more dirs (#11724) Co-authored-by: Carlo Sala --- plugins/autoenv/autoenv.plugin.zsh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/plugins/autoenv/autoenv.plugin.zsh b/plugins/autoenv/autoenv.plugin.zsh index 229a8a834..cbf7cefbb 100644 --- a/plugins/autoenv/autoenv.plugin.zsh +++ b/plugins/autoenv/autoenv.plugin.zsh @@ -17,9 +17,13 @@ if ! type autoenv_init >/dev/null; then /usr/local/bin /usr/share/autoenv-git ~/Library/Python/bin + .venv/bin + venv/bin + env/bin + .env/bin ) for d ( $install_locations ); do - if [[ -e $d/activate.sh ]]; then + if [[ -e $d/activate || -e $d/activate.sh ]]; then autoenv_dir=$d break fi @@ -29,13 +33,13 @@ if ! type autoenv_init >/dev/null; then # Look for Homebrew path as a last resort if [[ -z "$autoenv_dir" ]] && (( $+commands[brew] )); then d=$(brew --prefix)/opt/autoenv - if [[ -e $d/activate.sh ]]; then + if [[ -e $d/activate || -e $d/activate.sh ]]; then autoenv_dir=$d fi fi # Complain if autoenv is not installed - if [[ -z $autoenv_dir ]]; then + if [[ -z $autoenv_dir ]]; then cat <&2 -------- AUTOENV --------- Could not locate autoenv installation. @@ -46,7 +50,11 @@ END return 1 fi # Load autoenv - source $autoenv_dir/activate.sh + if [[ -e $autoenv_dir/activate ]]; + source $autoenv_dir/activate + else + source $autoenv_dir/activate.sh + fi fi } [[ $? != 0 ]] && return $? From d1c64bfda30ad56bac09f11c920b93b94dab7f9f Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Mon, 5 Jun 2023 10:26:36 +0200 Subject: [PATCH 267/441] fix(autoenv): typo --- plugins/autoenv/autoenv.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/autoenv/autoenv.plugin.zsh b/plugins/autoenv/autoenv.plugin.zsh index cbf7cefbb..2f84f0acf 100644 --- a/plugins/autoenv/autoenv.plugin.zsh +++ b/plugins/autoenv/autoenv.plugin.zsh @@ -50,7 +50,7 @@ END return 1 fi # Load autoenv - if [[ -e $autoenv_dir/activate ]]; + if [[ -e $autoenv_dir/activate ]]; then source $autoenv_dir/activate else source $autoenv_dir/activate.sh From 115cee17015e4b5665e16dc4fd15c53e06a22f9a Mon Sep 17 00:00:00 2001 From: Ihor Date: Mon, 5 Jun 2023 10:38:54 +0200 Subject: [PATCH 268/441] feat(git): add `gunwipall` function (#11725) Co-authored-by: Carlo Sala --- plugins/git/README.md | 1 + plugins/git/git.plugin.zsh | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/plugins/git/README.md b/plugins/git/README.md index 2742aa539..bf4b19f39 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -254,6 +254,7 @@ These features allow to pause a branch development and switch to another one (_" | work_in_progress | Echoes a warning if the current branch is a wip | | gwip | Commit wip branch | | gunwip | Uncommit wip branch | +| gunwipall | Uncommit `--wip--` commits recursively | ### Deprecated functions diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 4be865f6a..192124301 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -27,6 +27,20 @@ function work_in_progress() { command git -c log.showSignature=false log -n 1 2>/dev/null | grep -q -- "--wip--" && echo "WIP!!" } +# Same as `gunwip` but recursive +# "Unwips" all recent `--wip--` commits in loop until there is no left +function gunwipall() { + while true; do + commit_message=$(git rev-list --max-count=1 --format="%s" HEAD) + if [[ $commit_message =~ "--wip--" ]]; then + git reset "HEAD~1" + (( $? )) && return 1 + else + break + fi + done +} + # Check if main exists and use instead of master function git_main_branch() { command git rev-parse --git-dir &>/dev/null || return From 46c70406dd0b26bbd61210873ad6c86d9e8ee5da Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 7 Jun 2023 18:43:47 +0200 Subject: [PATCH 269/441] feat(nvm): add `npx` to lazy trigger list Closes #11740 --- plugins/nvm/README.md | 2 +- plugins/nvm/nvm.plugin.zsh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/nvm/README.md b/plugins/nvm/README.md index d3fd980be..6830c14d0 100644 --- a/plugins/nvm/README.md +++ b/plugins/nvm/README.md @@ -26,7 +26,7 @@ These settings should go in your zshrc file, before Oh My Zsh is sourced: #### Lazy startup This option will help you to defer nvm's load until you use it to speed-up your zsh startup. This will source -nvm script only when using it, and will create a function for `node`, `npm`, `pnpm`, `yarn`, and the +nvm script only when using it, and will create a function for `node`, `npm`, `npx`, `pnpm`, `yarn`, and the command(s) specified by `lazy-cmd` option, so when you call either of them, nvm will be loaded and run with default version. To enable it, you can add this snippet to your zshrc, before Oh My Zsh is sourced: diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index 20697d67d..31d275415 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -43,8 +43,8 @@ if zstyle -t ':omz:plugins:nvm' lazy; then # Call nvm when first using nvm, node, npm, pnpm, yarn or other commands in lazy-cmd zstyle -a ':omz:plugins:nvm' lazy-cmd nvm_lazy_cmd eval " - function nvm node npm pnpm yarn $nvm_lazy_cmd { - unfunction nvm node npm pnpm yarn $nvm_lazy_cmd + function nvm node npm npx pnpm yarn $nvm_lazy_cmd { + unfunction nvm node npm npx pnpm yarn $nvm_lazy_cmd # Load nvm if it exists in \$NVM_DIR [[ -f \"\$NVM_DIR/nvm.sh\" ]] && source \"\$NVM_DIR/nvm.sh\" \"\$0\" \"\$@\" From 50c678687e73d1433f278b7bb7f168e8fa817670 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 8 Jun 2023 18:47:05 +0200 Subject: [PATCH 270/441] fix(termsupport): fix pwd report for Konsole (#11730) The Konsole terminal shows an error if the host is provided in the OSC 7 sequence. Fixes #11730 --- lib/termsupport.zsh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index cf8f08741..145982705 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -150,8 +150,11 @@ function omz_termsupport_cwd { URL_HOST="$(omz_urlencode -P $HOST)" || return 1 URL_PATH="$(omz_urlencode -P $PWD)" || return 1 + # Konsole errors if the HOST is provided + [[ -z "$KONSOLE_VERSION" ]] || URL_HOST="" + # common control sequence (OSC 7) to set current host and path - printf "\e]7;%s\a" "file://${URL_HOST}${URL_PATH}" + printf "\e]7;file://%s%s\e\\" "${URL_HOST}" "${URL_PATH}" } # Use a precmd hook instead of a chpwd hook to avoid contaminating output From cb8b677488c7a20278917af58dfccd72cd40e1b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sun, 11 Jun 2023 17:02:48 +0200 Subject: [PATCH 271/441] fix(termsupport): don't report current working directory in SSH sessions (#11703) --- lib/termsupport.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 145982705..6d969503d 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -121,8 +121,8 @@ fi # # As of May 2021 mlterm, PuTTY, rxvt, screen, termux & xterm simply ignore the unknown OSC. -# Don't define the function if we're inside Emacs -if [[ -n "$INSIDE_EMACS" ]]; then +# Don't define the function if we're inside Emacs or in an SSH session (#11696) +if [[ -n "$INSIDE_EMACS" || -n "$SSH_CLIENT" || -n "$SSH_TTY" ]]; then return fi From 14f0f2971f42952e2eb78fdc2535538e98323b2b Mon Sep 17 00:00:00 2001 From: Oleg Voronkovich Date: Thu, 15 Jun 2023 12:01:02 +0300 Subject: [PATCH 272/441] feat(brew): autoconfigure completions (#11152) --- plugins/brew/README.md | 2 ++ plugins/brew/brew.plugin.zsh | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/plugins/brew/README.md b/plugins/brew/README.md index 412daae63..4730194bc 100644 --- a/plugins/brew/README.md +++ b/plugins/brew/README.md @@ -33,6 +33,8 @@ defined for convenience. ## Completion +This plugin configures paths with Homebrew's completion functions automatically, so you don't need to do it manually. See: https://docs.brew.sh/Shell-Completion#configuring-completions-in-zsh. + With the release of Homebrew 1.0, they decided to bundle the zsh completion as part of the brew installation, so we no longer ship it with the brew plugin; now it only has brew aliases. If you find that brew completion no longer works, make sure you have your Homebrew diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh index f6abe0875..b52664a39 100644 --- a/plugins/brew/brew.plugin.zsh +++ b/plugins/brew/brew.plugin.zsh @@ -25,6 +25,10 @@ if [[ -z "$HOMEBREW_PREFIX" ]]; then export HOMEBREW_PREFIX="$(brew --prefix)" fi +if [[ -d "$HOMEBREW_PREFIX/share/zsh/site-functions" ]]; then + fpath+=("$HOMEBREW_PREFIX/share/zsh/site-functions") +fi + alias bcubc='brew upgrade --cask && brew cleanup' alias bcubo='brew update && brew outdated --cask' alias bcubc='brew upgrade --cask && brew cleanup' From b1b3a020ecb1b4b322efbf8e08ad7fb55e2e687a Mon Sep 17 00:00:00 2001 From: Josh Powell Date: Thu, 15 Jun 2023 05:03:45 -0400 Subject: [PATCH 273/441] feat(rails): add some aliases (#11739) --- plugins/rails/README.md | 5 ++++- plugins/rails/rails.plugin.zsh | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/rails/README.md b/plugins/rails/README.md index b2425aabc..c0c37ff3d 100644 --- a/plugins/rails/README.md +++ b/plugins/rails/README.md @@ -40,7 +40,10 @@ plugins=(... rails) | `rn` | `rails notes` | Search for notes (`FIXME`, `TODO`) in code comments | | `rp` | `rails plugin` | Run a Rails plugin command | | `rr` | `rails routes` | List all defined routes | -| `rrg` | `rails routes \| grep` | List and filter the defined routes | +| `rrc` | `rails routes --controller` | List and filter routes mapped to specific controller | +| `rre` | `rails routes --expanded` | List all defined routes in expanded table mode | +| `rrg` | `rails routes --grep` | List and filter the defined routes | +| `rru` | `rails routes --unused` | List unused routes | | `rs` | `rails server` | Launch a web server | | `rsb` | `rails server --bind` | Launch a web server binding it to a specific IP | | `rsd` | `rails server --debugger` | Launch a web server with debugger | diff --git a/plugins/rails/rails.plugin.zsh b/plugins/rails/rails.plugin.zsh index 015dc9ecb..75dd9b0c6 100644 --- a/plugins/rails/rails.plugin.zsh +++ b/plugins/rails/rails.plugin.zsh @@ -68,7 +68,10 @@ alias rmd='rails middleware' alias rn='rails notes' alias rp='rails plugin' alias rr='rails routes' -alias rrg='rails routes | grep' +alias rrc='rails routes --controller' +alias rre='rails routes --expanded' +alias rrg='rails routes --grep' +alias rru='rails routes --unused' alias rs='rails server' alias rsb='rails server --bind' alias rsd='rails server --debugger' From 68f3ebb4de11aa2013ccc5252d4415840e0d7342 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Thu, 15 Jun 2023 11:16:25 +0200 Subject: [PATCH 274/441] feat(docker): generate completion function Closes #10825 Closes #10912 Closes #11751 --- plugins/docker/_docker | 3123 ------------------------------ plugins/docker/docker.plugin.zsh | 10 + 2 files changed, 10 insertions(+), 3123 deletions(-) delete mode 100644 plugins/docker/_docker diff --git a/plugins/docker/_docker b/plugins/docker/_docker deleted file mode 100644 index e6a12d774..000000000 --- a/plugins/docker/_docker +++ /dev/null @@ -1,3123 +0,0 @@ -#compdef docker dockerd -# -# zsh completion for docker (http://docker.com) -# -# version: 0.3.0 -# github: https://github.com/felixr/docker-zsh-completion -# -# contributors: -# - Felix Riedel -# - Steve Durrheimer -# - Vincent Bernat -# - Rohan Verma -# -# license: -# -# Copyright (c) 2013, Felix Riedel -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# * Neither the name of the nor the -# names of its contributors may be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# - -# Short-option stacking can be enabled with: -# zstyle ':completion:*:*:docker:*' option-stacking yes -# zstyle ':completion:*:*:docker-*:*' option-stacking yes -__docker_arguments() { - if zstyle -t ":completion:${curcontext}:" option-stacking; then - print -- -s - fi -} - -__docker_get_containers() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - local kind type line s - declare -a running stopped lines args names - - kind=$1; shift - type=$1; shift - [[ $kind = (stopped|all) ]] && args=($args -a) - - lines=(${(f)${:-"$(_call_program commands docker $docker_options ps --format 'table' --no-trunc $args)"$'\n'}}) - - # Parse header line to find columns - local i=1 j=1 k header=${lines[1]} - declare -A begin end - while (( j < ${#header} - 1 )); do - i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) - j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) - k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) - begin[${header[$i,$((j-1))]}]=$i - end[${header[$i,$((j-1))]}]=$k - done - end[${header[$i,$((j-1))]}]=-1 # Last column, should go to the end of the line - lines=(${lines[2,-1]}) - - # Container ID - if [[ $type = (ids|all) ]]; then - for line in $lines; do - s="${${line[${begin[CONTAINER ID]},${end[CONTAINER ID]}]%% ##}[0,12]}" - s="$s:${(l:15:: :::)${${line[${begin[CREATED]},${end[CREATED]}]/ ago/}%% ##}}" - s="$s, ${${${line[${begin[IMAGE]},${end[IMAGE]}]}/:/\\:}%% ##}" - if [[ ${line[${begin[STATUS]},${end[STATUS]}]} = (Exit*|Created*) ]]; then - stopped=($stopped $s) - else - running=($running $s) - fi - done - fi - - # Names: we only display the one without slash. All other names - # are generated and may clutter the completion. However, with - # Swarm, all names may be prefixed by the swarm node name. - if [[ $type = (names|all) ]]; then - for line in $lines; do - names=(${(ps:,:)${${line[${begin[NAMES]},${end[NAMES]}]}%% *}}) - # First step: find a common prefix and strip it (swarm node case) - (( ${#${(u)names%%/*}} == 1 )) && names=${names#${names[1]%%/*}/} - # Second step: only keep the first name without a / - s=${${names:#*/*}[1]} - # If no name, well give up. - (( $#s != 0 )) || continue - s="$s:${(l:15:: :::)${${line[${begin[CREATED]},${end[CREATED]}]/ ago/}%% ##}}" - s="$s, ${${${line[${begin[IMAGE]},${end[IMAGE]}]}/:/\\:}%% ##}" - if [[ ${line[${begin[STATUS]},${end[STATUS]}]} = (Exit*|Created*) ]]; then - stopped=($stopped $s) - else - running=($running $s) - fi - done - fi - - [[ $kind = (running|all) ]] && _describe -t containers-running "running containers" running "$@" && ret=0 - [[ $kind = (stopped|all) ]] && _describe -t containers-stopped "stopped containers" stopped "$@" && ret=0 - return ret -} - -__docker_complete_stopped_containers() { - [[ $PREFIX = -* ]] && return 1 - __docker_get_containers stopped all "$@" -} - -__docker_complete_running_containers() { - [[ $PREFIX = -* ]] && return 1 - __docker_get_containers running all "$@" -} - -__docker_complete_containers() { - [[ $PREFIX = -* ]] && return 1 - __docker_get_containers all all "$@" -} - -__docker_complete_containers_ids() { - [[ $PREFIX = -* ]] && return 1 - __docker_get_containers all ids "$@" -} - -__docker_complete_containers_names() { - [[ $PREFIX = -* ]] && return 1 - __docker_get_containers all names "$@" -} - -__docker_complete_info_plugins() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - emulate -L zsh - setopt extendedglob - local -a plugins - plugins=(${(ps: :)${(M)${(f)${${"$(_call_program commands docker $docker_options info)"##*$'\n'Plugins:}%%$'\n'^ *}}:# $1: *}## $1: }) - _describe -t plugins "$1 plugins" plugins && ret=0 - return ret -} - -__docker_complete_images() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - declare -a images - images=(${${${(f)${:-"$(_call_program commands docker $docker_options images)"$'\n'}}[2,-1]}/(#b)([^ ]##) ##([^ ]##) ##([^ ]##)*/${match[3]}:${(r:15:: :::)match[2]} in ${match[1]}}) - _describe -t docker-images "images" images && ret=0 - __docker_complete_repositories_with_tags && ret=0 - return ret -} - -__docker_complete_repositories() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - declare -a repos - repos=(${${${(f)${:-"$(_call_program commands docker $docker_options images)"$'\n'}}%% *}[2,-1]}) - repos=(${repos#}) - _describe -t docker-repos "repositories" repos && ret=0 - return ret -} - -__docker_complete_repositories_with_tags() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - declare -a repos onlyrepos matched - declare m - repos=(${${${${(f)${:-"$(_call_program commands docker $docker_options images)"$'\n'}}[2,-1]}/ ##/:::}%% *}) - repos=(${${repos%:::}#}) - # Check if we have a prefix-match for the current prefix. - onlyrepos=(${repos%::*}) - for m in $onlyrepos; do - [[ ${PREFIX##${~~m}} != ${PREFIX} ]] && { - # Yes, complete with tags - repos=(${${repos/:::/:}/:/\\:}) - _describe -t docker-repos-with-tags "repositories with tags" repos && ret=0 - return ret - } - done - # No, only complete repositories - onlyrepos=(${${repos%:::*}/:/\\:}) - _describe -t docker-repos "repositories" onlyrepos -qS : && ret=0 - - return ret -} - -__docker_search() { - [[ $PREFIX = -* ]] && return 1 - local cache_policy - zstyle -s ":completion:${curcontext}:" cache-policy cache_policy - if [[ -z "$cache_policy" ]]; then - zstyle ":completion:${curcontext}:" cache-policy __docker_caching_policy - fi - - local searchterm cachename - searchterm="${words[$CURRENT]%/}" - cachename=_docker-search-$searchterm - - local expl - local -a result - if ( [[ ${(P)+cachename} -eq 0 ]] || _cache_invalid ${cachename#_} ) \ - && ! _retrieve_cache ${cachename#_}; then - _message "Searching for ${searchterm}..." - result=(${${${(f)${:-"$(_call_program commands docker $docker_options search $searchterm)"$'\n'}}%% *}[2,-1]}) - _store_cache ${cachename#_} result - fi - _wanted dockersearch expl 'available images' compadd -a result -} - -__docker_get_log_options() { - [[ $PREFIX = -* ]] && return 1 - - integer ret=1 - local log_driver=${opt_args[--log-driver]:-"all"} - local -a common_options common_options2 awslogs_options fluentd_options gelf_options journald_options json_file_options logentries_options syslog_options splunk_options - - common_options=("max-buffer-size" "mode") - common_options2=("env" "env-regex" "labels") - awslogs_options=($common_options "awslogs-create-group" "awslogs-datetime-format" "awslogs-group" "awslogs-multiline-pattern" "awslogs-region" "awslogs-stream" "tag") - fluentd_options=($common_options $common_options2 "fluentd-address" "fluentd-async-connect" "fluentd-buffer-limit" "fluentd-retry-wait" "fluentd-max-retries" "fluentd-sub-second-precision" "tag") - gcplogs_options=($common_options $common_options2 "gcp-log-cmd" "gcp-meta-id" "gcp-meta-name" "gcp-meta-zone" "gcp-project") - gelf_options=($common_options $common_options2 "gelf-address" "gelf-compression-level" "gelf-compression-type" "tag") - journald_options=($common_options $common_options2 "tag") - json_file_options=($common_options $common_options2 "max-file" "max-size") - logentries_options=($common_options $common_options2 "logentries-token" "tag") - syslog_options=($common_options $common_options2 "syslog-address" "syslog-facility" "syslog-format" "syslog-tls-ca-cert" "syslog-tls-cert" "syslog-tls-key" "syslog-tls-skip-verify" "tag") - splunk_options=($common_options $common_options2 "splunk-caname" "splunk-capath" "splunk-format" "splunk-gzip" "splunk-gzip-level" "splunk-index" "splunk-insecureskipverify" "splunk-source" "splunk-sourcetype" "splunk-token" "splunk-url" "splunk-verify-connection" "tag") - - [[ $log_driver = (awslogs|all) ]] && _describe -t awslogs-options "awslogs options" awslogs_options "$@" && ret=0 - [[ $log_driver = (fluentd|all) ]] && _describe -t fluentd-options "fluentd options" fluentd_options "$@" && ret=0 - [[ $log_driver = (gcplogs|all) ]] && _describe -t gcplogs-options "gcplogs options" gcplogs_options "$@" && ret=0 - [[ $log_driver = (gelf|all) ]] && _describe -t gelf-options "gelf options" gelf_options "$@" && ret=0 - [[ $log_driver = (journald|all) ]] && _describe -t journald-options "journald options" journald_options "$@" && ret=0 - [[ $log_driver = (json-file|all) ]] && _describe -t json-file-options "json-file options" json_file_options "$@" && ret=0 - [[ $log_driver = (logentries|all) ]] && _describe -t logentries-options "logentries options" logentries_options "$@" && ret=0 - [[ $log_driver = (syslog|all) ]] && _describe -t syslog-options "syslog options" syslog_options "$@" && ret=0 - [[ $log_driver = (splunk|all) ]] && _describe -t splunk-options "splunk options" splunk_options "$@" && ret=0 - - return ret -} - -__docker_complete_log_drivers() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - drivers=(awslogs etwlogs fluentd gcplogs gelf journald json-file none splunk syslog) - _describe -t log-drivers "log drivers" drivers && ret=0 - return ret -} - -__docker_complete_log_options() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (syslog-format) - local opts=('rfc3164' 'rfc5424' 'rfc5424micro') - _describe -t syslog-format-opts "syslog format options" opts && ret=0 - ;; - (mode) - local opts=('blocking' 'non-blocking') - _describe -t mode-opts "mode options" opts && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - __docker_get_log_options -qS "=" && ret=0 - fi - - return ret -} - -__docker_complete_detach_keys() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - compset -P "*," - keys=(${:-{a-z}}) - ctrl_keys=(${:-ctrl-{{a-z},{@,'[','\\','^',']',_}}}) - _describe -t detach_keys "[a-z]" keys -qS "," && ret=0 - _describe -t detach_keys-ctrl "'ctrl-' + 'a-z @ [ \\\\ ] ^ _'" ctrl_keys -qS "," && ret=0 -} - -__docker_complete_pid() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - local -a opts vopts - - opts=('host') - vopts=('container') - - if compset -P '*:'; then - case "${${words[-1]%:*}#*=}" in - (container) - __docker_complete_running_containers && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - _describe -t pid-value-opts "PID Options with value" vopts -qS ":" && ret=0 - _describe -t pid-opts "PID Options" opts && ret=0 - fi - - return ret -} - -__docker_complete_runtimes() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - emulate -L zsh - setopt extendedglob - local -a runtimes_opts - runtimes_opts=(${(ps: :)${(f)${${"$(_call_program commands docker $docker_options info)"##*$'\n'Runtimes: }%%$'\n'^ *}}}) - _describe -t runtimes-opts "runtimes options" runtimes_opts && ret=0 -} - -__docker_complete_ps_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (ancestor) - __docker_complete_images && ret=0 - ;; - (before|since) - __docker_complete_containers && ret=0 - ;; - (health) - health_opts=('healthy' 'none' 'starting' 'unhealthy') - _describe -t health-filter-opts "health filter options" health_opts && ret=0 - ;; - (id) - __docker_complete_containers_ids && ret=0 - ;; - (is-task) - _describe -t boolean-filter-opts "filter options" boolean_opts && ret=0 - ;; - (name) - __docker_complete_containers_names && ret=0 - ;; - (network) - __docker_complete_networks && ret=0 - ;; - (status) - status_opts=('created' 'dead' 'exited' 'paused' 'restarting' 'running' 'removing') - _describe -t status-filter-opts "status filter options" status_opts && ret=0 - ;; - (volume) - __docker_complete_volumes && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('ancestor' 'before' 'exited' 'expose' 'health' 'id' 'label' 'name' 'network' 'publish' 'since' 'status' 'volume') - _describe -t filter-opts "Filter Options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_complete_search_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - declare -a boolean_opts opts - - boolean_opts=('true' 'false') - opts=('is-automated' 'is-official' 'stars') - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (is-automated|is-official) - _describe -t boolean-filter-opts "filter options" boolean_opts && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_complete_images_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - declare -a boolean_opts opts - - boolean_opts=('true' 'false') - opts=('before' 'dangling' 'label' 'reference' 'since') - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (before|reference|since) - __docker_complete_images && ret=0 - ;; - (dangling) - _describe -t boolean-filter-opts "filter options" boolean_opts && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - _describe -t filter-opts "Filter Options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_complete_events_filter() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - declare -a opts - - opts=('container' 'daemon' 'event' 'image' 'label' 'network' 'scope' 'type' 'volume') - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (container) - __docker_complete_containers && ret=0 - ;; - (daemon) - emulate -L zsh - setopt extendedglob - local -a daemon_opts - daemon_opts=( - ${(f)${${"$(_call_program commands docker $docker_options info)"##*$'\n'Name: }%%$'\n'^ *}} - ${${(f)${${"$(_call_program commands docker $docker_options info)"##*$'\n'ID: }%%$'\n'^ *}}//:/\\:} - ) - _describe -t daemon-filter-opts "daemon filter options" daemon_opts && ret=0 - ;; - (event) - local -a event_opts - event_opts=('attach' 'commit' 'connect' 'copy' 'create' 'delete' 'destroy' 'detach' 'die' 'disable' 'disconnect' 'enable' 'exec_create' 'exec_detach' - 'exec_start' 'export' 'health_status' 'import' 'install' 'kill' 'load' 'mount' 'oom' 'pause' 'pull' 'push' 'reload' 'remove' 'rename' 'resize' - 'restart' 'save' 'start' 'stop' 'tag' 'top' 'unmount' 'unpause' 'untag' 'update') - _describe -t event-filter-opts "event filter options" event_opts && ret=0 - ;; - (image) - __docker_complete_images && ret=0 - ;; - (network) - __docker_complete_networks && ret=0 - ;; - (scope) - local -a scope_opts - scope_opts=('local' 'swarm') - _describe -t scope-filter-opts "scope filter options" scope_opts && ret=0 - ;; - (type) - local -a type_opts - type_opts=('container' 'daemon' 'image' 'network' 'volume') - _describe -t type-filter-opts "type filter options" type_opts && ret=0 - ;; - (volume) - __docker_complete_volumes && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_complete_prune_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - declare -a opts - - opts=('until') - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - *) - _message 'value' && ret=0 - ;; - esac - else - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -# BO checkpoint - -__docker_checkpoint_commands() { - local -a _docker_checkpoint_subcommands - _docker_checkpoint_subcommands=( - "create:Create a checkpoint from a running container" - "ls:List checkpoints for a container" - "rm:Remove a checkpoint" - ) - _describe -t docker-checkpoint-commands "docker checkpoint command" _docker_checkpoint_subcommands -} - -__docker_checkpoint_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (create) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--checkpoint-dir=[Use a custom checkpoint storage directory]:dir:_directories" \ - "($help)--leave-running[Leave the container running after checkpoint]" \ - "($help -)1:container:__docker_complete_running_containers" \ - "($help -)2:checkpoint: " && ret=0 - ;; - (ls|list) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--checkpoint-dir=[Use a custom checkpoint storage directory]:dir:_directories" \ - "($help -)1:container:__docker_complete_containers" && ret=0 - ;; - (rm|remove) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--checkpoint-dir=[Use a custom checkpoint storage directory]:dir:_directories" \ - "($help -)1:container:__docker_complete_containers" \ - "($help -)2:checkpoint: " && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_checkpoint_commands" && ret=0 - ;; - esac - - return ret -} - -# EO checkpoint - -# BO container - -__docker_container_commands() { - local -a _docker_container_subcommands - _docker_container_subcommands=( - "attach:Attach to a running container" - "commit:Create a new image from a container's changes" - "cp:Copy files/folders between a container and the local filesystem" - "create:Create a new container" - "diff:Inspect changes on a container's filesystem" - "exec:Execute a command in a running container" - "export:Export a container's filesystem as a tar archive" - "inspect:Display detailed information on one or more containers" - "kill:Kill one or more running containers" - "logs:Fetch the logs of a container" - "ls:List containers" - "pause:Pause all processes within one or more containers" - "port:List port mappings or a specific mapping for the container" - "prune:Remove all stopped containers" - "rename:Rename a container" - "restart:Restart one or more containers" - "rm:Remove one or more containers" - "run:Create and run a new container from an image" - "start:Start one or more stopped containers" - "stats:Display a live stream of container(s) resource usage statistics" - "stop:Stop one or more running containers" - "top:Display the running processes of a container" - "unpause:Unpause all processes within one or more containers" - "update:Update configuration of one or more containers" - "wait:Block until one or more containers stop, then print their exit codes" - ) - _describe -t docker-container-commands "docker container command" _docker_container_subcommands -} - -__docker_container_subcommand() { - local -a _command_args opts_help opts_attach_exec_run_start opts_create_run opts_create_run_update - local expl help="--help" - integer ret=1 - - opts_attach_exec_run_start=( - "($help)--detach-keys=[Escape key sequence used to detach a container]:sequence:__docker_complete_detach_keys" - ) - opts_create_run=( - "($help -a --attach)"{-a=,--attach=}"[Attach to stdin, stdout or stderr]:device:(STDIN STDOUT STDERR)" - "($help)*--add-host=[Add a custom host-to-IP mapping]:host\:ip mapping: " - "($help)*--blkio-weight-device=[Block IO (relative device weight)]:device:Block IO weight: " - "($help)*--cap-add=[Add Linux capabilities]:capability: " - "($help)*--cap-drop=[Drop Linux capabilities]:capability: " - "($help)--cgroupns=[Cgroup namespace mode to use]:cgroup namespace mode: " - "($help)--cgroup-parent=[Parent cgroup for the container]:cgroup: " - "($help)--cidfile=[Write the container ID to the file]:CID file:_files" - "($help)--cpus=[Number of CPUs (default 0.000)]:cpus: " - "($help)*--device=[Add a host device to the container]:device:_files" - "($help)*--device-cgroup-rule=[Add a rule to the cgroup allowed devices list]:device:cgroup: " - "($help)*--device-read-bps=[Limit the read rate (bytes per second) from a device]:device:IO rate: " - "($help)*--device-read-iops=[Limit the read rate (IO per second) from a device]:device:IO rate: " - "($help)*--device-write-bps=[Limit the write rate (bytes per second) to a device]:device:IO rate: " - "($help)*--device-write-iops=[Limit the write rate (IO per second) to a device]:device:IO rate: " - "($help)--disable-content-trust[Skip image verification]" - "($help)*--dns=[Custom DNS servers]:DNS server: " - "($help)*--dns-option=[Custom DNS options]:DNS option: " - "($help)*--dns-search=[Custom DNS search domains]:DNS domains: " - "($help)*--domainname=[Container NIS domain name]:domainname:_hosts" - "($help)*"{-e=,--env=}"[Environment variables]:environment variable: " - "($help)--entrypoint=[Overwrite the default entrypoint of the image]:entry point: " - "($help)*--env-file=[Read environment variables from a file]:environment file:_files" - "($help)*--expose=[Expose a port from the container without publishing it]: " - "($help)*--gpus=[GPU devices to add to the container ('all' to pass all GPUs)]:device: " - "($help)*--group-add=[Set one or more supplementary user groups for the container]:group:_groups" - "($help -h --hostname)"{-h=,--hostname=}"[Container host name]:hostname:_hosts" - "($help -i --interactive)"{-i,--interactive}"[Keep stdin open even if not attached]" - "($help)--init[Run an init inside the container that forwards signals and reaps processes]" - "($help)--ip=[IPv4 address]:IPv4: " - "($help)--ip6=[IPv6 address]:IPv6: " - "($help)--ipc=[IPC namespace to use]:IPC namespace: " - "($help)--isolation=[Container isolation technology]:isolation:(default hyperv process)" - "($help)*--link=[Add link to another container]:link:->link" - "($help)*--link-local-ip=[Container IPv4/IPv6 link-local addresses]:IPv4/IPv6: " - "($help)*"{-l=,--label=}"[Container metadata]:label: " - "($help)--log-driver=[Default driver for container logs]:logging driver:__docker_complete_log_drivers" - "($help)*--log-opt=[Log driver specific options]:log driver options:__docker_complete_log_options" - "($help)--mac-address=[Container MAC address]:MAC address: " - "($help)*--mount=[Attach a filesystem mount to the container]:mount: " - "($help)--name=[Container name]:name: " - "($help)--network=[Connect a container to a network]:network mode:(bridge none container host)" - "($help)*--network-alias=[Add network-scoped alias for the container]:alias: " - "($help)--oom-kill-disable[Disable OOM Killer]" - "($help)--oom-score-adj[Tune the host's OOM preferences for containers (accepts -1000 to 1000)]" - "($help)--pids-limit[Tune container pids limit (set -1 for unlimited)]" - "($help -P --publish-all)"{-P,--publish-all}"[Publish all exposed ports]" - "($help)*"{-p=,--publish=}"[Expose a container's port to the host]:port:_ports" - "($help)--pid=[PID namespace to use]:PID namespace:__docker_complete_pid" - "($help)--privileged[Give extended privileges to this container]" - "($help -q --quiet)"{-q,--quiet}"[Suppress the pull output]" - "($help)--read-only[Mount the container's root filesystem as read only]" - "($help)*--security-opt=[Security options]:security option: " - "($help)*--shm-size=[Size of '/dev/shm' (format is '')]:shm size: " - "($help)--stop-signal=[Signal to kill a container]:signal:_signals" - "($help)--stop-timeout=[Timeout (in seconds) to stop a container]:time: " - "($help)*--sysctl=-[sysctl options]:sysctl: " - "($help -t --tty)"{-t,--tty}"[Allocate a pseudo-tty]" - "($help -u --user)"{-u=,--user=}"[Username or UID]:user:_users" - "($help)*--ulimit=[ulimit options]:ulimit: " - "($help)--userns=[Container user namespace]:user namespace:(host)" - "($help)--tmpfs[mount tmpfs]" - "($help)*-v[Bind mount a volume]:volume: " - "($help)--volume-driver=[Optional volume driver for the container]:volume driver:(local)" - "($help)*--volumes-from=[Mount volumes from the specified container]:volume: " - "($help -w --workdir)"{-w=,--workdir=}"[Working directory inside the container]:directory:_directories" - ) - opts_create_run_update=( - "($help)--blkio-weight=[Block IO (relative weight), between 10 and 1000]:Block IO weight:(10 100 500 1000)" - "($help -c --cpu-shares)"{-c=,--cpu-shares=}"[CPU shares (relative weight)]:CPU shares:(0 10 100 200 500 800 1000)" - "($help)--cpu-period=[Limit the CPU CFS (Completely Fair Scheduler) period]:CPU period: " - "($help)--cpu-quota=[Limit the CPU CFS (Completely Fair Scheduler) quota]:CPU quota: " - "($help)--cpu-rt-period=[Limit the CPU real-time period]:CPU real-time period in microseconds: " - "($help)--cpu-rt-runtime=[Limit the CPU real-time runtime]:CPU real-time runtime in microseconds: " - "($help)--cpuset-cpus=[CPUs in which to allow execution]:CPUs: " - "($help)--cpuset-mems=[MEMs in which to allow execution]:MEMs: " - "($help)--kernel-memory=[Kernel memory limit in bytes]:Memory limit: " - "($help -m --memory)"{-m=,--memory=}"[Memory limit]:Memory limit: " - "($help)--memory-reservation=[Memory soft limit]:Memory limit: " - "($help)--memory-swap=[Total memory limit with swap]:Memory limit: " - "($help)--pids-limit[Tune container pids limit (set -1 for unlimited)]" - "($help)--restart=[Restart policy]:restart policy:(no on-failure always unless-stopped)" - ) - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (attach) - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_attach_exec_run_start \ - "($help)--no-stdin[Do not attach stdin]" \ - "($help)--sig-proxy[Proxy all received signals to the process (non-TTY mode only)]" \ - "($help -):containers:__docker_complete_running_containers" && ret=0 - ;; - (commit) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --author)"{-a=,--author=}"[Author]:author: " \ - "($help)*"{-c=,--change=}"[Apply Dockerfile instruction to the created image]:Dockerfile:_files" \ - "($help -m --message)"{-m=,--message=}"[Commit message]:message: " \ - "($help -p --pause)"{-p,--pause}"[Pause container during commit]" \ - "($help -):container:__docker_complete_containers" \ - "($help -): :__docker_complete_repositories_with_tags" && ret=0 - ;; - (cp) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -L --follow-link)"{-L,--follow-link}"[Always follow symbol link]" \ - "($help -)1:container:->container" \ - "($help -)2:hostpath:_files" && ret=0 - case $state in - (container) - if compset -P "*:"; then - _files && ret=0 - else - __docker_complete_containers -qS ":" && ret=0 - fi - ;; - esac - ;; - (create) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_create_run \ - $opts_create_run_update \ - "($help -): :__docker_complete_images" \ - "($help -):command: _command_names -e" \ - "($help -)*::arguments: _normal" && ret=0 - case $state in - (link) - if compset -P "*:"; then - _wanted alias expl "Alias" compadd -E "" && ret=0 - else - __docker_complete_running_containers -qS ":" && ret=0 - fi - ;; - esac - ;; - (diff) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:containers:__docker_complete_containers" && ret=0 - ;; - (exec) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_attach_exec_run_start \ - "($help -d --detach)"{-d,--detach}"[Detached mode: leave the container running in the background]" \ - "($help)*"{-e=,--env=}"[Set environment variables]:environment variable: " \ - "($help)*--env-file=[Read environment variables from a file]:environment file:_files" \ - "($help -i --interactive)"{-i,--interactive}"[Keep stdin open even if not attached]" \ - "($help)--privileged[Give extended Linux capabilities to the command]" \ - "($help -t --tty)"{-t,--tty}"[Allocate a pseudo-tty]" \ - "($help -u --user)"{-u=,--user=}"[Username or UID]:user:_users" \ - "($help -w --workdir)"{-w=,--workdir=}"[Working directory inside the container]:directory:_directories" \ - "($help -):containers:__docker_complete_running_containers" \ - "($help -)*::command:->anycommand" && ret=0 - case $state in - (anycommand) - shift 1 words - (( CURRENT-- )) - _normal && ret=0 - ;; - esac - ;; - (export) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -o --output)"{-o=,--output=}"[Write to a file, instead of stdout]:output file:_files" \ - "($help -)*:containers:__docker_complete_containers" && ret=0 - ;; - (inspect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ - "($help -s --size)"{-s,--size}"[Display total file sizes]" \ - "($help -)*:containers:__docker_complete_containers" && ret=0 - ;; - (kill) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -s --signal)"{-s=,--signal=}"[Signal to send]:signal:_signals" \ - "($help -)*:containers:__docker_complete_running_containers" && ret=0 - ;; - (logs) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--details[Show extra details provided to logs]" \ - "($help -f --follow)"{-f,--follow}"[Follow log output]" \ - "($help -s --since)"{-s=,--since=}"[Show logs since this timestamp]:timestamp: " \ - "($help -t --timestamps)"{-t,--timestamps}"[Show timestamps]" \ - "($help -n --tail)"{-n=,--tail=}"[Number of lines to show from the end of the logs]:lines:(1 10 20 50 all)" \ - "($help -)*:containers:__docker_complete_containers" && ret=0 - ;; - (ls|list) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all)"{-a,--all}"[Show all containers]" \ - "($help)--before=[Show only container created before...]:containers:__docker_complete_containers" \ - "($help)*"{-f=,--filter=}"[Filter values]:filter:__docker_complete_ps_filters" \ - "($help)--format=[Format the output using the given Go template]:template: " \ - "($help -l --latest)"{-l,--latest}"[Show only the latest created container]" \ - "($help -n --last)"{-n=,--last=}"[Show n last created containers (includes all states)]:n:(1 5 10 25 50)" \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -q --quiet)"{-q,--quiet}"[Only show container IDs]" \ - "($help -s --size)"{-s,--size}"[Display total file sizes]" \ - "($help)--since=[Show only containers created since...]:containers:__docker_complete_containers" && ret=0 - ;; - (pause|unpause) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:containers:__docker_complete_running_containers" && ret=0 - ;; - (port) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)1:containers:__docker_complete_running_containers" \ - "($help -)2:port:_ports" && ret=0 - ;; - (prune) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*--filter=[Filter values]:filter:__docker_complete_prune_filters" \ - "($help -f --force)"{-f,--force}"[Do not prompt for confirmation]" && ret=0 - ;; - (rename) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -):old name:__docker_complete_containers" \ - "($help -):new name: " && ret=0 - ;; - (restart) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -t --time)"{-t=,--time=}"[Number of seconds to try to stop for before killing the container]:seconds to before killing:(1 5 10 30 60)" \ - "($help -)*:containers:__docker_complete_containers" && ret=0 - ;; - (rm) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --force)"{-f,--force}"[Force removal]" \ - "($help -l --link)"{-l,--link}"[Remove the specified link and not the underlying container]" \ - "($help -v --volumes)"{-v,--volumes}"[Remove the volumes associated to the container]" \ - "($help -)*:containers:->values" && ret=0 - case $state in - (values) - if [[ ${words[(r)-f]} == -f || ${words[(r)--force]} == --force ]]; then - __docker_complete_containers && ret=0 - else - __docker_complete_stopped_containers && ret=0 - fi - ;; - esac - ;; - (run) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_create_run \ - $opts_create_run_update \ - $opts_attach_exec_run_start \ - "($help -d --detach)"{-d,--detach}"[Detached mode: leave the container running in the background]" \ - "($help)--health-cmd=[Command to run to check health]:command: " \ - "($help)--health-interval=[Time between running the check]:time: " \ - "($help)--health-retries=[Consecutive failures needed to report unhealthy]:retries:(1 2 3 4 5)" \ - "($help)--health-timeout=[Maximum time to allow one check to run]:time: " \ - "($help)--no-healthcheck[Disable any container-specified HEALTHCHECK]" \ - "($help)--rm[Remove intermediate containers when it exits]" \ - "($help)--runtime=[Name of the runtime to be used for that container]:runtime:__docker_complete_runtimes" \ - "($help)--sig-proxy[Proxy all received signals to the process (non-TTY mode only)]" \ - "($help)--storage-opt=[Storage driver options for the container]:storage options:->storage-opt" \ - "($help -): :__docker_complete_images" \ - "($help -):command: _command_names -e" \ - "($help -)*::arguments: _normal" && ret=0 - case $state in - (link) - if compset -P "*:"; then - _wanted alias expl "Alias" compadd -E "" && ret=0 - else - __docker_complete_running_containers -qS ":" && ret=0 - fi - ;; - (storage-opt) - if compset -P "*="; then - _message "value" && ret=0 - else - opts=('size') - _describe -t filter-opts "storage options" opts -qS "=" && ret=0 - fi - ;; - esac - ;; - (start) - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_attach_exec_run_start \ - "($help -a --attach)"{-a,--attach}"[Attach container's stdout/stderr and forward all signals]" \ - "($help -i --interactive)"{-i,--interactive}"[Attach container's stdin]" \ - "($help -)*:containers:__docker_complete_stopped_containers" && ret=0 - ;; - (stats) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all)"{-a,--all}"[Show all containers (default shows just running)]" \ - "($help)--format=[Format the output using the given Go template]:template: " \ - "($help)--no-stream[Disable streaming stats and only pull the first result]" \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -)*:containers:__docker_complete_running_containers" && ret=0 - ;; - (stop) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -t --time)"{-t=,--time=}"[Number of seconds to try to stop for before killing the container]:seconds to before killing:(1 5 10 30 60)" \ - "($help -)*:containers:__docker_complete_running_containers" && ret=0 - ;; - (top) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)1:containers:__docker_complete_running_containers" \ - "($help -)*:: :->ps-arguments" && ret=0 - case $state in - (ps-arguments) - _ps && ret=0 - ;; - esac - ;; - (update) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_create_run_update \ - "($help -)*: :->values" && ret=0 - case $state in - (values) - if [[ ${words[(r)--kernel-memory*]} = (--kernel-memory*) ]]; then - __docker_complete_stopped_containers && ret=0 - else - __docker_complete_containers && ret=0 - fi - ;; - esac - ;; - (wait) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:containers:__docker_complete_running_containers" && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_container_commands" && ret=0 - ;; - esac - - return ret -} - -# EO container - -# BO image - -__docker_image_commands() { - local -a _docker_image_subcommands - _docker_image_subcommands=( - "build:Build an image from a Dockerfile" - "history:Show the history of an image" - "import:Import the contents from a tarball to create a filesystem image" - "inspect:Display detailed information on one or more images" - "load:Load an image from a tar archive or STDIN" - "ls:List images" - "prune:Remove unused images" - "pull:Download an image from a registry" - "push:Upload an image to a registry" - "rm:Remove one or more images" - "save:Save one or more images to a tar archive (streamed to STDOUT by default)" - "tag:Tag an image into a repository" - ) - _describe -t docker-image-commands "docker image command" _docker_image_subcommands -} - -__docker_image_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (build) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*--add-host=[Add a custom host-to-IP mapping]:host\:ip mapping: " \ - "($help)*--build-arg=[Build-time variables]:=: " \ - "($help)*--cache-from=[Images to consider as cache sources]: :__docker_complete_repositories_with_tags" \ - "($help -c --cpu-shares)"{-c=,--cpu-shares=}"[CPU shares (relative weight)]:CPU shares:(0 10 100 200 500 800 1000)" \ - "($help)--cgroup-parent=[Parent cgroup for the container]:cgroup: " \ - "($help)--compress[Compress the build context using gzip]" \ - "($help)--cpu-period=[Limit the CPU CFS (Completely Fair Scheduler) period]:CPU period: " \ - "($help)--cpu-quota=[Limit the CPU CFS (Completely Fair Scheduler) quota]:CPU quota: " \ - "($help)--cpu-rt-period=[Limit the CPU real-time period]:CPU real-time period in microseconds: " \ - "($help)--cpu-rt-runtime=[Limit the CPU real-time runtime]:CPU real-time runtime in microseconds: " \ - "($help)--cpuset-cpus=[CPUs in which to allow execution]:CPUs: " \ - "($help)--cpuset-mems=[MEMs in which to allow execution]:MEMs: " \ - "($help)--disable-content-trust[Skip image verification]" \ - "($help -f --file)"{-f=,--file=}"[Name of the Dockerfile]:Dockerfile:_files" \ - "($help)--force-rm[Always remove intermediate containers]" \ - "($help)--isolation=[Container isolation technology]:isolation:(default hyperv process)" \ - "($help)*--label=[Set metadata for an image]:label=value: " \ - "($help -m --memory)"{-m=,--memory=}"[Memory limit]:Memory limit: " \ - "($help)--memory-swap=[Total memory limit with swap]:Memory limit: " \ - "($help)--network=[Connect a container to a network]:network mode:(bridge none container host)" \ - "($help)--no-cache[Do not use cache when building the image]" \ - "($help)--pull[Attempt to pull a newer version of the image]" \ - "($help -q --quiet)"{-q,--quiet}"[Suppress verbose build output]" \ - "($help)--rm[Remove intermediate containers after a successful build]" \ - "($help)*--shm-size=[Size of '/dev/shm' (format is '')]:shm size: " \ - "($help)--squash[Squash newly built layers into a single new layer]" \ - "($help -t --tag)*"{-t=,--tag=}"[Repository, name and tag for the image]: :__docker_complete_repositories_with_tags" \ - "($help)--target=[Set the target build stage to build.]" \ - "($help)*--ulimit=[ulimit options]:ulimit: " \ - "($help)--userns=[Container user namespace]:user namespace:(host)" \ - "($help -):path or URL:_directories" && ret=0 - ;; - (history) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -H --human)"{-H,--human}"[Print sizes and dates in human readable format]" \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -q --quiet)"{-q,--quiet}"[Only show image IDs]" \ - "($help -)*: :__docker_complete_images" && ret=0 - ;; - (import) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*"{-c=,--change=}"[Apply Dockerfile instruction to the created image]:Dockerfile:_files" \ - "($help -m --message)"{-m=,--message=}"[Commit message for imported image]:message: " \ - "($help -):URL:(- http:// file://)" \ - "($help -): :__docker_complete_repositories_with_tags" && ret=0 - ;; - (inspect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ - "($help -)*:images:__docker_complete_images" && ret=0 - ;; - (load) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -i --input)"{-i=,--input=}"[Read from tar archive file]:archive file:_files -g \"*.((tar|TAR)(.gz|.GZ|.Z|.bz2|.lzma|.xz|)|(tbz|tgz|txz))(-.)\"" \ - "($help -q --quiet)"{-q,--quiet}"[Suppress the load output]" && ret=0 - ;; - (ls|list) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all)"{-a,--all}"[Show all images]" \ - "($help)--digests[Show digests]" \ - "($help)*"{-f=,--filter=}"[Filter values]:filter:__docker_complete_images_filters" \ - "($help)--format=[Format the output using the given Go template]:template: " \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -q --quiet)"{-q,--quiet}"[Only show image IDs]" \ - "($help -): :__docker_complete_repositories" && ret=0 - ;; - (prune) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all)"{-a,--all}"[Remove all unused images, not just dangling ones]" \ - "($help)*--filter=[Filter values]:filter:__docker_complete_prune_filters" \ - "($help -f --force)"{-f,--force}"[Do not prompt for confirmation]" && ret=0 - ;; - (pull) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all-tags)"{-a,--all-tags}"[Download all tagged images]" \ - "($help)--disable-content-trust[Skip image verification]" \ - "($help -):name:__docker_search" && ret=0 - ;; - (push) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all-tags)"{-a,--all-tags}"[Push all tags of an image to the repository]" \ - "($help)--disable-content-trust[Skip image signing]" \ - "($help -): :__docker_complete_images" && ret=0 - ;; - (rm) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --force)"{-f,--force}"[Force removal]" \ - "($help)--no-prune[Do not delete untagged parents]" \ - "($help -)*: :__docker_complete_images" && ret=0 - ;; - (save) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -o --output)"{-o=,--output=}"[Write to file]:file:_files" \ - "($help -)*: :__docker_complete_images" && ret=0 - ;; - (tag) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -):source:__docker_complete_images"\ - "($help -):destination:__docker_complete_repositories_with_tags" && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_container_commands" && ret=0 - ;; - esac - - return ret -} - -# EO image - -# BO network - -__docker_network_complete_ls_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (driver) - __docker_complete_info_plugins Network && ret=0 - ;; - (id) - __docker_complete_networks_ids && ret=0 - ;; - (name) - __docker_complete_networks_names && ret=0 - ;; - (scope) - opts=('global' 'local' 'swarm') - _describe -t scope-filter-opts "Scope filter options" opts && ret=0 - ;; - (type) - opts=('builtin' 'custom') - _describe -t type-filter-opts "Type filter options" opts && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('driver' 'id' 'label' 'name' 'scope' 'type') - _describe -t filter-opts "Filter Options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_get_networks() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - local line s - declare -a lines networks - - type=$1; shift - - lines=(${(f)${:-"$(_call_program commands docker $docker_options network ls)"$'\n'}}) - - # Parse header line to find columns - local i=1 j=1 k header=${lines[1]} - declare -A begin end - while (( j < ${#header} - 1 )); do - i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) - j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) - k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) - begin[${header[$i,$((j-1))]}]=$i - end[${header[$i,$((j-1))]}]=$k - done - end[${header[$i,$((j-1))]}]=-1 - lines=(${lines[2,-1]}) - - # Network ID - if [[ $type = (ids|all) ]]; then - for line in $lines; do - s="${line[${begin[NETWORK ID]},${end[NETWORK ID]}]%% ##}" - s="$s:${(l:7:: :::)${${line[${begin[DRIVER]},${end[DRIVER]}]}%% ##}}" - s="$s, ${${line[${begin[SCOPE]},${end[SCOPE]}]}%% ##}" - networks=($networks $s) - done - fi - - # Names - if [[ $type = (names|all) ]]; then - for line in $lines; do - s="${line[${begin[NAME]},${end[NAME]}]%% ##}" - s="$s:${(l:7:: :::)${${line[${begin[DRIVER]},${end[DRIVER]}]}%% ##}}" - s="$s, ${${line[${begin[SCOPE]},${end[SCOPE]}]}%% ##}" - networks=($networks $s) - done - fi - - _describe -t networks-list "networks" networks "$@" && ret=0 - return ret -} - -__docker_complete_networks() { - [[ $PREFIX = -* ]] && return 1 - __docker_get_networks all "$@" -} - -__docker_complete_networks_ids() { - [[ $PREFIX = -* ]] && return 1 - __docker_get_networks ids "$@" -} - -__docker_complete_networks_names() { - [[ $PREFIX = -* ]] && return 1 - __docker_get_networks names "$@" -} - -__docker_network_commands() { - local -a _docker_network_subcommands - _docker_network_subcommands=( - "connect:Connect a container to a network" - "create:Creates a new network with a name specified by the user" - "disconnect:Disconnects a container from a network" - "inspect:Displays detailed information on a network" - "ls:Lists all the networks created by the user" - "prune:Remove all unused networks" - "rm:Deletes one or more networks" - ) - _describe -t docker-network-commands "docker network command" _docker_network_subcommands -} - -__docker_network_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (connect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*--alias=[Add network-scoped alias for the container]:alias: " \ - "($help)--ip=[IPv4 address]:IPv4: " \ - "($help)--ip6=[IPv6 address]:IPv6: " \ - "($help)*--link=[Add a link to another container]:link:->link" \ - "($help)*--link-local-ip=[Add a link-local address for the container]:IPv4/IPv6: " \ - "($help -)1:network:__docker_complete_networks" \ - "($help -)2:containers:__docker_complete_containers" && ret=0 - - case $state in - (link) - if compset -P "*:"; then - _wanted alias expl "Alias" compadd -E "" && ret=0 - else - __docker_complete_running_containers -qS ":" && ret=0 - fi - ;; - esac - ;; - (create) - _arguments $(__docker_arguments) -A '-*' \ - $opts_help \ - "($help)--attachable[Enable manual container attachment]" \ - "($help)*--aux-address[Auxiliary IPv4 or IPv6 addresses used by network driver]:key=IP: " \ - "($help -d --driver)"{-d=,--driver=}"[Driver to manage the Network]:driver:(null host bridge overlay)" \ - "($help)*--gateway=[IPv4 or IPv6 Gateway for the master subnet]:IP: " \ - "($help)--internal[Restricts external access to the network]" \ - "($help)*--ip-range=[Allocate container ip from a sub-range]:IP/mask: " \ - "($help)--ipam-driver=[IP Address Management Driver]:driver:(default)" \ - "($help)*--ipam-opt=[Custom IPAM plugin options]:opt=value: " \ - "($help)--ipv6[Enable IPv6 networking]" \ - "($help)*--label=[Set metadata on a network]:label=value: " \ - "($help)*"{-o=,--opt=}"[Driver specific options]:opt=value: " \ - "($help)*--subnet=[Subnet in CIDR format that represents a network segment]:IP/mask: " \ - "($help -)1:Network Name: " && ret=0 - ;; - (disconnect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)1:network:__docker_complete_networks" \ - "($help -)2:containers:__docker_complete_containers" && ret=0 - ;; - (inspect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ - "($help)--verbose[Show detailed information]" \ - "($help -)*:network:__docker_complete_networks" && ret=0 - ;; - (ls) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--no-trunc[Do not truncate the output]" \ - "($help)*"{-f=,--filter=}"[Provide filter values]:filter:__docker_network_complete_ls_filters" \ - "($help)--format=[Format the output using the given Go template]:template: " \ - "($help -q --quiet)"{-q,--quiet}"[Only display network IDs]" && ret=0 - ;; - (prune) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*--filter=[Filter values]:filter:__docker_complete_prune_filters" \ - "($help -f --force)"{-f,--force}"[Do not prompt for confirmation]" && ret=0 - ;; - (rm) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:network:__docker_complete_networks" && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_network_commands" && ret=0 - ;; - esac - - return ret -} - -# EO network - -# BO node - -__docker_node_complete_ls_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (id) - __docker_complete_nodes_ids && ret=0 - ;; - (membership) - membership_opts=('accepted' 'pending' 'rejected') - _describe -t membership-opts "membership options" membership_opts && ret=0 - ;; - (name) - __docker_complete_nodes_names && ret=0 - ;; - (role) - role_opts=('manager' 'worker') - _describe -t role-opts "role options" role_opts && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('id' 'label' 'membership' 'name' 'node.label' 'role') - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_node_complete_ps_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (desired-state) - state_opts=('accepted' 'running' 'shutdown') - _describe -t state-opts "desired state options" state_opts && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('desired-state' 'id' 'label' 'name') - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_nodes() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - local line s - declare -a lines nodes args - - type=$1; shift - filter=$1; shift - [[ $filter != "none" ]] && args=("-f $filter") - - lines=(${(f)${:-"$(_call_program commands docker $docker_options node ls $args)"$'\n'}}) - # Parse header line to find columns - local i=1 j=1 k header=${lines[1]} - declare -A begin end - while (( j < ${#header} - 1 )); do - i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) - j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) - k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) - begin[${header[$i,$((j-1))]}]=$i - end[${header[$i,$((j-1))]}]=$k - done - end[${header[$i,$((j-1))]}]=-1 - lines=(${lines[2,-1]}) - - # Node ID - if [[ $type = (ids|all) ]]; then - for line in $lines; do - s="${line[${begin[ID]},${end[ID]}]%% ##}" - nodes=($nodes $s) - done - fi - - # Names - if [[ $type = (names|all) ]]; then - for line in $lines; do - s="${line[${begin[HOSTNAME]},${end[HOSTNAME]}]%% ##}" - nodes=($nodes $s) - done - fi - - _describe -t nodes-list "nodes" nodes "$@" && ret=0 - return ret -} - -__docker_complete_nodes() { - [[ $PREFIX = -* ]] && return 1 - __docker_nodes all none "$@" -} - -__docker_complete_nodes_ids() { - [[ $PREFIX = -* ]] && return 1 - __docker_nodes ids none "$@" -} - -__docker_complete_nodes_names() { - [[ $PREFIX = -* ]] && return 1 - __docker_nodes names none "$@" -} - -__docker_complete_pending_nodes() { - [[ $PREFIX = -* ]] && return 1 - __docker_nodes all "membership=pending" "$@" -} - -__docker_complete_manager_nodes() { - [[ $PREFIX = -* ]] && return 1 - __docker_nodes all "role=manager" "$@" -} - -__docker_complete_worker_nodes() { - [[ $PREFIX = -* ]] && return 1 - __docker_nodes all "role=worker" "$@" -} - -__docker_node_commands() { - local -a _docker_node_subcommands - _docker_node_subcommands=( - "demote:Demote a node as manager in the swarm" - "inspect:Display detailed information on one or more nodes" - "ls:List nodes in the swarm" - "promote:Promote a node as manager in the swarm" - "rm:Remove one or more nodes from the swarm" - "ps:List tasks running on one or more nodes, defaults to current node" - "update:Update a node" - ) - _describe -t docker-node-commands "docker node command" _docker_node_subcommands -} - -__docker_node_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (rm|remove) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --force)"{-f,--force}"[Force remove a node from the swarm]" \ - "($help -)*:node:__docker_complete_pending_nodes" && ret=0 - ;; - (demote) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:node:__docker_complete_manager_nodes" && ret=0 - ;; - (inspect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ - "($help)--pretty[Print the information in a human friendly format]" \ - "($help -)*:node:__docker_complete_nodes" && ret=0 - ;; - (ls|list) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*"{-f=,--filter=}"[Provide filter values]:filter:__docker_node_complete_ls_filters" \ - "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" && ret=0 - ;; - (promote) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:node:__docker_complete_worker_nodes" && ret=0 - ;; - (ps) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all)"{-a,--all}"[Display all instances]" \ - "($help)*"{-f=,--filter=}"[Provide filter values]:filter:__docker_node_complete_ps_filters" \ - "($help)--format=[Format the output using the given go template]:template: " \ - "($help)--no-resolve[Do not map IDs to Names]" \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" \ - "($help -)*:node:__docker_complete_nodes" && ret=0 - ;; - (update) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--availability=[Availability of the node]:availability:(active pause drain)" \ - "($help)*--label-add=[Add or update a node label]:key=value: " \ - "($help)*--label-rm=[Remove a node label if exists]:label: " \ - "($help)--role=[Role of the node]:role:(manager worker)" \ - "($help -)1:node:__docker_complete_nodes" && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_node_commands" && ret=0 - ;; - esac - - return ret -} - -# EO node - -# BO plugin - -__docker_plugin_complete_ls_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (capability) - opts=('authz' 'ipamdriver' 'logdriver' 'metricscollector' 'networkdriver' 'volumedriver') - _describe -t capability-opts "capability options" opts && ret=0 - ;; - (enabled) - opts=('false' 'true') - _describe -t enabled-opts "enabled options" opts && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('capability' 'enabled') - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_plugins() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - local line s - declare -a lines plugins args - - filter=$1; shift - [[ $filter != "none" ]] && args=("-f $filter") - - lines=(${(f)${:-"$(_call_program commands docker $docker_options plugin ls $args)"$'\n'}}) - - # Parse header line to find columns - local i=1 j=1 k header=${lines[1]} - declare -A begin end - while (( j < ${#header} - 1 )); do - i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) - j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) - k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) - begin[${header[$i,$((j-1))]}]=$i - end[${header[$i,$((j-1))]}]=$k - done - end[${header[$i,$((j-1))]}]=-1 - lines=(${lines[2,-1]}) - - # Name - for line in $lines; do - s="${line[${begin[NAME]},${end[NAME]}]%% ##}" - s="$s:${(l:7:: :::)${${line[${begin[TAG]},${end[TAG]}]}%% ##}}" - plugins=($plugins $s) - done - - _describe -t plugins-list "plugins" plugins "$@" && ret=0 - return ret -} - -__docker_complete_plugins() { - [[ $PREFIX = -* ]] && return 1 - __docker_plugins none "$@" -} - -__docker_complete_enabled_plugins() { - [[ $PREFIX = -* ]] && return 1 - __docker_plugins enabled=true "$@" -} - -__docker_complete_disabled_plugins() { - [[ $PREFIX = -* ]] && return 1 - __docker_plugins enabled=false "$@" -} - -__docker_plugin_commands() { - local -a _docker_plugin_subcommands - _docker_plugin_subcommands=( - "disable:Disable a plugin" - "enable:Enable a plugin" - "inspect:Return low-level information about a plugin" - "install:Install a plugin" - "ls:List plugins" - "push:Push a plugin" - "rm:Remove a plugin" - "set:Change settings for a plugin" - "upgrade:Upgrade an existing plugin" - ) - _describe -t docker-plugin-commands "docker plugin command" _docker_plugin_subcommands -} - -__docker_plugin_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (disable) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --force)"{-f,--force}"[Force the disable of an active plugin]" \ - "($help -)1:plugin:__docker_complete_enabled_plugins" && ret=0 - ;; - (enable) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--timeout=[HTTP client timeout (in seconds)]:timeout: " \ - "($help -)1:plugin:__docker_complete_disabled_plugins" && ret=0 - ;; - (inspect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given Go template]:template: " \ - "($help -)*:plugin:__docker_complete_plugins" && ret=0 - ;; - (install) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--alias=[Local name for plugin]:alias: " \ - "($help)--disable[Do not enable the plugin on install]" \ - "($help)--disable-content-trust[Skip image verification (default true)]" \ - "($help)--grant-all-permissions[Grant all permissions necessary to run the plugin]" \ - "($help -)1:plugin:__docker_complete_plugins" \ - "($help -)*:key=value: " && ret=0 - ;; - (ls|list) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*"{-f=,--filter=}"[Filter output based on conditions provided]:filter:__docker_plugin_complete_ls_filters" \ - "($help --format)--format=[Format the output using the given Go template]:template: " \ - "($help)--no-trunc[Don't truncate output]" \ - "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" && ret=0 - ;; - (push) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--disable-content-trust[Skip image verification (default true)]" \ - "($help -)1:plugin:__docker_complete_plugins" && ret=0 - ;; - (rm|remove) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --force)"{-f,--force}"[Force the removal of an active plugin]" \ - "($help -)*:plugin:__docker_complete_plugins" && ret=0 - ;; - (set) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)1:plugin:__docker_complete_plugins" \ - "($help -)*:key=value: " && ret=0 - ;; - (upgrade) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--disable-content-trust[Skip image verification (default true)]" \ - "($help)--grant-all-permissions[Grant all permissions necessary to run the plugin]" \ - "($help)--skip-remote-check[Do not check if specified remote plugin matches existing plugin image]" \ - "($help -)1:plugin:__docker_complete_plugins" \ - "($help -):remote: " && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_plugin_commands" && ret=0 - ;; - esac - - return ret -} - -# EO plugin - -# BO secret - -__docker_secrets() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - local line s - declare -a lines secrets - - type=$1; shift - - lines=(${(f)${:-"$(_call_program commands docker $docker_options secret ls)"$'\n'}}) - - # Parse header line to find columns - local i=1 j=1 k header=${lines[1]} - declare -A begin end - while (( j < ${#header} - 1 )); do - i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) - j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) - k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) - begin[${header[$i,$((j-1))]}]=$i - end[${header[$i,$((j-1))]}]=$k - done - end[${header[$i,$((j-1))]}]=-1 - lines=(${lines[2,-1]}) - - # ID - if [[ $type = (ids|all) ]]; then - for line in $lines; do - s="${line[${begin[ID]},${end[ID]}]%% ##}" - secrets=($secrets $s) - done - fi - - # Names - if [[ $type = (names|all) ]]; then - for line in $lines; do - s="${line[${begin[NAME]},${end[NAME]}]%% ##}" - secrets=($secrets $s) - done - fi - - _describe -t secrets-list "secrets" secrets "$@" && ret=0 - return ret -} - -__docker_complete_secrets() { - [[ $PREFIX = -* ]] && return 1 - __docker_secrets all "$@" -} - -__docker_secret_commands() { - local -a _docker_secret_subcommands - _docker_secret_subcommands=( - "create:Create a secret using stdin as content" - "inspect:Display detailed information on one or more secrets" - "ls:List secrets" - "rm:Remove one or more secrets" - ) - _describe -t docker-secret-commands "docker secret command" _docker_secret_subcommands -} - -__docker_secret_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (create) - _arguments $(__docker_arguments) -A '-*' \ - $opts_help \ - "($help)*"{-l=,--label=}"[Secret labels]:label: " \ - "($help -):secret: " && ret=0 - ;; - (inspect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given Go template]:template: " \ - "($help -)*:secret:__docker_complete_secrets" && ret=0 - ;; - (ls|list) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--format=[Format the output using the given go template]:template: " \ - "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" && ret=0 - ;; - (rm|remove) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:secret:__docker_complete_secrets" && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_secret_commands" && ret=0 - ;; - esac - - return ret -} - -# EO secret - -# BO service - -__docker_service_complete_ls_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (id) - __docker_complete_services_ids && ret=0 - ;; - (mode) - opts=('global' 'replicated') - _describe -t mode-opts "mode options" opts && ret=0 - ;; - (name) - __docker_complete_services_names && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('id' 'label' 'mode' 'name') - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_service_complete_ps_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (desired-state) - state_opts=('accepted' 'running' 'shutdown') - _describe -t state-opts "desired state options" state_opts && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('desired-state' 'id' 'label' 'name') - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_service_complete_placement_pref() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (spread) - opts=('engine.labels' 'node.labels') - _describe -t spread-opts "spread options" opts -qS "." && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('spread') - _describe -t pref-opts "placement pref options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_services() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - local line s - declare -a lines services - - type=$1; shift - - lines=(${(f)${:-"$(_call_program commands docker $docker_options service ls)"$'\n'}}) - - # Parse header line to find columns - local i=1 j=1 k header=${lines[1]} - declare -A begin end - while (( j < ${#header} - 1 )); do - i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) - j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) - k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) - begin[${header[$i,$((j-1))]}]=$i - end[${header[$i,$((j-1))]}]=$k - done - end[${header[$i,$((j-1))]}]=-1 - lines=(${lines[2,-1]}) - - # Service ID - if [[ $type = (ids|all) ]]; then - for line in $lines; do - s="${line[${begin[ID]},${end[ID]}]%% ##}" - s="$s:${(l:7:: :::)${${line[${begin[IMAGE]},${end[IMAGE]}]}%% ##}}" - services=($services $s) - done - fi - - # Names - if [[ $type = (names|all) ]]; then - for line in $lines; do - s="${line[${begin[NAME]},${end[NAME]}]%% ##}" - s="$s:${(l:7:: :::)${${line[${begin[IMAGE]},${end[IMAGE]}]}%% ##}}" - services=($services $s) - done - fi - - _describe -t services-list "services" services "$@" && ret=0 - return ret -} - -__docker_complete_services() { - [[ $PREFIX = -* ]] && return 1 - __docker_services all "$@" -} - -__docker_complete_services_ids() { - [[ $PREFIX = -* ]] && return 1 - __docker_services ids "$@" -} - -__docker_complete_services_names() { - [[ $PREFIX = -* ]] && return 1 - __docker_services names "$@" -} - -__docker_service_commands() { - local -a _docker_service_subcommands - _docker_service_subcommands=( - "create:Create a new service" - "inspect:Display detailed information on one or more services" - "logs:Fetch the logs of a service or task" - "ls:List services" - "rm:Remove one or more services" - "rollback:Revert changes to a service's configuration" - "scale:Scale one or multiple replicated services" - "ps:List the tasks of a service" - "update:Update a service" - ) - _describe -t docker-service-commands "docker service command" _docker_service_subcommands -} - -__docker_service_subcommand() { - local -a _command_args opts_help opts_create_update - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - opts_create_update=( - "($help)*--cap-add=[Add Linux capabilities]:capability: " - "($help)*--cap-drop=[Drop Linux capabilities]:capability: " - "($help)*--constraint=[Placement constraints]:constraint: " - "($help)--endpoint-mode=[Placement constraints]:mode:(dnsrr vip)" - "($help)*"{-e=,--env=}"[Set environment variables]:env: " - "($help)--health-cmd=[Command to run to check health]:command: " - "($help)--health-interval=[Time between running the check]:time: " - "($help)--health-retries=[Consecutive failures needed to report unhealthy]:retries:(1 2 3 4 5)" - "($help)--health-timeout=[Maximum time to allow one check to run]:time: " - "($help)--hostname=[Service container hostname]:hostname: " \ - "($help)--isolation=[Service container isolation mode]:isolation:(default process hyperv)" \ - "($help)*--label=[Service labels]:label: " - "($help)--limit-cpu=[Limit CPUs]:value: " - "($help)--limit-memory=[Limit Memory]:value: " - "($help)--limit-pids[Limit maximum number of processes (default 0 = unlimited)]" - "($help)--log-driver=[Logging driver for service]:logging driver:__docker_complete_log_drivers" - "($help)*--log-opt=[Logging driver options]:log driver options:__docker_complete_log_options" - "($help)*--mount=[Attach a filesystem mount to the service]:mount: " - "($help)*--network=[Network attachments]:network: " - "($help)--no-healthcheck[Disable any container-specified HEALTHCHECK]" - "($help)--read-only[Mount the container's root filesystem as read only]" - "($help)--replicas=[Number of tasks]:replicas: " - "($help)--reserve-cpu=[Reserve CPUs]:value: " - "($help)--reserve-memory=[Reserve Memory]:value: " - "($help)--restart-condition=[Restart when condition is met]:mode:(any none on-failure)" - "($help)--restart-delay=[Delay between restart attempts]:delay: " - "($help)--restart-max-attempts=[Maximum number of restarts before giving up]:max-attempts: " - "($help)--restart-window=[Window used to evaluate the restart policy]:duration: " - "($help)--rollback-delay=[Delay between task rollbacks]:duration: " - "($help)--rollback-failure-action=[Action on rollback failure]:action:(continue pause)" - "($help)--rollback-max-failure-ratio=[Failure rate to tolerate during a rollback]:failure rate: " - "($help)--rollback-monitor=[Duration after each task rollback to monitor for failure]:duration: " - "($help)--rollback-parallelism=[Maximum number of tasks rolled back simultaneously]:number: " - "($help)*--secret=[Specify secrets to expose to the service]:secret:__docker_complete_secrets" - "($help)--stop-grace-period=[Time to wait before force killing a container]:grace period: " - "($help)--stop-signal=[Signal to stop the container]:signal:_signals" - "($help -t --tty)"{-t,--tty}"[Allocate a pseudo-TTY]" - "($help)--update-delay=[Delay between updates]:delay: " - "($help)--update-failure-action=[Action on update failure]:mode:(continue pause rollback)" - "($help)--update-max-failure-ratio=[Failure rate to tolerate during an update]:fraction: " - "($help)--update-monitor=[Duration after each task update to monitor for failure]:window: " - "($help)--update-parallelism=[Maximum number of tasks updated simultaneously]:number: " - "($help -u --user)"{-u=,--user=}"[Username or UID]:user:_users" - "($help)--with-registry-auth[Send registry authentication details to swarm agents]" - "($help -w --workdir)"{-w=,--workdir=}"[Working directory inside the container]:directory:_directories" - ) - - case "$words[1]" in - (create) - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_create_update \ - "($help)*--container-label=[Container labels]:label: " \ - "($help)*--dns=[Set custom DNS servers]:DNS: " \ - "($help)*--dns-option=[Set DNS options]:DNS option: " \ - "($help)*--dns-search=[Set custom DNS search domains]:DNS search: " \ - "($help)*--env-file=[Read environment variables from a file]:environment file:_files" \ - "($help)*--group=[Set one or more supplementary user groups for the container]:group: _groups " \ - "($help)--mode=[Service Mode]:mode:(global replicated)" \ - "($help)--name=[Service name]:name: " \ - "($help)*--placement-pref=[Add a placement preference]:pref:__docker_service_complete_placement_pref" \ - "($help)*"{-p=,--publish=}"[Publish a port as a node port]:port: " \ - "($help -): :__docker_complete_images" \ - "($help -):command: _command_names -e" \ - "($help -)*::arguments: _normal" && ret=0 - ;; - (inspect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ - "($help)--pretty[Print the information in a human friendly format]" \ - "($help -)*:service:__docker_complete_services" && ret=0 - ;; - (logs) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --follow)"{-f,--follow}"[Follow log output]" \ - "($help)--no-resolve[Do not map IDs to Names]" \ - "($help)--no-task-ids[Do not include task IDs]" \ - "($help)--no-trunc[Do not truncate output]" \ - "($help)--since=[Show logs since timestamp]:timestamp: " \ - "($help -n --tail)"{-n=,--tail=}"[Number of lines to show from the end of the logs]:lines:(1 10 20 50 all)" \ - "($help -t --timestamps)"{-t,--timestamps}"[Show timestamps]" \ - "($help -)1:service:__docker_complete_services" && ret=0 - ;; - (ls|list) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*"{-f=,--filter=}"[Filter output based on conditions provided]:filter:__docker_service_complete_ls_filters" \ - "($help)--format=[Format the output using the given Go template]:template: " \ - "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" && ret=0 - ;; - (rm|remove) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:service:__docker_complete_services" && ret=0 - ;; - (rollback) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -d --detach)"{-d=false,--detach=false}"[Disable detached mode]" \ - "($help -q --quiet)"{-q,--quiet}"[Suppress progress output]" \ - "($help -)*:service:__docker_complete_services" && ret=0 - ;; - (scale) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -d --detach)"{-d=false,--detach=false}"[Disable detached mode]" \ - "($help -)*:service:->values" && ret=0 - case $state in - (values) - if compset -P '*='; then - _message 'replicas' && ret=0 - else - __docker_complete_services -qS "=" - fi - ;; - esac - ;; - (ps) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*"{-f=,--filter=}"[Provide filter values]:filter:__docker_service_complete_ps_filters" \ - "($help)--format=[Format the output using the given go template]:template: " \ - "($help)--no-resolve[Do not map IDs to Names]" \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -q --quiet)"{-q,--quiet}"[Only display task IDs]" \ - "($help -)*:service:__docker_complete_services" && ret=0 - ;; - (update) - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_create_update \ - "($help)--arg=[Service command args]:arguments: _normal" \ - "($help)*--container-label-add=[Add or update container labels]:label: " \ - "($help)*--container-label-rm=[Remove a container label by its key]:label: " \ - "($help)*--dns-add=[Add or update custom DNS servers]:DNS: " \ - "($help)*--dns-rm=[Remove custom DNS servers]:DNS: " \ - "($help)*--dns-option-add=[Add or update DNS options]:DNS option: " \ - "($help)*--dns-option-rm=[Remove DNS options]:DNS option: " \ - "($help)*--dns-search-add=[Add or update custom DNS search domains]:DNS search: " \ - "($help)*--dns-search-rm=[Remove DNS search domains]:DNS search: " \ - "($help)--force[Force update]" \ - "($help)*--group-add=[Add additional supplementary user groups to the container]:group:_groups" \ - "($help)*--group-rm=[Remove previously added supplementary user groups from the container]:group:_groups" \ - "($help)--image=[Service image tag]:image:__docker_complete_repositories" \ - "($help)*--placement-pref-add=[Add a placement preference]:pref:__docker_service_complete_placement_pref" \ - "($help)*--placement-pref-rm=[Remove a placement preference]:pref:__docker_service_complete_placement_pref" \ - "($help)*--publish-add=[Add or update a port]:port: " \ - "($help)*--publish-rm=[Remove a port(target-port mandatory)]:port: " \ - "($help)--rollback[Rollback to previous specification]" \ - "($help -)1:service:__docker_complete_services" && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_service_commands" && ret=0 - ;; - esac - - return ret -} - -# EO service - -# BO stack - -__docker_stack_complete_ps_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (desired-state) - state_opts=('accepted' 'running' 'shutdown') - _describe -t state-opts "desired state options" state_opts && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('desired-state' 'id' 'name') - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_stack_complete_services_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('id' 'label' 'name') - _describe -t filter-opts "filter options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_stacks() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - local line s - declare -a lines stacks - - lines=(${(f)${:-"$(_call_program commands docker $docker_options stack ls)"$'\n'}}) - - # Parse header line to find columns - local i=1 j=1 k header=${lines[1]} - declare -A begin end - while (( j < ${#header} - 1 )); do - i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) - j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) - k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) - begin[${header[$i,$((j-1))]}]=$i - end[${header[$i,$((j-1))]}]=$k - done - end[${header[$i,$((j-1))]}]=-1 - lines=(${lines[2,-1]}) - - # Service NAME - for line in $lines; do - s="${line[${begin[NAME]},${end[NAME]}]%% ##}" - stacks=($stacks $s) - done - - _describe -t stacks-list "stacks" stacks "$@" && ret=0 - return ret -} - -__docker_complete_stacks() { - [[ $PREFIX = -* ]] && return 1 - __docker_stacks "$@" -} - -__docker_stack_commands() { - local -a _docker_stack_subcommands - _docker_stack_subcommands=( - "deploy:Deploy a new stack or update an existing stack" - "ls:List stacks" - "ps:List the tasks in the stack" - "rm:Remove the stack" - "services:List the services in the stack" - ) - _describe -t docker-stack-commands "docker stack command" _docker_stack_subcommands -} - -__docker_stack_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (deploy|up) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -c --compose-file)"{-c=,--compose-file=}"[Path to a Compose file, or '-' to read from stdin]:compose file:_files -g \"*.(yml|yaml)\"" \ - "($help)--with-registry-auth[Send registry authentication details to Swarm agents]" \ - "($help -):stack:__docker_complete_stacks" && ret=0 - ;; - (ls|list) - _arguments $(__docker_arguments) \ - $opts_help && ret=0 - ;; - (ps) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all)"{-a,--all}"[Display all tasks]" \ - "($help)*"{-f=,--filter=}"[Filter output based on conditions provided]:filter:__docker_stack_complete_ps_filters" \ - "($help)--format=[Format the output using the given go template]:template: " \ - "($help)--no-resolve[Do not map IDs to Names]" \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -q --quiet)"{-q,--quiet}"[Only display task IDs]" \ - "($help -):stack:__docker_complete_stacks" && ret=0 - ;; - (rm|remove|down) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -):stack:__docker_complete_stacks" && ret=0 - ;; - (services) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*"{-f=,--filter=}"[Filter output based on conditions provided]:filter:__docker_stack_complete_services_filters" \ - "($help)--format=[Format the output using the given Go template]:template: " \ - "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" \ - "($help -):stack:__docker_complete_stacks" && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_stack_commands" && ret=0 - ;; - esac - - return ret -} - -# EO stack - -# BO swarm - -__docker_swarm_commands() { - local -a _docker_swarm_subcommands - _docker_swarm_subcommands=( - "init:Initialize a swarm" - "join:Join a swarm as a node and/or manager" - "join-token:Manage join tokens" - "leave:Leave a swarm" - "unlock:Unlock swarm" - "unlock-key:Manage the unlock key" - "update:Update the swarm" - ) - _describe -t docker-swarm-commands "docker swarm command" _docker_swarm_subcommands -} - -__docker_swarm_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (init) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--advertise-addr=[Advertised address]:ip\:port: " \ - "($help)--data-path-addr=[Data path IP or interface]:ip " \ - "($help)--data-path-port=[Data Path Port]:port " \ - "($help)--default-addr-pool=[Default address pool]" \ - "($help)--default-addr-pool-mask-length=[Default address pool subnet mask length]" \ - "($help)--autolock[Enable manager autolocking]" \ - "($help)--availability=[Availability of the node]:availability:(active drain pause)" \ - "($help)--cert-expiry=[Validity period for node certificates]:duration: " \ - "($help)--dispatcher-heartbeat=[Dispatcher heartbeat period]:duration: " \ - "($help)*--external-ca=[Specifications of one or more certificate signing endpoints]:endpoint: " \ - "($help)--force-new-cluster[Force create a new cluster from current state]" \ - "($help)--listen-addr=[Listen address]:ip\:port: " \ - "($help)--max-snapshots[Number of additional Raft snapshots to retain]" \ - "($help)--snapshot-interval[Number of log entries between Raft snapshots]" \ - "($help)--task-history-limit=[Task history retention limit]:limit: " && ret=0 - ;; - (join) - _arguments $(__docker_arguments) -A '-*' \ - $opts_help \ - "($help)--advertise-addr=[Advertised address]:ip\:port: " \ - "($help)--data-path-addr=[Data path IP or interface]:ip " \ - "($help)--availability=[Availability of the node]:availability:(active drain pause)" \ - "($help)--listen-addr=[Listen address]:ip\:port: " \ - "($help)--token=[Token for entry into the swarm]:secret: " \ - "($help -):host\:port: " && ret=0 - ;; - (join-token) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -q --quiet)"{-q,--quiet}"[Only display token]" \ - "($help)--rotate[Rotate join token]" \ - "($help -):role:(manager worker)" && ret=0 - ;; - (leave) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --force)"{-f,--force}"[Force this node to leave the swarm, ignoring warnings]" && ret=0 - ;; - (unlock) - _arguments $(__docker_arguments) \ - $opts_help && ret=0 - ;; - (unlock-key) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -q --quiet)"{-q,--quiet}"[Only display token]" \ - "($help)--rotate[Rotate unlock token]" && ret=0 - ;; - (update) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--autolock[Enable manager autolocking]" \ - "($help)--cert-expiry=[Validity period for node certificates]:duration: " \ - "($help)--dispatcher-heartbeat=[Dispatcher heartbeat period]:duration: " \ - "($help)*--external-ca=[Specifications of one or more certificate signing endpoints]:endpoint: " \ - "($help)--max-snapshots[Number of additional Raft snapshots to retain]" \ - "($help)--snapshot-interval[Number of log entries between Raft snapshots]" \ - "($help)--task-history-limit=[Task history retention limit]:limit: " && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_network_commands" && ret=0 - ;; - esac - - return ret -} - -# EO swarm - -# BO system - -__docker_system_commands() { - local -a _docker_system_subcommands - _docker_system_subcommands=( - "df:Show docker filesystem usage" - "events:Get real time events from the server" - "info:Display system-wide information" - "prune:Remove unused data" - ) - _describe -t docker-system-commands "docker system command" _docker_system_subcommands -} - -__docker_system_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (df) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -v --verbose)"{-v,--verbose}"[Show detailed information on space usage]" && ret=0 - ;; - (events) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*"{-f=,--filter=}"[Filter values]:filter:__docker_complete_events_filter" \ - "($help)--since=[Events created since this timestamp]:timestamp: " \ - "($help)--until=[Events created until this timestamp]:timestamp: " \ - "($help)--format=[Format the output using the given go template]:template: " && ret=0 - ;; - (info) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " && ret=0 - ;; - (prune) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all)"{-a,--all}"[Remove all unused data, not just dangling ones]" \ - "($help)*--filter=[Filter values]:filter:__docker_complete_prune_filters" \ - "($help -f --force)"{-f,--force}"[Do not prompt for confirmation]" \ - "($help)--volumes=[Remove all unused volumes]" && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_volume_commands" && ret=0 - ;; - esac - - return ret -} - -# EO system - -# BO volume - -__docker_volume_complete_ls_filters() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - - if compset -P '*='; then - case "${${words[-1]%=*}#*=}" in - (dangling) - dangling_opts=('true' 'false') - _describe -t dangling-filter-opts "Dangling Filter Options" dangling_opts && ret=0 - ;; - (driver) - __docker_complete_info_plugins Volume && ret=0 - ;; - (name) - __docker_complete_volumes && ret=0 - ;; - *) - _message 'value' && ret=0 - ;; - esac - else - opts=('dangling' 'driver' 'label' 'name') - _describe -t filter-opts "Filter Options" opts -qS "=" && ret=0 - fi - - return ret -} - -__docker_complete_volumes() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - declare -a lines volumes - - lines=(${(f)${:-"$(_call_program commands docker $docker_options volume ls)"$'\n'}}) - - # Parse header line to find columns - local i=1 j=1 k header=${lines[1]} - declare -A begin end - while (( j < ${#header} - 1 )); do - i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) - j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) - k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) - begin[${header[$i,$((j-1))]}]=$i - end[${header[$i,$((j-1))]}]=$k - done - end[${header[$i,$((j-1))]}]=-1 - lines=(${lines[2,-1]}) - - # Names - local line s - for line in $lines; do - s="${line[${begin[VOLUME NAME]},${end[VOLUME NAME]}]%% ##}" - s="$s:${(l:7:: :::)${${line[${begin[DRIVER]},${end[DRIVER]}]}%% ##}}" - volumes=($volumes $s) - done - - _describe -t volumes-list "volumes" volumes && ret=0 - return ret -} - -__docker_volume_commands() { - local -a _docker_volume_subcommands - _docker_volume_subcommands=( - "create:Create a volume" - "inspect:Display detailed information on one or more volumes" - "ls:List volumes" - "prune:Remove all unused volumes" - "rm:Remove one or more volumes" - ) - _describe -t docker-volume-commands "docker volume command" _docker_volume_subcommands -} - -__docker_volume_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (create) - _arguments $(__docker_arguments) -A '-*' \ - $opts_help \ - "($help -d --driver)"{-d=,--driver=}"[Volume driver name]:Driver name:(local)" \ - "($help)*--label=[Set metadata for a volume]:label=value: " \ - "($help)*"{-o=,--opt=}"[Driver specific options]:Driver option: " \ - "($help -)1:Volume name: " && ret=0 - ;; - (inspect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ - "($help -)1:volume:__docker_complete_volumes" && ret=0 - ;; - (ls) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*"{-f=,--filter=}"[Provide filter values]:filter:__docker_volume_complete_ls_filters" \ - "($help)--format=[Format the output using the given Go template]:template: " \ - "($help -q --quiet)"{-q,--quiet}"[Only display volume names]" && ret=0 - ;; - (prune) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --force)"{-f,--force}"[Do not prompt for confirmation]" && ret=0 - ;; - (rm) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --force)"{-f,--force}"[Force the removal of one or more volumes]" \ - "($help -):volume:__docker_complete_volumes" && ret=0 - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_volume_commands" && ret=0 - ;; - esac - - return ret -} - -# EO volume - -# BO context - -__docker_complete_contexts() { - [[ $PREFIX = -* ]] && return 1 - integer ret=1 - declare -a contexts - - contexts=(${(f)${:-"$(_call_program commands docker $docker_options context ls -q)"$'\n'}}) - - _describe -t context-list "context" contexts && ret=0 - return ret -} - -__docker_context_commands() { - local -a _docker_context_subcommands - _docker_context_subcommands=( - "create:Create new context" - "inspect:Display detailed information on one or more contexts" - "list:List available contexts" - "rm:Remove one or more contexts" - "show:Print the current context" - "update:Update a context" - "use:Set the default context" - ) - _describe -t docker-context-commands "docker context command" _docker_context_subcommands -} - -__docker_context_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (create) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--description=[Description of the context]:description:" \ - "($help)--docker=[Set the docker endpoint]:docker:" \ - "($help)--from=[Create context from a named context]:from:__docker_complete_contexts" \ - "($help -):name: " && ret=0 - ;; - (use) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)1:context:__docker_complete_contexts" && ret=0 - ;; - (inspect) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)1:context:__docker_complete_contexts" && ret=0 - ;; - (rm) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)1:context:__docker_complete_contexts" && ret=0 - ;; - (update) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--description=[Description of the context]:description:" \ - "($help)--docker=[Set the docker endpoint]:docker:" \ - "($help -):name:" && ret=0 - ;; - esac - - return ret -} - -# EO context - -__docker_caching_policy() { - oldp=( "$1"(Nmh+1) ) # 1 hour - (( $#oldp )) -} - -__docker_commands() { - local cache_policy - integer force_invalidation=0 - - zstyle -s ":completion:${curcontext}:" cache-policy cache_policy - if [[ -z "$cache_policy" ]]; then - zstyle ":completion:${curcontext}:" cache-policy __docker_caching_policy - fi - - if ( (( ! ${+_docker_hide_legacy_commands} )) || _cache_invalid docker_hide_legacy_commands ) \ - && ! _retrieve_cache docker_hide_legacy_commands; - then - _docker_hide_legacy_commands="${DOCKER_HIDE_LEGACY_COMMANDS}" - _store_cache docker_hide_legacy_commands _docker_hide_legacy_commands - fi - - if [[ "${_docker_hide_legacy_commands}" != "${DOCKER_HIDE_LEGACY_COMMANDS}" ]]; then - force_invalidation=1 - _docker_hide_legacy_commands="${DOCKER_HIDE_LEGACY_COMMANDS}" - _store_cache docker_hide_legacy_commands _docker_hide_legacy_commands - fi - - if ( [[ ${+_docker_subcommands} -eq 0 ]] || _cache_invalid docker_subcommands ) \ - && ! _retrieve_cache docker_subcommands || [[ ${force_invalidation} -eq 1 ]]; - then - local -a lines - lines=(${(f)"$(_call_program commands docker 2>&1)"}) - _docker_subcommands=(${${${(M)${lines[$((${lines[(i)*Commands:]} + 1)),-1]}:# *}## #}/\*# ##/:}) - _docker_subcommands=($_docker_subcommands 'daemon:Enable daemon mode' 'help:Show help for a command') - (( $#_docker_subcommands > 2 )) && _store_cache docker_subcommands _docker_subcommands - fi - _describe -t docker-commands "docker command" _docker_subcommands -} - -__docker_subcommand() { - local -a _command_args opts_help - local expl help="--help" - integer ret=1 - - opts_help=("(: -)--help[Print usage]") - - case "$words[1]" in - (attach|commit|cp|create|diff|exec|export|kill|logs|pause|unpause|port|rename|restart|rm|run|start|stats|stop|top|update|wait) - __docker_container_subcommand && ret=0 - ;; - (build|history|import|load|pull|push|save|tag) - __docker_image_subcommand && ret=0 - ;; - (checkpoint) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_checkpoint_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_checkpoint_subcommand && ret=0 - ;; - esac - ;; - (container) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_container_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_container_subcommand && ret=0 - ;; - esac - ;; - (context) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_context_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_context_subcommand && ret=0 - ;; - esac - ;; - (daemon) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*--add-runtime=[Register an additional OCI compatible runtime]:runtime:__docker_complete_runtimes" \ - "($help)*--allow-nondistributable-artifacts=[Push nondistributable artifacts to specified registries]:registry: " \ - "($help)--api-cors-header=[CORS headers in the Engine API]:CORS headers: " \ - "($help)*--authorization-plugin=[Authorization plugins to load]" \ - "($help -b --bridge)"{-b=,--bridge=}"[Attach containers to a network bridge]:bridge:_net_interfaces" \ - "($help)--bip=[Network bridge IP]:IP address: " \ - "($help)--cgroup-parent=[Parent cgroup for all containers]:cgroup: " \ - "($help)--config-file=[Path to daemon configuration file]:Config File:_files" \ - "($help)--containerd=[Path to containerd socket]:socket:_files -g \"*.sock\"" \ - "($help)--containerd-namespace=[Containerd namespace to use]:containerd namespace:" \ - "($help)--containerd-plugins-namespace=[Containerd namespace to use for plugins]:containerd namespace:" \ - "($help)--data-root=[Root directory of persisted Docker data]:path:_directories" \ - "($help -D --debug)"{-D,--debug}"[Enable debug mode]" \ - "($help)--default-gateway[Container default gateway IPv4 address]:IPv4 address: " \ - "($help)--default-gateway-v6[Container default gateway IPv6 address]:IPv6 address: " \ - "($help)--default-shm-size=[Default shm size for containers]:size:" \ - "($help)*--default-ulimit=[Default ulimits for containers]:ulimit: " \ - "($help)*--dns=[DNS server to use]:DNS: " \ - "($help)*--dns-opt=[DNS options to use]:DNS option: " \ - "($help)*--dns-search=[DNS search domains to use]:DNS search: " \ - "($help)*--exec-opt=[Runtime execution options]:runtime execution options: " \ - "($help)--exec-root=[Root directory for execution state files]:path:_directories" \ - "($help)--experimental[Enable experimental features]" \ - "($help)--fixed-cidr=[IPv4 subnet for fixed IPs]:IPv4 subnet: " \ - "($help)--fixed-cidr-v6=[IPv6 subnet for fixed IPs]:IPv6 subnet: " \ - "($help -G --group)"{-G=,--group=}"[Group for the unix socket]:group:_groups" \ - "($help -H --host)"{-H=,--host=}"[tcp://host:port to bind/connect to]:host: " \ - "($help)--icc[Enable inter-container communication]" \ - "($help)--init[Run an init inside containers to forward signals and reap processes]" \ - "($help)--init-path=[Path to the docker-init binary]:docker-init binary:_files" \ - "($help)*--insecure-registry=[Enable insecure registry communication]:registry: " \ - "($help)--ip=[Default IP when binding container ports]" \ - "($help)--ip-forward[Enable net.ipv4.ip_forward]" \ - "($help)--ip-masq[Enable IP masquerading]" \ - "($help)--iptables[Enable addition of iptables rules]" \ - "($help)--ipv6[Enable IPv6 networking]" \ - "($help -l --log-level)"{-l=,--log-level=}"[Logging level]:level:(debug info warn error fatal)" \ - "($help)*--label=[Key=value labels]:label: " \ - "($help)--live-restore[Enable live restore of docker when containers are still running]" \ - "($help)--log-driver=[Default driver for container logs]:logging driver:__docker_complete_log_drivers" \ - "($help)*--log-opt=[Default log driver options for containers]:log driver options:__docker_complete_log_options" \ - "($help)--max-concurrent-downloads[Set the max concurrent downloads for each pull]" \ - "($help)--max-concurrent-uploads[Set the max concurrent uploads for each push]" \ - "($help)--max-download-attempts[Set the max download attempts for each pull]" \ - "($help)--mtu=[Network MTU]:mtu:(0 576 1420 1500 9000)" \ - "($help)--oom-score-adjust=[Set the oom_score_adj for the daemon]:oom-score:(-500)" \ - "($help -p --pidfile)"{-p=,--pidfile=}"[Path to use for daemon PID file]:PID file:_files" \ - "($help)--raw-logs[Full timestamps without ANSI coloring]" \ - "($help)*--registry-mirror=[Preferred registry mirror]:registry mirror: " \ - "($help)--seccomp-profile=[Path to seccomp profile]:path:_files -g \"*.json\"" \ - "($help -s --storage-driver)"{-s=,--storage-driver=}"[Storage driver to use]:driver:(aufs btrfs devicemapper overlay overlay2 vfs zfs)" \ - "($help)--selinux-enabled[Enable selinux support]" \ - "($help)--shutdown-timeout=[Set the shutdown timeout value in seconds]:time: " \ - "($help)*--storage-opt=[Storage driver options]:storage driver options: " \ - "($help)--tls[Use TLS]" \ - "($help)--tlscacert=[Trust certs signed only by this CA]:PEM file:_files -g \"*.(pem|crt)\"" \ - "($help)--tlscert=[Path to TLS certificate file]:PEM file:_files -g \"*.(pem|crt)\"" \ - "($help)--tlskey=[Path to TLS key file]:Key file:_files -g \"*.(pem|key)\"" \ - "($help)--tlsverify[Use TLS and verify the remote]" \ - "($help)--userns-remap=[User/Group setting for user namespaces]:user\:group:->users-groups" \ - "($help)--userland-proxy[Use userland proxy for loopback traffic]" \ - "($help)--userland-proxy-path=[Path to the userland proxy binary]:binary:_files" \ - "($help)--validate[Validate daemon configuration and exit]" && ret=0 - - case $state in - (users-groups) - if compset -P '*:'; then - _groups && ret=0 - else - _describe -t userns-default "default Docker user management" '(default)' && ret=0 - _users && ret=0 - fi - ;; - esac - ;; - (events|info) - __docker_system_subcommand && ret=0 - ;; - (image) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_image_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_image_subcommand && ret=0 - ;; - esac - ;; - (images) - words[1]='ls' - __docker_image_subcommand && ret=0 - ;; - (inspect) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ - "($help -s --size)"{-s,--size}"[Display total file sizes if the type is container]" \ - "($help)--type=[Return JSON for specified type]:type:(container image network node plugin service volume)" \ - "($help -)*: :->values" && ret=0 - - case $state in - (values) - if [[ ${words[(r)--type=container]} == --type=container ]]; then - __docker_complete_containers && ret=0 - elif [[ ${words[(r)--type=image]} == --type=image ]]; then - __docker_complete_images && ret=0 - elif [[ ${words[(r)--type=network]} == --type=network ]]; then - __docker_complete_networks && ret=0 - elif [[ ${words[(r)--type=node]} == --type=node ]]; then - __docker_complete_nodes && ret=0 - elif [[ ${words[(r)--type=plugin]} == --type=plugin ]]; then - __docker_complete_plugins && ret=0 - elif [[ ${words[(r)--type=service]} == --type=secrets ]]; then - __docker_complete_secrets && ret=0 - elif [[ ${words[(r)--type=service]} == --type=service ]]; then - __docker_complete_services && ret=0 - elif [[ ${words[(r)--type=volume]} == --type=volume ]]; then - __docker_complete_volumes && ret=0 - else - __docker_complete_containers - __docker_complete_images - __docker_complete_networks - __docker_complete_nodes - __docker_complete_plugins - __docker_complete_secrets - __docker_complete_services - __docker_complete_volumes && ret=0 - fi - ;; - esac - ;; - (login) - _arguments $(__docker_arguments) -A '-*' \ - $opts_help \ - "($help -p --password)"{-p=,--password=}"[Password]:password: " \ - "($help)--password-stdin[Read password from stdin]" \ - "($help -u --username)"{-u=,--username=}"[Username]:username: " \ - "($help -)1:server: " && ret=0 - ;; - (logout) - _arguments $(__docker_arguments) -A '-*' \ - $opts_help \ - "($help -)1:server: " && ret=0 - ;; - (network) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_network_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_network_subcommand && ret=0 - ;; - esac - ;; - (node) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_node_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_node_subcommand && ret=0 - ;; - esac - ;; - (plugin) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_plugin_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_plugin_subcommand && ret=0 - ;; - esac - ;; - (ps) - words[1]='ls' - __docker_container_subcommand && ret=0 - ;; - (rmi) - words[1]='rm' - __docker_image_subcommand && ret=0 - ;; - (search) - _arguments $(__docker_arguments) -A '-*' \ - $opts_help \ - "($help)*"{-f=,--filter=}"[Filter values]:filter:__docker_complete_search_filters" \ - "($help)--limit=[Maximum returned search results]:limit:(1 5 10 25 50)" \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -):term: " && ret=0 - ;; - (secret) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_secret_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_secret_subcommand && ret=0 - ;; - esac - ;; - (service) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_service_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_service_subcommand && ret=0 - ;; - esac - ;; - (stack) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_stack_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_stack_subcommand && ret=0 - ;; - esac - ;; - (swarm) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_swarm_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_swarm_subcommand && ret=0 - ;; - esac - ;; - (system) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_system_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_system_subcommand && ret=0 - ;; - esac - ;; - (version) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " && ret=0 - ;; - (volume) - local curcontext="$curcontext" state - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - case $state in - (command) - __docker_volume_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-${words[-1]}: - __docker_volume_subcommand && ret=0 - ;; - esac - ;; - (help) - _arguments $(__docker_arguments) ":subcommand:__docker_commands" && ret=0 - ;; - esac - - return ret -} - -_docker() { - # Support for subservices, which allows for `compdef _docker docker-shell=_docker_containers`. - # Based on /usr/share/zsh/functions/Completion/Unix/_git without support for `ret`. - if [[ $service != docker ]]; then - _call_function - _$service - return - fi - - local curcontext="$curcontext" state line help="-h --help" - integer ret=1 - typeset -A opt_args - - _arguments $(__docker_arguments) -C \ - "(: -)"{-h,--help}"[Print usage]" \ - "($help)--config[Location of client config files]:path:_directories" \ - "($help -c --context)"{-c=,--context=}"[Execute the command in a docker context]:context:__docker_complete_contexts" \ - "($help -D --debug)"{-D,--debug}"[Enable debug mode]" \ - "($help -H --host)"{-H=,--host=}"[tcp://host:port to bind/connect to]:host: " \ - "($help -l --log-level)"{-l=,--log-level=}"[Logging level]:level:(debug info warn error fatal)" \ - "($help)--tls[Use TLS]" \ - "($help)--tlscacert=[Trust certs signed only by this CA]:PEM file:_files -g "*.(pem|crt)"" \ - "($help)--tlscert=[Path to TLS certificate file]:PEM file:_files -g "*.(pem|crt)"" \ - "($help)--tlskey=[Path to TLS key file]:Key file:_files -g "*.(pem|key)"" \ - "($help)--tlsverify[Use TLS and verify the remote]" \ - "($help)--userland-proxy[Use userland proxy for loopback traffic]" \ - "($help -v --version)"{-v,--version}"[Print version information and quit]" \ - "($help -): :->command" \ - "($help -)*:: :->option-or-argument" && ret=0 - - local host=${opt_args[-H]}${opt_args[--host]} - local config=${opt_args[--config]} - local context=${opt_args[-c]}${opt_args[--context]} - local docker_options="${host:+--host $host} ${config:+--config $config} ${context:+--context $context} " - - case $state in - (command) - __docker_commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*:*}:docker-$words[1]: - __docker_subcommand && ret=0 - ;; - esac - - return ret -} - -_dockerd() { - integer ret=1 - words[1]='daemon' - __docker_subcommand && ret=0 - return ret -} - -_docker "$@" - -# Local Variables: -# mode: Shell-Script -# sh-indentation: 4 -# indent-tabs-mode: nil -# sh-basic-offset: 4 -# End: -# vim: ft=zsh sw=4 ts=4 et diff --git a/plugins/docker/docker.plugin.zsh b/plugins/docker/docker.plugin.zsh index 8684a9785..06a191a10 100644 --- a/plugins/docker/docker.plugin.zsh +++ b/plugins/docker/docker.plugin.zsh @@ -1,3 +1,13 @@ +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `docker`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_docker" ]]; then + typeset -g -A _comps + autoload -Uz _docker + _comps[docker]=_docker +fi + +docker completion zsh >| "$ZSH_CACHE_DIR/completions/_docker" &| + alias dbl='docker build' alias dcin='docker container inspect' alias dcls='docker container ls' From 6bffaab2904d4bb37edad90e00b6f6e842d3811d Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Thu, 15 Jun 2023 20:06:56 +0200 Subject: [PATCH 275/441] fix(docker): only generate completion for docker >23 (#11754) --- plugins/docker/docker.plugin.zsh | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/plugins/docker/docker.plugin.zsh b/plugins/docker/docker.plugin.zsh index 06a191a10..e8aad9230 100644 --- a/plugins/docker/docker.plugin.zsh +++ b/plugins/docker/docker.plugin.zsh @@ -1,13 +1,3 @@ -# If the completion file doesn't exist yet, we need to autoload it and -# bind it to `docker`. Otherwise, compinit will have already done that. -if [[ ! -f "$ZSH_CACHE_DIR/completions/_docker" ]]; then - typeset -g -A _comps - autoload -Uz _docker - _comps[docker]=_docker -fi - -docker completion zsh >| "$ZSH_CACHE_DIR/completions/_docker" &| - alias dbl='docker build' alias dcin='docker container inspect' alias dcls='docker container ls' @@ -41,3 +31,22 @@ alias dvls='docker volume ls' alias dvprune='docker volume prune' alias dxc='docker container exec' alias dxcit='docker container exec -it' + +if (( ! $+commands[docker] )); then + return +fi + +{ + # `docker completion` is only available from 23.0.0 on + local _docker_version=$(docker version --format '{{.Client.Version}}' 2>/dev/null) + if is-at-least 23.0.0 $_docker_version; then + # If the completion file doesn't exist yet, we need to autoload it and + # bind it to `docker`. Otherwise, compinit will have already done that. + if [[ ! -f "$ZSH_CACHE_DIR/completions/_docker" ]]; then + typeset -g -A _comps + autoload -Uz _docker + _comps[docker]=_docker + fi + docker completion zsh >| "$ZSH_CACHE_DIR/completions/_docker" + fi +} &| From 42b86327ed875ee182f8fc394b90ae9328a5ac00 Mon Sep 17 00:00:00 2001 From: rfigueroa <41128440+rfigueroa@users.noreply.github.com> Date: Fri, 16 Jun 2023 02:52:12 -0500 Subject: [PATCH 276/441] fix(mvn)!: rename `mvnd` to `mvndp` alias (#11756) BREAKING CHANGE: Rename alias to prevent conflicts with Apache Maven Daemon. --- plugins/mvn/README.md | 2 +- plugins/mvn/mvn.plugin.zsh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/mvn/README.md b/plugins/mvn/README.md index 815dfd57c..4181fedc5 100644 --- a/plugins/mvn/README.md +++ b/plugins/mvn/README.md @@ -33,7 +33,7 @@ if it's found, or the mvn command otherwise. | `mvnct` | `mvn clean test` | | `mvncv` | `mvn clean verify` | | `mvncvst` | `mvn clean verify -DskipTests` | -| `mvnd` | `mvn deploy` | +| `mvndp` | `mvn deploy` | | `mvndocs` | `mvn dependency:resolve -Dclassifier=javadoc` | | `mvndt` | `mvn dependency:tree` | | `mvne` | `mvn eclipse:eclipse` | diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh index da51f74df..a569a87fa 100644 --- a/plugins/mvn/mvn.plugin.zsh +++ b/plugins/mvn/mvn.plugin.zsh @@ -62,7 +62,7 @@ alias mvncp='mvn clean package' alias mvnct='mvn clean test' alias mvncv='mvn clean verify' alias mvncvst='mvn clean verify -DskipTests' -alias mvnd='mvn deploy' +alias mvndp='mvn deploy' alias mvndocs='mvn dependency:resolve -Dclassifier=javadoc' alias mvndt='mvn dependency:tree' alias mvne='mvn eclipse:eclipse' From f5cb9a6c978693c9570206f4267ba2589bef1b4c Mon Sep 17 00:00:00 2001 From: Ihor Date: Sat, 17 Jun 2023 13:28:55 +0200 Subject: [PATCH 277/441] fix(git): `gunwipall` now only resets once (#11758) Closes #11750 Co-authored-by: Carlo Sala --- plugins/git/README.md | 2 +- plugins/git/git.plugin.zsh | 18 +++++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index bf4b19f39..05cba8586 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -254,7 +254,7 @@ These features allow to pause a branch development and switch to another one (_" | work_in_progress | Echoes a warning if the current branch is a wip | | gwip | Commit wip branch | | gunwip | Uncommit wip branch | -| gunwipall | Uncommit `--wip--` commits recursively | +| gunwipall | Uncommit all recent `--wip--` commits | ### Deprecated functions diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 192124301..66877df4f 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -27,18 +27,14 @@ function work_in_progress() { command git -c log.showSignature=false log -n 1 2>/dev/null | grep -q -- "--wip--" && echo "WIP!!" } -# Same as `gunwip` but recursive -# "Unwips" all recent `--wip--` commits in loop until there is no left +# Similar to `gunwip` but recursive "Unwips" all recent `--wip--` commits not just the last one function gunwipall() { - while true; do - commit_message=$(git rev-list --max-count=1 --format="%s" HEAD) - if [[ $commit_message =~ "--wip--" ]]; then - git reset "HEAD~1" - (( $? )) && return 1 - else - break - fi - done + local _commit=$(git log --grep='--wip--' --invert-grep --max-count=1 --format=format:%H) + + # Check if a commit without "--wip--" was found and it's not the same as HEAD + if [[ "$_commit" != "$(git rev-parse HEAD)" ]]; then + git reset $_commit || return 1 + fi } # Check if main exists and use instead of master From c0e811c90df387eca4223c7d4dbb3f2d32a684c7 Mon Sep 17 00:00:00 2001 From: WH-2099 Date: Mon, 19 Jun 2023 18:32:37 +0800 Subject: [PATCH 278/441] perf(archlinux): improve `paclist` performance (#11764) --- plugins/archlinux/archlinux.plugin.zsh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index 796ff7adf..fca6548c0 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -25,10 +25,7 @@ alias pacown='pacman -Qo' alias pacupd="sudo pacman -Sy" function paclist() { - local pkgs=$(LC_ALL=C pacman -Qqe) - for pkg in ${(f)pkgs}; do - pacman -Qs --color=auto "^${pkg}\$" || break - done + pacman -Qqe | xargs -I{} -P0 --no-run-if-empty pacman -Qs --color=auto "^{}\$" } function pacdisowned() { From 8ace453f37acf0568bdb2e40920edb7598ad873a Mon Sep 17 00:00:00 2001 From: kang Date: Tue, 20 Jun 2023 08:49:56 +0200 Subject: [PATCH 279/441] feat(git-extras): update completion (2023-06-19 3a258cb) Closes #11712 --- plugins/git-extras/git-extras.plugin.zsh | 176 +++++++---------------- 1 file changed, 48 insertions(+), 128 deletions(-) diff --git a/plugins/git-extras/git-extras.plugin.zsh b/plugins/git-extras/git-extras.plugin.zsh index 6b96e12af..f5fd387d1 100644 --- a/plugins/git-extras/git-extras.plugin.zsh +++ b/plugins/git-extras/git-extras.plugin.zsh @@ -80,22 +80,10 @@ __gitex_specific_branch_names() { _wanted branch-names expl branch-name compadd - $branch_names } -__gitex_chore_branch_names() { - __gitex_specific_branch_names 'chore' -} - __gitex_feature_branch_names() { __gitex_specific_branch_names 'feature' } -__gitex_refactor_branch_names() { - __gitex_specific_branch_names 'refactor' -} - -__gitex_bug_branch_names() { - __gitex_specific_branch_names 'bug' -} - __gitex_submodule_names() { local expl declare -a submodule_names @@ -114,88 +102,29 @@ __gitex_author_names() { } # subcommands +# new subcommand should be added in alphabetical order _git-authors() { _arguments -C \ '(--list -l)'{--list,-l}'[show authors]' \ '--no-email[without email]' \ } -_git-bug() { - local curcontext=$curcontext state line ret=1 - declare -A opt_args - - _arguments -C \ - ': :->command' \ - '*:: :->option-or-argument' && ret=0 - - case $state in - (command) - declare -a commands - commands=( - 'finish:merge bug into the current branch' - ) - _describe -t commands command commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*}-$line[1]: - case $line[1] in - (finish) - _arguments -C \ - ':branch-name:__gitex_bug_branch_names' - ;; - -r|--remote ) - _arguments -C \ - ':remote-name:__gitex_remote_names' - ;; - esac - return 0 - esac - - _arguments \ - '(--remote -r)'{--remote,-r}'[setup remote tracking branch]' -} - - _git-changelog() { _arguments \ '(-l --list)'{-l,--list}'[list commits]' \ } -_git-chore() { - local curcontext=$curcontext state line ret=1 - declare -A opt_args - - _arguments -C \ - ': :->command' \ - '*:: :->option-or-argument' && ret=0 - - case $state in - (command) - declare -a commands - commands=( - 'finish:merge and delete the chore branch' - ) - _describe -t commands command commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*}-$line[1]: - case $line[1] in - (finish) - _arguments -C \ - ':branch-name:__gitex_chore_branch_names' - ;; - -r|--remote ) - _arguments -C \ - ':remote-name:__gitex_remote_names' - ;; - esac - return 0 - esac - +_git-clear() { _arguments \ - '(--remote -r)'{--remote,-r}'[setup remote tracking branch]' + '(-f --force)'{-f,--force}'[force clear]' \ + '(-h --help)'{-h,--help}'[help message]' \ } +_git-coauthor() { + _arguments \ + ':co-author[co-author to add]' \ + ':co-author-email[email address of co-author to add]' +} _git-contrib() { _arguments \ @@ -235,6 +164,11 @@ _git-delete-branch() { ':branch-name:__gitex_branch_names' } +_git-delete-squashed-branches() { + _arguments \ + ':branch-name:__gitex_branch_names' +} + _git-delete-submodule() { _arguments \ @@ -298,6 +232,7 @@ _git-feature() { case $line[1] in (finish) _arguments -C \ + '--squash[Use squash merge]' \ ':branch-name:__gitex_feature_branch_names' ;; -r|--remote ) @@ -327,20 +262,17 @@ _git-guilt() { } _git-ignore() { - _arguments -C \ + _arguments -C \ '(--local -l)'{--local,-l}'[show local gitignore]' \ '(--global -g)'{--global,-g}'[show global gitignore]' \ '(--private -p)'{--private,-p}'[show repo gitignore]' } -_git-ignore() { - _arguments -C \ - '(--append -a)'{--append,-a}'[append .gitignore]' \ - '(--replace -r)'{--replace,-r}'[replace .gitignore]' \ - '(--list-in-table -l)'{--list-in-table,-l}'[print available types in table format]' \ - '(--list-alphabetically -L)'{--list-alphabetically,-L}'[print available types in alphabetical order]' \ - '(--search -s)'{--search,-s}'[search word in available types]' +_git-info() { + _arguments -C \ + '(--color -c)'{--color,-c}'[use color for information titles]' \ + '--no-config[do not show list all variables set in config file, along with their values]' } @@ -357,50 +289,27 @@ _git-missing() { ':second-branch-name:__gitex_branch_names' } - -_git-refactor() { - local curcontext=$curcontext state line ret=1 - declare -A opt_args - +_git-release() { _arguments -C \ - ': :->command' \ - '*:: :->option-or-argument' && ret=0 - - case $state in - (command) - declare -a commands - commands=( - 'finish:merge refactor into the current branch' - ) - _describe -t commands command commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*}-$line[1]: - case $line[1] in - (finish) - _arguments -C \ - ':branch-name:__gitex_refactor_branch_names' - ;; - -r|--remote ) - _arguments -C \ - ':remote-name:__gitex_remote_names' - ;; - esac - return 0 - esac - - _arguments \ - '(--remote -r)'{--remote,-r}'[setup remote tracking branch]' + '-c[Generates/populates the changelog with all commit message since the last tag.]' \ + '-r[The "remote" repository that is destination of a push operation.]' \ + '-m[use the custom commit information instead of the default message.]' \ + '-s[Create a signed and annotated tag.]' \ + '-u[Create a tag, annotated and signed with the given key.]' \ + '--semver[If the latest tag in your repo matches the semver format requirement, you could increase part of it as the new release tag.]' \ + '--prefix[Add a prefix string to semver to allow more complex tags.]' \ + '--no-empty-commit[Avoid creating empty commit if nothing could be committed.]' \ + '--[The arguments listed after "--" separator will be passed to pre/post-release hook.]' } - _git-squash() { + _arguments '--squash-msg[commit with the squashed commit messages]' _arguments \ ':branch-name:__gitex_branch_names' } _git-stamp() { - _arguments -C \ + _arguments -C \ '(--replace -r)'{--replace,-r}'[replace stamps with same id]' } @@ -413,17 +322,19 @@ _git-standup() { '-g[Display GPG signed info]' \ '-h[Display help message]' \ '-L[Enable the inclusion of symbolic links]' \ - '-m[The depth of recursive directory search]' + '-m[The depth of recursive directory search]' \ + '-B[Display the commits in branch groups]' } _git-summary() { _arguments '--line[summarize with lines rather than commits]' + _arguments '--dedup-by-email[remove duplicate users by the email address]' + _arguments '--no-merges[exclude merge commits]' __gitex_commits } - _git-undo(){ - _arguments -C \ + _arguments -C \ '(--soft -s)'{--soft,-s}'[only rolls back the commit but changes remain un-staged]' \ '(--hard -h)'{--hard,-h}'[wipes your commit(s)]' } @@ -432,21 +343,26 @@ zstyle -g existing_user_commands ':completion:*:*:git:*' user-commands zstyle ':completion:*:*:git:*' user-commands $existing_user_commands \ alias:'define, search and show aliases' \ + abort:'abort current revert, merge, rebase, or cherry-pick process' \ archive-file:'export the current head of the git repository to an archive' \ authors:'generate authors report' \ - back:'undo and stage latest commits' \ + browse:'open repo website in browser' \ + browse-ci:'open repo CI page in browser' \ bug:'create bug branch' \ bulk:'run bulk commands' \ + brv:'list branches sorted by their last commit date'\ changelog:'generate a changelog report' \ chore:'create chore branch' \ clear-soft:'soft clean up a repository' \ clear:'rigorously clean up a repository' \ + coauthor:'add a co-author to the last commit' \ commits-since:'show commit logs since some date' \ contrib:'show user contributions' \ count:'show commit count' \ create-branch:'create branches' \ delete-branch:'delete branches' \ delete-merged-branches:'delete merged branches' \ + delete-squashed-branches:'delete squashed branches' \ delete-submodule:'delete submodules' \ delete-tag:'delete tags' \ delta:'lists changed files' \ @@ -465,11 +381,13 @@ zstyle ':completion:*:*:git:*' user-commands $existing_user_commands \ local-commits:'list local commits' \ lock:'lock a file excluded from version control' \ locked:'ls files that have been locked' \ + magic:'commits everything with a generated message' \ merge-into:'merge one branch into another' \ merge-repo:'merge two repo histories' \ missing:'show commits missing from another branch' \ mr:'checks out a merge request locally' \ obliterate:'rewrite past commits to remove some files' \ + paste:'send patches to pastebin sites' \ pr:'checks out a pull request locally' \ psykorebase:'rebase a branch with a merge commit' \ pull-request:'create pull request to GitHub project' \ @@ -479,6 +397,7 @@ zstyle ':completion:*:*:git:*' user-commands $existing_user_commands \ release:'commit, tag and push changes to the repository' \ rename-branch:'rename a branch' \ rename-tag:'rename a tag' \ + rename-remote:'rename a remote' \ repl:'git read-eval-print-loop' \ reset-file:'reset one file' \ root:'show path of root' \ @@ -495,4 +414,5 @@ zstyle ':completion:*:*:git:*' user-commands $existing_user_commands \ sync:'sync local branch with remote branch' \ touch:'touch and add file to the index' \ undo:'remove latest commits' \ - unlock:'unlock a file excluded from version control' + unlock:'unlock a file excluded from version control' \ + utimes:'change files modification time to their last commit date' From 4ba17232dae591f67b8e474fb013d2cb6555696e Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 20 Jun 2023 08:54:35 +0200 Subject: [PATCH 280/441] feat(nvm)!: remove soft-deprecated code BREAKING CHANGE: $NVM_LAZY, $NVM_LAZY_CMD, AND $NVM_AUTOLOAD cannot be used anymore to tweak nvm plugin. Use zstyle-based configurations instead. --- plugins/nvm/nvm.plugin.zsh | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index 31d275415..943678f7a 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -16,29 +16,6 @@ fi # Note: nvm is a function so we need to use `which` which nvm &>/dev/null && return -# TODO: 2022-11-11: Remove soft-deprecate options -if (( ${+NVM_LAZY} + ${+NVM_LAZY_CMD} + ${+NVM_AUTOLOAD} )); then - # Get list of NVM_* variable settings defined - local -a used_vars - used_vars=(${(o)parameters[(I)NVM_(AUTOLOAD|LAZY|LAZY_CMD)]}) - # Nicely print the list in the style `var1, var2 and var3` - echo "${fg[yellow]}[nvm plugin] Variable-style settings are deprecated. Instead of ${(j:, :)used_vars[1,-2]}${used_vars[-2]+ and }${used_vars[-1]}, use:\n" - if (( $+NVM_AUTOLOAD )); then - echo " zstyle ':omz:plugins:nvm' autoload yes" - zstyle ':omz:plugins:nvm' autoload yes - fi - if (( $+NVM_LAZY )); then - echo " zstyle ':omz:plugins:nvm' lazy yes" - zstyle ':omz:plugins:nvm' lazy yes - fi - if (( $+NVM_LAZY_CMD )); then - echo " zstyle ':omz:plugins:nvm' lazy-cmd $NVM_LAZY_CMD" - zstyle ':omz:plugins:nvm' lazy-cmd $NVM_LAZY_CMD - fi - echo "$reset_color" - unset used_vars NVM_AUTOLOAD NVM_LAZY NVM_LAZY_CMD -fi - if zstyle -t ':omz:plugins:nvm' lazy; then # Call nvm when first using nvm, node, npm, pnpm, yarn or other commands in lazy-cmd zstyle -a ':omz:plugins:nvm' lazy-cmd nvm_lazy_cmd From b5be2d39e2d2a598f7bba26d0bae2cce8c7d3d64 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 20 Jun 2023 09:36:11 +0200 Subject: [PATCH 281/441] fix(nvm): disable lazy-loading if autoload is set Closes #11748 --- plugins/nvm/README.md | 3 +++ plugins/nvm/nvm.plugin.zsh | 18 +++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/plugins/nvm/README.md b/plugins/nvm/README.md index 6830c14d0..eee3bf717 100644 --- a/plugins/nvm/README.md +++ b/plugins/nvm/README.md @@ -43,6 +43,9 @@ zstyle ':omz:plugins:nvm' lazy-cmd eslint prettier typescript ... #### `.nvmrc` autoload +Note: _this option cannot be used at the same time as `lazy`. `autoload` will override it and load `nvm` at +startup._ + If set, the plugin will automatically load a node version when if finds a [`.nvmrc` file](https://github.com/nvm-sh/nvm#nvmrc) in the current working directory indicating which node version to load. This can be done, similar as previous options, adding: diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index 943678f7a..484ef2964 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -16,7 +16,18 @@ fi # Note: nvm is a function so we need to use `which` which nvm &>/dev/null && return -if zstyle -t ':omz:plugins:nvm' lazy; then +if [[ -z "$NVM_DIR" ]]; then + echo "[oh-my-zsh] nvm installation cannot be found" + echo "[oh-my-zsh] set NVM_DIR to your installation" + return +fi +if [[ ! -f "$NVM_DIR/nvm.sh" ]]; then + echo "[oh-my-zsh] nvm.sh does not exist in $NVM_DIR" + return +fi + +if zstyle -t ':omz:plugins:nvm' lazy && \ + ! zstyle -t ':omz:plugins:nvm' autoload; then # Call nvm when first using nvm, node, npm, pnpm, yarn or other commands in lazy-cmd zstyle -a ':omz:plugins:nvm' lazy-cmd nvm_lazy_cmd eval " @@ -28,11 +39,8 @@ if zstyle -t ':omz:plugins:nvm' lazy; then } " unset nvm_lazy_cmd -elif [[ -f "$NVM_DIR/nvm.sh" ]]; then - # Load nvm if it exists in $NVM_DIR - source "$NVM_DIR/nvm.sh" else - return + source "$NVM_DIR/nvm.sh" fi # Autoload nvm when finding a .nvmrc file in the current directory From 8a6fc5c16d49368dc8f9ddd965a9e25ef652e129 Mon Sep 17 00:00:00 2001 From: Haltarys <45515869+Haltarys@users.noreply.github.com> Date: Tue, 20 Jun 2023 22:27:14 +0200 Subject: [PATCH 282/441] fix(docker): use `command docker` (#11766) --- plugins/docker/docker.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/docker/docker.plugin.zsh b/plugins/docker/docker.plugin.zsh index e8aad9230..434b1fc60 100644 --- a/plugins/docker/docker.plugin.zsh +++ b/plugins/docker/docker.plugin.zsh @@ -38,7 +38,7 @@ fi { # `docker completion` is only available from 23.0.0 on - local _docker_version=$(docker version --format '{{.Client.Version}}' 2>/dev/null) + local _docker_version=$(command docker version --format '{{.Client.Version}}' 2>/dev/null) if is-at-least 23.0.0 $_docker_version; then # If the completion file doesn't exist yet, we need to autoload it and # bind it to `docker`. Otherwise, compinit will have already done that. @@ -47,6 +47,6 @@ fi autoload -Uz _docker _comps[docker]=_docker fi - docker completion zsh >| "$ZSH_CACHE_DIR/completions/_docker" + command docker completion zsh >| "$ZSH_CACHE_DIR/completions/_docker" fi } &| From 22e710b4e4c8934706ef5047506b3b7594af9138 Mon Sep 17 00:00:00 2001 From: Gustavo Perdomo Date: Mon, 26 Jun 2023 04:35:38 -0400 Subject: [PATCH 283/441] fix(gcloud): add support for `brew` installations (#11772) --- plugins/gcloud/gcloud.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/gcloud/gcloud.plugin.zsh b/plugins/gcloud/gcloud.plugin.zsh index 9c26aea10..5c57302d3 100644 --- a/plugins/gcloud/gcloud.plugin.zsh +++ b/plugins/gcloud/gcloud.plugin.zsh @@ -6,6 +6,7 @@ if [[ -z "${CLOUDSDK_HOME}" ]]; then search_locations=( "$HOME/google-cloud-sdk" + "/usr/local/share/google-cloud-sdk" "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk" "/opt/homebrew/Caskroom/google-cloud-sdk/latest/google-cloud-sdk" "/usr/share/google-cloud-sdk" From d5f1f50ad2d62363785464d5b6eef1a009243d7a Mon Sep 17 00:00:00 2001 From: Richard Mitchell Date: Mon, 26 Jun 2023 04:48:17 -0400 Subject: [PATCH 284/441] docs(git-extras): clarify readme (#11776) --- plugins/git-extras/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git-extras/README.md b/plugins/git-extras/README.md index 2adc9d477..7eb53fcfd 100644 --- a/plugins/git-extras/README.md +++ b/plugins/git-extras/README.md @@ -1,6 +1,6 @@ # git-extras -This plugin provides completion definitions for some of the commands defined by [git-extras](https://github.com/tj/git-extras). +This plugin provides completion definitions for some of the commands defined by [git-extras](https://github.com/tj/git-extras), which must already be installed. To use it, add `git-extras` to the plugins array in your zshrc file: From 8cbe98469d9862d37d43ca4229dc8e915ec377a9 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Mon, 26 Jun 2023 13:05:22 -0400 Subject: [PATCH 285/441] fix(git): remove color codes from some aliases (#11770) --- plugins/git/README.md | 4 ++-- plugins/git/git.plugin.zsh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 05cba8586..d18531955 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -26,8 +26,8 @@ plugins=(... git) | gbda | git branch --no-color --merged \| grep -vE "^([+*]\|\s*($(git_main_branch)\|$(git_develop_branch))\s*$)" \| xargs git branch --delete 2>/dev/null | | gbD | git branch --delete --force | | gbg | git branch -vv | grep ": gone\]" | -| gbgd | local res=$(git branch -vv | grep ": gone\]" | awk '{print $1}') && [[ $res ]] && echo $res | xargs git branch -d | -| gbgD | local res=$(git branch -vv | grep ": gone\]" | awk '{print $1}') && [[ $res ]] && echo $res | xargs git branch -D | +| gbgd | git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -d | +| gbgD | git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -D | | gbl | git blame -b -w | | gbnm | git branch --no-merged | | gbr | git branch --remote | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 66877df4f..d04edea5e 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -84,8 +84,8 @@ alias gbd='git branch --delete' alias gbda='git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null' alias gbD='git branch --delete --force' alias gbg='git branch -vv | grep ": gone\]"' -alias gbgd='local res=$(gbg | awk '"'"'{print $1}'"'"') && [[ $res ]] && echo $res | xargs git branch -d' -alias gbgD='local res=$(gbg | awk '"'"'{print $1}'"'"') && [[ $res ]] && echo $res | xargs git branch -D' +alias gbgd='git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -d' +alias gbgD='git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -D' alias gbl='git blame -b -w' alias gbnm='git branch --no-merged' alias gbr='git branch --remote' From 723af07a566cbadc26e61f69c44a1a67ed1ba0c8 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Thu, 29 Jun 2023 13:25:05 +0200 Subject: [PATCH 286/441] fix(docker): add static completion script --- plugins/docker/_docker | 3126 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 3126 insertions(+) create mode 100644 plugins/docker/_docker diff --git a/plugins/docker/_docker b/plugins/docker/_docker new file mode 100644 index 000000000..466b09d94 --- /dev/null +++ b/plugins/docker/_docker @@ -0,0 +1,3126 @@ +#compdef docker dockerd +# +# zsh completion for docker (http://docker.com) +# +# version: 0.3.0 +# github: https://github.com/felixr/docker-zsh-completion +# +# contributors: +# - Felix Riedel +# - Steve Durrheimer +# - Vincent Bernat +# - Rohan Verma +# +# license: +# +# Copyright (c) 2013, Felix Riedel +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# Short-option stacking can be enabled with: +# zstyle ':completion:*:*:docker:*' option-stacking yes +# zstyle ':completion:*:*:docker-*:*' option-stacking yes +__docker_arguments() { + if zstyle -t ":completion:${curcontext}:" option-stacking; then + print -- -s + fi +} + +__docker_get_containers() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + local kind type line s + declare -a running stopped lines args names + + kind=$1; shift + type=$1; shift + [[ $kind = (stopped|all) ]] && args=($args -a) + + lines=(${(f)${:-"$(_call_program commands docker $docker_options ps --format 'table' --no-trunc $args)"$'\n'}}) + + # Parse header line to find columns + local i=1 j=1 k header=${lines[1]} + declare -A begin end + while (( j < ${#header} - 1 )); do + i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) + j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) + k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) + begin[${header[$i,$((j-1))]}]=$i + end[${header[$i,$((j-1))]}]=$k + done + end[${header[$i,$((j-1))]}]=-1 # Last column, should go to the end of the line + lines=(${lines[2,-1]}) + + # Container ID + if [[ $type = (ids|all) ]]; then + for line in $lines; do + s="${${line[${begin[CONTAINER ID]},${end[CONTAINER ID]}]%% ##}[0,12]}" + s="$s:${(l:15:: :::)${${line[${begin[CREATED]},${end[CREATED]}]/ ago/}%% ##}}" + s="$s, ${${${line[${begin[IMAGE]},${end[IMAGE]}]}/:/\\:}%% ##}" + if [[ ${line[${begin[STATUS]},${end[STATUS]}]} = (Exit*|Created*) ]]; then + stopped=($stopped $s) + else + running=($running $s) + fi + done + fi + + # Names: we only display the one without slash. All other names + # are generated and may clutter the completion. However, with + # Swarm, all names may be prefixed by the swarm node name. + if [[ $type = (names|all) ]]; then + for line in $lines; do + names=(${(ps:,:)${${line[${begin[NAMES]},${end[NAMES]}]}%% *}}) + # First step: find a common prefix and strip it (swarm node case) + (( ${#${(u)names%%/*}} == 1 )) && names=${names#${names[1]%%/*}/} + # Second step: only keep the first name without a / + s=${${names:#*/*}[1]} + # If no name, well give up. + (( $#s != 0 )) || continue + s="$s:${(l:15:: :::)${${line[${begin[CREATED]},${end[CREATED]}]/ ago/}%% ##}}" + s="$s, ${${${line[${begin[IMAGE]},${end[IMAGE]}]}/:/\\:}%% ##}" + if [[ ${line[${begin[STATUS]},${end[STATUS]}]} = (Exit*|Created*) ]]; then + stopped=($stopped $s) + else + running=($running $s) + fi + done + fi + + [[ $kind = (running|all) ]] && _describe -t containers-running "running containers" running "$@" && ret=0 + [[ $kind = (stopped|all) ]] && _describe -t containers-stopped "stopped containers" stopped "$@" && ret=0 + return ret +} + +__docker_complete_stopped_containers() { + [[ $PREFIX = -* ]] && return 1 + __docker_get_containers stopped all "$@" +} + +__docker_complete_running_containers() { + [[ $PREFIX = -* ]] && return 1 + __docker_get_containers running all "$@" +} + +__docker_complete_containers() { + [[ $PREFIX = -* ]] && return 1 + __docker_get_containers all all "$@" +} + +__docker_complete_containers_ids() { + [[ $PREFIX = -* ]] && return 1 + __docker_get_containers all ids "$@" +} + +__docker_complete_containers_names() { + [[ $PREFIX = -* ]] && return 1 + __docker_get_containers all names "$@" +} + +__docker_complete_info_plugins() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + emulate -L zsh + setopt extendedglob + local -a plugins + plugins=(${(ps: :)${(M)${(f)${${"$(_call_program commands docker $docker_options info)"##*$'\n'Plugins:}%%$'\n'^ *}}:# $1: *}## $1: }) + _describe -t plugins "$1 plugins" plugins && ret=0 + return ret +} + +__docker_complete_images() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + declare -a images + images=(${${${(f)${:-"$(_call_program commands docker $docker_options images)"$'\n'}}[2,-1]}/(#b)([^ ]##) ##([^ ]##) ##([^ ]##)*/${match[3]}:${(r:15:: :::)match[2]} in ${match[1]}}) + _describe -t docker-images "images" images && ret=0 + __docker_complete_repositories_with_tags && ret=0 + return ret +} + +__docker_complete_repositories() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + declare -a repos + repos=(${${${(f)${:-"$(_call_program commands docker $docker_options images)"$'\n'}}%% *}[2,-1]}) + repos=(${repos#}) + _describe -t docker-repos "repositories" repos && ret=0 + return ret +} + +__docker_complete_repositories_with_tags() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + declare -a repos onlyrepos matched + declare m + repos=(${${${${(f)${:-"$(_call_program commands docker $docker_options images)"$'\n'}}[2,-1]}/ ##/:::}%% *}) + repos=(${${repos%:::}#}) + # Check if we have a prefix-match for the current prefix. + onlyrepos=(${repos%::*}) + for m in $onlyrepos; do + [[ ${PREFIX##${~~m}} != ${PREFIX} ]] && { + # Yes, complete with tags + repos=(${${repos/:::/:}/:/\\:}) + _describe -t docker-repos-with-tags "repositories with tags" repos && ret=0 + return ret + } + done + # No, only complete repositories + onlyrepos=(${${repos%:::*}/:/\\:}) + _describe -t docker-repos "repositories" onlyrepos -qS : && ret=0 + + return ret +} + +__docker_search() { + [[ $PREFIX = -* ]] && return 1 + local cache_policy + zstyle -s ":completion:${curcontext}:" cache-policy cache_policy + if [[ -z "$cache_policy" ]]; then + zstyle ":completion:${curcontext}:" cache-policy __docker_caching_policy + fi + + local searchterm cachename + searchterm="${words[$CURRENT]%/}" + cachename=_docker-search-$searchterm + + local expl + local -a result + if ( [[ ${(P)+cachename} -eq 0 ]] || _cache_invalid ${cachename#_} ) \ + && ! _retrieve_cache ${cachename#_}; then + _message "Searching for ${searchterm}..." + result=(${${${(f)${:-"$(_call_program commands docker $docker_options search $searchterm)"$'\n'}}%% *}[2,-1]}) + _store_cache ${cachename#_} result + fi + _wanted dockersearch expl 'available images' compadd -a result +} + +__docker_get_log_options() { + [[ $PREFIX = -* ]] && return 1 + + integer ret=1 + local log_driver=${opt_args[--log-driver]:-"all"} + local -a common_options common_options2 awslogs_options fluentd_options gelf_options journald_options json_file_options logentries_options syslog_options splunk_options + + common_options=("max-buffer-size" "mode") + common_options2=("env" "env-regex" "labels") + awslogs_options=($common_options "awslogs-create-group" "awslogs-datetime-format" "awslogs-group" "awslogs-multiline-pattern" "awslogs-region" "awslogs-stream" "tag") + fluentd_options=($common_options $common_options2 "fluentd-address" "fluentd-async-connect" "fluentd-buffer-limit" "fluentd-retry-wait" "fluentd-max-retries" "fluentd-sub-second-precision" "tag") + gcplogs_options=($common_options $common_options2 "gcp-log-cmd" "gcp-meta-id" "gcp-meta-name" "gcp-meta-zone" "gcp-project") + gelf_options=($common_options $common_options2 "gelf-address" "gelf-compression-level" "gelf-compression-type" "tag") + journald_options=($common_options $common_options2 "tag") + json_file_options=($common_options $common_options2 "max-file" "max-size") + logentries_options=($common_options $common_options2 "logentries-token" "tag") + syslog_options=($common_options $common_options2 "syslog-address" "syslog-facility" "syslog-format" "syslog-tls-ca-cert" "syslog-tls-cert" "syslog-tls-key" "syslog-tls-skip-verify" "tag") + splunk_options=($common_options $common_options2 "splunk-caname" "splunk-capath" "splunk-format" "splunk-gzip" "splunk-gzip-level" "splunk-index" "splunk-insecureskipverify" "splunk-source" "splunk-sourcetype" "splunk-token" "splunk-url" "splunk-verify-connection" "tag") + + [[ $log_driver = (awslogs|all) ]] && _describe -t awslogs-options "awslogs options" awslogs_options "$@" && ret=0 + [[ $log_driver = (fluentd|all) ]] && _describe -t fluentd-options "fluentd options" fluentd_options "$@" && ret=0 + [[ $log_driver = (gcplogs|all) ]] && _describe -t gcplogs-options "gcplogs options" gcplogs_options "$@" && ret=0 + [[ $log_driver = (gelf|all) ]] && _describe -t gelf-options "gelf options" gelf_options "$@" && ret=0 + [[ $log_driver = (journald|all) ]] && _describe -t journald-options "journald options" journald_options "$@" && ret=0 + [[ $log_driver = (json-file|all) ]] && _describe -t json-file-options "json-file options" json_file_options "$@" && ret=0 + [[ $log_driver = (logentries|all) ]] && _describe -t logentries-options "logentries options" logentries_options "$@" && ret=0 + [[ $log_driver = (syslog|all) ]] && _describe -t syslog-options "syslog options" syslog_options "$@" && ret=0 + [[ $log_driver = (splunk|all) ]] && _describe -t splunk-options "splunk options" splunk_options "$@" && ret=0 + + return ret +} + +__docker_complete_log_drivers() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + drivers=(awslogs etwlogs fluentd gcplogs gelf journald json-file none splunk syslog) + _describe -t log-drivers "log drivers" drivers && ret=0 + return ret +} + +__docker_complete_log_options() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + + if compset -P '*='; then + case "${${words[-1]%=*}#*=}" in + (syslog-format) + local opts=('rfc3164' 'rfc5424' 'rfc5424micro') + _describe -t syslog-format-opts "syslog format options" opts && ret=0 + ;; + (mode) + local opts=('blocking' 'non-blocking') + _describe -t mode-opts "mode options" opts && ret=0 + ;; + *) + _message 'value' && ret=0 + ;; + esac + else + __docker_get_log_options -qS "=" && ret=0 + fi + + return ret +} + +__docker_complete_detach_keys() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + + compset -P "*," + keys=(${:-{a-z}}) + ctrl_keys=(${:-ctrl-{{a-z},{@,'[','\\','^',']',_}}}) + _describe -t detach_keys "[a-z]" keys -qS "," && ret=0 + _describe -t detach_keys-ctrl "'ctrl-' + 'a-z @ [ \\\\ ] ^ _'" ctrl_keys -qS "," && ret=0 +} + +__docker_complete_pid() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + local -a opts vopts + + opts=('host') + vopts=('container') + + if compset -P '*:'; then + case "${${words[-1]%:*}#*=}" in + (container) + __docker_complete_running_containers && ret=0 + ;; + *) + _message 'value' && ret=0 + ;; + esac + else + _describe -t pid-value-opts "PID Options with value" vopts -qS ":" && ret=0 + _describe -t pid-opts "PID Options" opts && ret=0 + fi + + return ret +} + +__docker_complete_runtimes() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + + emulate -L zsh + setopt extendedglob + local -a runtimes_opts + runtimes_opts=(${(ps: :)${(f)${${"$(_call_program commands docker $docker_options info)"##*$'\n'Runtimes: }%%$'\n'^ *}}}) + _describe -t runtimes-opts "runtimes options" runtimes_opts && ret=0 +} + +__docker_complete_ps_filters() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + + if compset -P '*='; then + case "${${words[-1]%=*}#*=}" in + (ancestor) + __docker_complete_images && ret=0 + ;; + (before|since) + __docker_complete_containers && ret=0 + ;; + (health) + health_opts=('healthy' 'none' 'starting' 'unhealthy') + _describe -t health-filter-opts "health filter options" health_opts && ret=0 + ;; + (id) + __docker_complete_containers_ids && ret=0 + ;; + (is-task) + _describe -t boolean-filter-opts "filter options" boolean_opts && ret=0 + ;; + (name) + __docker_complete_containers_names && ret=0 + ;; + (network) + __docker_complete_networks && ret=0 + ;; + (status) + status_opts=('created' 'dead' 'exited' 'paused' 'restarting' 'running' 'removing') + _describe -t status-filter-opts "status filter options" status_opts && ret=0 + ;; + (volume) + __docker_complete_volumes && ret=0 + ;; + *) + _message 'value' && ret=0 + ;; + esac + else + opts=('ancestor' 'before' 'exited' 'expose' 'health' 'id' 'label' 'name' 'network' 'publish' 'since' 'status' 'volume') + _describe -t filter-opts "Filter Options" opts -qS "=" && ret=0 + fi + + return ret +} + +__docker_complete_search_filters() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + declare -a boolean_opts opts + + boolean_opts=('true' 'false') + opts=('is-automated' 'is-official' 'stars') + + if compset -P '*='; then + case "${${words[-1]%=*}#*=}" in + (is-automated|is-official) + _describe -t boolean-filter-opts "filter options" boolean_opts && ret=0 + ;; + *) + _message 'value' && ret=0 + ;; + esac + else + _describe -t filter-opts "filter options" opts -qS "=" && ret=0 + fi + + return ret +} + +__docker_complete_images_filters() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + declare -a boolean_opts opts + + boolean_opts=('true' 'false') + opts=('before' 'dangling' 'label' 'reference' 'since') + + if compset -P '*='; then + case "${${words[-1]%=*}#*=}" in + (before|reference|since) + __docker_complete_images && ret=0 + ;; + (dangling) + _describe -t boolean-filter-opts "filter options" boolean_opts && ret=0 + ;; + *) + _message 'value' && ret=0 + ;; + esac + else + _describe -t filter-opts "Filter Options" opts -qS "=" && ret=0 + fi + + return ret +} + +__docker_complete_events_filter() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + declare -a opts + + opts=('container' 'daemon' 'event' 'image' 'label' 'network' 'scope' 'type' 'volume') + + if compset -P '*='; then + case "${${words[-1]%=*}#*=}" in + (container) + __docker_complete_containers && ret=0 + ;; + (daemon) + emulate -L zsh + setopt extendedglob + local -a daemon_opts + daemon_opts=( + ${(f)${${"$(_call_program commands docker $docker_options info)"##*$'\n'Name: }%%$'\n'^ *}} + ${${(f)${${"$(_call_program commands docker $docker_options info)"##*$'\n'ID: }%%$'\n'^ *}}//:/\\:} + ) + _describe -t daemon-filter-opts "daemon filter options" daemon_opts && ret=0 + ;; + (event) + local -a event_opts + event_opts=('attach' 'commit' 'connect' 'copy' 'create' 'delete' 'destroy' 'detach' 'die' 'disable' 'disconnect' 'enable' 'exec_create' 'exec_detach' + 'exec_start' 'export' 'health_status' 'import' 'install' 'kill' 'load' 'mount' 'oom' 'pause' 'pull' 'push' 'reload' 'remove' 'rename' 'resize' + 'restart' 'save' 'start' 'stop' 'tag' 'top' 'unmount' 'unpause' 'untag' 'update') + _describe -t event-filter-opts "event filter options" event_opts && ret=0 + ;; + (image) + __docker_complete_images && ret=0 + ;; + (network) + __docker_complete_networks && ret=0 + ;; + (scope) + local -a scope_opts + scope_opts=('local' 'swarm') + _describe -t scope-filter-opts "scope filter options" scope_opts && ret=0 + ;; + (type) + local -a type_opts + type_opts=('container' 'daemon' 'image' 'network' 'volume') + _describe -t type-filter-opts "type filter options" type_opts && ret=0 + ;; + (volume) + __docker_complete_volumes && ret=0 + ;; + *) + _message 'value' && ret=0 + ;; + esac + else + _describe -t filter-opts "filter options" opts -qS "=" && ret=0 + fi + + return ret +} + +__docker_complete_prune_filters() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + declare -a opts + + opts=('until') + + if compset -P '*='; then + case "${${words[-1]%=*}#*=}" in + *) + _message 'value' && ret=0 + ;; + esac + else + _describe -t filter-opts "filter options" opts -qS "=" && ret=0 + fi + + return ret +} + +# BO checkpoint + +__docker_checkpoint_commands() { + local -a _docker_checkpoint_subcommands + _docker_checkpoint_subcommands=( + "create:Create a checkpoint from a running container" + "ls:List checkpoints for a container" + "rm:Remove a checkpoint" + ) + _describe -t docker-checkpoint-commands "docker checkpoint command" _docker_checkpoint_subcommands +} + +__docker_checkpoint_subcommand() { + local -a _command_args opts_help + local expl help="--help" + integer ret=1 + + opts_help=("(: -)--help[Print usage]") + + case "$words[1]" in + (create) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--checkpoint-dir=[Use a custom checkpoint storage directory]:dir:_directories" \ + "($help)--leave-running[Leave the container running after checkpoint]" \ + "($help -)1:container:__docker_complete_running_containers" \ + "($help -)2:checkpoint: " && ret=0 + ;; + (ls|list) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--checkpoint-dir=[Use a custom checkpoint storage directory]:dir:_directories" \ + "($help -)1:container:__docker_complete_containers" && ret=0 + ;; + (rm|remove) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--checkpoint-dir=[Use a custom checkpoint storage directory]:dir:_directories" \ + "($help -)1:container:__docker_complete_containers" \ + "($help -)2:checkpoint: " && ret=0 + ;; + (help) + _arguments $(__docker_arguments) ":subcommand:__docker_checkpoint_commands" && ret=0 + ;; + esac + + return ret +} + +# EO checkpoint + +# BO container + +__docker_container_commands() { + local -a _docker_container_subcommands + _docker_container_subcommands=( + "attach:Attach to a running container" + "commit:Create a new image from a container's changes" + "cp:Copy files/folders between a container and the local filesystem" + "create:Create a new container" + "diff:Inspect changes on a container's filesystem" + "exec:Execute a command in a running container" + "export:Export a container's filesystem as a tar archive" + "inspect:Display detailed information on one or more containers" + "kill:Kill one or more running containers" + "logs:Fetch the logs of a container" + "ls:List containers" + "pause:Pause all processes within one or more containers" + "port:List port mappings or a specific mapping for the container" + "prune:Remove all stopped containers" + "rename:Rename a container" + "restart:Restart one or more containers" + "rm:Remove one or more containers" + "run:Create and run a new container from an image" + "start:Start one or more stopped containers" + "stats:Display a live stream of container(s) resource usage statistics" + "stop:Stop one or more running containers" + "top:Display the running processes of a container" + "unpause:Unpause all processes within one or more containers" + "update:Update configuration of one or more containers" + "wait:Block until one or more containers stop, then print their exit codes" + ) + _describe -t docker-container-commands "docker container command" _docker_container_subcommands +} + +__docker_container_subcommand() { + local -a _command_args opts_help opts_attach_exec_run_start opts_create_run opts_create_run_update + local expl help="--help" + integer ret=1 + + opts_attach_exec_run_start=( + "($help)--detach-keys=[Escape key sequence used to detach a container]:sequence:__docker_complete_detach_keys" + ) + opts_create_run=( + "($help -a --attach)"{-a=,--attach=}"[Attach to stdin, stdout or stderr]:device:(STDIN STDOUT STDERR)" + "($help)*--add-host=[Add a custom host-to-IP mapping]:host\:ip mapping: " + "($help)*--annotation=[Add an annotation to the container (passed through to the OCI runtime)]:annotations: " + "($help)*--blkio-weight-device=[Block IO (relative device weight)]:device:Block IO weight: " + "($help)*--cap-add=[Add Linux capabilities]:capability: " + "($help)*--cap-drop=[Drop Linux capabilities]:capability: " + "($help)--cgroupns=[Cgroup namespace mode to use]:cgroup namespace mode: " + "($help)--cgroup-parent=[Parent cgroup for the container]:cgroup: " + "($help)--cidfile=[Write the container ID to the file]:CID file:_files" + "($help)--cpus=[Number of CPUs (default 0.000)]:cpus: " + "($help)*--device=[Add a host device to the container]:device:_files" + "($help)*--device-cgroup-rule=[Add a rule to the cgroup allowed devices list]:device:cgroup: " + "($help)*--device-read-bps=[Limit the read rate (bytes per second) from a device]:device:IO rate: " + "($help)*--device-read-iops=[Limit the read rate (IO per second) from a device]:device:IO rate: " + "($help)*--device-write-bps=[Limit the write rate (bytes per second) to a device]:device:IO rate: " + "($help)*--device-write-iops=[Limit the write rate (IO per second) to a device]:device:IO rate: " + "($help)--disable-content-trust[Skip image verification]" + "($help)*--dns=[Custom DNS servers]:DNS server: " + "($help)*--dns-option=[Custom DNS options]:DNS option: " + "($help)*--dns-search=[Custom DNS search domains]:DNS domains: " + "($help)*--domainname=[Container NIS domain name]:domainname:_hosts" + "($help)*"{-e=,--env=}"[Environment variables]:environment variable: " + "($help)--entrypoint=[Overwrite the default entrypoint of the image]:entry point: " + "($help)*--env-file=[Read environment variables from a file]:environment file:_files" + "($help)*--expose=[Expose a port from the container without publishing it]: " + "($help)*--gpus=[GPU devices to add to the container ('all' to pass all GPUs)]:device: " + "($help)*--group-add=[Set one or more supplementary user groups for the container]:group:_groups" + "($help -h --hostname)"{-h=,--hostname=}"[Container host name]:hostname:_hosts" + "($help -i --interactive)"{-i,--interactive}"[Keep stdin open even if not attached]" + "($help)--init[Run an init inside the container that forwards signals and reaps processes]" + "($help)--ip=[IPv4 address]:IPv4: " + "($help)--ip6=[IPv6 address]:IPv6: " + "($help)--ipc=[IPC namespace to use]:IPC namespace: " + "($help)--isolation=[Container isolation technology]:isolation:(default hyperv process)" + "($help)*--link=[Add link to another container]:link:->link" + "($help)*--link-local-ip=[Container IPv4/IPv6 link-local addresses]:IPv4/IPv6: " + "($help)*"{-l=,--label=}"[Container metadata]:label: " + "($help)--log-driver=[Default driver for container logs]:logging driver:__docker_complete_log_drivers" + "($help)*--log-opt=[Log driver specific options]:log driver options:__docker_complete_log_options" + "($help)--mac-address=[Container MAC address]:MAC address: " + "($help)*--mount=[Attach a filesystem mount to the container]:mount: " + "($help)--name=[Container name]:name: " + "($help)--network=[Connect a container to a network]:network mode:(bridge none container host)" + "($help)*--network-alias=[Add network-scoped alias for the container]:alias: " + "($help)--oom-kill-disable[Disable OOM Killer]" + "($help)--oom-score-adj[Tune the host's OOM preferences for containers (accepts -1000 to 1000)]" + "($help)--pids-limit[Tune container pids limit (set -1 for unlimited)]" + "($help -P --publish-all)"{-P,--publish-all}"[Publish all exposed ports]" + "($help)*"{-p=,--publish=}"[Expose a container's port to the host]:port:_ports" + "($help)--pid=[PID namespace to use]:PID namespace:__docker_complete_pid" + "($help)--privileged[Give extended privileges to this container]" + "($help -q --quiet)"{-q,--quiet}"[Suppress the pull output]" + "($help)--read-only[Mount the container's root filesystem as read only]" + "($help)*--security-opt=[Security options]:security option: " + "($help)*--shm-size=[Size of '/dev/shm' (format is '')]:shm size: " + "($help)--stop-signal=[Signal to kill a container]:signal:_signals" + "($help)--stop-timeout=[Timeout (in seconds) to stop a container]:time: " + "($help)*--sysctl=-[sysctl options]:sysctl: " + "($help -t --tty)"{-t,--tty}"[Allocate a pseudo-tty]" + "($help -u --user)"{-u=,--user=}"[Username or UID]:user:_users" + "($help)*--ulimit=[ulimit options]:ulimit: " + "($help)--userns=[Container user namespace]:user namespace:(host)" + "($help)--tmpfs[mount tmpfs]" + "($help)*-v[Bind mount a volume]:volume:_directories -W / -P '/' -S '\:' -r '/ '" + "($help)--volume-driver=[Optional volume driver for the container]:volume driver:(local)" + "($help)*--volumes-from=[Mount volumes from the specified container]:volume: " + "($help -w --workdir)"{-w=,--workdir=}"[Working directory inside the container]:directory:_directories" + ) + opts_create_run_update=( + "($help)--blkio-weight=[Block IO (relative weight), between 10 and 1000]:Block IO weight:(10 100 500 1000)" + "($help -c --cpu-shares)"{-c=,--cpu-shares=}"[CPU shares (relative weight)]:CPU shares:(0 10 100 200 500 800 1000)" + "($help)--cpu-period=[Limit the CPU CFS (Completely Fair Scheduler) period]:CPU period: " + "($help)--cpu-quota=[Limit the CPU CFS (Completely Fair Scheduler) quota]:CPU quota: " + "($help)--cpu-rt-period=[Limit the CPU real-time period]:CPU real-time period in microseconds: " + "($help)--cpu-rt-runtime=[Limit the CPU real-time runtime]:CPU real-time runtime in microseconds: " + "($help)--cpuset-cpus=[CPUs in which to allow execution]:CPUs: " + "($help)--cpuset-mems=[MEMs in which to allow execution]:MEMs: " + "($help)--kernel-memory=[Kernel memory limit in bytes]:Memory limit: " + "($help -m --memory)"{-m=,--memory=}"[Memory limit]:Memory limit: " + "($help)--memory-reservation=[Memory soft limit]:Memory limit: " + "($help)--memory-swap=[Total memory limit with swap]:Memory limit: " + "($help)--pids-limit[Tune container pids limit (set -1 for unlimited)]" + "($help)--restart=[Restart policy]:restart policy:(no on-failure always unless-stopped)" + ) + opts_help=("(: -)--help[Print usage]") + + case "$words[1]" in + (attach) + _arguments $(__docker_arguments) \ + $opts_help \ + $opts_attach_exec_run_start \ + "($help)--no-stdin[Do not attach stdin]" \ + "($help)--sig-proxy[Proxy all received signals to the process (non-TTY mode only)]" \ + "($help -):containers:__docker_complete_running_containers" && ret=0 + ;; + (commit) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -a --author)"{-a=,--author=}"[Author]:author: " \ + "($help)*"{-c=,--change=}"[Apply Dockerfile instruction to the created image]:Dockerfile:_files" \ + "($help -m --message)"{-m=,--message=}"[Commit message]:message: " \ + "($help -p --pause)"{-p,--pause}"[Pause container during commit]" \ + "($help -):container:__docker_complete_containers" \ + "($help -): :__docker_complete_repositories_with_tags" && ret=0 + ;; + (cp) + local state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -L --follow-link)"{-L,--follow-link}"[Always follow symbol link]" \ + "($help -)1:container:->container" \ + "($help -)2:hostpath:_files" && ret=0 + case $state in + (container) + if compset -P "*:"; then + _files && ret=0 + else + __docker_complete_containers -qS ":" && ret=0 + fi + ;; + esac + ;; + (create) + local state + _arguments $(__docker_arguments) \ + $opts_help \ + $opts_create_run \ + $opts_create_run_update \ + "($help -): :__docker_complete_images" \ + "($help -):command: _command_names -e" \ + "($help -)*::arguments: _normal" && ret=0 + case $state in + (link) + if compset -P "*:"; then + _wanted alias expl "Alias" compadd -E "" && ret=0 + else + __docker_complete_running_containers -qS ":" && ret=0 + fi + ;; + esac + ;; + (diff) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)*:containers:__docker_complete_containers" && ret=0 + ;; + (exec) + local state + _arguments $(__docker_arguments) \ + $opts_help \ + $opts_attach_exec_run_start \ + "($help -d --detach)"{-d,--detach}"[Detached mode: leave the container running in the background]" \ + "($help)*"{-e=,--env=}"[Set environment variables]:environment variable: " \ + "($help)*--env-file=[Read environment variables from a file]:environment file:_files" \ + "($help -i --interactive)"{-i,--interactive}"[Keep stdin open even if not attached]" \ + "($help)--privileged[Give extended Linux capabilities to the command]" \ + "($help -t --tty)"{-t,--tty}"[Allocate a pseudo-tty]" \ + "($help -u --user)"{-u=,--user=}"[Username or UID]:user:_users" \ + "($help -w --workdir)"{-w=,--workdir=}"[Working directory inside the container]:directory:_directories" \ + "($help -):containers:__docker_complete_running_containers" \ + "($help -)*::command:->anycommand" && ret=0 + case $state in + (anycommand) + shift 1 words + (( CURRENT-- )) + _normal && ret=0 + ;; + esac + ;; + (export) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -o --output)"{-o=,--output=}"[Write to a file, instead of stdout]:output file:_files" \ + "($help -)*:containers:__docker_complete_containers" && ret=0 + ;; + (inspect) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ + "($help -s --size)"{-s,--size}"[Display total file sizes]" \ + "($help -)*:containers:__docker_complete_containers" && ret=0 + ;; + (kill) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -s --signal)"{-s=,--signal=}"[Signal to send]:signal:_signals" \ + "($help -)*:containers:__docker_complete_running_containers" && ret=0 + ;; + (logs) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--details[Show extra details provided to logs]" \ + "($help -f --follow)"{-f,--follow}"[Follow log output]" \ + "($help -s --since)"{-s=,--since=}"[Show logs since this timestamp]:timestamp: " \ + "($help -t --timestamps)"{-t,--timestamps}"[Show timestamps]" \ + "($help -n --tail)"{-n=,--tail=}"[Number of lines to show from the end of the logs]:lines:(1 10 20 50 all)" \ + "($help -)*:containers:__docker_complete_containers" && ret=0 + ;; + (ls|list) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -a --all)"{-a,--all}"[Show all containers]" \ + "($help)--before=[Show only container created before...]:containers:__docker_complete_containers" \ + "($help)*"{-f=,--filter=}"[Filter values]:filter:__docker_complete_ps_filters" \ + "($help)--format=[Format the output using the given Go template]:template: " \ + "($help -l --latest)"{-l,--latest}"[Show only the latest created container]" \ + "($help -n --last)"{-n=,--last=}"[Show n last created containers (includes all states)]:n:(1 5 10 25 50)" \ + "($help)--no-trunc[Do not truncate output]" \ + "($help -q --quiet)"{-q,--quiet}"[Only show container IDs]" \ + "($help -s --size)"{-s,--size}"[Display total file sizes]" \ + "($help)--since=[Show only containers created since...]:containers:__docker_complete_containers" && ret=0 + ;; + (pause|unpause) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)*:containers:__docker_complete_running_containers" && ret=0 + ;; + (port) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)1:containers:__docker_complete_running_containers" \ + "($help -)2:port:_ports" && ret=0 + ;; + (prune) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)*--filter=[Filter values]:filter:__docker_complete_prune_filters" \ + "($help -f --force)"{-f,--force}"[Do not prompt for confirmation]" && ret=0 + ;; + (rename) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -):old name:__docker_complete_containers" \ + "($help -):new name: " && ret=0 + ;; + (restart) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -t --time)"{-t=,--time=}"[Number of seconds to try to stop for before killing the container]:seconds to before killing:(1 5 10 30 60)" \ + "($help -)*:containers:__docker_complete_containers" && ret=0 + ;; + (rm) + local state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --force)"{-f,--force}"[Force removal]" \ + "($help -l --link)"{-l,--link}"[Remove the specified link and not the underlying container]" \ + "($help -v --volumes)"{-v,--volumes}"[Remove the volumes associated to the container]" \ + "($help -)*:containers:->values" && ret=0 + case $state in + (values) + if [[ ${words[(r)-f]} == -f || ${words[(r)--force]} == --force ]]; then + __docker_complete_containers && ret=0 + else + __docker_complete_stopped_containers && ret=0 + fi + ;; + esac + ;; + (run) + local state + _arguments $(__docker_arguments) \ + $opts_help \ + $opts_create_run \ + $opts_create_run_update \ + $opts_attach_exec_run_start \ + "($help -d --detach)"{-d,--detach}"[Detached mode: leave the container running in the background]" \ + "($help)--health-cmd=[Command to run to check health]:command: " \ + "($help)--health-interval=[Time between running the check]:time: " \ + "($help)--health-retries=[Consecutive failures needed to report unhealthy]:retries:(1 2 3 4 5)" \ + "($help)--health-timeout=[Maximum time to allow one check to run]:time: " \ + "($help)--no-healthcheck[Disable any container-specified HEALTHCHECK]" \ + "($help)--rm[Remove intermediate containers when it exits]" \ + "($help)--runtime=[Name of the runtime to be used for that container]:runtime:__docker_complete_runtimes" \ + "($help)--sig-proxy[Proxy all received signals to the process (non-TTY mode only)]" \ + "($help)--storage-opt=[Storage driver options for the container]:storage options:->storage-opt" \ + "($help -): :__docker_complete_images" \ + "($help -):command: _command_names -e" \ + "($help -)*::arguments: _normal" && ret=0 + case $state in + (link) + if compset -P "*:"; then + _wanted alias expl "Alias" compadd -E "" && ret=0 + else + __docker_complete_running_containers -qS ":" && ret=0 + fi + ;; + (storage-opt) + if compset -P "*="; then + _message "value" && ret=0 + else + opts=('size') + _describe -t filter-opts "storage options" opts -qS "=" && ret=0 + fi + ;; + esac + ;; + (start) + _arguments $(__docker_arguments) \ + $opts_help \ + $opts_attach_exec_run_start \ + "($help -a --attach)"{-a,--attach}"[Attach container's stdout/stderr and forward all signals]" \ + "($help -i --interactive)"{-i,--interactive}"[Attach container's stdin]" \ + "($help -)*:containers:__docker_complete_stopped_containers" && ret=0 + ;; + (stats) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -a --all)"{-a,--all}"[Show all containers (default shows just running)]" \ + "($help)--format=[Format the output using the given Go template]:template: " \ + "($help)--no-stream[Disable streaming stats and only pull the first result]" \ + "($help)--no-trunc[Do not truncate output]" \ + "($help -)*:containers:__docker_complete_running_containers" && ret=0 + ;; + (stop) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -t --time)"{-t=,--time=}"[Number of seconds to try to stop for before killing the container]:seconds to before killing:(1 5 10 30 60)" \ + "($help -)*:containers:__docker_complete_running_containers" && ret=0 + ;; + (top) + local state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)1:containers:__docker_complete_running_containers" \ + "($help -)*:: :->ps-arguments" && ret=0 + case $state in + (ps-arguments) + _ps && ret=0 + ;; + esac + ;; + (update) + local state + _arguments $(__docker_arguments) \ + $opts_help \ + $opts_create_run_update \ + "($help -)*: :->values" && ret=0 + case $state in + (values) + if [[ ${words[(r)--kernel-memory*]} = (--kernel-memory*) ]]; then + __docker_complete_stopped_containers && ret=0 + else + __docker_complete_containers && ret=0 + fi + ;; + esac + ;; + (wait) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)*:containers:__docker_complete_running_containers" && ret=0 + ;; + (help) + _arguments $(__docker_arguments) ":subcommand:__docker_container_commands" && ret=0 + ;; + esac + + return ret +} + +# EO container + +# BO image + +__docker_image_commands() { + local -a _docker_image_subcommands + _docker_image_subcommands=( + "build:Build an image from a Dockerfile" + "history:Show the history of an image" + "import:Import the contents from a tarball to create a filesystem image" + "inspect:Display detailed information on one or more images" + "load:Load an image from a tar archive or STDIN" + "ls:List images" + "prune:Remove unused images" + "pull:Download an image from a registry" + "push:Upload an image to a registry" + "rm:Remove one or more images" + "save:Save one or more images to a tar archive (streamed to STDOUT by default)" + "tag:Tag an image into a repository" + ) + _describe -t docker-image-commands "docker image command" _docker_image_subcommands +} + +__docker_image_subcommand() { + local -a _command_args opts_help + local expl help="--help" + integer ret=1 + + opts_help=("(: -)--help[Print usage]") + + case "$words[1]" in + (build) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)*--add-host=[Add a custom host-to-IP mapping]:host\:ip mapping: " \ + "($help)*--build-arg=[Build-time variables]:=: " \ + "($help)*--cache-from=[Images to consider as cache sources]: :__docker_complete_repositories_with_tags" \ + "($help -c --cpu-shares)"{-c=,--cpu-shares=}"[CPU shares (relative weight)]:CPU shares:(0 10 100 200 500 800 1000)" \ + "($help)--cgroup-parent=[Parent cgroup for the container]:cgroup: " \ + "($help)--compress[Compress the build context using gzip]" \ + "($help)--cpu-period=[Limit the CPU CFS (Completely Fair Scheduler) period]:CPU period: " \ + "($help)--cpu-quota=[Limit the CPU CFS (Completely Fair Scheduler) quota]:CPU quota: " \ + "($help)--cpu-rt-period=[Limit the CPU real-time period]:CPU real-time period in microseconds: " \ + "($help)--cpu-rt-runtime=[Limit the CPU real-time runtime]:CPU real-time runtime in microseconds: " \ + "($help)--cpuset-cpus=[CPUs in which to allow execution]:CPUs: " \ + "($help)--cpuset-mems=[MEMs in which to allow execution]:MEMs: " \ + "($help)--disable-content-trust[Skip image verification]" \ + "($help -f --file)"{-f=,--file=}"[Name of the Dockerfile]:Dockerfile:_files" \ + "($help)--force-rm[Always remove intermediate containers]" \ + "($help)--isolation=[Container isolation technology]:isolation:(default hyperv process)" \ + "($help)*--label=[Set metadata for an image]:label=value: " \ + "($help -m --memory)"{-m=,--memory=}"[Memory limit]:Memory limit: " \ + "($help)--memory-swap=[Total memory limit with swap]:Memory limit: " \ + "($help)--network=[Connect a container to a network]:network mode:(bridge none container host)" \ + "($help)--no-cache[Do not use cache when building the image]" \ + "($help)--pull[Attempt to pull a newer version of the image]" \ + "($help -q --quiet)"{-q,--quiet}"[Suppress verbose build output]" \ + "($help)--rm[Remove intermediate containers after a successful build]" \ + "($help)*--shm-size=[Size of '/dev/shm' (format is '')]:shm size: " \ + "($help)--squash[Squash newly built layers into a single new layer]" \ + "($help -t --tag)*"{-t=,--tag=}"[Repository, name and tag for the image]: :__docker_complete_repositories_with_tags" \ + "($help)--target=[Set the target build stage to build.]" \ + "($help)*--ulimit=[ulimit options]:ulimit: " \ + "($help)--userns=[Container user namespace]:user namespace:(host)" \ + "($help -):path or URL:_directories" && ret=0 + ;; + (history) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -H --human)"{-H,--human}"[Print sizes and dates in human readable format]" \ + "($help)--no-trunc[Do not truncate output]" \ + "($help -q --quiet)"{-q,--quiet}"[Only show image IDs]" \ + "($help -)*: :__docker_complete_images" && ret=0 + ;; + (import) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)*"{-c=,--change=}"[Apply Dockerfile instruction to the created image]:Dockerfile:_files" \ + "($help -m --message)"{-m=,--message=}"[Commit message for imported image]:message: " \ + "($help -):URL:(- http:// file://)" \ + "($help -): :__docker_complete_repositories_with_tags" && ret=0 + ;; + (inspect) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ + "($help -)*:images:__docker_complete_images" && ret=0 + ;; + (load) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -i --input)"{-i=,--input=}"[Read from tar archive file]:archive file:_files -g \"*.((tar|TAR)(.gz|.GZ|.Z|.bz2|.lzma|.xz|)|(tbz|tgz|txz))(-.)\"" \ + "($help -q --quiet)"{-q,--quiet}"[Suppress the load output]" && ret=0 + ;; + (ls|list) + local state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -a --all)"{-a,--all}"[Show all images]" \ + "($help)--digests[Show digests]" \ + "($help)*"{-f=,--filter=}"[Filter values]:filter:__docker_complete_images_filters" \ + "($help)--format=[Format the output using the given Go template]:template: " \ + "($help)--no-trunc[Do not truncate output]" \ + "($help -q --quiet)"{-q,--quiet}"[Only show image IDs]" \ + "($help -): :__docker_complete_repositories" && ret=0 + ;; + (prune) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -a --all)"{-a,--all}"[Remove all unused images, not just dangling ones]" \ + "($help)*--filter=[Filter values]:filter:__docker_complete_prune_filters" \ + "($help -f --force)"{-f,--force}"[Do not prompt for confirmation]" && ret=0 + ;; + (pull) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -a --all-tags)"{-a,--all-tags}"[Download all tagged images]" \ + "($help)--disable-content-trust[Skip image verification]" \ + "($help -):name:__docker_search" && ret=0 + ;; + (push) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -a --all-tags)"{-a,--all-tags}"[Push all tags of an image to the repository]" \ + "($help)--disable-content-trust[Skip image signing]" \ + "($help -): :__docker_complete_images" && ret=0 + ;; + (rm) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --force)"{-f,--force}"[Force removal]" \ + "($help)--no-prune[Do not delete untagged parents]" \ + "($help -)*: :__docker_complete_images" && ret=0 + ;; + (save) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -o --output)"{-o=,--output=}"[Write to file]:file:_files" \ + "($help -)*: :__docker_complete_images" && ret=0 + ;; + (tag) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -):source:__docker_complete_images"\ + "($help -):destination:__docker_complete_repositories_with_tags" && ret=0 + ;; + (help) + _arguments $(__docker_arguments) ":subcommand:__docker_container_commands" && ret=0 + ;; + esac + + return ret +} + +# EO image + +# BO network + +__docker_network_complete_ls_filters() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + + if compset -P '*='; then + case "${${words[-1]%=*}#*=}" in + (driver) + __docker_complete_info_plugins Network && ret=0 + ;; + (id) + __docker_complete_networks_ids && ret=0 + ;; + (name) + __docker_complete_networks_names && ret=0 + ;; + (scope) + opts=('global' 'local' 'swarm') + _describe -t scope-filter-opts "Scope filter options" opts && ret=0 + ;; + (type) + opts=('builtin' 'custom') + _describe -t type-filter-opts "Type filter options" opts && ret=0 + ;; + *) + _message 'value' && ret=0 + ;; + esac + else + opts=('driver' 'id' 'label' 'name' 'scope' 'type') + _describe -t filter-opts "Filter Options" opts -qS "=" && ret=0 + fi + + return ret +} + +__docker_get_networks() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + local line s + declare -a lines networks + + type=$1; shift + + lines=(${(f)${:-"$(_call_program commands docker $docker_options network ls)"$'\n'}}) + + # Parse header line to find columns + local i=1 j=1 k header=${lines[1]} + declare -A begin end + while (( j < ${#header} - 1 )); do + i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) + j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) + k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) + begin[${header[$i,$((j-1))]}]=$i + end[${header[$i,$((j-1))]}]=$k + done + end[${header[$i,$((j-1))]}]=-1 + lines=(${lines[2,-1]}) + + # Network ID + if [[ $type = (ids|all) ]]; then + for line in $lines; do + s="${line[${begin[NETWORK ID]},${end[NETWORK ID]}]%% ##}" + s="$s:${(l:7:: :::)${${line[${begin[DRIVER]},${end[DRIVER]}]}%% ##}}" + s="$s, ${${line[${begin[SCOPE]},${end[SCOPE]}]}%% ##}" + networks=($networks $s) + done + fi + + # Names + if [[ $type = (names|all) ]]; then + for line in $lines; do + s="${line[${begin[NAME]},${end[NAME]}]%% ##}" + s="$s:${(l:7:: :::)${${line[${begin[DRIVER]},${end[DRIVER]}]}%% ##}}" + s="$s, ${${line[${begin[SCOPE]},${end[SCOPE]}]}%% ##}" + networks=($networks $s) + done + fi + + _describe -t networks-list "networks" networks "$@" && ret=0 + return ret +} + +__docker_complete_networks() { + [[ $PREFIX = -* ]] && return 1 + __docker_get_networks all "$@" +} + +__docker_complete_networks_ids() { + [[ $PREFIX = -* ]] && return 1 + __docker_get_networks ids "$@" +} + +__docker_complete_networks_names() { + [[ $PREFIX = -* ]] && return 1 + __docker_get_networks names "$@" +} + +__docker_network_commands() { + local -a _docker_network_subcommands + _docker_network_subcommands=( + "connect:Connect a container to a network" + "create:Creates a new network with a name specified by the user" + "disconnect:Disconnects a container from a network" + "inspect:Displays detailed information on a network" + "ls:Lists all the networks created by the user" + "prune:Remove all unused networks" + "rm:Deletes one or more networks" + ) + _describe -t docker-network-commands "docker network command" _docker_network_subcommands +} + +__docker_network_subcommand() { + local -a _command_args opts_help + local expl help="--help" + integer ret=1 + + opts_help=("(: -)--help[Print usage]") + + case "$words[1]" in + (connect) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)*--alias=[Add network-scoped alias for the container]:alias: " \ + "($help)--ip=[IPv4 address]:IPv4: " \ + "($help)--ip6=[IPv6 address]:IPv6: " \ + "($help)*--link=[Add a link to another container]:link:->link" \ + "($help)*--link-local-ip=[Add a link-local address for the container]:IPv4/IPv6: " \ + "($help -)1:network:__docker_complete_networks" \ + "($help -)2:containers:__docker_complete_containers" && ret=0 + + case $state in + (link) + if compset -P "*:"; then + _wanted alias expl "Alias" compadd -E "" && ret=0 + else + __docker_complete_running_containers -qS ":" && ret=0 + fi + ;; + esac + ;; + (create) + _arguments $(__docker_arguments) -A '-*' \ + $opts_help \ + "($help)--attachable[Enable manual container attachment]" \ + "($help)*--aux-address[Auxiliary IPv4 or IPv6 addresses used by network driver]:key=IP: " \ + "($help -d --driver)"{-d=,--driver=}"[Driver to manage the Network]:driver:(null host bridge overlay)" \ + "($help)*--gateway=[IPv4 or IPv6 Gateway for the master subnet]:IP: " \ + "($help)--internal[Restricts external access to the network]" \ + "($help)*--ip-range=[Allocate container ip from a sub-range]:IP/mask: " \ + "($help)--ipam-driver=[IP Address Management Driver]:driver:(default)" \ + "($help)*--ipam-opt=[Custom IPAM plugin options]:opt=value: " \ + "($help)--ipv6[Enable IPv6 networking]" \ + "($help)*--label=[Set metadata on a network]:label=value: " \ + "($help)*"{-o=,--opt=}"[Driver specific options]:opt=value: " \ + "($help)*--subnet=[Subnet in CIDR format that represents a network segment]:IP/mask: " \ + "($help -)1:Network Name: " && ret=0 + ;; + (disconnect) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)1:network:__docker_complete_networks" \ + "($help -)2:containers:__docker_complete_containers" && ret=0 + ;; + (inspect) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ + "($help)--verbose[Show detailed information]" \ + "($help -)*:network:__docker_complete_networks" && ret=0 + ;; + (ls) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--no-trunc[Do not truncate the output]" \ + "($help)*"{-f=,--filter=}"[Provide filter values]:filter:__docker_network_complete_ls_filters" \ + "($help)--format=[Format the output using the given Go template]:template: " \ + "($help -q --quiet)"{-q,--quiet}"[Only display network IDs]" && ret=0 + ;; + (prune) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)*--filter=[Filter values]:filter:__docker_complete_prune_filters" \ + "($help -f --force)"{-f,--force}"[Do not prompt for confirmation]" && ret=0 + ;; + (rm) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)*:network:__docker_complete_networks" && ret=0 + ;; + (help) + _arguments $(__docker_arguments) ":subcommand:__docker_network_commands" && ret=0 + ;; + esac + + return ret +} + +# EO network + +# BO node + +__docker_node_complete_ls_filters() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + + if compset -P '*='; then + case "${${words[-1]%=*}#*=}" in + (id) + __docker_complete_nodes_ids && ret=0 + ;; + (membership) + membership_opts=('accepted' 'pending' 'rejected') + _describe -t membership-opts "membership options" membership_opts && ret=0 + ;; + (name) + __docker_complete_nodes_names && ret=0 + ;; + (role) + role_opts=('manager' 'worker') + _describe -t role-opts "role options" role_opts && ret=0 + ;; + *) + _message 'value' && ret=0 + ;; + esac + else + opts=('id' 'label' 'membership' 'name' 'node.label' 'role') + _describe -t filter-opts "filter options" opts -qS "=" && ret=0 + fi + + return ret +} + +__docker_node_complete_ps_filters() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + + if compset -P '*='; then + case "${${words[-1]%=*}#*=}" in + (desired-state) + state_opts=('accepted' 'running' 'shutdown') + _describe -t state-opts "desired state options" state_opts && ret=0 + ;; + *) + _message 'value' && ret=0 + ;; + esac + else + opts=('desired-state' 'id' 'label' 'name') + _describe -t filter-opts "filter options" opts -qS "=" && ret=0 + fi + + return ret +} + +__docker_nodes() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + local line s + declare -a lines nodes args + + type=$1; shift + filter=$1; shift + [[ $filter != "none" ]] && args=("-f $filter") + + lines=(${(f)${:-"$(_call_program commands docker $docker_options node ls $args)"$'\n'}}) + # Parse header line to find columns + local i=1 j=1 k header=${lines[1]} + declare -A begin end + while (( j < ${#header} - 1 )); do + i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) + j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) + k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) + begin[${header[$i,$((j-1))]}]=$i + end[${header[$i,$((j-1))]}]=$k + done + end[${header[$i,$((j-1))]}]=-1 + lines=(${lines[2,-1]}) + + # Node ID + if [[ $type = (ids|all) ]]; then + for line in $lines; do + s="${line[${begin[ID]},${end[ID]}]%% ##}" + nodes=($nodes $s) + done + fi + + # Names + if [[ $type = (names|all) ]]; then + for line in $lines; do + s="${line[${begin[HOSTNAME]},${end[HOSTNAME]}]%% ##}" + nodes=($nodes $s) + done + fi + + _describe -t nodes-list "nodes" nodes "$@" && ret=0 + return ret +} + +__docker_complete_nodes() { + [[ $PREFIX = -* ]] && return 1 + __docker_nodes all none "$@" +} + +__docker_complete_nodes_ids() { + [[ $PREFIX = -* ]] && return 1 + __docker_nodes ids none "$@" +} + +__docker_complete_nodes_names() { + [[ $PREFIX = -* ]] && return 1 + __docker_nodes names none "$@" +} + +__docker_complete_pending_nodes() { + [[ $PREFIX = -* ]] && return 1 + __docker_nodes all "membership=pending" "$@" +} + +__docker_complete_manager_nodes() { + [[ $PREFIX = -* ]] && return 1 + __docker_nodes all "role=manager" "$@" +} + +__docker_complete_worker_nodes() { + [[ $PREFIX = -* ]] && return 1 + __docker_nodes all "role=worker" "$@" +} + +__docker_node_commands() { + local -a _docker_node_subcommands + _docker_node_subcommands=( + "demote:Demote a node as manager in the swarm" + "inspect:Display detailed information on one or more nodes" + "ls:List nodes in the swarm" + "promote:Promote a node as manager in the swarm" + "rm:Remove one or more nodes from the swarm" + "ps:List tasks running on one or more nodes, defaults to current node" + "update:Update a node" + ) + _describe -t docker-node-commands "docker node command" _docker_node_subcommands +} + +__docker_node_subcommand() { + local -a _command_args opts_help + local expl help="--help" + integer ret=1 + + opts_help=("(: -)--help[Print usage]") + + case "$words[1]" in + (rm|remove) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --force)"{-f,--force}"[Force remove a node from the swarm]" \ + "($help -)*:node:__docker_complete_pending_nodes" && ret=0 + ;; + (demote) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)*:node:__docker_complete_manager_nodes" && ret=0 + ;; + (inspect) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ + "($help)--pretty[Print the information in a human friendly format]" \ + "($help -)*:node:__docker_complete_nodes" && ret=0 + ;; + (ls|list) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)*"{-f=,--filter=}"[Provide filter values]:filter:__docker_node_complete_ls_filters" \ + "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" && ret=0 + ;; + (promote) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)*:node:__docker_complete_worker_nodes" && ret=0 + ;; + (ps) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -a --all)"{-a,--all}"[Display all instances]" \ + "($help)*"{-f=,--filter=}"[Provide filter values]:filter:__docker_node_complete_ps_filters" \ + "($help)--format=[Format the output using the given go template]:template: " \ + "($help)--no-resolve[Do not map IDs to Names]" \ + "($help)--no-trunc[Do not truncate output]" \ + "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" \ + "($help -)*:node:__docker_complete_nodes" && ret=0 + ;; + (update) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--availability=[Availability of the node]:availability:(active pause drain)" \ + "($help)*--label-add=[Add or update a node label]:key=value: " \ + "($help)*--label-rm=[Remove a node label if exists]:label: " \ + "($help)--role=[Role of the node]:role:(manager worker)" \ + "($help -)1:node:__docker_complete_nodes" && ret=0 + ;; + (help) + _arguments $(__docker_arguments) ":subcommand:__docker_node_commands" && ret=0 + ;; + esac + + return ret +} + +# EO node + +# BO plugin + +__docker_plugin_complete_ls_filters() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + + if compset -P '*='; then + case "${${words[-1]%=*}#*=}" in + (capability) + opts=('authz' 'ipamdriver' 'logdriver' 'metricscollector' 'networkdriver' 'volumedriver') + _describe -t capability-opts "capability options" opts && ret=0 + ;; + (enabled) + opts=('false' 'true') + _describe -t enabled-opts "enabled options" opts && ret=0 + ;; + *) + _message 'value' && ret=0 + ;; + esac + else + opts=('capability' 'enabled') + _describe -t filter-opts "filter options" opts -qS "=" && ret=0 + fi + + return ret +} + +__docker_plugins() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + local line s + declare -a lines plugins args + + filter=$1; shift + [[ $filter != "none" ]] && args=("-f $filter") + + lines=(${(f)${:-"$(_call_program commands docker $docker_options plugin ls $args)"$'\n'}}) + + # Parse header line to find columns + local i=1 j=1 k header=${lines[1]} + declare -A begin end + while (( j < ${#header} - 1 )); do + i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) + j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) + k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) + begin[${header[$i,$((j-1))]}]=$i + end[${header[$i,$((j-1))]}]=$k + done + end[${header[$i,$((j-1))]}]=-1 + lines=(${lines[2,-1]}) + + # Name + for line in $lines; do + s="${line[${begin[NAME]},${end[NAME]}]%% ##}" + s="$s:${(l:7:: :::)${${line[${begin[TAG]},${end[TAG]}]}%% ##}}" + plugins=($plugins $s) + done + + _describe -t plugins-list "plugins" plugins "$@" && ret=0 + return ret +} + +__docker_complete_plugins() { + [[ $PREFIX = -* ]] && return 1 + __docker_plugins none "$@" +} + +__docker_complete_enabled_plugins() { + [[ $PREFIX = -* ]] && return 1 + __docker_plugins enabled=true "$@" +} + +__docker_complete_disabled_plugins() { + [[ $PREFIX = -* ]] && return 1 + __docker_plugins enabled=false "$@" +} + +__docker_plugin_commands() { + local -a _docker_plugin_subcommands + _docker_plugin_subcommands=( + "disable:Disable a plugin" + "enable:Enable a plugin" + "inspect:Return low-level information about a plugin" + "install:Install a plugin" + "ls:List plugins" + "push:Push a plugin" + "rm:Remove a plugin" + "set:Change settings for a plugin" + "upgrade:Upgrade an existing plugin" + ) + _describe -t docker-plugin-commands "docker plugin command" _docker_plugin_subcommands +} + +__docker_plugin_subcommand() { + local -a _command_args opts_help + local expl help="--help" + integer ret=1 + + opts_help=("(: -)--help[Print usage]") + + case "$words[1]" in + (disable) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --force)"{-f,--force}"[Force the disable of an active plugin]" \ + "($help -)1:plugin:__docker_complete_enabled_plugins" && ret=0 + ;; + (enable) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--timeout=[HTTP client timeout (in seconds)]:timeout: " \ + "($help -)1:plugin:__docker_complete_disabled_plugins" && ret=0 + ;; + (inspect) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --format)"{-f=,--format=}"[Format the output using the given Go template]:template: " \ + "($help -)*:plugin:__docker_complete_plugins" && ret=0 + ;; + (install) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--alias=[Local name for plugin]:alias: " \ + "($help)--disable[Do not enable the plugin on install]" \ + "($help)--disable-content-trust[Skip image verification (default true)]" \ + "($help)--grant-all-permissions[Grant all permissions necessary to run the plugin]" \ + "($help -)1:plugin:__docker_complete_plugins" \ + "($help -)*:key=value: " && ret=0 + ;; + (ls|list) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)*"{-f=,--filter=}"[Filter output based on conditions provided]:filter:__docker_plugin_complete_ls_filters" \ + "($help --format)--format=[Format the output using the given Go template]:template: " \ + "($help)--no-trunc[Don't truncate output]" \ + "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" && ret=0 + ;; + (push) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--disable-content-trust[Skip image verification (default true)]" \ + "($help -)1:plugin:__docker_complete_plugins" && ret=0 + ;; + (rm|remove) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --force)"{-f,--force}"[Force the removal of an active plugin]" \ + "($help -)*:plugin:__docker_complete_plugins" && ret=0 + ;; + (set) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)1:plugin:__docker_complete_plugins" \ + "($help -)*:key=value: " && ret=0 + ;; + (upgrade) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--disable-content-trust[Skip image verification (default true)]" \ + "($help)--grant-all-permissions[Grant all permissions necessary to run the plugin]" \ + "($help)--skip-remote-check[Do not check if specified remote plugin matches existing plugin image]" \ + "($help -)1:plugin:__docker_complete_plugins" \ + "($help -):remote: " && ret=0 + ;; + (help) + _arguments $(__docker_arguments) ":subcommand:__docker_plugin_commands" && ret=0 + ;; + esac + + return ret +} + +# EO plugin + +# BO secret + +__docker_secrets() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + local line s + declare -a lines secrets + + type=$1; shift + + lines=(${(f)${:-"$(_call_program commands docker $docker_options secret ls)"$'\n'}}) + + # Parse header line to find columns + local i=1 j=1 k header=${lines[1]} + declare -A begin end + while (( j < ${#header} - 1 )); do + i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) + j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) + k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) + begin[${header[$i,$((j-1))]}]=$i + end[${header[$i,$((j-1))]}]=$k + done + end[${header[$i,$((j-1))]}]=-1 + lines=(${lines[2,-1]}) + + # ID + if [[ $type = (ids|all) ]]; then + for line in $lines; do + s="${line[${begin[ID]},${end[ID]}]%% ##}" + secrets=($secrets $s) + done + fi + + # Names + if [[ $type = (names|all) ]]; then + for line in $lines; do + s="${line[${begin[NAME]},${end[NAME]}]%% ##}" + secrets=($secrets $s) + done + fi + + _describe -t secrets-list "secrets" secrets "$@" && ret=0 + return ret +} + +__docker_complete_secrets() { + [[ $PREFIX = -* ]] && return 1 + __docker_secrets all "$@" +} + +__docker_secret_commands() { + local -a _docker_secret_subcommands + _docker_secret_subcommands=( + "create:Create a secret using stdin as content" + "inspect:Display detailed information on one or more secrets" + "ls:List secrets" + "rm:Remove one or more secrets" + ) + _describe -t docker-secret-commands "docker secret command" _docker_secret_subcommands +} + +__docker_secret_subcommand() { + local -a _command_args opts_help + local expl help="--help" + integer ret=1 + + opts_help=("(: -)--help[Print usage]") + + case "$words[1]" in + (create) + _arguments $(__docker_arguments) -A '-*' \ + $opts_help \ + "($help)*"{-l=,--label=}"[Secret labels]:label: " \ + "($help -):secret: " && ret=0 + ;; + (inspect) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --format)"{-f=,--format=}"[Format the output using the given Go template]:template: " \ + "($help -)*:secret:__docker_complete_secrets" && ret=0 + ;; + (ls|list) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--format=[Format the output using the given go template]:template: " \ + "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" && ret=0 + ;; + (rm|remove) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)*:secret:__docker_complete_secrets" && ret=0 + ;; + (help) + _arguments $(__docker_arguments) ":subcommand:__docker_secret_commands" && ret=0 + ;; + esac + + return ret +} + +# EO secret + +# BO service + +__docker_service_complete_ls_filters() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + + if compset -P '*='; then + case "${${words[-1]%=*}#*=}" in + (id) + __docker_complete_services_ids && ret=0 + ;; + (mode) + opts=('global' 'replicated') + _describe -t mode-opts "mode options" opts && ret=0 + ;; + (name) + __docker_complete_services_names && ret=0 + ;; + *) + _message 'value' && ret=0 + ;; + esac + else + opts=('id' 'label' 'mode' 'name') + _describe -t filter-opts "filter options" opts -qS "=" && ret=0 + fi + + return ret +} + +__docker_service_complete_ps_filters() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + + if compset -P '*='; then + case "${${words[-1]%=*}#*=}" in + (desired-state) + state_opts=('accepted' 'running' 'shutdown') + _describe -t state-opts "desired state options" state_opts && ret=0 + ;; + *) + _message 'value' && ret=0 + ;; + esac + else + opts=('desired-state' 'id' 'label' 'name') + _describe -t filter-opts "filter options" opts -qS "=" && ret=0 + fi + + return ret +} + +__docker_service_complete_placement_pref() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + + if compset -P '*='; then + case "${${words[-1]%=*}#*=}" in + (spread) + opts=('engine.labels' 'node.labels') + _describe -t spread-opts "spread options" opts -qS "." && ret=0 + ;; + *) + _message 'value' && ret=0 + ;; + esac + else + opts=('spread') + _describe -t pref-opts "placement pref options" opts -qS "=" && ret=0 + fi + + return ret +} + +__docker_services() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + local line s + declare -a lines services + + type=$1; shift + + lines=(${(f)${:-"$(_call_program commands docker $docker_options service ls)"$'\n'}}) + + # Parse header line to find columns + local i=1 j=1 k header=${lines[1]} + declare -A begin end + while (( j < ${#header} - 1 )); do + i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) + j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) + k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) + begin[${header[$i,$((j-1))]}]=$i + end[${header[$i,$((j-1))]}]=$k + done + end[${header[$i,$((j-1))]}]=-1 + lines=(${lines[2,-1]}) + + # Service ID + if [[ $type = (ids|all) ]]; then + for line in $lines; do + s="${line[${begin[ID]},${end[ID]}]%% ##}" + s="$s:${(l:7:: :::)${${line[${begin[IMAGE]},${end[IMAGE]}]}%% ##}}" + services=($services $s) + done + fi + + # Names + if [[ $type = (names|all) ]]; then + for line in $lines; do + s="${line[${begin[NAME]},${end[NAME]}]%% ##}" + s="$s:${(l:7:: :::)${${line[${begin[IMAGE]},${end[IMAGE]}]}%% ##}}" + services=($services $s) + done + fi + + _describe -t services-list "services" services "$@" && ret=0 + return ret +} + +__docker_complete_services() { + [[ $PREFIX = -* ]] && return 1 + __docker_services all "$@" +} + +__docker_complete_services_ids() { + [[ $PREFIX = -* ]] && return 1 + __docker_services ids "$@" +} + +__docker_complete_services_names() { + [[ $PREFIX = -* ]] && return 1 + __docker_services names "$@" +} + +__docker_service_commands() { + local -a _docker_service_subcommands + _docker_service_subcommands=( + "create:Create a new service" + "inspect:Display detailed information on one or more services" + "logs:Fetch the logs of a service or task" + "ls:List services" + "rm:Remove one or more services" + "rollback:Revert changes to a service's configuration" + "scale:Scale one or multiple replicated services" + "ps:List the tasks of a service" + "update:Update a service" + ) + _describe -t docker-service-commands "docker service command" _docker_service_subcommands +} + +__docker_service_subcommand() { + local -a _command_args opts_help opts_create_update + local expl help="--help" + integer ret=1 + + opts_help=("(: -)--help[Print usage]") + opts_create_update=( + "($help)*--cap-add=[Add Linux capabilities]:capability: " + "($help)*--cap-drop=[Drop Linux capabilities]:capability: " + "($help)*--constraint=[Placement constraints]:constraint: " + "($help)--endpoint-mode=[Placement constraints]:mode:(dnsrr vip)" + "($help)*"{-e=,--env=}"[Set environment variables]:env: " + "($help)--health-cmd=[Command to run to check health]:command: " + "($help)--health-interval=[Time between running the check]:time: " + "($help)--health-retries=[Consecutive failures needed to report unhealthy]:retries:(1 2 3 4 5)" + "($help)--health-timeout=[Maximum time to allow one check to run]:time: " + "($help)--hostname=[Service container hostname]:hostname: " \ + "($help)--isolation=[Service container isolation mode]:isolation:(default process hyperv)" \ + "($help)*--label=[Service labels]:label: " + "($help)--limit-cpu=[Limit CPUs]:value: " + "($help)--limit-memory=[Limit Memory]:value: " + "($help)--limit-pids[Limit maximum number of processes (default 0 = unlimited)]" + "($help)--log-driver=[Logging driver for service]:logging driver:__docker_complete_log_drivers" + "($help)*--log-opt=[Logging driver options]:log driver options:__docker_complete_log_options" + "($help)*--mount=[Attach a filesystem mount to the service]:mount: " + "($help)*--network=[Network attachments]:network: " + "($help)--no-healthcheck[Disable any container-specified HEALTHCHECK]" + "($help)--read-only[Mount the container's root filesystem as read only]" + "($help)--replicas=[Number of tasks]:replicas: " + "($help)--reserve-cpu=[Reserve CPUs]:value: " + "($help)--reserve-memory=[Reserve Memory]:value: " + "($help)--restart-condition=[Restart when condition is met]:mode:(any none on-failure)" + "($help)--restart-delay=[Delay between restart attempts]:delay: " + "($help)--restart-max-attempts=[Maximum number of restarts before giving up]:max-attempts: " + "($help)--restart-window=[Window used to evaluate the restart policy]:duration: " + "($help)--rollback-delay=[Delay between task rollbacks]:duration: " + "($help)--rollback-failure-action=[Action on rollback failure]:action:(continue pause)" + "($help)--rollback-max-failure-ratio=[Failure rate to tolerate during a rollback]:failure rate: " + "($help)--rollback-monitor=[Duration after each task rollback to monitor for failure]:duration: " + "($help)--rollback-parallelism=[Maximum number of tasks rolled back simultaneously]:number: " + "($help)*--secret=[Specify secrets to expose to the service]:secret:__docker_complete_secrets" + "($help)--stop-grace-period=[Time to wait before force killing a container]:grace period: " + "($help)--stop-signal=[Signal to stop the container]:signal:_signals" + "($help -t --tty)"{-t,--tty}"[Allocate a pseudo-TTY]" + "($help)--update-delay=[Delay between updates]:delay: " + "($help)--update-failure-action=[Action on update failure]:mode:(continue pause rollback)" + "($help)--update-max-failure-ratio=[Failure rate to tolerate during an update]:fraction: " + "($help)--update-monitor=[Duration after each task update to monitor for failure]:window: " + "($help)--update-parallelism=[Maximum number of tasks updated simultaneously]:number: " + "($help -u --user)"{-u=,--user=}"[Username or UID]:user:_users" + "($help)--with-registry-auth[Send registry authentication details to swarm agents]" + "($help -w --workdir)"{-w=,--workdir=}"[Working directory inside the container]:directory:_directories" + ) + + case "$words[1]" in + (create) + _arguments $(__docker_arguments) \ + $opts_help \ + $opts_create_update \ + "($help)*--container-label=[Container labels]:label: " \ + "($help)*--dns=[Set custom DNS servers]:DNS: " \ + "($help)*--dns-option=[Set DNS options]:DNS option: " \ + "($help)*--dns-search=[Set custom DNS search domains]:DNS search: " \ + "($help)*--env-file=[Read environment variables from a file]:environment file:_files" \ + "($help)*--group=[Set one or more supplementary user groups for the container]:group: _groups " \ + "($help)--mode=[Service Mode]:mode:(global replicated)" \ + "($help)--name=[Service name]:name: " \ + "($help)*--placement-pref=[Add a placement preference]:pref:__docker_service_complete_placement_pref" \ + "($help)*"{-p=,--publish=}"[Publish a port as a node port]:port: " \ + "($help -): :__docker_complete_images" \ + "($help -):command: _command_names -e" \ + "($help -)*::arguments: _normal" && ret=0 + ;; + (inspect) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ + "($help)--pretty[Print the information in a human friendly format]" \ + "($help -)*:service:__docker_complete_services" && ret=0 + ;; + (logs) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --follow)"{-f,--follow}"[Follow log output]" \ + "($help)--no-resolve[Do not map IDs to Names]" \ + "($help)--no-task-ids[Do not include task IDs]" \ + "($help)--no-trunc[Do not truncate output]" \ + "($help)--since=[Show logs since timestamp]:timestamp: " \ + "($help -n --tail)"{-n=,--tail=}"[Number of lines to show from the end of the logs]:lines:(1 10 20 50 all)" \ + "($help -t --timestamps)"{-t,--timestamps}"[Show timestamps]" \ + "($help -)1:service:__docker_complete_services" && ret=0 + ;; + (ls|list) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)*"{-f=,--filter=}"[Filter output based on conditions provided]:filter:__docker_service_complete_ls_filters" \ + "($help)--format=[Format the output using the given Go template]:template: " \ + "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" && ret=0 + ;; + (rm|remove) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)*:service:__docker_complete_services" && ret=0 + ;; + (rollback) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -d --detach)"{-d=false,--detach=false}"[Disable detached mode]" \ + "($help -q --quiet)"{-q,--quiet}"[Suppress progress output]" \ + "($help -)*:service:__docker_complete_services" && ret=0 + ;; + (scale) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -d --detach)"{-d=false,--detach=false}"[Disable detached mode]" \ + "($help -)*:service:->values" && ret=0 + case $state in + (values) + if compset -P '*='; then + _message 'replicas' && ret=0 + else + __docker_complete_services -qS "=" + fi + ;; + esac + ;; + (ps) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)*"{-f=,--filter=}"[Provide filter values]:filter:__docker_service_complete_ps_filters" \ + "($help)--format=[Format the output using the given go template]:template: " \ + "($help)--no-resolve[Do not map IDs to Names]" \ + "($help)--no-trunc[Do not truncate output]" \ + "($help -q --quiet)"{-q,--quiet}"[Only display task IDs]" \ + "($help -)*:service:__docker_complete_services" && ret=0 + ;; + (update) + _arguments $(__docker_arguments) \ + $opts_help \ + $opts_create_update \ + "($help)--arg=[Service command args]:arguments: _normal" \ + "($help)*--container-label-add=[Add or update container labels]:label: " \ + "($help)*--container-label-rm=[Remove a container label by its key]:label: " \ + "($help)*--dns-add=[Add or update custom DNS servers]:DNS: " \ + "($help)*--dns-rm=[Remove custom DNS servers]:DNS: " \ + "($help)*--dns-option-add=[Add or update DNS options]:DNS option: " \ + "($help)*--dns-option-rm=[Remove DNS options]:DNS option: " \ + "($help)*--dns-search-add=[Add or update custom DNS search domains]:DNS search: " \ + "($help)*--dns-search-rm=[Remove DNS search domains]:DNS search: " \ + "($help)--force[Force update]" \ + "($help)*--group-add=[Add additional supplementary user groups to the container]:group:_groups" \ + "($help)*--group-rm=[Remove previously added supplementary user groups from the container]:group:_groups" \ + "($help)--image=[Service image tag]:image:__docker_complete_repositories" \ + "($help)*--placement-pref-add=[Add a placement preference]:pref:__docker_service_complete_placement_pref" \ + "($help)*--placement-pref-rm=[Remove a placement preference]:pref:__docker_service_complete_placement_pref" \ + "($help)*--publish-add=[Add or update a port]:port: " \ + "($help)*--publish-rm=[Remove a port(target-port mandatory)]:port: " \ + "($help)--rollback[Rollback to previous specification]" \ + "($help -)1:service:__docker_complete_services" && ret=0 + ;; + (help) + _arguments $(__docker_arguments) ":subcommand:__docker_service_commands" && ret=0 + ;; + esac + + return ret +} + +# EO service + +# BO stack + +__docker_stack_complete_ps_filters() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + + if compset -P '*='; then + case "${${words[-1]%=*}#*=}" in + (desired-state) + state_opts=('accepted' 'running' 'shutdown') + _describe -t state-opts "desired state options" state_opts && ret=0 + ;; + *) + _message 'value' && ret=0 + ;; + esac + else + opts=('desired-state' 'id' 'name') + _describe -t filter-opts "filter options" opts -qS "=" && ret=0 + fi + + return ret +} + +__docker_stack_complete_services_filters() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + + if compset -P '*='; then + case "${${words[-1]%=*}#*=}" in + *) + _message 'value' && ret=0 + ;; + esac + else + opts=('id' 'label' 'name') + _describe -t filter-opts "filter options" opts -qS "=" && ret=0 + fi + + return ret +} + +__docker_stacks() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + local line s + declare -a lines stacks + + lines=(${(f)${:-"$(_call_program commands docker $docker_options stack ls)"$'\n'}}) + + # Parse header line to find columns + local i=1 j=1 k header=${lines[1]} + declare -A begin end + while (( j < ${#header} - 1 )); do + i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) + j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) + k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) + begin[${header[$i,$((j-1))]}]=$i + end[${header[$i,$((j-1))]}]=$k + done + end[${header[$i,$((j-1))]}]=-1 + lines=(${lines[2,-1]}) + + # Service NAME + for line in $lines; do + s="${line[${begin[NAME]},${end[NAME]}]%% ##}" + stacks=($stacks $s) + done + + _describe -t stacks-list "stacks" stacks "$@" && ret=0 + return ret +} + +__docker_complete_stacks() { + [[ $PREFIX = -* ]] && return 1 + __docker_stacks "$@" +} + +__docker_stack_commands() { + local -a _docker_stack_subcommands + _docker_stack_subcommands=( + "deploy:Deploy a new stack or update an existing stack" + "ls:List stacks" + "ps:List the tasks in the stack" + "rm:Remove the stack" + "services:List the services in the stack" + ) + _describe -t docker-stack-commands "docker stack command" _docker_stack_subcommands +} + +__docker_stack_subcommand() { + local -a _command_args opts_help + local expl help="--help" + integer ret=1 + + opts_help=("(: -)--help[Print usage]") + + case "$words[1]" in + (deploy|up) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -c --compose-file)"{-c=,--compose-file=}"[Path to a Compose file, or '-' to read from stdin]:compose file:_files -g \"*.(yml|yaml)\"" \ + "($help)--with-registry-auth[Send registry authentication details to Swarm agents]" \ + "($help -):stack:__docker_complete_stacks" && ret=0 + ;; + (ls|list) + _arguments $(__docker_arguments) \ + $opts_help && ret=0 + ;; + (ps) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -a --all)"{-a,--all}"[Display all tasks]" \ + "($help)*"{-f=,--filter=}"[Filter output based on conditions provided]:filter:__docker_stack_complete_ps_filters" \ + "($help)--format=[Format the output using the given go template]:template: " \ + "($help)--no-resolve[Do not map IDs to Names]" \ + "($help)--no-trunc[Do not truncate output]" \ + "($help -q --quiet)"{-q,--quiet}"[Only display task IDs]" \ + "($help -):stack:__docker_complete_stacks" && ret=0 + ;; + (rm|remove|down) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -):stack:__docker_complete_stacks" && ret=0 + ;; + (services) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)*"{-f=,--filter=}"[Filter output based on conditions provided]:filter:__docker_stack_complete_services_filters" \ + "($help)--format=[Format the output using the given Go template]:template: " \ + "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" \ + "($help -):stack:__docker_complete_stacks" && ret=0 + ;; + (help) + _arguments $(__docker_arguments) ":subcommand:__docker_stack_commands" && ret=0 + ;; + esac + + return ret +} + +# EO stack + +# BO swarm + +__docker_swarm_commands() { + local -a _docker_swarm_subcommands + _docker_swarm_subcommands=( + "init:Initialize a swarm" + "join:Join a swarm as a node and/or manager" + "join-token:Manage join tokens" + "leave:Leave a swarm" + "unlock:Unlock swarm" + "unlock-key:Manage the unlock key" + "update:Update the swarm" + ) + _describe -t docker-swarm-commands "docker swarm command" _docker_swarm_subcommands +} + +__docker_swarm_subcommand() { + local -a _command_args opts_help + local expl help="--help" + integer ret=1 + + opts_help=("(: -)--help[Print usage]") + + case "$words[1]" in + (init) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--advertise-addr=[Advertised address]:ip\:port: " \ + "($help)--data-path-addr=[Data path IP or interface]:ip " \ + "($help)--data-path-port=[Data Path Port]:port " \ + "($help)--default-addr-pool=[Default address pool]" \ + "($help)--default-addr-pool-mask-length=[Default address pool subnet mask length]" \ + "($help)--autolock[Enable manager autolocking]" \ + "($help)--availability=[Availability of the node]:availability:(active drain pause)" \ + "($help)--cert-expiry=[Validity period for node certificates]:duration: " \ + "($help)--dispatcher-heartbeat=[Dispatcher heartbeat period]:duration: " \ + "($help)*--external-ca=[Specifications of one or more certificate signing endpoints]:endpoint: " \ + "($help)--force-new-cluster[Force create a new cluster from current state]" \ + "($help)--listen-addr=[Listen address]:ip\:port: " \ + "($help)--max-snapshots[Number of additional Raft snapshots to retain]" \ + "($help)--snapshot-interval[Number of log entries between Raft snapshots]" \ + "($help)--task-history-limit=[Task history retention limit]:limit: " && ret=0 + ;; + (join) + _arguments $(__docker_arguments) -A '-*' \ + $opts_help \ + "($help)--advertise-addr=[Advertised address]:ip\:port: " \ + "($help)--data-path-addr=[Data path IP or interface]:ip " \ + "($help)--availability=[Availability of the node]:availability:(active drain pause)" \ + "($help)--listen-addr=[Listen address]:ip\:port: " \ + "($help)--token=[Token for entry into the swarm]:secret: " \ + "($help -):host\:port: " && ret=0 + ;; + (join-token) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -q --quiet)"{-q,--quiet}"[Only display token]" \ + "($help)--rotate[Rotate join token]" \ + "($help -):role:(manager worker)" && ret=0 + ;; + (leave) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --force)"{-f,--force}"[Force this node to leave the swarm, ignoring warnings]" && ret=0 + ;; + (unlock) + _arguments $(__docker_arguments) \ + $opts_help && ret=0 + ;; + (unlock-key) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -q --quiet)"{-q,--quiet}"[Only display token]" \ + "($help)--rotate[Rotate unlock token]" && ret=0 + ;; + (update) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--autolock[Enable manager autolocking]" \ + "($help)--cert-expiry=[Validity period for node certificates]:duration: " \ + "($help)--dispatcher-heartbeat=[Dispatcher heartbeat period]:duration: " \ + "($help)*--external-ca=[Specifications of one or more certificate signing endpoints]:endpoint: " \ + "($help)--max-snapshots[Number of additional Raft snapshots to retain]" \ + "($help)--snapshot-interval[Number of log entries between Raft snapshots]" \ + "($help)--task-history-limit=[Task history retention limit]:limit: " && ret=0 + ;; + (help) + _arguments $(__docker_arguments) ":subcommand:__docker_network_commands" && ret=0 + ;; + esac + + return ret +} + +# EO swarm + +# BO system + +__docker_system_commands() { + local -a _docker_system_subcommands + _docker_system_subcommands=( + "df:Show docker filesystem usage" + "events:Get real time events from the server" + "info:Display system-wide information" + "prune:Remove unused data" + ) + _describe -t docker-system-commands "docker system command" _docker_system_subcommands +} + +__docker_system_subcommand() { + local -a _command_args opts_help + local expl help="--help" + integer ret=1 + + opts_help=("(: -)--help[Print usage]") + + case "$words[1]" in + (df) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -v --verbose)"{-v,--verbose}"[Show detailed information on space usage]" && ret=0 + ;; + (events) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)*"{-f=,--filter=}"[Filter values]:filter:__docker_complete_events_filter" \ + "($help)--since=[Events created since this timestamp]:timestamp: " \ + "($help)--until=[Events created until this timestamp]:timestamp: " \ + "($help)--format=[Format the output using the given go template]:template: " && ret=0 + ;; + (info) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " && ret=0 + ;; + (prune) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -a --all)"{-a,--all}"[Remove all unused data, not just dangling ones]" \ + "($help)*--filter=[Filter values]:filter:__docker_complete_prune_filters" \ + "($help -f --force)"{-f,--force}"[Do not prompt for confirmation]" \ + "($help)--volumes=[Remove all unused volumes]" && ret=0 + ;; + (help) + _arguments $(__docker_arguments) ":subcommand:__docker_volume_commands" && ret=0 + ;; + esac + + return ret +} + +# EO system + +# BO volume + +__docker_volume_complete_ls_filters() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + + if compset -P '*='; then + case "${${words[-1]%=*}#*=}" in + (dangling) + dangling_opts=('true' 'false') + _describe -t dangling-filter-opts "Dangling Filter Options" dangling_opts && ret=0 + ;; + (driver) + __docker_complete_info_plugins Volume && ret=0 + ;; + (name) + __docker_complete_volumes && ret=0 + ;; + *) + _message 'value' && ret=0 + ;; + esac + else + opts=('dangling' 'driver' 'label' 'name') + _describe -t filter-opts "Filter Options" opts -qS "=" && ret=0 + fi + + return ret +} + +__docker_complete_volumes() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + declare -a lines volumes + + lines=(${(f)${:-"$(_call_program commands docker $docker_options volume ls)"$'\n'}}) + + # Parse header line to find columns + local i=1 j=1 k header=${lines[1]} + declare -A begin end + while (( j < ${#header} - 1 )); do + i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 )) + j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 )) + k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 )) + begin[${header[$i,$((j-1))]}]=$i + end[${header[$i,$((j-1))]}]=$k + done + end[${header[$i,$((j-1))]}]=-1 + lines=(${lines[2,-1]}) + + # Names + local line s + for line in $lines; do + s="${line[${begin[VOLUME NAME]},${end[VOLUME NAME]}]%% ##}" + s="$s:${(l:7:: :::)${${line[${begin[DRIVER]},${end[DRIVER]}]}%% ##}}" + volumes=($volumes $s) + done + + _describe -t volumes-list "volumes" volumes && ret=0 + return ret +} + +__docker_volume_commands() { + local -a _docker_volume_subcommands + _docker_volume_subcommands=( + "create:Create a volume" + "inspect:Display detailed information on one or more volumes" + "ls:List volumes" + "prune:Remove all unused volumes" + "rm:Remove one or more volumes" + ) + _describe -t docker-volume-commands "docker volume command" _docker_volume_subcommands +} + +__docker_volume_subcommand() { + local -a _command_args opts_help + local expl help="--help" + integer ret=1 + + opts_help=("(: -)--help[Print usage]") + + case "$words[1]" in + (create) + _arguments $(__docker_arguments) -A '-*' \ + $opts_help \ + "($help -d --driver)"{-d=,--driver=}"[Volume driver name]:Driver name:(local)" \ + "($help)*--label=[Set metadata for a volume]:label=value: " \ + "($help)*"{-o=,--opt=}"[Driver specific options]:Driver option: " \ + "($help -)1:Volume name: " && ret=0 + ;; + (inspect) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ + "($help -)1:volume:__docker_complete_volumes" && ret=0 + ;; + (ls) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)*"{-f=,--filter=}"[Provide filter values]:filter:__docker_volume_complete_ls_filters" \ + "($help)--format=[Format the output using the given Go template]:template: " \ + "($help -q --quiet)"{-q,--quiet}"[Only display volume names]" && ret=0 + ;; + (prune) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -a --all)"{-a,--all}"[Remove all unused local volumes, not just anonymous ones]" \ + "($help)*--filter=[Filter values]:filter:__docker_complete_prune_filters" \ + "($help -f --force)"{-f,--force}"[Do not prompt for confirmation]" && ret=0 + ;; + (rm) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --force)"{-f,--force}"[Force the removal of one or more volumes]" \ + "($help -):volume:__docker_complete_volumes" && ret=0 + ;; + (help) + _arguments $(__docker_arguments) ":subcommand:__docker_volume_commands" && ret=0 + ;; + esac + + return ret +} + +# EO volume + +# BO context + +__docker_complete_contexts() { + [[ $PREFIX = -* ]] && return 1 + integer ret=1 + declare -a contexts + + contexts=(${(f)${:-"$(_call_program commands docker $docker_options context ls -q)"$'\n'}}) + + _describe -t context-list "context" contexts && ret=0 + return ret +} + +__docker_context_commands() { + local -a _docker_context_subcommands + _docker_context_subcommands=( + "create:Create new context" + "inspect:Display detailed information on one or more contexts" + "list:List available contexts" + "rm:Remove one or more contexts" + "show:Print the current context" + "update:Update a context" + "use:Set the default context" + ) + _describe -t docker-context-commands "docker context command" _docker_context_subcommands +} + +__docker_context_subcommand() { + local -a _command_args opts_help + local expl help="--help" + integer ret=1 + + opts_help=("(: -)--help[Print usage]") + + case "$words[1]" in + (create) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--description=[Description of the context]:description:" \ + "($help)--docker=[Set the docker endpoint]:docker:" \ + "($help)--from=[Create context from a named context]:from:__docker_complete_contexts" \ + "($help -):name: " && ret=0 + ;; + (use) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)1:context:__docker_complete_contexts" && ret=0 + ;; + (inspect) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)1:context:__docker_complete_contexts" && ret=0 + ;; + (rm) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)1:context:__docker_complete_contexts" && ret=0 + ;; + (update) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--description=[Description of the context]:description:" \ + "($help)--docker=[Set the docker endpoint]:docker:" \ + "($help -):name:" && ret=0 + ;; + esac + + return ret +} + +# EO context + +__docker_caching_policy() { + oldp=( "$1"(Nmh+1) ) # 1 hour + (( $#oldp )) +} + +__docker_commands() { + local cache_policy + integer force_invalidation=0 + + zstyle -s ":completion:${curcontext}:" cache-policy cache_policy + if [[ -z "$cache_policy" ]]; then + zstyle ":completion:${curcontext}:" cache-policy __docker_caching_policy + fi + + if ( (( ! ${+_docker_hide_legacy_commands} )) || _cache_invalid docker_hide_legacy_commands ) \ + && ! _retrieve_cache docker_hide_legacy_commands; + then + _docker_hide_legacy_commands="${DOCKER_HIDE_LEGACY_COMMANDS}" + _store_cache docker_hide_legacy_commands _docker_hide_legacy_commands + fi + + if [[ "${_docker_hide_legacy_commands}" != "${DOCKER_HIDE_LEGACY_COMMANDS}" ]]; then + force_invalidation=1 + _docker_hide_legacy_commands="${DOCKER_HIDE_LEGACY_COMMANDS}" + _store_cache docker_hide_legacy_commands _docker_hide_legacy_commands + fi + + if ( [[ ${+_docker_subcommands} -eq 0 ]] || _cache_invalid docker_subcommands ) \ + && ! _retrieve_cache docker_subcommands || [[ ${force_invalidation} -eq 1 ]]; + then + local -a lines + lines=(${(f)"$(_call_program commands docker 2>&1)"}) + _docker_subcommands=(${${${(M)${lines[$((${lines[(i)*Commands:]} + 1)),-1]}:# *}## #}/\*# ##/:}) + _docker_subcommands=($_docker_subcommands 'daemon:Enable daemon mode' 'help:Show help for a command') + (( $#_docker_subcommands > 2 )) && _store_cache docker_subcommands _docker_subcommands + fi + _describe -t docker-commands "docker command" _docker_subcommands +} + +__docker_subcommand() { + local -a _command_args opts_help + local expl help="--help" + integer ret=1 + + opts_help=("(: -)--help[Print usage]") + + case "$words[1]" in + (attach|commit|cp|create|diff|exec|export|kill|logs|pause|unpause|port|rename|restart|rm|run|start|stats|stop|top|update|wait) + __docker_container_subcommand && ret=0 + ;; + (build|history|import|load|pull|push|save|tag) + __docker_image_subcommand && ret=0 + ;; + (checkpoint) + local curcontext="$curcontext" state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -): :->command" \ + "($help -)*:: :->option-or-argument" && ret=0 + + case $state in + (command) + __docker_checkpoint_commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*:*}:docker-${words[-1]}: + __docker_checkpoint_subcommand && ret=0 + ;; + esac + ;; + (container) + local curcontext="$curcontext" state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -): :->command" \ + "($help -)*:: :->option-or-argument" && ret=0 + + case $state in + (command) + __docker_container_commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*:*}:docker-${words[-1]}: + __docker_container_subcommand && ret=0 + ;; + esac + ;; + (context) + local curcontext="$curcontext" state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -): :->command" \ + "($help -)*:: :->option-or-argument" && ret=0 + + case $state in + (command) + __docker_context_commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*:*}:docker-${words[-1]}: + __docker_context_subcommand && ret=0 + ;; + esac + ;; + (daemon) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)*--add-runtime=[Register an additional OCI compatible runtime]:runtime:__docker_complete_runtimes" \ + "($help)*--allow-nondistributable-artifacts=[Push nondistributable artifacts to specified registries]:registry: " \ + "($help)--api-cors-header=[CORS headers in the Engine API]:CORS headers: " \ + "($help)*--authorization-plugin=[Authorization plugins to load]" \ + "($help -b --bridge)"{-b=,--bridge=}"[Attach containers to a network bridge]:bridge:_net_interfaces" \ + "($help)--bip=[Network bridge IP]:IP address: " \ + "($help)--cgroup-parent=[Parent cgroup for all containers]:cgroup: " \ + "($help)--config-file=[Path to daemon configuration file]:Config File:_files" \ + "($help)--containerd=[Path to containerd socket]:socket:_files -g \"*.sock\"" \ + "($help)--containerd-namespace=[Containerd namespace to use]:containerd namespace:" \ + "($help)--containerd-plugins-namespace=[Containerd namespace to use for plugins]:containerd namespace:" \ + "($help)--data-root=[Root directory of persisted Docker data]:path:_directories" \ + "($help -D --debug)"{-D,--debug}"[Enable debug mode]" \ + "($help)--default-gateway[Container default gateway IPv4 address]:IPv4 address: " \ + "($help)--default-gateway-v6[Container default gateway IPv6 address]:IPv6 address: " \ + "($help)--default-shm-size=[Default shm size for containers]:size:" \ + "($help)*--default-ulimit=[Default ulimits for containers]:ulimit: " \ + "($help)*--dns=[DNS server to use]:DNS: " \ + "($help)*--dns-opt=[DNS options to use]:DNS option: " \ + "($help)*--dns-search=[DNS search domains to use]:DNS search: " \ + "($help)*--exec-opt=[Runtime execution options]:runtime execution options: " \ + "($help)--exec-root=[Root directory for execution state files]:path:_directories" \ + "($help)--experimental[Enable experimental features]" \ + "($help)--fixed-cidr=[IPv4 subnet for fixed IPs]:IPv4 subnet: " \ + "($help)--fixed-cidr-v6=[IPv6 subnet for fixed IPs]:IPv6 subnet: " \ + "($help -G --group)"{-G=,--group=}"[Group for the unix socket]:group:_groups" \ + "($help -H --host)"{-H=,--host=}"[tcp://host:port to bind/connect to]:host: " \ + "($help)--icc[Enable inter-container communication]" \ + "($help)--init[Run an init inside containers to forward signals and reap processes]" \ + "($help)--init-path=[Path to the docker-init binary]:docker-init binary:_files" \ + "($help)*--insecure-registry=[Enable insecure registry communication]:registry: " \ + "($help)--ip=[Default IP when binding container ports]" \ + "($help)--ip-forward[Enable net.ipv4.ip_forward]" \ + "($help)--ip-masq[Enable IP masquerading]" \ + "($help)--iptables[Enable addition of iptables rules]" \ + "($help)--ipv6[Enable IPv6 networking]" \ + "($help -l --log-level)"{-l=,--log-level=}"[Logging level]:level:(debug info warn error fatal)" \ + "($help)*--label=[Key=value labels]:label: " \ + "($help)--live-restore[Enable live restore of docker when containers are still running]" \ + "($help)--log-driver=[Default driver for container logs]:logging driver:__docker_complete_log_drivers" \ + "($help)*--log-opt=[Default log driver options for containers]:log driver options:__docker_complete_log_options" \ + "($help)--max-concurrent-downloads[Set the max concurrent downloads]" \ + "($help)--max-concurrent-uploads[Set the max concurrent uploads]" \ + "($help)--max-download-attempts[Set the max download attempts for each pull]" \ + "($help)--mtu=[Network MTU]:mtu:(0 576 1420 1500 9000)" \ + "($help)--oom-score-adjust=[Set the oom_score_adj for the daemon]:oom-score:(-500)" \ + "($help -p --pidfile)"{-p=,--pidfile=}"[Path to use for daemon PID file]:PID file:_files" \ + "($help)--raw-logs[Full timestamps without ANSI coloring]" \ + "($help)*--registry-mirror=[Preferred registry mirror]:registry mirror: " \ + "($help)--seccomp-profile=[Path to seccomp profile]:path:_files -g \"*.json\"" \ + "($help -s --storage-driver)"{-s=,--storage-driver=}"[Storage driver to use]:driver:(btrfs devicemapper overlay2 vfs zfs)" \ + "($help)--selinux-enabled[Enable selinux support]" \ + "($help)--shutdown-timeout=[Set the shutdown timeout value in seconds]:time: " \ + "($help)*--storage-opt=[Storage driver options]:storage driver options: " \ + "($help)--tls[Use TLS]" \ + "($help)--tlscacert=[Trust certs signed only by this CA]:PEM file:_files -g \"*.(pem|crt)\"" \ + "($help)--tlscert=[Path to TLS certificate file]:PEM file:_files -g \"*.(pem|crt)\"" \ + "($help)--tlskey=[Path to TLS key file]:Key file:_files -g \"*.(pem|key)\"" \ + "($help)--tlsverify[Use TLS and verify the remote]" \ + "($help)--userns-remap=[User/Group setting for user namespaces]:user\:group:->users-groups" \ + "($help)--userland-proxy[Use userland proxy for loopback traffic]" \ + "($help)--userland-proxy-path=[Path to the userland proxy binary]:binary:_files" \ + "($help)--validate[Validate daemon configuration and exit]" && ret=0 + + case $state in + (users-groups) + if compset -P '*:'; then + _groups && ret=0 + else + _describe -t userns-default "default Docker user management" '(default)' && ret=0 + _users && ret=0 + fi + ;; + esac + ;; + (events|info) + __docker_system_subcommand && ret=0 + ;; + (image) + local curcontext="$curcontext" state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -): :->command" \ + "($help -)*:: :->option-or-argument" && ret=0 + + case $state in + (command) + __docker_image_commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*:*}:docker-${words[-1]}: + __docker_image_subcommand && ret=0 + ;; + esac + ;; + (images) + words[1]='ls' + __docker_image_subcommand && ret=0 + ;; + (inspect) + local state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ + "($help -s --size)"{-s,--size}"[Display total file sizes if the type is container]" \ + "($help)--type=[Return JSON for specified type]:type:(container image network node plugin service volume)" \ + "($help -)*: :->values" && ret=0 + + case $state in + (values) + if [[ ${words[(r)--type=container]} == --type=container ]]; then + __docker_complete_containers && ret=0 + elif [[ ${words[(r)--type=image]} == --type=image ]]; then + __docker_complete_images && ret=0 + elif [[ ${words[(r)--type=network]} == --type=network ]]; then + __docker_complete_networks && ret=0 + elif [[ ${words[(r)--type=node]} == --type=node ]]; then + __docker_complete_nodes && ret=0 + elif [[ ${words[(r)--type=plugin]} == --type=plugin ]]; then + __docker_complete_plugins && ret=0 + elif [[ ${words[(r)--type=service]} == --type=secrets ]]; then + __docker_complete_secrets && ret=0 + elif [[ ${words[(r)--type=service]} == --type=service ]]; then + __docker_complete_services && ret=0 + elif [[ ${words[(r)--type=volume]} == --type=volume ]]; then + __docker_complete_volumes && ret=0 + else + __docker_complete_containers + __docker_complete_images + __docker_complete_networks + __docker_complete_nodes + __docker_complete_plugins + __docker_complete_secrets + __docker_complete_services + __docker_complete_volumes && ret=0 + fi + ;; + esac + ;; + (login) + _arguments $(__docker_arguments) -A '-*' \ + $opts_help \ + "($help -p --password)"{-p=,--password=}"[Password]:password: " \ + "($help)--password-stdin[Read password from stdin]" \ + "($help -u --username)"{-u=,--username=}"[Username]:username: " \ + "($help -)1:server: " && ret=0 + ;; + (logout) + _arguments $(__docker_arguments) -A '-*' \ + $opts_help \ + "($help -)1:server: " && ret=0 + ;; + (network) + local curcontext="$curcontext" state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -): :->command" \ + "($help -)*:: :->option-or-argument" && ret=0 + + case $state in + (command) + __docker_network_commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*:*}:docker-${words[-1]}: + __docker_network_subcommand && ret=0 + ;; + esac + ;; + (node) + local curcontext="$curcontext" state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -): :->command" \ + "($help -)*:: :->option-or-argument" && ret=0 + + case $state in + (command) + __docker_node_commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*:*}:docker-${words[-1]}: + __docker_node_subcommand && ret=0 + ;; + esac + ;; + (plugin) + local curcontext="$curcontext" state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -): :->command" \ + "($help -)*:: :->option-or-argument" && ret=0 + + case $state in + (command) + __docker_plugin_commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*:*}:docker-${words[-1]}: + __docker_plugin_subcommand && ret=0 + ;; + esac + ;; + (ps) + words[1]='ls' + __docker_container_subcommand && ret=0 + ;; + (rmi) + words[1]='rm' + __docker_image_subcommand && ret=0 + ;; + (search) + _arguments $(__docker_arguments) -A '-*' \ + $opts_help \ + "($help)*"{-f=,--filter=}"[Filter values]:filter:__docker_complete_search_filters" \ + "($help)--limit=[Maximum returned search results]:limit:(1 5 10 25 50)" \ + "($help)--no-trunc[Do not truncate output]" \ + "($help -):term: " && ret=0 + ;; + (secret) + local curcontext="$curcontext" state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -): :->command" \ + "($help -)*:: :->option-or-argument" && ret=0 + + case $state in + (command) + __docker_secret_commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*:*}:docker-${words[-1]}: + __docker_secret_subcommand && ret=0 + ;; + esac + ;; + (service) + local curcontext="$curcontext" state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -): :->command" \ + "($help -)*:: :->option-or-argument" && ret=0 + + case $state in + (command) + __docker_service_commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*:*}:docker-${words[-1]}: + __docker_service_subcommand && ret=0 + ;; + esac + ;; + (stack) + local curcontext="$curcontext" state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -): :->command" \ + "($help -)*:: :->option-or-argument" && ret=0 + + case $state in + (command) + __docker_stack_commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*:*}:docker-${words[-1]}: + __docker_stack_subcommand && ret=0 + ;; + esac + ;; + (swarm) + local curcontext="$curcontext" state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -): :->command" \ + "($help -)*:: :->option-or-argument" && ret=0 + + case $state in + (command) + __docker_swarm_commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*:*}:docker-${words[-1]}: + __docker_swarm_subcommand && ret=0 + ;; + esac + ;; + (system) + local curcontext="$curcontext" state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -): :->command" \ + "($help -)*:: :->option-or-argument" && ret=0 + + case $state in + (command) + __docker_system_commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*:*}:docker-${words[-1]}: + __docker_system_subcommand && ret=0 + ;; + esac + ;; + (version) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " && ret=0 + ;; + (volume) + local curcontext="$curcontext" state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -): :->command" \ + "($help -)*:: :->option-or-argument" && ret=0 + + case $state in + (command) + __docker_volume_commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*:*}:docker-${words[-1]}: + __docker_volume_subcommand && ret=0 + ;; + esac + ;; + (help) + _arguments $(__docker_arguments) ":subcommand:__docker_commands" && ret=0 + ;; + esac + + return ret +} + +_docker() { + # Support for subservices, which allows for `compdef _docker docker-shell=_docker_containers`. + # Based on /usr/share/zsh/functions/Completion/Unix/_git without support for `ret`. + if [[ $service != docker ]]; then + _call_function - _$service + return + fi + + local curcontext="$curcontext" state line help="-h --help" + integer ret=1 + typeset -A opt_args + + _arguments $(__docker_arguments) -C \ + "(: -)"{-h,--help}"[Print usage]" \ + "($help)--config[Location of client config files]:path:_directories" \ + "($help -c --context)"{-c=,--context=}"[Execute the command in a docker context]:context:__docker_complete_contexts" \ + "($help -D --debug)"{-D,--debug}"[Enable debug mode]" \ + "($help -H --host)"{-H=,--host=}"[tcp://host:port to bind/connect to]:host: " \ + "($help -l --log-level)"{-l=,--log-level=}"[Logging level]:level:(debug info warn error fatal)" \ + "($help)--tls[Use TLS]" \ + "($help)--tlscacert=[Trust certs signed only by this CA]:PEM file:_files -g "*.(pem|crt)"" \ + "($help)--tlscert=[Path to TLS certificate file]:PEM file:_files -g "*.(pem|crt)"" \ + "($help)--tlskey=[Path to TLS key file]:Key file:_files -g "*.(pem|key)"" \ + "($help)--tlsverify[Use TLS and verify the remote]" \ + "($help)--userland-proxy[Use userland proxy for loopback traffic]" \ + "($help -v --version)"{-v,--version}"[Print version information and quit]" \ + "($help -): :->command" \ + "($help -)*:: :->option-or-argument" && ret=0 + + local host=${opt_args[-H]}${opt_args[--host]} + local config=${opt_args[--config]} + local context=${opt_args[-c]}${opt_args[--context]} + local docker_options="${host:+--host $host} ${config:+--config $config} ${context:+--context $context} " + + case $state in + (command) + __docker_commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*:*}:docker-$words[1]: + __docker_subcommand && ret=0 + ;; + esac + + return ret +} + +_dockerd() { + integer ret=1 + words[1]='daemon' + __docker_subcommand && ret=0 + return ret +} + +_docker "$@" + +# Local Variables: +# mode: Shell-Script +# sh-indentation: 4 +# indent-tabs-mode: nil +# sh-basic-offset: 4 +# End: +# vim: ft=zsh sw=4 ts=4 et From 73c4764e78947864c6f067df3bec4cff02866eb2 Mon Sep 17 00:00:00 2001 From: Andrei Polushin Date: Thu, 29 Jun 2023 13:25:41 +0200 Subject: [PATCH 287/441] fix(docker): use `docker --version` instead of `docker version` `docker version` subcommand is able to return both docker client and docker daemon information. To get a daemon version, it connects to a possibly remote daemon. If the remote daemon is not accessible, the client waits for some time, until it gets interrupted by timeout. As a result we can have a docker client running in background. When zsh session is rather short, a terminal application (iTerm2) starts asking if that background docker process should be stopped. On the other hand, to get a docker client version only, we can use `docker --version` instead. It does not connect to a daemon. Closes #11780 --- plugins/docker/docker.plugin.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/docker/docker.plugin.zsh b/plugins/docker/docker.plugin.zsh index 434b1fc60..3abce6466 100644 --- a/plugins/docker/docker.plugin.zsh +++ b/plugins/docker/docker.plugin.zsh @@ -37,8 +37,10 @@ if (( ! $+commands[docker] )); then fi { + # docker version returns `Docker version 24.0.2, build cb74dfcd85` + # with `s:,:` remove the comma after the version, and select third word of it + local _docker_version=${${(s:,:z)"$(command docker --version)"}[3]} # `docker completion` is only available from 23.0.0 on - local _docker_version=$(command docker version --format '{{.Client.Version}}' 2>/dev/null) if is-at-least 23.0.0 $_docker_version; then # If the completion file doesn't exist yet, we need to autoload it and # bind it to `docker`. Otherwise, compinit will have already done that. From 54779e5250f362ebd1cf6a7094657f2c894958c3 Mon Sep 17 00:00:00 2001 From: Matthias Heyman Date: Thu, 29 Jun 2023 13:29:14 +0200 Subject: [PATCH 288/441] fix(jira): support identifiers delimited with a hyphen (#11782) Co-authored-by: Matthias Heyman --- plugins/jira/jira.plugin.zsh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh index e789fce92..b6ee9f100 100644 --- a/plugins/jira/jira.plugin.zsh +++ b/plugins/jira/jira.plugin.zsh @@ -80,7 +80,13 @@ function jira() { issue_arg=${issue_arg##*/} # Strip suffixes starting with _ issue_arg=(${(s:_:)issue_arg}) - issue_arg=${issue_arg[1]} + # If there is only one part, it means that there is a different delimiter. Try with - + if [[ ${#issue_arg[@]} = 1 && ${issue_arg} == *-* ]]; then + issue_arg=(${(s:-:)issue_arg}) + issue_arg="${issue_arg[1]}-${issue_arg[2]}" + else + issue_arg=${issue_arg[1]} + fi if [[ "${issue_arg:l}" = ${jira_prefix:l}* ]]; then issue="${issue_arg}" else From fe4b5659863c388786986d70fa6d1bb66b00afb6 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Fri, 30 Jun 2023 11:41:44 +0200 Subject: [PATCH 289/441] fix(docker): only load old completion if docker <23 --- plugins/docker/{ => completions}/_docker | 0 plugins/docker/docker.plugin.zsh | 7 +++++++ 2 files changed, 7 insertions(+) rename plugins/docker/{ => completions}/_docker (100%) diff --git a/plugins/docker/_docker b/plugins/docker/completions/_docker similarity index 100% rename from plugins/docker/_docker rename to plugins/docker/completions/_docker diff --git a/plugins/docker/docker.plugin.zsh b/plugins/docker/docker.plugin.zsh index 3abce6466..7777048a3 100644 --- a/plugins/docker/docker.plugin.zsh +++ b/plugins/docker/docker.plugin.zsh @@ -36,6 +36,11 @@ if (( ! $+commands[docker] )); then return fi +# Standarized $0 handling +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + { # docker version returns `Docker version 24.0.2, build cb74dfcd85` # with `s:,:` remove the comma after the version, and select third word of it @@ -50,5 +55,7 @@ fi _comps[docker]=_docker fi command docker completion zsh >| "$ZSH_CACHE_DIR/completions/_docker" + else + command cp "${0:h}/completions/_docker" "$ZSH_CACHE_DIR/completions/_docker" fi } &| From 8bdb5c959c9a5c74d3b59c05a3a0bca5e602c3cd Mon Sep 17 00:00:00 2001 From: Jarrett Lusso Date: Sat, 15 Jul 2023 16:10:48 -0400 Subject: [PATCH 290/441] docs(nvm): clarify autoload setup (#11797) --- plugins/nvm/README.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/plugins/nvm/README.md b/plugins/nvm/README.md index eee3bf717..b5ef221d3 100644 --- a/plugins/nvm/README.md +++ b/plugins/nvm/README.md @@ -52,12 +52,7 @@ version to load. This can be done, similar as previous options, adding: ```zsh zstyle ':omz:plugins:nvm' autoload yes -``` - -To remove the output generated by NVM when autoloading, you can set the following option: - -```zsh -zstyle ':omz:plugins:nvm' silent-autoload yes +zstyle ':omz:plugins:nvm' silent-autoload yes # optionally remove the output generated by NVM when autoloading ``` Note: _this will not remove regular `nvm` output_ From b3427f0de6cf7a2ea8387366c44257663e72555c Mon Sep 17 00:00:00 2001 From: majick <125657+majick@users.noreply.github.com> Date: Wed, 19 Jul 2023 14:28:33 +0200 Subject: [PATCH 291/441] fix(ubuntu)!: rename `acse` alias to `acs` Closes #11799 This commit reverses 5bfdd0356b46dc711a8f0866eeb9b717c033d5b2 BREAKING CHANGE: reverting alias rename from `acs` to `acse`. --- plugins/debian/README.md | 2 +- plugins/debian/debian.plugin.zsh | 2 +- plugins/ubuntu/README.md | 2 +- plugins/ubuntu/ubuntu.plugin.zsh | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/debian/README.md b/plugins/debian/README.md index c1ebe1c50..1db534f13 100644 --- a/plugins/debian/README.md +++ b/plugins/debian/README.md @@ -21,7 +21,7 @@ Set `$apt_pref` and `$apt_upgr` to whatever command you want (before sourcing Oh | ------ | ---------------------------------------------------------------------- | ---------------------------------------------------------- | | `age` | `apt-get` | Command line tool for handling packages | | `api` | `aptitude` | Same functionality as `apt-get`, provides extra options | -| `acse` | `apt-cache search` | Command line tool for searching apt software package cache | +| `acs` | `apt-cache search` | Command line tool for searching apt software package cache | | `aps` | `aptitude search` | Searches installed packages using aptitude | | `as` | `aptitude -F '* %p -> %d \n(%v/%V)' --no-gui --disable-columns search` | Print searched packages using a custom format | | `afs` | `apt-file search --regexp` | Search file in packages | diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index bab1ae1c6..5ef4cfb67 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -26,7 +26,7 @@ alias age='apt-get' alias api='aptitude' # Some self-explanatory aliases -alias acse="apt-cache search" +alias acs="apt-cache search" alias aps='aptitude search' alias as="aptitude -F '* %p -> %d \n(%v/%V)' --no-gui --disable-columns search" diff --git a/plugins/ubuntu/README.md b/plugins/ubuntu/README.md index 2401c102b..20f5c65ee 100644 --- a/plugins/ubuntu/README.md +++ b/plugins/ubuntu/README.md @@ -15,7 +15,7 @@ Commands that use `$APT` will use `apt` if installed or defer to `apt-get` other | Alias | Command | Description | |---------|--------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------| | age | `sudo $APT` | Run apt-get with sudo | -| acse | `apt-cache search` | Search the apt-cache with the specified criteria | +| acs | `apt-cache search` | Search the apt-cache with the specified criteria | | acsp | `apt-cache showpkg` | Shows information about the listed packages | | acp | `apt-cache policy` | Display the package source priorities | | afs | `apt-file search --regexp` | Perform a regular expression apt-file search | diff --git a/plugins/ubuntu/ubuntu.plugin.zsh b/plugins/ubuntu/ubuntu.plugin.zsh index 4d35da2ac..7b765a406 100644 --- a/plugins/ubuntu/ubuntu.plugin.zsh +++ b/plugins/ubuntu/ubuntu.plugin.zsh @@ -1,6 +1,6 @@ (( $+commands[apt] )) && APT=apt || APT=apt-get -alias acse='apt-cache search' +alias acs='apt-cache search' alias afs='apt-file search --regexp' From 33fbbdbb0d46e87d76bbef94ac07ceff2cd0b47e Mon Sep 17 00:00:00 2001 From: majick <125657+majick@users.noreply.github.com> Date: Wed, 19 Jul 2023 14:28:55 +0200 Subject: [PATCH 292/441] fix(aliases)!: rename `acs` to `als` BREAKING CHANGE: rename main function from `acs` to `als` to avoid conflicts with `ubuntu` and `debian` plugins and improve semantics. --- plugins/aliases/README.md | 10 +++++----- plugins/aliases/aliases.plugin.zsh | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/aliases/README.md b/plugins/aliases/README.md index 6a2da3d74..419554095 100644 --- a/plugins/aliases/README.md +++ b/plugins/aliases/README.md @@ -15,14 +15,14 @@ Requirements: Python needs to be installed. ## Usage -- `acs`: show all aliases by group +- `als`: show all aliases by group -- `acs -h/--help`: print help mesage +- `als -h/--help`: print help mesage -- `acs `: filter and highlight aliases by `` +- `als `: filter and highlight aliases by `` -- `acs -g /--group `: show only aliases for group ``. Multiple uses of the flag show all groups +- `als -g /--group `: show only aliases for group ``. Multiple uses of the flag show all groups -- `acs --groups`: show only group names +- `als --groups`: show only group names ![screenshot](https://cloud.githubusercontent.com/assets/3602957/11581913/cb54fb8a-9a82-11e5-846b-5a67f67ad9ad.png) diff --git a/plugins/aliases/aliases.plugin.zsh b/plugins/aliases/aliases.plugin.zsh index 9864de957..7f1ba83b8 100644 --- a/plugins/aliases/aliases.plugin.zsh +++ b/plugins/aliases/aliases.plugin.zsh @@ -4,7 +4,7 @@ 0="${${(M)0:#/*}:-$PWD/$0}" eval ' - function acs(){ + function als(){ (( $+commands[python3] )) || { echo "[error] No python executable detected" return From 7cf00a0b5cf0f25c16fc7902f78dff480e03fe3d Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 19 Jul 2023 14:46:35 +0200 Subject: [PATCH 293/441] fix(nvm): remove nvm not found verbose message --- plugins/nvm/nvm.plugin.zsh | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index 484ef2964..1badbeab5 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -16,13 +16,7 @@ fi # Note: nvm is a function so we need to use `which` which nvm &>/dev/null && return -if [[ -z "$NVM_DIR" ]]; then - echo "[oh-my-zsh] nvm installation cannot be found" - echo "[oh-my-zsh] set NVM_DIR to your installation" - return -fi -if [[ ! -f "$NVM_DIR/nvm.sh" ]]; then - echo "[oh-my-zsh] nvm.sh does not exist in $NVM_DIR" +if [[ -z "$NVM_DIR" ]] || [[ ! -f "$NVM_DIR/nvm.sh" ]]; then return fi From c4392a4da31efee36f29a62d3951d5c0fcd7d4e6 Mon Sep 17 00:00:00 2001 From: Jokeoo <30483934+SunJun8@users.noreply.github.com> Date: Wed, 19 Jul 2023 21:03:38 +0800 Subject: [PATCH 294/441] feat(tig): add two new aliases (#11090) --- plugins/tig/tig.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/tig/tig.plugin.zsh b/plugins/tig/tig.plugin.zsh index 7e0c530ac..5b7d2550a 100644 --- a/plugins/tig/tig.plugin.zsh +++ b/plugins/tig/tig.plugin.zsh @@ -1,3 +1,5 @@ alias tis='tig status' alias til='tig log' alias tib='tig blame -C' +alias tif='tig reflog' +alias tia='tig --all' From 7d5e12500a2ba0b575ffafcbb516568973528730 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Thu, 20 Jul 2023 10:43:56 +0200 Subject: [PATCH 295/441] feat(docker): add `legacy-completion` option --- plugins/docker/README.md | 11 ++++++++++- plugins/docker/docker.plugin.zsh | 27 ++++++++++++++------------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/plugins/docker/README.md b/plugins/docker/README.md index 512b5d17c..0ab2e41fb 100644 --- a/plugins/docker/README.md +++ b/plugins/docker/README.md @@ -30,6 +30,15 @@ file**, but be aware of the side effects: > zstyle ':completion:*:*:docker-*:*' option-stacking yes > ``` +### Use old-style completion + +If the current completion does not work well for you, you can enable legacy completion instead with the +following setting. See https://github.com/ohmyzsh/ohmyzsh/issues/11789 for more information. + +```zsh +zstyle ':omz:plugins:docker' legacy-completion yes +``` + ## Aliases | Alias | Command | Description | @@ -58,7 +67,7 @@ file**, but be aware of the side effects: | drm | `docker container rm` | Remove the specified container(s) | | drm! | `docker container rm -f` | Force the removal of a running container (uses SIGKILL) | | dst | `docker container start` | Start one or more stopped containers | -| drs | `docker container restart` | Restart one or more containers +| drs | `docker container restart` | Restart one or more containers | | dsta | `docker stop $(docker ps -q)` | Stop all running containers | | dstp | `docker container stop` | Stop one or more running containers | | dtop | `docker top` | Display the running processes of a container | diff --git a/plugins/docker/docker.plugin.zsh b/plugins/docker/docker.plugin.zsh index 7777048a3..7e657f2df 100644 --- a/plugins/docker/docker.plugin.zsh +++ b/plugins/docker/docker.plugin.zsh @@ -41,21 +41,22 @@ fi 0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" 0="${${(M)0:#/*}:-$PWD/$0}" +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `docker`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_docker" ]]; then + typeset -g -A _comps + autoload -Uz _docker + _comps[docker]=_docker +fi + { + # `docker completion` is only available from 23.0.0 on # docker version returns `Docker version 24.0.2, build cb74dfcd85` # with `s:,:` remove the comma after the version, and select third word of it - local _docker_version=${${(s:,:z)"$(command docker --version)"}[3]} - # `docker completion` is only available from 23.0.0 on - if is-at-least 23.0.0 $_docker_version; then - # If the completion file doesn't exist yet, we need to autoload it and - # bind it to `docker`. Otherwise, compinit will have already done that. - if [[ ! -f "$ZSH_CACHE_DIR/completions/_docker" ]]; then - typeset -g -A _comps - autoload -Uz _docker - _comps[docker]=_docker - fi - command docker completion zsh >| "$ZSH_CACHE_DIR/completions/_docker" - else - command cp "${0:h}/completions/_docker" "$ZSH_CACHE_DIR/completions/_docker" + if zstyle -t ':omz:plugins:docker' legacy-completion || \ + ! is-at-least 23.0.0 ${${(s:,:z)"$(command docker --version)"}[3]}; then + command cp "${0:h}/completions/_docker" "$ZSH_CACHE_DIR/completions/_docker" + else + command docker completion zsh >| "$ZSH_CACHE_DIR/completions/_docker" fi } &| From b9354c5e9c29bd2d5b53731847855d25381c157c Mon Sep 17 00:00:00 2001 From: Zou Yang Date: Mon, 24 Jul 2023 01:44:30 +0800 Subject: [PATCH 296/441] fix(michelebologna): use blue instead of white (#11810) --- themes/michelebologna.zsh-theme | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/themes/michelebologna.zsh-theme b/themes/michelebologna.zsh-theme index bb86d68db..b13b2caf1 100644 --- a/themes/michelebologna.zsh-theme +++ b/themes/michelebologna.zsh-theme @@ -29,14 +29,13 @@ local cyan="%{$fg_bold[cyan]%}" local yellow="%{$fg_bold[yellow]%}" local blue="%{$fg_bold[blue]%}" local magenta="%{$fg_bold[magenta]%}" -local white="%{$fg_bold[white]%}" local reset="%{$reset_color%}" local -a color_array -color_array=($green $red $cyan $yellow $blue $magenta $white) +color_array=($green $red $cyan $yellow $blue $magenta) -local username_color=$white -local hostname_color=$color_array[$[((#HOST))%7+1]] # choose hostname color based on first character +local username_color=$blue +local hostname_color=$color_array[$[((#HOST))%6+1]] # choose hostname color based on first character local current_dir_color=$blue local username="%n" @@ -66,10 +65,10 @@ function michelebologna_git_prompt { local out=$(git_prompt_info)$(git_prompt_status)$(git_remote_status) [[ -n $out ]] || return printf " %s(%s%s%s)%s" \ - "%{$fg_bold[white]%}" \ + "%{$fg_bold[blue]%}" \ "%{$fg_bold[green]%}" \ "$out" \ - "%{$fg_bold[white]%}" \ + "%{$fg_bold[blue]%}" \ "%{$reset_color%}" } From 338b9a615a276240deaf4b6a26bb3abda204fe3f Mon Sep 17 00:00:00 2001 From: cohml <62400541+cohml@users.noreply.github.com> Date: Sun, 23 Jul 2023 16:02:17 -0400 Subject: [PATCH 297/441] fix(per-directory-history): ^G also in vi mode (#11808) Co-authored-by: Chris Hamill --- plugins/per-directory-history/per-directory-history.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/per-directory-history/per-directory-history.zsh b/plugins/per-directory-history/per-directory-history.zsh index 7cd673cdb..acbd64757 100644 --- a/plugins/per-directory-history/per-directory-history.zsh +++ b/plugins/per-directory-history/per-directory-history.zsh @@ -81,6 +81,7 @@ function per-directory-history-toggle-history() { autoload per-directory-history-toggle-history zle -N per-directory-history-toggle-history bindkey $PER_DIRECTORY_HISTORY_TOGGLE per-directory-history-toggle-history +bindkey -M vicmd $PER_DIRECTORY_HISTORY_TOGGLE per-directory-history-toggle-history #------------------------------------------------------------------------------- # implementation details From 6925c44af4bf909a1e023aaa7243e1752db2439a Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 25 Jul 2023 01:22:33 +0200 Subject: [PATCH 298/441] fix(aliases): rename acs to als in script help Closes #11812 --- plugins/aliases/cheatsheet.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/aliases/cheatsheet.py b/plugins/aliases/cheatsheet.py index f742fba9e..61bf5f956 100644 --- a/plugins/aliases/cheatsheet.py +++ b/plugins/aliases/cheatsheet.py @@ -57,7 +57,7 @@ def pretty_print(cheatsheet, wfilter, group_list=None, groups_only=False): pretty_print_group(key, [ alias for alias in aliases if alias[0].find(wfilter)>-1 or alias[1].find(wfilter)>-1], wfilter) if __name__ == '__main__': - parser = argparse.ArgumentParser(description="Pretty print aliases.", prog="acs") + parser = argparse.ArgumentParser(description="Pretty print aliases.", prog="als") parser.add_argument('filter', nargs="*", metavar="", help="search aliases matching keywords") parser.add_argument('-g', '--group', dest="group_list", action='append', help="only print aliases in given groups") parser.add_argument('--groups', dest='groups_only', action='store_true', help="only print alias groups") From e564793939a086fc4c46628b193a38997ea4ecb3 Mon Sep 17 00:00:00 2001 From: naturedamends <120284608+naturedamends@users.noreply.github.com> Date: Tue, 25 Jul 2023 09:25:07 +0100 Subject: [PATCH 299/441] feat(fino-time): add conda environment (#11785) --- themes/fino-time.zsh-theme | 1 + 1 file changed, 1 insertion(+) diff --git a/themes/fino-time.zsh-theme b/themes/fino-time.zsh-theme index c7e2d965e..3f9360ac5 100644 --- a/themes/fino-time.zsh-theme +++ b/themes/fino-time.zsh-theme @@ -12,6 +12,7 @@ # Also borrowing from http://stevelosh.com/blog/2010/02/my-extravagant-zsh-prompt/ function virtualenv_info { + [ $CONDA_DEFAULT_ENV ] && echo "($CONDA_DEFAULT_ENV) " [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') ' } From 4188b22aea3356a02768505103e42a96d18547a3 Mon Sep 17 00:00:00 2001 From: jabunovoty Date: Tue, 25 Jul 2023 10:31:24 +0200 Subject: [PATCH 300/441] feat(agnoster): add git tag to prompt (#8417) Co-authored-by: Jakub Novotny --- themes/agnoster.zsh-theme | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme index 88854eccd..aa274a5bb 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -109,7 +109,9 @@ prompt_git() { if [[ "$(git rev-parse --is-inside-work-tree 2>/dev/null)" = "true" ]]; then repo_path=$(git rev-parse --git-dir 2>/dev/null) dirty=$(parse_git_dirty) - ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git rev-parse --short HEAD 2> /dev/null)" + ref=$(git symbolic-ref HEAD 2> /dev/null) || \ + ref="◈ $(git describe --exact-match --tags HEAD 2> /dev/null)" || \ + ref="➦ $(git rev-parse --short HEAD 2> /dev/null)" if [[ -n $dirty ]]; then prompt_segment yellow black else From 7d2aedf199d1e27b6bea8ab33212043b055b3715 Mon Sep 17 00:00:00 2001 From: David LJ Date: Wed, 9 Aug 2023 18:27:39 +0200 Subject: [PATCH 301/441] chore(gitignore): use new API endpoint from TopTal (#11835) --- plugins/gitignore/README.md | 2 +- plugins/gitignore/gitignore.plugin.zsh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/gitignore/README.md b/plugins/gitignore/README.md index 753dd31fd..23c7887cf 100644 --- a/plugins/gitignore/README.md +++ b/plugins/gitignore/README.md @@ -1,6 +1,6 @@ # gitignore -This plugin enables you the use of [gitignore.io](https://www.gitignore.io/) from the command line. You need an active internet connection. +This plugin enables you the use of [gitignore.io](https://www.toptal.com/developers/gitignore) from the command line. You need an active internet connection. To use it, add `gitignore` to the plugins array in your zshrc file: diff --git a/plugins/gitignore/gitignore.plugin.zsh b/plugins/gitignore/gitignore.plugin.zsh index a687f5cce..3271d61a9 100644 --- a/plugins/gitignore/gitignore.plugin.zsh +++ b/plugins/gitignore/gitignore.plugin.zsh @@ -1,7 +1,7 @@ -function gi() { curl -fLw '\n' https://www.gitignore.io/api/"${(j:,:)@}" } +function gi() { curl -fLw '\n' https://www.toptal.com/developers/gitignore/api/"${(j:,:)@}" } _gitignoreio_get_command_list() { - curl -sfL https://www.gitignore.io/api/list | tr "," "\n" + curl -sfL https://www.toptal.com/developers/gitignore/api/list | tr "," "\n" } _gitignoreio () { From fd219a94ab585fa699a0e842335a9f33dcbb613b Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Thu, 10 Aug 2023 15:39:40 +0200 Subject: [PATCH 302/441] docs(aliases): replace screenshot Closes #11837 Closes #11822 --- plugins/aliases/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/aliases/README.md b/plugins/aliases/README.md index 419554095..53b68ea01 100644 --- a/plugins/aliases/README.md +++ b/plugins/aliases/README.md @@ -25,4 +25,4 @@ Requirements: Python needs to be installed. - `als --groups`: show only group names - ![screenshot](https://cloud.githubusercontent.com/assets/3602957/11581913/cb54fb8a-9a82-11e5-846b-5a67f67ad9ad.png) + ![screenshot](https://github.com/ohmyzsh/ohmyzsh/assets/66907184/5bfa00ea-5fc3-4e97-8b22-2f74f6b948c7) From b81915d3293cc4657cec64202b9fd991b96b4ba2 Mon Sep 17 00:00:00 2001 From: Jin Cheol <76617139+bik1111@users.noreply.github.com> Date: Wed, 16 Aug 2023 20:46:28 +0900 Subject: [PATCH 303/441] feat(terraform): add terraform version prompt (#11845) --- plugins/terraform/README.md | 13 ++++++++----- plugins/terraform/terraform.plugin.zsh | 7 +++++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/plugins/terraform/README.md b/plugins/terraform/README.md index c19f2ad1c..fc9a9f005 100644 --- a/plugins/terraform/README.md +++ b/plugins/terraform/README.md @@ -1,7 +1,7 @@ # Terraform plugin -Plugin for Terraform, a tool from Hashicorp for managing infrastructure safely and efficiently. -It adds completion for `terraform`, as well as aliases and a prompt function. +Plugin for Terraform, a tool from Hashicorp for managing infrastructure safely and efficiently. It adds +completion for `terraform`, as well as aliases and a prompt function. To use it, add `terraform` to the plugins array of your `~/.zshrc` file: @@ -11,7 +11,7 @@ plugins=(... terraform) ## Requirements -* [Terraform](https://terraform.io/) +- [Terraform](https://terraform.io/) ## Aliases @@ -29,11 +29,12 @@ plugins=(... terraform) ## Prompt function -You can add the current Terraform workspace in your prompt by adding `$(tf_prompt_info)` -to your `PROMPT` or `RPROMPT` variable. +You can add the current Terraform workspace in your prompt by adding `$(tf_prompt_info)`, +`$(tf_version_prompt_info)` to your `PROMPT` or `RPROMPT` variable. ```sh RPROMPT='$(tf_prompt_info)' +RPROMPT='$(tf_version_prompt_info)' ``` You can also specify the PREFIX and SUFFIX for the workspace with the following variables: @@ -41,4 +42,6 @@ You can also specify the PREFIX and SUFFIX for the workspace with the following ```sh ZSH_THEME_TF_PROMPT_PREFIX="%{$fg[white]%}" ZSH_THEME_TF_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_TF_VERSION_PROMPT_PREFIX="%{$fg[white]%}" +ZSH_THEME_TF_VERSION_PROMPT_SUFFIX="%{$reset_color%}" ``` diff --git a/plugins/terraform/terraform.plugin.zsh b/plugins/terraform/terraform.plugin.zsh index 7006f204b..ccca54684 100644 --- a/plugins/terraform/terraform.plugin.zsh +++ b/plugins/terraform/terraform.plugin.zsh @@ -8,6 +8,13 @@ function tf_prompt_info() { echo "${ZSH_THEME_TF_PROMPT_PREFIX-[}${workspace:gs/%/%%}${ZSH_THEME_TF_PROMPT_SUFFIX-]}" } +function tf_version_prompt_info() { + local terraform_version + terraform_version=$(terraform --version | head -n 1 | cut -d ' ' -f 2) + echo "${ZSH_THEME_TF_VERSION_PROMPT_PREFIX-[}${terraform_version:gs/%/%%}${ZSH_THEME_TF_VERSION_PROMPT_SUFFIX-]}" +} + + alias tf='terraform' alias tfa='terraform apply' alias tfc='terraform console' From 6bc4c80c7db072a0d2d265eb3589bbe52e0d2737 Mon Sep 17 00:00:00 2001 From: Ahmed Wael <73046395+ahmedwael216@users.noreply.github.com> Date: Mon, 21 Aug 2023 19:07:28 +0300 Subject: [PATCH 304/441] fix(colored-man-pages): add env GROFF_NO_SGR=1 (#11831) --- plugins/colored-man-pages/colored-man-pages.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/colored-man-pages/colored-man-pages.plugin.zsh b/plugins/colored-man-pages/colored-man-pages.plugin.zsh index 981992d88..57facbb5c 100644 --- a/plugins/colored-man-pages/colored-man-pages.plugin.zsh +++ b/plugins/colored-man-pages/colored-man-pages.plugin.zsh @@ -36,6 +36,7 @@ function colored() { # Prefer `less` whenever available, since we specifically configured # environment for it. environment+=( PAGER="${commands[less]:-$PAGER}" ) + environment+=( GROFF_NO_SGR=1 ) # See ./nroff script. if [[ "$OSTYPE" = solaris* ]]; then From dfe2f04de7e839ae0a9757c37a26b9d8710aa372 Mon Sep 17 00:00:00 2001 From: LuckyWindsck Date: Tue, 22 Aug 2023 01:09:02 +0900 Subject: [PATCH 305/441] refactor(init): rename variable (#11851) --- oh-my-zsh.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index a577c1f41..40f13f37e 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -187,12 +187,12 @@ _omz_source() { fi } -# Load all of the config files in ~/oh-my-zsh that end in .zsh +# Load all of the lib files in ~/oh-my-zsh/lib that end in .zsh # TIP: Add files you don't want in git to .gitignore -for config_file ("$ZSH"/lib/*.zsh); do - _omz_source "lib/${config_file:t}" +for lib_file ("$ZSH"/lib/*.zsh); do + _omz_source "lib/${lib_file:t}" done -unset custom_config_file +unset lib_file # Load all of the plugins that were defined in ~/.zshrc for plugin ($plugins); do From 3f477e5da5ee42356f103d2c5cdd478d23bf9f03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 23 Aug 2023 13:25:33 +0200 Subject: [PATCH 306/441] fix(extract): extraction to directory for single-file .gz (#11852) --- plugins/extract/extract.plugin.zsh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index b7a823c9f..513950f33 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -64,7 +64,7 @@ EOF (*.tar.lz) (( $+commands[lzip] )) && tar xvf "$full_path" ;; (*.tar.lz4) lz4 -c -d "$full_path" | tar xvf - ;; (*.tar.lrz) (( $+commands[lrzuntar] )) && lrzuntar "$full_path" ;; - (*.gz) (( $+commands[pigz] )) && pigz -dk "$full_path" || gunzip -k "$full_path" ;; + (*.gz) (( $+commands[pigz] )) && pigz -cdk "$full_path" > "${file:t:r}" || gunzip -ck "$full_path" > "${file:t:r}" ;; (*.bz2) bunzip2 "$full_path" ;; (*.xz) unxz "$full_path" ;; (*.lrz) (( $+commands[lrunzip] )) && lrunzip "$full_path" ;; @@ -106,19 +106,19 @@ EOF # - Y2: at most give 2 files local -a content content=("${extract_dir}"/*(DNY2)) - if [[ ${#content} -eq 1 && -d "${content[1]}" ]]; then - # The extracted folder (${content[1]}) may have the same name as $extract_dir + if [[ ${#content} -eq 1 && -e "${content[1]}" ]]; then + # The extracted file/folder (${content[1]}) may have the same name as $extract_dir # If so, we need to rename it to avoid conflicts in a 3-step process # - # 1. Move and rename the extracted folder to a temporary random name + # 1. Move and rename the extracted file/folder to a temporary random name # 2. Delete the empty folder - # 3. Rename the extracted folder to the original name + # 3. Rename the extracted file/folder to the original name if [[ "${content[1]:t}" == "$extract_dir" ]]; then # =(:) gives /tmp/zsh, with :t it gives zsh - local tmp_dir==(:); tmp_dir="${tmp_dir:t}" - command mv "${content[1]}" "$tmp_dir" \ + local tmp_name==(:); tmp_name="${tmp_name:t}" + command mv "${content[1]}" "$tmp_name" \ && command rmdir "$extract_dir" \ - && command mv "$tmp_dir" "$extract_dir" + && command mv "$tmp_name" "$extract_dir" # Otherwise, if the extracted folder name already exists in the current # directory (because of a previous file / folder), keep the extract_dir elif [[ ! -e "${content[1]:t}" ]]; then From 33c0de7add12b050b94fd6f2f988e9b5547d172c Mon Sep 17 00:00:00 2001 From: Miguel Hargreaves Pimenta Date: Wed, 23 Aug 2023 12:38:32 +0100 Subject: [PATCH 307/441] refactor(git): sort git aliases alphabetically (#9743) --- plugins/git/README.md | 419 ++++++++++++------------ plugins/git/git.plugin.zsh | 634 ++++++++++++++++++------------------- 2 files changed, 527 insertions(+), 526 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index d18531955..0b757c481 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -10,213 +10,214 @@ plugins=(... git) ## Aliases -| Alias | Command | -| :------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| g | git | -| ga | git add | -| gaa | git add --all | -| gapa | git add --patch | -| gau | git add --update | -| gav | git add --verbose | -| gap | git apply | -| gapt | git apply --3way | -| gb | git branch | -| gba | git branch --all | -| gbd | git branch --delete | -| gbda | git branch --no-color --merged \| grep -vE "^([+*]\|\s*($(git_main_branch)\|$(git_develop_branch))\s*$)" \| xargs git branch --delete 2>/dev/null | -| gbD | git branch --delete --force | -| gbg | git branch -vv | grep ": gone\]" | -| gbgd | git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -d | -| gbgD | git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -D | -| gbl | git blame -b -w | -| gbnm | git branch --no-merged | -| gbr | git branch --remote | -| gbs | git bisect | -| gbsb | git bisect bad | -| gbsg | git bisect good | -| gbsr | git bisect reset | -| gbss | git bisect start | -| gc | git commit --verbose | -| gc! | git commit --verbose --amend | -| gcn! | git commit --verbose --no-edit --amend | -| gca | git commit --verbose --all | -| gca! | git commit --verbose --all --amend | -| gcan! | git commit --verbose --all --no-edit --amend | -| gcans! | git commit --verbose --all --signoff --no-edit --amend | -| gcam | git commit --all --message | -| gcas | git commit --all --signoff | -| gcasm | git commit --all --signoff --message | -| gcsm | git commit --signoff --message | -| gcb | git checkout -b | -| gcf | git config --list | -| gcl | git clone --recurse-submodules | -| gccd | git clone --recurse-submodules "$@" && cd "$(basename $\_ .git)" | -| gclean | git clean --interactive -d | -| gpristine | git reset --hard && git clean -dffx | -| gcm | git checkout $(git_main_branch) | -| gcd | git checkout $(git_develop_branch) | -| gcmsg | git commit --message | -| gco | git checkout | -| gcor | git checkout --recurse-submodules | -| gcount | git shortlog --summary -n | -| gcp | git cherry-pick | -| gcpa | git cherry-pick --abort | -| gcpc | git cherry-pick --continue | -| gcs | git commit -S | -| gcss | git commit -S -s | -| gcssm | git commit -S -s -m | -| gd | git diff | -| gdca | git diff --cached | -| gdcw | git diff --cached --word-diff | -| gdct | git describe --tags $(git rev-list --tags --max-count=1) | -| gds | git diff --staged | -| gdt | git diff-tree --no-commit-id --name-only -r | -| gdnolock | git diff $@ ":(exclude)package-lock.json" ":(exclude)\*.lock" | -| gdup | git diff @{upstream} | -| gdv | git diff -w $@ \| view - | -| gdw | git diff --word-diff | -| gf | git fetch | -| gfa | git fetch --all --prune | -| gfg | git ls-files \| grep | -| gfo | git fetch origin | -| gg | git gui citool | -| gga | git gui citool --amend | -| ggf | git push --force origin $(current_branch) | -| ggfl | git push --force-with-lease origin $(current_branch) | -| ggl | git pull origin $(current_branch) | -| ggp | git push origin $(current_branch) | -| ggpnp | ggl && ggp | -| ggpull | git pull origin "$(git_current_branch)" | -| ggpur | ggu | -| ggpush | git push origin "$(git_current_branch)" | -| ggsup | git branch --set-upstream-to=origin/$(git_current_branch) | -| ggu | git pull --rebase origin $(current_branch) | -| gpsup | git push --set-upstream origin $(git_current_branch) | -| gpsupf | git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes (git version >= 2.30) | -| gpsupf | git push --set-upstream origin $(git_current_branch) --force-with-lease (git version < 2.30) | -| ghh | git help | -| gignore | git update-index --assume-unchanged | -| gignored | git ls-files -v \| grep "^[[:lower:]]" | -| git-svn-dcommit-push | git svn dcommit && git push github $(git_main_branch):svntrunk | -| gk | gitk --all --branches &! | -| gke | gitk --all $(git log --walk-reflogs --pretty=%h) &! | -| gl | git pull | -| glg | git log --stat | -| glgp | git log --stat --patch | -| glgg | git log --graph | -| glgga | git log --graph --decorate --all | -| glgm | git log --graph --max-count=10 | -| glo | git log --oneline --decorate | -| glol | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' | -| glols | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat | -| glod | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' | -| glods | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short | -| glola | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all | -| glog | git log --oneline --decorate --graph | -| gloga | git log --oneline --decorate --graph --all | -| glp | git log --pretty=\ | -| gm | git merge | -| gms | git merge --squash | -| gmom | git merge origin/$(git_main_branch) | -| gmtl | git mergetool --no-prompt | -| gmtlvim | git mergetool --no-prompt --tool=vimdiff | -| gmum | git merge upstream/$(git_main_branch) | -| gma | git merge --abort | -| gp | git push | -| gpd | git push --dry-run | -| gpf | git push --force-with-lease --force-if-includes (git version >= 2.30) | -| gpf | git push --force-with-lease (git version < 2.30) | -| gpf! | git push --force | -| gpoat | git push origin --all && git push origin --tags | -| gpod | git push origin --delete | -| gpr | git pull --rebase | -| gpu | git push upstream | -| gpv | git push --verbose | -| gr | git remote | -| gra | git remote add | -| grb | git rebase | -| grba | git rebase --abort | -| grbc | git rebase --continue | -| grbd | git rebase $(git_develop_branch) | -| grbi | git rebase --interactive | -| grbm | git rebase $(git_main_branch) | -| grbom | git rebase origin/$(git_main_branch) | -| grbo | git rebase --onto | -| grbs | git rebase --skip | -| grev | git revert | -| grh | git reset | -| grhh | git reset --hard | -| groh | git reset origin/$(git_current_branch) --hard | -| grm | git rm | -| grmc | git rm --cached | -| grmv | git remote rename | -| grrm | git remote remove | -| grs | git restore | -| grset | git remote set-url | -| grss | git restore --source | -| grst | git restore --staged | -| grt | cd "$(git rev-parse --show-toplevel \|\| echo .)" | -| gru | git reset -- | -| grup | git remote update | -| grv | git remote --verbose | -| gsb | git status --short -b | -| gsd | git svn dcommit | -| gsh | git show | -| gsi | git submodule init | -| gsps | git show --pretty=short --show-signature | -| gsr | git svn rebase | -| gss | git status --short | -| gst | git status | -| gsta | git stash push (git version >= 2.13) | -| gsta | git stash save (git version < 2.13) | -| gstaa | git stash apply | -| gstc | git stash clear | -| gstd | git stash drop | -| gstl | git stash list | -| gstp | git stash pop | -| gsts | git stash show --text | -| gstu | git stash --include-untracked | -| gstall | git stash --all | -| gsu | git submodule update | -| gsw | git switch | -| gswc | git switch -c | -| gswm | git switch $(git_main_branch) | -| gswd | git switch $(git_develop_branch) | -| gts | git tag -s | -| gtv | git tag \| sort -V | -| gtl | gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl | -| gunignore | git update-index --no-assume-unchanged | -| gunwip | git rev-list --max-count=1 --format="%s" HEAD \| grep -q "\-\-wip\-\-" && git reset HEAD~1 | -| gup | git pull --rebase | -| gupv | git pull --rebase --verbose | -| gupa | git pull --rebase --autostash | -| gupav | git pull --rebase --autostash --verbose | -| gupom | git pull --rebase origin $(git_main_branch) | -| gupomi | git pull --rebase=interactive origin $(git_main_branch) | -| glum | git pull upstream $(git_main_branch) | -| gluc | git pull upstream $(git_current_branch) | -| gwch | git whatchanged -p --abbrev-commit --pretty=medium | -| gwip | git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]" | -| gam | git am | -| gamc | git am --continue | -| gams | git am --skip | -| gama | git am --abort | -| gamscp | git am --show-current-patch | -| gwt | git worktree | -| gwtls | git worktree list | -| gwtmv | git worktree move | -| gwtrm | git worktree remove | +| Alias | Command | +| :------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| grt | cd "$(git rev-parse --show-toplevel || echo .)" | +| ggpnp | ggl && ggp | +| ggpur | ggu | +| g | git | +| ga | git add | +| gaa | git add --all | +| gapa | git add --patch | +| gau | git add --update | +| gav | git add --verbose | +| gwip | git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]" | +| gam | git am | +| gama | git am --abort | +| gamc | git am --continue | +| gamscp | git am --show-current-patch | +| gams | git am --skip | +| gap | git apply | +| gapt | git apply --3way | +| gbs | git bisect | +| gbsb | git bisect bad | +| gbsg | git bisect good | +| gbsr | git bisect reset | +| gbss | git bisect start | +| gbl | git blame -b -w | +| gb | git branch | +| gba | git branch --all | +| gbd | git branch --delete | +| gbD | git branch --delete --force | +| gbda | git branch --no-color --merged | grep -vE "^([+]|\s($(git_main_branch)|$(git_develop_branch))\s\*$)" | xargs git branch --delete 2>/dev/null | +| gbgd | git branch --no-color -vv | +| gbgD | git branch --no-color -vv | +| gbnm | git branch --no-merged | +| gbr | git branch --remote | +| ggsup | git branch --set-upstream-to=origin/$(git_current_branch) | +| gbg | git branch -vv | +| gco | git checkout | +| gcor | git checkout --recurse-submodules | +| gcb | git checkout -b | +| gcd | git checkout $(git_develop_branch) | +| gcm | git checkout $(git_main_branch) | +| gcp | git cherry-pick | +| gcpa | git cherry-pick --abort | +| gcpc | git cherry-pick --continue | +| gclean | git clean --interactive -d | +| gcl | git clone --recurse-submodules | +| gccd | git clone --recurse-submodules "$@" && cd "$(basename $\_ .git)" | +| gcam | git commit --all --message | +| gcas | git commit --all --signoff | +| gcasm | git commit --all --signoff --message | +| gcmsg | git commit --message | +| gcsm | git commit --signoff --message | +| gc | git commit --verbose | +| gca | git commit --verbose --all | +| gca! | git commit --verbose --all --amend | +| gcan! | git commit --verbose --all --no-edit --amend | +| gcans! | git commit --verbose --all --signoff --no-edit --amend | +| gc! | git commit --verbose --amend | +| gcn! | git commit --verbose --no-edit --amend | +| gcs | git commit -S | +| gcss | git commit -S -s | +| gcssm | git commit -S -s -m | +| gcf | git config --list | +| gdct | git describe --tags $(git rev-list --tags --max-count=1) | +| gd | git diff | +| gdca | git diff --cached | +| gdcw | git diff --cached --word-diff | +| gds | git diff --staged | +| gdw | git diff --word-diff | +| gdv | git diff -w $@ | view - | +| gdup | git diff @{upstream} | +| gdnolock | git diff $@ ":(exclude)package-lock.json" ":(exclude)\*.lock" | +| gdt | git diff-tree --no-commit-id --name-only -r | +| gf | git fetch | +| gfa | git fetch --all --prune | +| gfo | git fetch origin | +| gg | git gui citool | +| gga | git gui citool --amend | +| ghh | git help | +| glgg | git log --graph | +| glgga | git log --graph --decorate --all | +| glgm | git log --graph --max-count=10 | +| glod | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' | +| glods | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short | +| glol | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' | +| glola | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all | +| glols | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat | +| glo | git log --oneline --decorate | +| glog | git log --oneline --decorate --graph | +| gloga | git log --oneline --decorate --graph --all | +| glp | git log --pretty=\ | +| glg | git log --stat | +| glgp | git log --stat --patch | +| gignored | git ls-files -v | grep "^[[:lower:]]" | +| gfg | git ls-files | grep | +| gm | git merge | +| gma | git merge --abort | +| gms | git merge --squash | +| gmom | git merge origin/$(git_main_branch) | +| gmum | git merge upstream/$(git_main_branch) | +| gmtl | git mergetool --no-prompt | +| gmtlvim | git mergetool --no-prompt --tool=vimdiff | +| gl | git pull | +| gpr | git pull --rebase | +| gup | git pull --rebase | +| gupa | git pull --rebase --autostash | +| gupav | git pull --rebase --autostash --verbose | +| gupv | git pull --rebase --verbose | +| ggu | git pull --rebase origin $(current_branch) | +| gupom | git pull --rebase origin $(git_main_branch) | +| gupomi | git pull --rebase=interactive origin $(git_main_branch) | +| ggpull | git pull origin "$(git_current_branch)" | +| ggl | git pull origin $(current_branch) | +| gluc | git pull upstream $(git_current_branch) | +| glum | git pull upstream $(git_main_branch) | +| gp | git push | +| gpd | git push --dry-run | +| gpf! | git push --force | +| ggf | git push --force origin $(current_branch) | +| gpf | git push --force-with-lease --force-if-includes (git version >= 2.30) | +| gpf | git push --force-with-lease (git version < 2.30) | +| ggfl | git push --force-with-lease origin $(current_branch) | +| gpsup | git push --set-upstream origin $(git_current_branch) | +| gpsupf | git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes (git version >= 2.30) | +| gpsupf | git push --set-upstream origin $(git_current_branch) --force-with-lease (git version < 2.30) | +| gpv | git push --verbose | +| gpoat | git push origin --all && git push origin --tags | +| gpod | git push origin --delete | +| ggpush | git push origin "$(git_current_branch)" | +| ggp | git push origin $(current_branch) | +| gpu | git push upstream | +| grb | git rebase | +| grba | git rebase --abort | +| grbc | git rebase --continue | +| grbi | git rebase --interactive | +| grbo | git rebase --onto | +| grbs | git rebase --skip | +| grbd | git rebase $(git_develop_branch) | +| grbm | git rebase $(git_main_branch) | +| grbom | git rebase origin/$(git_main_branch) | +| gr | git remote | +| grv | git remote --verbose | +| gra | git remote add | +| grrm | git remote remove | +| grmv | git remote rename | +| grset | git remote set-url | +| grup | git remote update | +| grh | git reset | +| gru | git reset -- | +| grhh | git reset --hard | +| gpristine | git reset --hard && git clean -dffx | +| groh | git reset origin/$(git_current_branch) --hard | +| grs | git restore | +| grss | git restore --source | +| grst | git restore --staged | +| gunwip | git rev-list --max-count=1 --format="%s" HEAD | grep -q "--wip--" && git reset HEAD~1 | +| grev | git revert | +| grm | git rm | +| grmc | git rm --cached | +| gcount | git shortlog --summary -n | +| gsh | git show | +| gsps | git show --pretty=short --show-signature | +| gstall | git stash --all | +| gstu | git stash --include-untracked | +| gstaa | git stash apply | +| gstc | git stash clear | +| gstd | git stash drop | +| gstl | git stash list | +| gstp | git stash pop | +| gsta | git stash push (git version >= 2.13) | +| gsta | git stash save (git version < 2.13) | +| gsts | git stash show --text | +| gst | git status | +| gss | git status --short | +| gsb | git status --short -b | +| gsi | git submodule init | +| gsu | git submodule update | +| gsd | git svn dcommit | +| git-svn-dcommit-push | git svn dcommit && git push github $(git_main_branch):svntrunk | +| gsr | git svn rebase | +| gsw | git switch | +| gswc | git switch -c | +| gswd | git switch $(git_develop_branch) | +| gswm | git switch $(git_main_branch) | +| gts | git tag -s | +| gtv | git tag | sort -V | +| gignore | git update-index --assume-unchanged | +| gunignore | git update-index --no-assume-unchanged | +| gwch | git whatchanged -p --abbrev-commit --pretty=medium | +| gwt | git worktree | +| gwtls | git worktree list | +| gwtmv | git worktree move | +| gwtrm | git worktree remove | +| gk | gitk --all --branches &! | +| gke | gitk --all $(git log --walk-reflogs --pretty=%h) &! | +| gtl | gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl | ### Main branch preference -Following the recent push for removing racially-charged words from our technical vocabulary, the git plugin favors using -a branch name other than `master`. In this case, we favor the shorter, neutral and descriptive term `main`. This means -that any aliases and functions that previously used `master`, will use `main` if that branch exists. We do this via the -function `git_main_branch`. +Following the recent push for removing racially-charged words from our technical vocabulary, the git plugin +favors using a branch name other than `master`. In this case, we favor the shorter, neutral and descriptive +term `main`. This means that any aliases and functions that previously used `master`, will use `main` if that +branch exists. We do this via the function `git_main_branch`. ### Deprecated aliases -These are aliases that have been removed, renamed, or otherwise modified in a way that may, or may not, receive further support. +These are aliases that have been removed, renamed, or otherwise modified in a way that may, or may not, +receive further support. | Alias | Command | Modification | | :----- | :----------------------------------------------------- | :----------------------------------------------------- | @@ -238,23 +239,27 @@ These are aliases that have been removed, renamed, or otherwise modified in a wa | Command | Description | | :--------------------- | :------------------------------------------------------------------------------------------------------- | -| `grename ` | Rename `old` branch to `new`, including in origin remote | | current_branch | Return the name of the current branch | -| git_current_user_name | Returns the `user.name` config value | -| git_current_user_email | Returns the `user.email` config value | -| git_main_branch | Returns the name of the main branch: `main` if it exists, `master` otherwise | +| git_current_user_email | Returns the `user.email` config value (lives in lib/git.zsh) | +| git_current_user_name | Returns the `user.name` config value (lives in lib/git.zsh) | | git_develop_branch | Returns the name of the develop branch: `dev`, `devel`, `development` if they exist, `develop` otherwise | +| git_main_branch | Returns the name of the main branch: `main` if it exists, `master` otherwise | +| grename \ \ | Rename `old` branch to `new`, including in origin remote | ### Work in Progress (WIP) -These features allow to pause a branch development and switch to another one (_"Work in Progress"_, or wip). When you want to go back to work, just unwip it. +These features allow to pause a branch development and switch to another one (_"Work in Progress"_, or wip). +When you want to go back to work, just unwip it. | Command | Description | | :--------------- | :---------------------------------------------- | -| work_in_progress | Echoes a warning if the current branch is a wip | | gwip | Commit wip branch | | gunwip | Uncommit wip branch | | gunwipall | Uncommit all recent `--wip--` commits | +| work_in_progress | Echoes a warning if the current branch is a wip | + +Note that `gwip` and `gunwip` are effectivly alias, but are also documented here to group all related WIP +features. ### Deprecated functions diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index d04edea5e..b321ce7b0 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -3,7 +3,9 @@ autoload -Uz is-at-least git_version="${${(As: :)$(git version 2>/dev/null)}[3]}" # -# Functions +# Functions Current +# (sorted alphabetically by function name) +# (order should follow README) # # The name of the current branch @@ -14,42 +16,6 @@ function current_branch() { git_current_branch } -# Pretty log messages -function _git_log_prettily(){ - if ! [ -z $1 ]; then - git log --pretty=$1 - fi -} -compdef _git _git_log_prettily=git-log - -# Warn if the current branch is a WIP -function work_in_progress() { - command git -c log.showSignature=false log -n 1 2>/dev/null | grep -q -- "--wip--" && echo "WIP!!" -} - -# Similar to `gunwip` but recursive "Unwips" all recent `--wip--` commits not just the last one -function gunwipall() { - local _commit=$(git log --grep='--wip--' --invert-grep --max-count=1 --format=format:%H) - - # Check if a commit without "--wip--" was found and it's not the same as HEAD - if [[ "$_commit" != "$(git rev-parse HEAD)" ]]; then - git reset $_commit || return 1 - fi -} - -# Check if main exists and use instead of master -function git_main_branch() { - command git rev-parse --git-dir &>/dev/null || return - local ref - for ref in refs/{heads,remotes/{origin,upstream}}/{main,trunk,mainline,default}; do - if command git show-ref -q --verify $ref; then - echo ${ref:t} - return - fi - done - echo master -} - # Check for develop and similarly named branches function git_develop_branch() { command git rev-parse --git-dir &>/dev/null || return @@ -63,289 +29,18 @@ function git_develop_branch() { echo develop } -# -# Aliases -# (sorted alphabetically) -# - -alias g='git' - -alias ga='git add' -alias gaa='git add --all' -alias gapa='git add --patch' -alias gau='git add --update' -alias gav='git add --verbose' -alias gap='git apply' -alias gapt='git apply --3way' - -alias gb='git branch' -alias gba='git branch --all' -alias gbd='git branch --delete' -alias gbda='git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null' -alias gbD='git branch --delete --force' -alias gbg='git branch -vv | grep ": gone\]"' -alias gbgd='git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -d' -alias gbgD='git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -D' -alias gbl='git blame -b -w' -alias gbnm='git branch --no-merged' -alias gbr='git branch --remote' -alias gbs='git bisect' -alias gbsb='git bisect bad' -alias gbsg='git bisect good' -alias gbsr='git bisect reset' -alias gbss='git bisect start' - -alias gc='git commit --verbose' -alias gc!='git commit --verbose --amend' -alias gcn!='git commit --verbose --no-edit --amend' -alias gca='git commit --verbose --all' -alias gca!='git commit --verbose --all --amend' -alias gcan!='git commit --verbose --all --no-edit --amend' -alias gcans!='git commit --verbose --all --signoff --no-edit --amend' -alias gcam='git commit --all --message' -alias gcsm='git commit --signoff --message' -alias gcas='git commit --all --signoff' -alias gcasm='git commit --all --signoff --message' -alias gcb='git checkout -b' -alias gcf='git config --list' - -function gccd() { - command git clone --recurse-submodules "$@" - [[ -d "$_" ]] && cd "$_" || cd "${${_:t}%.git}" +# Check if main exists and use instead of master +function git_main_branch() { + command git rev-parse --git-dir &>/dev/null || return + local ref + for ref in refs/{heads,remotes/{origin,upstream}}/{main,trunk,mainline,default}; do + if command git show-ref -q --verify $ref; then + echo ${ref:t} + return + fi + done + echo master } -compdef _git gccd=git-clone - -alias gcl='git clone --recurse-submodules' -alias gclean='git clean --interactive -d' -alias gpristine='git reset --hard && git clean --force -dfx' -alias gcm='git checkout $(git_main_branch)' -alias gcd='git checkout $(git_develop_branch)' -alias gcmsg='git commit --message' -alias gco='git checkout' -alias gcor='git checkout --recurse-submodules' -alias gcount='git shortlog --summary --numbered' -alias gcp='git cherry-pick' -alias gcpa='git cherry-pick --abort' -alias gcpc='git cherry-pick --continue' -alias gcs='git commit --gpg-sign' -alias gcss='git commit --gpg-sign --signoff' -alias gcssm='git commit --gpg-sign --signoff --message' - -alias gd='git diff' -alias gdca='git diff --cached' -alias gdcw='git diff --cached --word-diff' -alias gdct='git describe --tags $(git rev-list --tags --max-count=1)' -alias gds='git diff --staged' -alias gdt='git diff-tree --no-commit-id --name-only -r' -alias gdup='git diff @{upstream}' -alias gdw='git diff --word-diff' - -function gdnolock() { - git diff "$@" ":(exclude)package-lock.json" ":(exclude)*.lock" -} -compdef _git gdnolock=git-diff - -function gdv() { git diff -w "$@" | view - } -compdef _git gdv=git-diff - -alias gf='git fetch' -# --jobs= was added in git 2.8 -is-at-least 2.8 "$git_version" \ - && alias gfa='git fetch --all --prune --jobs=10' \ - || alias gfa='git fetch --all --prune' -alias gfo='git fetch origin' - -alias gfg='git ls-files | grep' - -alias gg='git gui citool' -alias gga='git gui citool --amend' - -function ggf() { - [[ "$#" != 1 ]] && local b="$(git_current_branch)" - git push --force origin "${b:=$1}" -} -compdef _git ggf=git-checkout -function ggfl() { - [[ "$#" != 1 ]] && local b="$(git_current_branch)" - git push --force-with-lease origin "${b:=$1}" -} -compdef _git ggfl=git-checkout - -function ggl() { - if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then - git pull origin "${*}" - else - [[ "$#" == 0 ]] && local b="$(git_current_branch)" - git pull origin "${b:=$1}" - fi -} -compdef _git ggl=git-checkout - -function ggp() { - if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then - git push origin "${*}" - else - [[ "$#" == 0 ]] && local b="$(git_current_branch)" - git push origin "${b:=$1}" - fi -} -compdef _git ggp=git-checkout - -function ggpnp() { - if [[ "$#" == 0 ]]; then - ggl && ggp - else - ggl "${*}" && ggp "${*}" - fi -} -compdef _git ggpnp=git-checkout - -function ggu() { - [[ "$#" != 1 ]] && local b="$(git_current_branch)" - git pull --rebase origin "${b:=$1}" -} -compdef _git ggu=git-checkout - -alias ggpur='ggu' -alias ggpull='git pull origin "$(git_current_branch)"' -alias ggpush='git push origin "$(git_current_branch)"' - -alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)' -alias gpsup='git push --set-upstream origin $(git_current_branch)' -is-at-least 2.30 "$git_version" \ - && alias gpsupf='git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes' \ - || alias gpsupf='git push --set-upstream origin $(git_current_branch) --force-with-lease' - -alias ghh='git help' - -alias gignore='git update-index --assume-unchanged' -alias gignored='git ls-files -v | grep "^[[:lower:]]"' -alias git-svn-dcommit-push='git svn dcommit && git push github $(git_main_branch):svntrunk' - -alias gk='\gitk --all --branches &!' -alias gke='\gitk --all $(git log --walk-reflogs --pretty=%h) &!' - -alias gl='git pull' -alias glg='git log --stat' -alias glgp='git log --stat --patch' -alias glgg='git log --graph' -alias glgga='git log --graph --decorate --all' -alias glgm='git log --graph --max-count=10' -alias glo='git log --oneline --decorate' -alias glol="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'" -alias glols="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat" -alias glod="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'" -alias glods="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short" -alias glola="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all" -alias glog='git log --oneline --decorate --graph' -alias gloga='git log --oneline --decorate --graph --all' -alias glp="_git_log_prettily" - -alias gm='git merge' -alias gmom='git merge origin/$(git_main_branch)' -alias gmtl='git mergetool --no-prompt' -alias gmtlvim='git mergetool --no-prompt --tool=vimdiff' -alias gmum='git merge upstream/$(git_main_branch)' -alias gma='git merge --abort' -alias gms="git merge --squash" - -alias gp='git push' -alias gpd='git push --dry-run' -is-at-least 2.30 "$git_version" \ - && alias gpf='git push --force-with-lease --force-if-includes' \ - || alias gpf='git push --force-with-lease' -alias gpf!='git push --force' -alias gpoat='git push origin --all && git push origin --tags' -alias gpod='git push origin --delete' -alias gpr='git pull --rebase' -alias gpu='git push upstream' -alias gpv='git push --verbose' - -alias gr='git remote' -alias gra='git remote add' -alias grb='git rebase' -alias grba='git rebase --abort' -alias grbc='git rebase --continue' -alias grbd='git rebase $(git_develop_branch)' -alias grbi='git rebase --interactive' -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' -alias grh='git reset' -alias grhh='git reset --hard' -alias groh='git reset origin/$(git_current_branch) --hard' -alias grm='git rm' -alias grmc='git rm --cached' -alias grmv='git remote rename' -alias grrm='git remote remove' -alias grs='git restore' -alias grset='git remote set-url' -alias grss='git restore --source' -alias grst='git restore --staged' -alias grt='cd "$(git rev-parse --show-toplevel || echo .)"' -alias gru='git reset --' -alias grup='git remote update' -alias grv='git remote --verbose' - -alias gsb='git status --short --branch' -alias gsd='git svn dcommit' -alias gsh='git show' -alias gsi='git submodule init' -alias gsps='git show --pretty=short --show-signature' -alias gsr='git svn rebase' -alias gss='git status --short' -alias gst='git status' - -# use the default stash push on git 2.13 and newer -is-at-least 2.13 "$git_version" \ - && alias gsta='git stash push' \ - || alias gsta='git stash save' - -alias gstaa='git stash apply' -alias gstc='git stash clear' -alias gstd='git stash drop' -alias gstl='git stash list' -alias gstp='git stash pop' -alias gsts='git stash show --text' -alias gstu='gsta --include-untracked' -alias gstall='git stash --all' -alias gsu='git submodule update' -alias gsw='git switch' -alias gswc='git switch --create' -alias gswm='git switch $(git_main_branch)' -alias gswd='git switch $(git_develop_branch)' - -alias gts='git tag --sign' -alias gtv='git tag | sort -V' -alias gtl='gtl(){ git tag --sort=-v:refname -n --list "${1}*" }; noglob gtl' - -alias gunignore='git update-index --no-assume-unchanged' -alias gunwip='git rev-list --max-count=1 --format="%s" HEAD | grep -q "\--wip--" && git reset HEAD~1' -alias gup='git pull --rebase' -alias gupv='git pull --rebase --verbose' -alias gupa='git pull --rebase --autostash' -alias gupav='git pull --rebase --autostash --verbose' -alias gupom='git pull --rebase origin $(git_main_branch)' -alias gupomi='git pull --rebase=interactive origin $(git_main_branch)' -alias glum='git pull upstream $(git_main_branch)' -alias gluc='git pull upstream $(git_current_branch)' - -alias gwch='git whatchanged -p --abbrev-commit --pretty=medium' -alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"' - -alias gwt='git worktree' -alias gwta='git worktree add' -alias gwtls='git worktree list' -alias gwtmv='git worktree move' -alias gwtrm='git worktree remove' - -alias gam='git am' -alias gamc='git am --continue' -alias gams='git am --skip' -alias gama='git am --abort' -alias gamscp='git am --show-current-patch' function grename() { if [[ -z "$1" || -z "$2" ]]; then @@ -361,4 +56,305 @@ function grename() { fi } +# +# Functions Work in Progress (WIP) +# (sorted alphabetically by function name) +# (order should follow README) +# + +# Similar to `gunwip` but recursive "Unwips" all recent `--wip--` commits not just the last one +function gunwipall() { + local _commit=$(git log --grep='--wip--' --invert-grep --max-count=1 --format=format:%H) + + # Check if a commit without "--wip--" was found and it's not the same as HEAD + if [[ "$_commit" != "$(git rev-parse HEAD)" ]]; then + git reset $_commit || return 1 + fi +} + +# Warn if the current branch is a WIP +function work_in_progress() { + command git -c log.showSignature=false log -n 1 2>/dev/null | grep -q -- "--wip--" && echo "WIP!!" +} + +# +# Aliases +# (sorted alphabetically by command) +# (order should follow README) +# (in some cases force the alisas order to match README, like for example gke and gk) +# + +alias grt='cd "$(git rev-parse --show-toplevel || echo .)"' + +function ggpnp() { + if [[ "$#" == 0 ]]; then + ggl && ggp + else + ggl "${*}" && ggp "${*}" + fi +} +compdef _git ggpnp=git-checkout + +alias ggpur='ggu' +alias g='git' +alias ga='git add' +alias gaa='git add --all' +alias gapa='git add --patch' +alias gau='git add --update' +alias gav='git add --verbose' +alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"' +alias gam='git am' +alias gama='git am --abort' +alias gamc='git am --continue' +alias gamscp='git am --show-current-patch' +alias gams='git am --skip' +alias gap='git apply' +alias gapt='git apply --3way' +alias gbs='git bisect' +alias gbsb='git bisect bad' +alias gbsg='git bisect good' +alias gbsr='git bisect reset' +alias gbss='git bisect start' +alias gbl='git blame -b -w' +alias gb='git branch' +alias gba='git branch --all' +alias gbd='git branch --delete' +alias gbD='git branch --delete --force' +alias gbda='git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null' +alias gbgd='git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -d' +alias gbgD='git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -D' +alias gbnm='git branch --no-merged' +alias gbr='git branch --remote' +alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)' +alias gbg='git branch -vv | grep ": gone\]"' +alias gco='git checkout' +alias gcor='git checkout --recurse-submodules' +alias gcb='git checkout -b' +alias gcd='git checkout $(git_develop_branch)' +alias gcm='git checkout $(git_main_branch)' +alias gcp='git cherry-pick' +alias gcpa='git cherry-pick --abort' +alias gcpc='git cherry-pick --continue' +alias gclean='git clean --interactive -d' +alias gcl='git clone --recurse-submodules' + +function gccd() { + command git clone --recurse-submodules "$@" + [[ -d "$_" ]] && cd "$_" || cd "${${_:t}%.git}" +} +compdef _git gccd=git-clone + +alias gcam='git commit --all --message' +alias gcas='git commit --all --signoff' +alias gcasm='git commit --all --signoff --message' +alias gcs='git commit --gpg-sign' +alias gcss='git commit --gpg-sign --signoff' +alias gcssm='git commit --gpg-sign --signoff --message' +alias gcmsg='git commit --message' +alias gcsm='git commit --signoff --message' +alias gc='git commit --verbose' +alias gca='git commit --verbose --all' +alias gca!='git commit --verbose --all --amend' +alias gcan!='git commit --verbose --all --no-edit --amend' +alias gcans!='git commit --verbose --all --signoff --no-edit --amend' +alias gc!='git commit --verbose --amend' +alias gcn!='git commit --verbose --no-edit --amend' +alias gcf='git config --list' +alias gdct='git describe --tags $(git rev-list --tags --max-count=1)' +alias gd='git diff' +alias gdca='git diff --cached' +alias gdcw='git diff --cached --word-diff' +alias gds='git diff --staged' +alias gdw='git diff --word-diff' + +function gdv() { git diff -w "$@" | view - } +compdef _git gdv=git-diff + +alias gdup='git diff @{upstream}' + +function gdnolock() { + git diff "$@" ":(exclude)package-lock.json" ":(exclude)*.lock" +} +compdef _git gdnolock=git-diff + +alias gdt='git diff-tree --no-commit-id --name-only -r' +alias gf='git fetch' +# --jobs= was added in git 2.8 +is-at-least 2.8 "$git_version" \ + && alias gfa='git fetch --all --prune --jobs=10' \ + || alias gfa='git fetch --all --prune' +alias gfo='git fetch origin' +alias gg='git gui citool' +alias gga='git gui citool --amend' +alias ghh='git help' +alias glgg='git log --graph' +alias glgga='git log --graph --decorate --all' +alias glgm='git log --graph --max-count=10' +alias glods='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset" --date=short' +alias glod='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset"' +alias glola='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset" --all' +alias glols='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset" --stat' +alias glol='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset"' +alias glo='git log --oneline --decorate' +alias glog='git log --oneline --decorate --graph' +alias gloga='git log --oneline --decorate --graph --all' + +# Pretty log messages +function _git_log_prettily(){ + if ! [ -z $1 ]; then + git log --pretty=$1 + fi +} +compdef _git _git_log_prettily=git-log + +alias glp='_git_log_prettily' +alias glg='git log --stat' +alias glgp='git log --stat --patch' +alias gignored='git ls-files -v | grep "^[[:lower:]]"' +alias gfg='git ls-files | grep' +alias gm='git merge' +alias gma='git merge --abort' +alias gms="git merge --squash" +alias gmom='git merge origin/$(git_main_branch)' +alias gmum='git merge upstream/$(git_main_branch)' +alias gmtl='git mergetool --no-prompt' +alias gmtlvim='git mergetool --no-prompt --tool=vimdiff' +alias gl='git pull' +alias gpr='git pull --rebase' +alias gup='git pull --rebase' +alias gupa='git pull --rebase --autostash' +alias gupav='git pull --rebase --autostash --verbose' +alias gupv='git pull --rebase --verbose' + +function ggu() { + [[ "$#" != 1 ]] && local b="$(git_current_branch)" + git pull --rebase origin "${b:=$1}" +} +compdef _git ggu=git-checkout + +alias gupom='git pull --rebase origin $(git_main_branch)' +alias gupomi='git pull --rebase=interactive origin $(git_main_branch)' +alias ggpull='git pull origin "$(git_current_branch)"' + +function ggl() { + if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then + git pull origin "${*}" + else + [[ "$#" == 0 ]] && local b="$(git_current_branch)" + git pull origin "${b:=$1}" + fi +} +compdef _git ggl=git-checkout + +alias gluc='git pull upstream $(git_current_branch)' +alias glum='git pull upstream $(git_main_branch)' +alias gp='git push' +alias gpd='git push --dry-run' + +function ggf() { + [[ "$#" != 1 ]] && local b="$(git_current_branch)" + git push --force origin "${b:=$1}" +} +compdef _git ggf=git-checkout + +alias gpf!='git push --force' +is-at-least 2.30 "$git_version" \ + && alias gpf='git push --force-with-lease --force-if-includes' \ + || alias gpf='git push --force-with-lease' + +function ggfl() { + [[ "$#" != 1 ]] && local b="$(git_current_branch)" + git push --force-with-lease origin "${b:=$1}" +} +compdef _git ggfl=git-checkout + +alias gpsup='git push --set-upstream origin $(git_current_branch)' +is-at-least 2.30 "$git_version" \ + && alias gpsupf='git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes' \ + || alias gpsupf='git push --set-upstream origin $(git_current_branch) --force-with-lease' +alias gpv='git push --verbose' +alias gpoat='git push origin --all && git push origin --tags' +alias gpod='git push origin --delete' +alias ggpush='git push origin "$(git_current_branch)"' + +function ggp() { + if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then + git push origin "${*}" + else + [[ "$#" == 0 ]] && local b="$(git_current_branch)" + git push origin "${b:=$1}" + fi +} +compdef _git ggp=git-checkout + +alias gpu='git push upstream' +alias grb='git rebase' +alias grba='git rebase --abort' +alias grbc='git rebase --continue' +alias grbi='git rebase --interactive' +alias grbo='git rebase --onto' +alias grbs='git rebase --skip' +alias grbd='git rebase $(git_develop_branch)' +alias grbm='git rebase $(git_main_branch)' +alias grbom='git rebase origin/$(git_main_branch)' +alias gr='git remote' +alias grv='git remote --verbose' +alias gra='git remote add' +alias grrm='git remote remove' +alias grmv='git remote rename' +alias grset='git remote set-url' +alias grup='git remote update' +alias grh='git reset' +alias gru='git reset --' +alias grhh='git reset --hard' +alias gpristine='git reset --hard && git clean --force -dfx' +alias groh='git reset origin/$(git_current_branch) --hard' +alias grs='git restore' +alias grss='git restore --source' +alias grst='git restore --staged' +alias gunwip='git rev-list --max-count=1 --format="%s" HEAD | grep -q "\--wip--" && git reset HEAD~1' +alias grev='git revert' +alias grm='git rm' +alias grmc='git rm --cached' +alias gcount='git shortlog --summary --numbered' +alias gsh='git show' +alias gsps='git show --pretty=short --show-signature' +alias gstall='git stash --all' +alias gstaa='git stash apply' +alias gstc='git stash clear' +alias gstd='git stash drop' +alias gstl='git stash list' +alias gstp='git stash pop' +# use the default stash push on git 2.13 and newer +is-at-least 2.13 "$git_version" \ + && alias gsta='git stash push' \ + || alias gsta='git stash save' +alias gsts='git stash show --text' +alias gst='git status' +alias gss='git status --short' +alias gsb='git status --short --branch' +alias gsi='git submodule init' +alias gsu='git submodule update' +alias gsd='git svn dcommit' +alias git-svn-dcommit-push='git svn dcommit && git push github $(git_main_branch):svntrunk' +alias gsr='git svn rebase' +alias gsw='git switch' +alias gswc='git switch --create' +alias gswd='git switch $(git_develop_branch)' +alias gswm='git switch $(git_main_branch)' +alias gts='git tag --sign' +alias gtv='git tag | sort -V' +alias gignore='git update-index --assume-unchanged' +alias gunignore='git update-index --no-assume-unchanged' +alias gwch='git whatchanged -p --abbrev-commit --pretty=medium' +alias gwt='git worktree' +alias gwta='git worktree add' +alias gwtls='git worktree list' +alias gwtmv='git worktree move' +alias gwtrm='git worktree remove' +alias gstu='gsta --include-untracked' +alias gtl='gtl(){ git tag --sort=-v:refname -n --list "${1}*" }; noglob gtl' +alias gk='\gitk --all --branches &!' +alias gke='\gitk --all $(git log --walk-reflogs --pretty=%h) &!' + unset git_version From c92af18c36c84cef0c785e1ae9cabc49a61a5c3a Mon Sep 17 00:00:00 2001 From: Zhang Visper Date: Thu, 24 Aug 2023 17:37:38 +0800 Subject: [PATCH 308/441] fix(git): some aliases under non-english LANG (#11855) --- plugins/git/README.md | 6 +++--- plugins/git/git.plugin.zsh | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 0b757c481..c3e6dd27d 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -40,12 +40,12 @@ plugins=(... git) | gbd | git branch --delete | | gbD | git branch --delete --force | | gbda | git branch --no-color --merged | grep -vE "^([+]|\s($(git_main_branch)|$(git_develop_branch))\s\*$)" | xargs git branch --delete 2>/dev/null | -| gbgd | git branch --no-color -vv | -| gbgD | git branch --no-color -vv | +| gbgd | LANG=C git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -d | +| gbgD | LANG=C git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -D | | gbnm | git branch --no-merged | | gbr | git branch --remote | | ggsup | git branch --set-upstream-to=origin/$(git_current_branch) | -| gbg | git branch -vv | +| gbg | LANG=C git branch -vv | grep ": gone\]" | | gco | git checkout | | gcor | git checkout --recurse-submodules | | gcb | git checkout -b | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index b321ce7b0..8886aac6d 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -121,12 +121,12 @@ alias gba='git branch --all' alias gbd='git branch --delete' alias gbD='git branch --delete --force' alias gbda='git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null' -alias gbgd='git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -d' -alias gbgD='git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -D' +alias gbgd='LANG=C git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -d' +alias gbgD='LANG=C git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -D' alias gbnm='git branch --no-merged' alias gbr='git branch --remote' alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)' -alias gbg='git branch -vv | grep ": gone\]"' +alias gbg='LANG=C git branch -vv | grep ": gone\]"' alias gco='git checkout' alias gcor='git checkout --recurse-submodules' alias gcb='git checkout -b' From 13a8e3d98aeeb4f5f0b98f92ace540067e58ba92 Mon Sep 17 00:00:00 2001 From: Roeniss Moon Date: Fri, 25 Aug 2023 00:12:59 +0900 Subject: [PATCH 309/441] feat(alias-finder): add cheaper option and apply zstyle options (#11773) --- plugins/alias-finder/.zunit.yml | 9 ++ plugins/alias-finder/README.md | 55 ++++----- plugins/alias-finder/alias-finder.plugin.zsh | 79 +++++++------ plugins/alias-finder/tests/_output/.gitkeep | 0 plugins/alias-finder/tests/_support/.gitkeep | 0 plugins/alias-finder/tests/_support/bootstrap | 2 + plugins/alias-finder/tests/test_run.sh | 107 ++++++++++++++++++ 7 files changed, 186 insertions(+), 66 deletions(-) create mode 100644 plugins/alias-finder/.zunit.yml create mode 100644 plugins/alias-finder/tests/_output/.gitkeep create mode 100644 plugins/alias-finder/tests/_support/.gitkeep create mode 100644 plugins/alias-finder/tests/_support/bootstrap create mode 100644 plugins/alias-finder/tests/test_run.sh diff --git a/plugins/alias-finder/.zunit.yml b/plugins/alias-finder/.zunit.yml new file mode 100644 index 000000000..ae65f8ef2 --- /dev/null +++ b/plugins/alias-finder/.zunit.yml @@ -0,0 +1,9 @@ +tap: false +directories: + tests: tests + output: tests/_output + support: tests/_support +time_limit: 0 +fail_fast: false +allow_risky: false +verbose: true diff --git a/plugins/alias-finder/README.md b/plugins/alias-finder/README.md index 409f4b653..6c87c723a 100644 --- a/plugins/alias-finder/README.md +++ b/plugins/alias-finder/README.md @@ -2,45 +2,32 @@ This plugin searches the defined aliases and outputs any that match the command inputted. This makes learning new aliases easier. +## Usage + To use it, add `alias-finder` to the `plugins` array of your zshrc file: ``` plugins=(... alias-finder) ``` -## Usage -To see if there is an alias defined for the command, pass it as an argument to `alias-finder`. This can also run automatically before each command you input - add `ZSH_ALIAS_FINDER_AUTOMATIC=true` to your zshrc if you want this. +To enable it for every single command, set zstyle in your `~/.zshrc`. -## Options +```zsh +# ~/.zshrc + +zstyle ':omz:plugins:alias-finder' autoload yes # disabled by default +zstyle ':omz:plugins:alias-finder' longer yes # disabled by default +zstyle ':omz:plugins:alias-finder' exact yes # disabled by default +zstyle ':omz:plugins:alias-finder' cheaper yes # disabled by default +``` + +As you can see, options are also available with zstyle. + +### Options + +> In order to clarify, let's say `alias a=abc` has source 'abc' and destination 'a'. + +- Use `--longer` or `-l` to include aliases where the source is longer than the input (in other words, the source could contain the whole input). +- Use `--exact` or `-e` to avoid aliases where the source is shorter than the input (in other words, the source must be the same with the input). +- Use `--cheaper` or `-c` to avoid aliases where the destination is longer than the input (in other words, the destination must be the shorter than the input). -- Use `--longer` or `-l` to allow the aliases to be longer than the input (match aliases if they contain the input). -- Use `--exact` or `-e` to avoid matching aliases that are shorter than the input. -## Examples -``` -$ alias-finder "git pull" -gl='git pull' -g=git -``` -``` -$ alias-finder "web_search google oh my zsh" -google='web_search google' -``` -``` -$ alias-finder "git commit -v" -gc="git commit -v" -g=git -``` -``` -$ alias-finder -e "git commit -v" -gc='git commit -v' -``` -``` -$ alias-finder -l "git commit -v" -gc='git commit -v' -'gc!'='git commit -v --amend' -gca='git commit -v -a' -'gca!'='git commit -v -a --amend' -'gcan!'='git commit -v -a --no-edit --amend' -'gcans!'='git commit -v -a -s --no-edit --amend' -'gcn!'='git commit -v --no-edit --amend' -``` diff --git a/plugins/alias-finder/alias-finder.plugin.zsh b/plugins/alias-finder/alias-finder.plugin.zsh index caee9b5a3..5fdfbc835 100644 --- a/plugins/alias-finder/alias-finder.plugin.zsh +++ b/plugins/alias-finder/alias-finder.plugin.zsh @@ -1,44 +1,59 @@ alias-finder() { - local cmd="" exact="" longer="" wordStart="" wordEnd="" multiWordEnd="" - for i in $@; do - case $i in + local cmd=" " exact="" longer="" cheaper="" wordEnd="'{0,1}$" finder="" filter="" + + # build command and options + for c in "$@"; do + case $c in + # TODO: Remove backward compatibility (other than zstyle form) + # set options if exist -e|--exact) exact=true;; -l|--longer) longer=true;; - *) - if [[ -z $cmd ]]; then - cmd=$i - else - cmd="$cmd $i" - fi - ;; + -c|--cheaper) cheaper=true;; + # concatenate cmd + *) cmd="$cmd$c " ;; esac done - cmd=$(sed 's/[].\|$(){}?+*^[]/\\&/g' <<< $cmd) # adds escaping for grep - if (( $(wc -l <<< $cmd) == 1 )); then - while [[ $cmd != "" ]]; do - if [[ $longer = true ]]; then - wordStart="'{0,1}" - else - wordEnd="$" - multiWordEnd="'$" - fi - if [[ $cmd == *" "* ]]; then - local finder="'$cmd$multiWordEnd" - else - local finder=$wordStart$cmd$wordEnd - fi - alias | grep -E "=$finder" - if [[ $exact = true || $longer = true ]]; then - break - else - cmd=$(sed -E 's/ {0,1}[^ ]*$//' <<< $cmd) # removes last word - fi - done + + zstyle -t ':omz:plugins:alias-finder' longer && longer=true + zstyle -t ':omz:plugins:alias-finder' exact && exact=true + zstyle -t ':omz:plugins:alias-finder' cheaper && cheaper=true + + # format cmd for grep + ## - replace newlines with spaces + ## - trim both ends + ## - replace multiple spaces with one space + ## - add escaping character to special characters + cmd=$(echo -n "$cmd" | tr '\n' ' ' | xargs | tr -s '[:space:]' | sed 's/[].\|$(){}?+*^[]/\\&/g') + + if [[ $longer == true ]]; then + wordEnd="" # remove wordEnd to find longer aliases fi + + # find with alias and grep, removing last word each time until no more words + while [[ $cmd != "" ]]; do + finder="'{0,1}$cmd$wordEnd" + + # make filter to find only shorter results than current cmd + if [[ $cheaper == true ]]; then + cmdLen=$(echo -n "$cmd" | wc -c) + filter="^'{0,1}.{0,$((cmdLen - 1))}=" + fi + + alias | grep -E "$filter" | grep -E "=$finder" + + if [[ $exact == true ]]; then + break # because exact case is only one + elif [[ $longer = true ]]; then + break # because above grep command already found every longer aliases during first cycle + fi + + cmd=$(sed -E 's/ {0,}[^ ]*$//' <<< "$cmd") # remove last word + done } preexec_alias-finder() { - if [[ $ZSH_ALIAS_FINDER_AUTOMATIC = true ]]; then + # TODO: Remove backward compatibility (other than zstyle form) + zstyle -t ':omz:plugins:alias-finder' autoload && alias-finder $1 || if [[ $ZSH_ALIAS_FINDER_AUTOMATIC = true ]]; then alias-finder $1 fi } diff --git a/plugins/alias-finder/tests/_output/.gitkeep b/plugins/alias-finder/tests/_output/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/plugins/alias-finder/tests/_support/.gitkeep b/plugins/alias-finder/tests/_support/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/plugins/alias-finder/tests/_support/bootstrap b/plugins/alias-finder/tests/_support/bootstrap new file mode 100644 index 000000000..01076611e --- /dev/null +++ b/plugins/alias-finder/tests/_support/bootstrap @@ -0,0 +1,2 @@ +#!/usr/bin/env zsh +# Write your bootstrap code here diff --git a/plugins/alias-finder/tests/test_run.sh b/plugins/alias-finder/tests/test_run.sh new file mode 100644 index 000000000..6b7abebb6 --- /dev/null +++ b/plugins/alias-finder/tests/test_run.sh @@ -0,0 +1,107 @@ +#!/usr/bin/env zunit + +@setup { + load ../alias-finder.plugin.zsh + + set_git_aliases() { + unalias -a # all + alias g="git" + alias gc="git commit" + alias gcv="git commit -v" + alias gcvs="git commit -v -S" + } +} + +@test 'find aliases that contain input' { + set_git_aliases + + run alias-finder "git" + + assert "${#lines[@]}" equals 1 + assert "${lines[1]}" same_as "g=git" +} + +@test 'find aliases that contain input with whitespaces at ends' { + set_git_aliases + + run alias-finder " git " + + assert "${#lines[@]}" equals 1 + assert "${lines[1]}" same_as "g=git" +} + +@test 'find aliases that contain multiple words' { + set_git_aliases + + run alias-finder "git commit -v" + + assert "${#lines[@]}" equals 3 + assert "${lines[1]}" same_as "gcv='git commit -v'" + assert "${lines[2]}" same_as "gc='git commit'" + assert "${lines[3]}" same_as "g=git" +} + +@test 'find alias that is the same with input when --exact option is set' { + set_git_aliases + + run alias-finder -e "git" + + assert "${#lines[@]}" equals 1 + assert "${lines[1]}" same_as "g=git" +} + +@test 'find alias that is the same with multiple words input when --exact option is set' { + set_git_aliases + + run alias-finder -e "git commit -v" + + assert "${#lines[@]}" equals 1 + assert "${lines[1]}" same_as "gcv='git commit -v'" +} + +@test 'find alias that is the same with or longer than input when --longer option is set' { + set_git_aliases + + run alias-finder -l "git" + + assert "${#lines[@]}" equals 4 + assert "${lines[1]}" same_as "g=git" + assert "${lines[2]}" same_as "gc='git commit'" + assert "${lines[3]}" same_as "gcv='git commit -v'" + assert "${lines[4]}" same_as "gcvs='git commit -v -S'" +} + +@test 'find alias that is the same with or longer than multiple words input when --longer option is set' { + set_git_aliases + + run alias-finder -l "git commit -v" + + assert "${#lines[@]}" equals 2 + assert "${lines[1]}" same_as "gcv='git commit -v'" + assert "${lines[2]}" same_as "gcvs='git commit -v -S'" +} + +@test 'find aliases including expensive (longer) than input' { + set_git_aliases + alias expensiveCommands="git commit" + + run alias-finder "git commit -v" + + assert "${#lines[@]}" equals 4 + assert "${lines[1]}" same_as "gcv='git commit -v'" + assert "${lines[2]}" same_as "expensiveCommands='git commit'" + assert "${lines[3]}" same_as "gc='git commit'" + assert "${lines[4]}" same_as "g=git" +} + +@test 'find aliases excluding expensive (longer) than input when --cheap option is set' { + set_git_aliases + alias expensiveCommands="git commit" + + run alias-finder -c "git commit -v" + + assert "${#lines[@]}" equals 3 + assert "${lines[1]}" same_as "gcv='git commit -v'" + assert "${lines[2]}" same_as "gc='git commit'" + assert "${lines[3]}" same_as "g=git" +} From 03a0d5bbaedc732436b5c67b166cde954817cc2f Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Thu, 24 Aug 2023 17:20:24 +0200 Subject: [PATCH 310/441] fix(clipboard): load clipboard on usage Closes #8827 --- lib/clipboard.zsh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/clipboard.zsh b/lib/clipboard.zsh index 2f3b6bcad..4b37abc9b 100644 --- a/lib/clipboard.zsh +++ b/lib/clipboard.zsh @@ -100,8 +100,8 @@ function detect-clipboard() { fi } -# Detect at startup. A non-zero exit here indicates that the dummy clipboards were set, -# which is not really an error. If the user calls them, they will attempt to redetect -# (for example, perhaps the user has now installed xclip) and then either print an error -# or proceed successfully. -detect-clipboard || true +function clipcopy clippaste { + unfunction clipcopy clippaste + detect-clipboard || true # let one retry + "$0" "$@" +} From 000be72dd0c2f668cd94b36c69e45dec7b06a23e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Tue, 29 Aug 2023 10:27:36 +0200 Subject: [PATCH 311/441] fix(updater): disable `nounset` to avoid warnings (#11856) --- tools/upgrade.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/upgrade.sh b/tools/upgrade.sh index 34ff3f027..f7a263d66 100755 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -1,4 +1,5 @@ #!/usr/bin/env zsh +set +u # disable nounset local ret=0 # exit code From bf774211916c8a9d57b2b56c7846cd0b3d91baab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Hern=C3=A1ndez?= Date: Tue, 29 Aug 2023 04:29:15 -0400 Subject: [PATCH 312/441] feat(bun): add plugin (#11859) --- plugins/bun/README.md | 20 ++++++++++++++++++++ plugins/bun/bun.plugin.zsh | 14 ++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 plugins/bun/README.md create mode 100644 plugins/bun/bun.plugin.zsh diff --git a/plugins/bun/README.md b/plugins/bun/README.md new file mode 100644 index 000000000..5a312370f --- /dev/null +++ b/plugins/bun/README.md @@ -0,0 +1,20 @@ +# Bun Plugin + +This plugin sets up completion for [Bun](https://bun.sh). + +To use it, add `bun` to the plugins array in your zshrc file: + +```zsh +plugins=(... bun) +``` + +This plugin does not add any aliases. + +## Cache + +This plugin caches the completion script and is automatically updated when the +plugin is loaded, which is usually when you start up a new terminal emulator. + +The cache is stored at: + +- `$ZSH_CACHE_DIR/completions/_bun_` completions script diff --git a/plugins/bun/bun.plugin.zsh b/plugins/bun/bun.plugin.zsh new file mode 100644 index 000000000..9924faa84 --- /dev/null +++ b/plugins/bun/bun.plugin.zsh @@ -0,0 +1,14 @@ +# If Bun is not found, don't do the rest of the script +if (( ! $+commands[bun] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `bun`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_bun" ]]; then + typeset -g -A _comps + autoload -Uz _bun + _comps[bun]=_bun +fi + +bun completions >| "$ZSH_CACHE_DIR/completions/_bun" &| From 2ef7c73cc884163367279e4b586136e3335b1c53 Mon Sep 17 00:00:00 2001 From: t-aswath <119417646+t-aswath@users.noreply.github.com> Date: Wed, 30 Aug 2023 21:38:09 +0530 Subject: [PATCH 313/441] feat(web-search): add `youtube` alias (#11865) --- plugins/web-search/web-search.plugin.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index ec176dd68..fc87a3495 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -25,6 +25,7 @@ function web_search() { archive "https://web.archive.org/web/*/" scholar "https://scholar.google.com/scholar?q=" ask "https://www.ask.com/web?q=" + youtube "https://www.youtube.com/results?search_query=" ) # check whether the search engine is supported @@ -66,11 +67,12 @@ alias wolframalpha='web_search wolframalpha' alias archive='web_search archive' alias scholar='web_search scholar' alias ask='web_search ask' +alias youtube='web_search youtube' #add your own !bang searches here alias wiki='web_search duckduckgo \!w' alias news='web_search duckduckgo \!n' -alias youtube='web_search duckduckgo \!yt' +#alias youtube='web_search duckduckgo \!yt' alias map='web_search duckduckgo \!m' alias image='web_search duckduckgo \!i' alias ducky='web_search duckduckgo \!' From ccce2e1cfdf5b9680f691a402e288d9cf6ce272a Mon Sep 17 00:00:00 2001 From: James Cuzella Date: Thu, 31 Aug 2023 15:35:33 -0600 Subject: [PATCH 314/441] fix(termsupport): match all `foot`-like terminfo (#11868) --- lib/termsupport.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 6d969503d..a800e651f 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -17,7 +17,7 @@ function title { : ${2=$1} case "$TERM" in - cygwin|xterm*|putty*|rxvt*|konsole*|ansi|mlterm*|alacritty|st*|foot|contour*) + cygwin|xterm*|putty*|rxvt*|konsole*|ansi|mlterm*|alacritty|st*|foot*|contour*) print -Pn "\e]2;${2:q}\a" # set window name print -Pn "\e]1;${1:q}\a" # set tab name ;; From 0dc40e88a3f5bbe2607d958b5f0bf79e9df0c118 Mon Sep 17 00:00:00 2001 From: not pua <140790944+im-notpua@users.noreply.github.com> Date: Sat, 2 Sep 2023 11:46:59 +0000 Subject: [PATCH 315/441] feat(battery): add support for OpenBSD (#11872) --- plugins/battery/battery.plugin.zsh | 44 ++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh index db5eeb93a..1d3d529a3 100644 --- a/plugins/battery/battery.plugin.zsh +++ b/plugins/battery/battery.plugin.zsh @@ -13,6 +13,10 @@ # Author: Avneet Singh (kalsi-avneet) # # Modified to add support for Android # ########################################### +# Author: Not Pua (im-notpua) # +# Modified to add support for OpenBSD # +########################################### + if [[ "$OSTYPE" = darwin* ]]; then function battery_is_charging() { @@ -139,6 +143,46 @@ elif [[ "$OSTYPE" = linux-android ]] && (( ${+commands[termux-battery-status]} ) echo "%{$fg[$color]%}${battery_pct}%%%{$reset_color%}" fi } +elif [[ "$OSTYPE" = openbsd* ]]; then + function battery_is_charging() { + [[ $(apm -b) -eq 3 ]] + } + function battery_pct() { + apm -l + } + function battery_pct_remaining() { + if ! battery_is_charging; then + battery_pct + else + echo "External Power" + fi + } + function battery_time_remaining() { + local remaining_time + remaining_time=$(apm -m) + if [[ $remaining_time -ge 0 ]]; then + ((hour = $remaining_time / 60 )) + ((minute = $remaining_time % 60 )) + printf %02d:%02d $hour $minute + fi + } + function battery_pct_prompt() { + local battery_pct color + battery_pct=$(battery_pct_remaining) + if battery_is_charging; then + echo "∞" + else + if [[ $battery_pct -gt 50 ]]; then + color='green' + elif [[ $battery_pct -gt 20 ]]; then + color='yellow' + else + color='red' + fi + echo "%{$fg[$color]%}${battery_pct}%%%{$reset_color%}" + fi + } + elif [[ "$OSTYPE" = linux* ]]; then function battery_is_charging() { if (( $+commands[acpitool] )); then From 1f56f2bdc455f2167c10fdbeca10934f5f0cbd99 Mon Sep 17 00:00:00 2001 From: Daniel Wang Date: Sun, 3 Sep 2023 23:08:19 +0800 Subject: [PATCH 316/441] fix(extract): remove extraction file extension for tar (#11873) --- plugins/extract/extract.plugin.zsh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index 513950f33..88d8b0740 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -30,6 +30,11 @@ EOF local file="$1" full_path="${1:A}" local extract_dir="${1:t:r}" + # Remove the .tar extension if the file name is .tar.* + if [[ $extract_dir =~ '\.tar$' ]]; then + extract_dir="${extract_dir:r}" + fi + # If there's a file or directory with the same name as the archive # add a random string to the end of the extract directory if [[ -e "$extract_dir" ]]; then From 2b1303a728afc285cc13a6710de128a050500f1e Mon Sep 17 00:00:00 2001 From: n0tr00t <106423923+0x020B@users.noreply.github.com> Date: Sun, 3 Sep 2023 15:38:32 +0000 Subject: [PATCH 317/441] feat(tmux): allow all standard config files (#11103) Closes #11803 Co-authored-by: n0tr00t <106423923+n0tr00teuorg@users.noreply.github.com> --- plugins/tmux/README.md | 26 +++++++++++++------------- plugins/tmux/tmux.plugin.zsh | 9 +++++++-- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/plugins/tmux/README.md b/plugins/tmux/README.md index 7348f77c9..0f8473daf 100644 --- a/plugins/tmux/README.md +++ b/plugins/tmux/README.md @@ -28,16 +28,16 @@ The plugin also supports the following: ## Configuration Variables -| Variable | Description | -| ----------------------------------- | ----------------------------------------------------------------------------- | -| `ZSH_TMUX_AUTOSTART` | Automatically starts tmux (default: `false`) | -| `ZSH_TMUX_AUTOSTART_ONCE` | Autostart only if tmux hasn't been started previously (default: `true`) | -| `ZSH_TMUX_AUTOCONNECT` | Automatically connect to a previous session if it exits (default: `true`) | -| `ZSH_TMUX_AUTOQUIT` | Automatically closes terminal once tmux exits (default: `ZSH_TMUX_AUTOSTART`) | -| `ZSH_TMUX_FIXTERM` | Sets `$TERM` to 256-color term or not based on current terminal support | -| `ZSH_TMUX_ITERM2` | Sets the `-CC` option for iTerm2 tmux integration (default: `false`) | -| `ZSH_TMUX_FIXTERM_WITHOUT_256COLOR` | `$TERM` to use for non 256-color terminals (default: `screen`) | -| `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 | +| Variable | Description | +| ----------------------------------- | ------------------------------------------------------------------------------------------- | +| `ZSH_TMUX_AUTOSTART` | Automatically starts tmux (default: `false`) | +| `ZSH_TMUX_AUTOSTART_ONCE` | Autostart only if tmux hasn't been started previously (default: `true`) | +| `ZSH_TMUX_AUTOCONNECT` | Automatically connect to a previous session if it exits (default: `true`) | +| `ZSH_TMUX_AUTOQUIT` | Automatically closes terminal once tmux exits (default: `ZSH_TMUX_AUTOSTART`) | +| `ZSH_TMUX_FIXTERM` | Sets `$TERM` to 256-color term or not based on current terminal support | +| `ZSH_TMUX_ITERM2` | Sets the `-CC` option for iTerm2 tmux integration (default: `false`) | +| `ZSH_TMUX_FIXTERM_WITHOUT_256COLOR` | `$TERM` to use for non 256-color terminals (default: `screen`) | +| `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`, `$XDG_CONFIG_HOME/tmux/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 311c2e6a9..680f72598 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -26,12 +26,17 @@ fi # systems without the proper terminfo : ${ZSH_TMUX_FIXTERM_WITH_256COLOR:=screen-256color} # Set the configuration path -: ${ZSH_TMUX_CONFIG:=$HOME/.tmux.conf} +if [[ -e $HOME/.tmux.conf ]]; then + : ${ZSH_TMUX_CONFIG:=$HOME/.tmux.conf} +elif [[ -e ${XDG_CONFIG_HOME:-$HOME/.config}/tmux/tmux.conf ]]; then + : ${ZSH_TMUX_CONFIG:=${XDG_CONFIG_HOME:-$HOME/.config}/tmux/tmux.conf} +else + : ${ZSH_TMUX_CONFIG:=$HOME/.tmux.conf} +fi # Set -u option to support unicode : ${ZSH_TMUX_UNICODE:=false} # ALIASES - alias ta='tmux attach -t' alias tad='tmux attach -d -t' alias ts='tmux new-session -s' From f694d5ecc9aa45f4c394d2e15bf2bfde96eeeda6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Pu=C5=A1k=C3=A1r?= <93598525+puskarpeter@users.noreply.github.com> Date: Mon, 4 Sep 2023 19:17:28 +0200 Subject: [PATCH 318/441] feat(qodana): add completion plugin (#11813) --- plugins/qodana/README.md | 20 ++++++++++++++++++++ plugins/qodana/qodana.plugin.zsh | 14 ++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 plugins/qodana/README.md create mode 100644 plugins/qodana/qodana.plugin.zsh diff --git a/plugins/qodana/README.md b/plugins/qodana/README.md new file mode 100644 index 000000000..0b68bdecf --- /dev/null +++ b/plugins/qodana/README.md @@ -0,0 +1,20 @@ +# JetBrains Qodana CLI plugin + +This plugin adds completion for the [JetBrains Qodana CLI](https://github.com/JetBrains/qodana-cli). + +To use it, add `qodana` to the plugins array in your zshrc file: + +```zsh +plugins=(... qodana) +``` + +This plugin does not add any aliases. + +## Cache + +This plugin caches the completion script and is automatically updated when the +plugin is loaded, which is usually when you start up a new terminal emulator. + +The cache is stored at: + +- `$ZSH_CACHE_DIR/completions/_qodana` completions script diff --git a/plugins/qodana/qodana.plugin.zsh b/plugins/qodana/qodana.plugin.zsh new file mode 100644 index 000000000..2b92a8051 --- /dev/null +++ b/plugins/qodana/qodana.plugin.zsh @@ -0,0 +1,14 @@ +# Autocompletion for the JetBrains Qodana CLI (qodana). +if (( ! $+commands[qodana] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `qodana`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_qodana" ]]; then + typeset -g -A _comps + autoload -Uz _qodana + _comps[qodana]=_qodana +fi + +qodana completion zsh >| "$ZSH_CACHE_DIR/completions/_qodana" &| From 1abc1d998a71efd50af30210e26bee462496e442 Mon Sep 17 00:00:00 2001 From: Oscar Lee-Vermeren Date: Mon, 4 Sep 2023 13:21:27 -0400 Subject: [PATCH 319/441] feat(git-commit): create plugin (#9646) Co-authored-by: K. Akatsuki --- plugins/git-commit/README.md | 36 ++++++++++++++++++++++++ plugins/git-commit/git-commit.plugin.zsh | 23 +++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 plugins/git-commit/README.md create mode 100644 plugins/git-commit/git-commit.plugin.zsh diff --git a/plugins/git-commit/README.md b/plugins/git-commit/README.md new file mode 100644 index 000000000..dc10d8ad5 --- /dev/null +++ b/plugins/git-commit/README.md @@ -0,0 +1,36 @@ +# git-commit plugin + +The git-commit plugin adds several [git aliases](https://www.git-scm.com/docs/git-config#Documentation/git-config.txt-alias) for [conventional commit](https://www.conventionalcommits.org/en/v1.0.0/#summary) messages. + +To use it, add `git-commit` to the plugins array in your zshrc file: + +```zsh +plugins=(... git-commit) +``` + +## Syntax + +```zshrc +git [(-s, --scope) ""] "" +``` + +> ⚠️ Single/Double quotes around the scope and message are required + +Where `type` is one of the following: + +- `build` +- `chore` +- `ci` +- `docs` +- `feat` +- `fix` +- `perf` +- `refactor` +- `revert` +- `style` +- `test` + +## Examples + +`git style "remove trailing whitespace"` -> `git commit -m "style: remove trailing whitespace"` +`git fix -s "router" "correct redirect link"` -> `git commit -m "fix(router): correct redirect link"` diff --git a/plugins/git-commit/git-commit.plugin.zsh b/plugins/git-commit/git-commit.plugin.zsh new file mode 100644 index 000000000..70d541f21 --- /dev/null +++ b/plugins/git-commit/git-commit.plugin.zsh @@ -0,0 +1,23 @@ +_register() { + if ! git config --global --get-all alias.$1 &>/dev/null; then + git config --global alias.$1 '!a() { if [[ "$1" == "-s" || "$1" == "--scope" ]]; then git commit -m "'$1'(${2}): ${@:3}"; else git commit -m "'$1': ${@}"; fi }; a' + fi +} + +aliases=( + 'build' + 'chore' + 'ci' + 'docs' + 'feat' + 'fix' + 'perf' + 'refactor' + 'revert' + 'style' + 'test' +) + +for alias in "${aliases[@]}"; do + _register $alias +done \ No newline at end of file From 30f0d591881713c4efd1482511943abca5103927 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 4 Sep 2023 19:32:38 +0200 Subject: [PATCH 320/441] fix(init): exit gracefully if on non-zsh emulation mode (#11874) Fixes #11686 --- oh-my-zsh.sh | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 40f13f37e..137ca3b6f 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -1,14 +1,14 @@ +# ANSI formatting function (\033[m) +# 0: reset, 1: bold, 4: underline, 22: no bold, 24: no underline, 31: red, 33: yellow +omz_f() { + [ $# -gt 0 ] || return + IFS=";" printf "\033[%sm" $* +} +# If stdout is not a terminal ignore all formatting +[ -t 1 ] || omz_f() { :; } + # Protect against non-zsh execution of Oh My Zsh (use POSIX syntax here) [ -n "$ZSH_VERSION" ] || { - # ANSI formatting function (\033[m) - # 0: reset, 1: bold, 4: underline, 22: no bold, 24: no underline, 31: red, 33: yellow - omz_f() { - [ $# -gt 0 ] || return - IFS=";" printf "\033[%sm" $* - } - # If stdout is not a terminal ignore all formatting - [ -t 1 ] || omz_f() { :; } - omz_ptree() { # Get process tree of the current process pid=$$; pids="$pid" @@ -38,6 +38,15 @@ return 1 } +# Check if in emulation mode, if so early return +# https://github.com/ohmyzsh/ohmyzsh/issues/11686 +[[ "$(emulate)" = zsh ]] || { + printf "$(omz_f 1 31)Error:$(omz_f 22) Oh My Zsh can't be loaded in \`$(emulate)\` emulation mode.$(omz_f 0)\n" >&2 + return 1 +} + +unset -f omz_f + # If ZSH is not defined, use the current script's directory. [[ -z "$ZSH" ]] && export ZSH="${${(%):-%x}:a:h}" From c74f2a1be980c60d937046364db0c9497187457a Mon Sep 17 00:00:00 2001 From: Tjark <16938041+tjarbo@users.noreply.github.com> Date: Mon, 4 Sep 2023 19:43:06 +0200 Subject: [PATCH 321/441] feat(podman): add plugin (#11695) Closes #7489 Closes #9721 --- plugins/podman/README.md | 47 ++++++++++++++++++++++++++++++++ plugins/podman/podman.plugin.zsh | 47 ++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 plugins/podman/README.md create mode 100644 plugins/podman/podman.plugin.zsh diff --git a/plugins/podman/README.md b/plugins/podman/README.md new file mode 100644 index 000000000..99daa28cd --- /dev/null +++ b/plugins/podman/README.md @@ -0,0 +1,47 @@ +# Podman plugin + +This plugin adds auto-completion and aliases for [podman](https://podman.io/). + +To use it add `podman` to the plugins array in your zshrc file. + +```zsh +plugins=(... podman) +``` + +## Aliases + +| Alias | Command | Description | +| :------ | :-------------------------------------------- | :--------------------------------------------------------------------------------------- | +| pbl | `podman build` | Build an image from a Dockerfile | +| pcin | `podman container inspect` | Display detailed information on one or more containers | +| pcls | `podman container ls` | List all the running podman containers | +| pclsa | `podman container ls --all` | List all running and stopped containers | +| pib | `podman image build` | Build an image from a Dockerfile (same as podman build) | +| pii | `podman image inspect` | Display detailed information on one or more images | +| pils | `podman image ls` | List podman images | +| pipu | `podman image push` | Push an image or repository to a remote registry | +| pirm | `podman image rm` | Remove one or more images | +| pit | `podman image tag` | Add a name and tag to a particular image | +| plo | `podman container logs` | Fetch the logs of a podman container | +| pnc | `podman network create` | Create a new network | +| pncn | `podman network connect` | Connect a container to a network | +| pndcn | `podman network disconnect` | Disconnect a container from a network | +| pni | `podman network inspect` | Return information about one or more networks | +| pnls | `podman network ls` | List all networks the engine daemon knows about, including those spanning multiple hosts | +| pnrm | `podman network rm` | Remove one or more networks | +| ppo | `podman container port` | List port mappings or a specific mapping for the container | +| ppu | `podman pull` | Pull an image or a repository from a registry | +| pr | `podman container run` | Create a new container and start it using the specified command | +| prit | `podman container run --interactive --tty` | Create a new container and start it in an interactive shell | +| prm | `podman container rm` | Remove the specified container(s) | +| prm! | `podman container rm --force` | Force the removal of a running container (uses SIGKILL) | +| pst | `podman container start` | Start one or more stopped containers | +| prs | `podman container restart` | Restart one or more containers | +| psta | `podman stop $(podman ps -q)` | Stop all running containers | +| pstp | `podman container stop` | Stop one or more running containers | +| ptop | `podman top` | Display the running processes of a container | +| pvi | `podman volume inspect` | Display detailed information about one or more volumes | +| pvls | `podman volume ls` | List all the volumes known to podman | +| pvprune | `podman volume prune` | Cleanup dangling volumes | +| pxc | `podman container exec` | Run a new command in a running container | +| pxcit | `podman container exec --interactive --tty` | Run a new command in a running container in an interactive shell | diff --git a/plugins/podman/podman.plugin.zsh b/plugins/podman/podman.plugin.zsh new file mode 100644 index 000000000..97cf92b2a --- /dev/null +++ b/plugins/podman/podman.plugin.zsh @@ -0,0 +1,47 @@ +if (( ! $+commands[podman] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `podman`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_podman" ]]; then + typeset -g -A _comps + autoload -Uz _podman + _comps[podman]=_podman +fi + +podman completion zsh 2> /dev/null >| "$ZSH_CACHE_DIR/completions/_podman" &| + +alias pbl='podman build' +alias pcin='podman container inspect' +alias pcls='podman container ls' +alias pclsa='podman container ls --all' +alias pib='podman image build' +alias pii='podman image inspect' +alias pils='podman image ls' +alias pipu='podman image push' +alias pirm='podman image rm' +alias pit='podman image tag' +alias plo='podman container logs' +alias pnc='podman network create' +alias pncn='podman network connect' +alias pndcn='podman network disconnect' +alias pni='podman network inspect' +alias pnls='podman network ls' +alias pnrm='podman network rm' +alias ppo='podman container port' +alias ppu='podman pull' +alias pr='podman container run' +alias prit='podman container run --interactive --tty' +alias prm='podman container rm' +alias 'prm!'='podman container rm --force' +alias pst='podman container start' +alias prs='podman container restart' +alias psta='podman stop $(podman ps --quiet)' +alias pstp='podman container stop' +alias ptop='podman top' +alias pvi='podman volume inspect' +alias pvls='podman volume ls' +alias pvprune='podman volume prune' +alias pxc='podman container exec' +alias pxcit='podman container exec --interactive --tty' From bae577d6b2eb621fedc994d6309b6f819855c2f8 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 5 Sep 2023 11:41:50 +0100 Subject: [PATCH 322/441] fix(git)!: remove `-b` from `blame` alias (#11864) --- plugins/git/README.md | 2 +- plugins/git/git.plugin.zsh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index c3e6dd27d..44ed6f320 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -34,7 +34,7 @@ plugins=(... git) | gbsg | git bisect good | | gbsr | git bisect reset | | gbss | git bisect start | -| gbl | git blame -b -w | +| gbl | git blame -w | | gb | git branch | | gba | git branch --all | | gbd | git branch --delete | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 8886aac6d..e20373de5 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -115,7 +115,7 @@ alias gbsb='git bisect bad' alias gbsg='git bisect good' alias gbsr='git bisect reset' alias gbss='git bisect start' -alias gbl='git blame -b -w' +alias gbl='git blame -w' alias gb='git branch' alias gba='git branch --all' alias gbd='git branch --delete' From 8e8ec1348b3d4ae5fa156e26c07040ade461c83a Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 6 Sep 2023 10:54:11 +0200 Subject: [PATCH 323/441] fix(git-commit): avoid conflict with `aliases` var Closes #11876 --- plugins/git-commit/git-commit.plugin.zsh | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/plugins/git-commit/git-commit.plugin.zsh b/plugins/git-commit/git-commit.plugin.zsh index 70d541f21..2ac8aa5f4 100644 --- a/plugins/git-commit/git-commit.plugin.zsh +++ b/plugins/git-commit/git-commit.plugin.zsh @@ -1,10 +1,11 @@ -_register() { - if ! git config --global --get-all alias.$1 &>/dev/null; then +function _git_commit_register { + if ! git config --global --get-all alias.$1 >/dev/null 2>&1; then git config --global alias.$1 '!a() { if [[ "$1" == "-s" || "$1" == "--scope" ]]; then git commit -m "'$1'(${2}): ${@:3}"; else git commit -m "'$1': ${@}"; fi }; a' fi } -aliases=( +local -a _git_commit_aliases +_git_commit_aliases=( 'build' 'chore' 'ci' @@ -18,6 +19,9 @@ aliases=( 'test' ) -for alias in "${aliases[@]}"; do - _register $alias -done \ No newline at end of file +for _alias in "${_git_commit_aliases[@]}"; do + _git_commit_register $_alias +done + +unfunction _git_commit_register +unset _alias From 76e541a3fe71075c8ef75ecf44cd60f17b5292bb Mon Sep 17 00:00:00 2001 From: Felipe Gallois Date: Wed, 6 Sep 2023 10:18:36 +0100 Subject: [PATCH 324/441] feat(gallois): big rewrite to `gallois` theme (#11867) --- themes/gallois.zsh-theme | 136 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 126 insertions(+), 10 deletions(-) diff --git a/themes/gallois.zsh-theme b/themes/gallois.zsh-theme index bb97bfb17..3fc349072 100644 --- a/themes/gallois.zsh-theme +++ b/themes/gallois.zsh-theme @@ -1,24 +1,140 @@ # Depends on the git plugin for work_in_progress() (( $+functions[work_in_progress] )) || work_in_progress() {} -ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}[" -ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}*%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[cyan]%}[%{$fg[green]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg[cyan]%}]" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_CLEAN="" # Customized git status, oh-my-zsh currently does not allow render dirty status before branch git_custom_status() { local branch=$(git_current_branch) [[ -n "$branch" ]] || return 0 - echo "$(parse_git_dirty)\ -%{${fg_bold[yellow]}%}$(work_in_progress)%{$reset_color%}\ -${ZSH_THEME_GIT_PROMPT_PREFIX}${branch}${ZSH_THEME_GIT_PROMPT_SUFFIX}" + print "%{${fg_bold[yellow]}%}$(work_in_progress)%{$reset_color%}\ +${ZSH_THEME_GIT_PROMPT_PREFIX}$(parse_git_dirty)${branch}\ +${ZSH_THEME_GIT_PROMPT_SUFFIX}" +} +autoload -U colors && colors + +#export VCS_PROMPT=hg_prompt_info +export VCS_PROMPT=git_custom_status + +base_prompt="%{$fg[cyan]%}[%~% ]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b " +custom_prompt="" +last_run_time="" +last_vcs_info="" + + +function pipestatus_parse { + PIPESTATUS="$pipestatus" + ERROR=0 + for i in "${(z)PIPESTATUS}"; do + if [[ "$i" -ne 0 ]]; then + ERROR=1 + fi + done + + if [[ "$ERROR" -ne 0 ]]; then + print "[%{$fg[red]%}$PIPESTATUS%{$fg[cyan]%}]" + fi } -# RVM component of prompt -ZSH_THEME_RUBY_PROMPT_PREFIX="%{$fg[red]%}[" -ZSH_THEME_RUBY_PROMPT_SUFFIX="]%{$reset_color%}" # Combine it all into a final right-side prompt -RPS1="\$(git_custom_status)\$(ruby_prompt_info)${RPS1:+ $RPS1}" PROMPT='%{$fg[cyan]%}[%~% ]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b ' +function preexec() { + last_run_time=$(perl -MTime::HiRes=time -e 'printf "%.9f\n", time') +} + +function duration() { + local duration + local now=$(perl -MTime::HiRes=time -e 'printf "%.9f\n", time') + local last=$1 + local last_split=("${(@s/./)last}") + local now_split=("${(@s/./)now}") + local T=$((now_split[1] - last_split[1])) + local D=$((T/60/60/24)) + local H=$((T/60/60%24)) + local M=$((T/60%60)) + local S=$((T%60)) + local s=$(((now_split[2] - last_split[2]) / 1000000000.)) + local m=$(((now_split[2] - last_split[2]) / 1000000.)) + + (( $D > 0 )) && duration+="${D}d" + (( $H > 0 )) && duration+="${H}h" + (( $M > 0 )) && duration+="${M}m" + + if [[ $S -le 0 ]]; then + printf "%ims" "$m" + else + if ! [[ -z $duration ]] && printf "%s" "$duration" + local sec_milli=$((S + s)) + printf "%.3fs" "$sec_milli" + fi +} + +function precmd() { + RETVAL=$(pipestatus_parse) + local info="" + + if [ ! -z "$last_run_time" ]; then + local elapsed=$(duration $last_run_time) + last_run_time=$(print $last_run_time | tr -d ".") + if [ $(( $(perl -MTime::HiRes=time -e 'printf "%.9f\n", time' | tr -d ".") - $last_run_time )) -gt $(( 120 * 1000 * 1000 * 1000 )) ]; then + local elapsed_color="%{$fg[magenta]%}" + elif [ $(( $(perl -MTime::HiRes=time -e 'printf "%.9f\n", time' | tr -d ".") - $last_run_time )) -gt $(( 60 * 1000 * 1000 * 1000 )) ]; then + local elapsed_color="%{$fg[red]%}" + elif [ $(( $(perl -MTime::HiRes=time -e 'printf "%.9f\n", time' | tr -d ".") - $last_run_time )) -gt $(( 10 * 1000 * 1000 * 1000 )) ]; then + local elapsed_color="%{$fg[yellow]%}" + else + local elapsed_color="%{$fg[green]%}" + fi + info=$(printf "%s%s%s%s%s" "%{$fg[cyan]%}[" "$elapsed_color" "$elapsed" "%{$fg[cyan]%}]" "$RETVAL") + unset last_run_time + fi + + if [ -z "$info" -a ! -z "$last_vcs_info" ]; then + custom_prompt="$last_vcs_info$base_prompt" + return; + fi + + if (( ${+VCS_PROMPT} )); then + last_vcs_info=$($VCS_PROMPT) + if [ ! -z "$last_vcs_info" ]; then + [ -z "$info" ] && info=$last_vcs_info || info="$info$last_vcs_info" + fi + fi + + [ -z "$info" ] && custom_prompt="$base_prompt" || custom_prompt="$info$base_prompt" +} + +function hg_prompt_info() { + unset output info parts branch_parts branch + + local output="" + if ! output="$(hg status 2> /dev/null)"; then + return + fi + + local info=$(hg log -l1 --template '{author}:{node|short}:{remotenames}:{phabdiff}') + local parts=(${(@s/:/)info}) + local branch_parts=(${(@s,/,)parts[3]}) + local branch=${branch_parts[-1]} + [ ! -z "${parts[3]}" ] && [[ "${parts[1]}" =~ "$USER@" ]] && branch=${parts[3]} + [ -z "${parts[3]}" ] && branch=${parts[2]} + + if [[ ! -z "$output" ]]; then + local color="%{$fg[red]%}" + elif [[ "${branch}" == "master" || "${branch}" == "warm" ]]; then + local color="%{$fg[yellow]%}" + else + local color="%{$fg[green]%}" + fi + + print "%{$fg[cyan]%}[${color}${branch}%{$fg[cyan]%}]" +} + +setopt PROMPT_SUBST +PROMPT='$custom_prompt' + + From 331f3c8b2e28e47af41ae309aa814dab524a3374 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Wed, 6 Sep 2023 11:36:57 +0100 Subject: [PATCH 325/441] feat(git): add bisect aliases `gbsn` and `gbso` (#11869) --- plugins/git/README.md | 2 ++ plugins/git/git.plugin.zsh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/plugins/git/README.md b/plugins/git/README.md index 44ed6f320..922cbee55 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -32,6 +32,8 @@ plugins=(... git) | gbs | git bisect | | gbsb | git bisect bad | | gbsg | git bisect good | +| gbsn | git bisect new | +| gbso | git bisect old | | gbsr | git bisect reset | | gbss | git bisect start | | gbl | git blame -w | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index e20373de5..4afe34e99 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -113,6 +113,8 @@ alias gapt='git apply --3way' alias gbs='git bisect' alias gbsb='git bisect bad' alias gbsg='git bisect good' +alias gbsn='git bisect new' +alias gbso='git bisect old' alias gbsr='git bisect reset' alias gbss='git bisect start' alias gbl='git blame -w' From 6a7aab47dd6071b7f264477195b06efb7e7bd480 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Wed, 6 Sep 2023 11:42:09 +0100 Subject: [PATCH 326/441] docs(git): align markdown table borders (#11878) --- plugins/git/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 922cbee55..6eb63ea40 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -36,7 +36,7 @@ plugins=(... git) | gbso | git bisect old | | gbsr | git bisect reset | | gbss | git bisect start | -| gbl | git blame -w | +| gbl | git blame -w | | gb | git branch | | gba | git branch --all | | gbd | git branch --delete | From 079dbff2c4f22935a71101c511e2285327d8ab68 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 6 Sep 2023 19:01:41 +0200 Subject: [PATCH 327/441] feat(pipenv): add option to disable auto shell feature Closes #11472 --- plugins/pipenv/README.md | 15 ++++++++++++- plugins/pipenv/pipenv.plugin.zsh | 38 +++++++++++++++++--------------- 2 files changed, 34 insertions(+), 19 deletions(-) diff --git a/plugins/pipenv/README.md b/plugins/pipenv/README.md index 4329feb32..e78ef0e3b 100644 --- a/plugins/pipenv/README.md +++ b/plugins/pipenv/README.md @@ -1,6 +1,7 @@ # Pipenv ## Installation + In your `.zshrc` file, add `pipenv` to the plugins section ``` @@ -8,7 +9,9 @@ plugins=(... pipenv ...) ``` ## Features -This plugin provides some features to simplify the use of Pipenv while working on ZSH. + +This plugin provides some features to simplify the use of Pipenv while working on ZSH. + - Adds completion for pipenv - Auto activates and deactivates pipenv shell - Adds short aliases for common pipenv commands @@ -27,3 +30,13 @@ This plugin provides some features to simplify the use of Pipenv while working o - `pwh` is aliased to `pipenv --where` - `pvenv` is aliased to `pipenv --venv` - `ppy` is aliased to `pipenv --py` + +## Configuration + +### Shell activation + +If you want to disable the shell activation and deactivation feature, add the following style to your `.zshrc` before sourcing `oh-my-zsh.sh`: + +```zsh +zstyle ':omz:plugins:pipenv' auto-shell no +``` diff --git a/plugins/pipenv/pipenv.plugin.zsh b/plugins/pipenv/pipenv.plugin.zsh index 22d1a3131..f81c266a4 100644 --- a/plugins/pipenv/pipenv.plugin.zsh +++ b/plugins/pipenv/pipenv.plugin.zsh @@ -12,28 +12,30 @@ fi _PIPENV_COMPLETE=zsh_source pipenv >| "$ZSH_CACHE_DIR/completions/_pipenv" &| -# Automatic pipenv shell activation/deactivation -_togglePipenvShell() { - # deactivate shell if Pipfile doesn't exist and not in a subdir - if [[ ! -f "$PWD/Pipfile" ]]; then - if [[ "$PIPENV_ACTIVE" == 1 ]]; then - if [[ "$PWD" != "$pipfile_dir"* ]]; then - exit +if zstyle -T ':omz:plugins:pipenv' auto-shell; then + # Automatic pipenv shell activation/deactivation + _togglePipenvShell() { + # deactivate shell if Pipfile doesn't exist and not in a subdir + if [[ ! -f "$PWD/Pipfile" ]]; then + if [[ "$PIPENV_ACTIVE" == 1 ]]; then + if [[ "$PWD" != "$pipfile_dir"* ]]; then + exit + fi fi fi - fi - # activate the shell if Pipfile exists - if [[ "$PIPENV_ACTIVE" != 1 ]]; then - if [[ -f "$PWD/Pipfile" ]]; then - export pipfile_dir="$PWD" - pipenv shell + # activate the shell if Pipfile exists + if [[ "$PIPENV_ACTIVE" != 1 ]]; then + if [[ -f "$PWD/Pipfile" ]]; then + export pipfile_dir="$PWD" + pipenv shell + fi fi - fi -} -autoload -U add-zsh-hook -add-zsh-hook chpwd _togglePipenvShell -_togglePipenvShell + } + autoload -U add-zsh-hook + add-zsh-hook chpwd _togglePipenvShell + _togglePipenvShell +fi # Aliases alias pch="pipenv check" From b07c8cfe692bc6c7702f0aef5d493b12dfb43392 Mon Sep 17 00:00:00 2001 From: Haltarys <45515869+Haltarys@users.noreply.github.com> Date: Sun, 10 Sep 2023 09:28:33 +0200 Subject: [PATCH 328/441] fix(git-commit): fix compatibility of alias functions (#11883) --- plugins/git-commit/git-commit.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git-commit/git-commit.plugin.zsh b/plugins/git-commit/git-commit.plugin.zsh index 2ac8aa5f4..4ad4c0177 100644 --- a/plugins/git-commit/git-commit.plugin.zsh +++ b/plugins/git-commit/git-commit.plugin.zsh @@ -1,6 +1,6 @@ function _git_commit_register { if ! git config --global --get-all alias.$1 >/dev/null 2>&1; then - git config --global alias.$1 '!a() { if [[ "$1" == "-s" || "$1" == "--scope" ]]; then git commit -m "'$1'(${2}): ${@:3}"; else git commit -m "'$1': ${@}"; fi }; a' + git config --global alias.$1 '!a() { if [ "$1" = "-s" ] || [ "$1" = "--scope" ]; then local scope="$2"; shift 2; git commit -m "'$1'(${scope}): ${@}"; else git commit -m "'$1': ${@}"; fi }; a' fi } From cd18bce53e01d0f614ffcbb7429053fb508cb095 Mon Sep 17 00:00:00 2001 From: AJ Jordan Date: Mon, 11 Sep 2023 03:31:53 -0400 Subject: [PATCH 329/441] feat(mortalscumbag): show toolbox info (#11884) --- themes/mortalscumbag.zsh-theme | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/themes/mortalscumbag.zsh-theme b/themes/mortalscumbag.zsh-theme index d81a7ca06..36301cb76 100644 --- a/themes/mortalscumbag.zsh-theme +++ b/themes/mortalscumbag.zsh-theme @@ -51,8 +51,14 @@ function ssh_connection() { fi } +function _toolbox_prompt_info() { + if typeset -f toolbox_prompt_info > /dev/null; then + toolbox_prompt_info + fi +} + local ret_status="%(?:%{$fg_bold[green]%}:%{$fg_bold[red]%})%?%{$reset_color%}" -PROMPT=$'\n$(ssh_connection)%{$fg_bold[green]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n[${ret_status}] %# ' +PROMPT=$'\n$(_toolbox_prompt_info)$(ssh_connection)%{$fg_bold[green]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n[${ret_status}] %# ' ZSH_THEME_PROMPT_RETURNCODE_PREFIX="%{$fg_bold[red]%}" ZSH_THEME_GIT_PROMPT_PREFIX=" $fg[white]‹ %{$fg_bold[yellow]%}" From 7077989d28e9cd723afcb4355874683d847278b4 Mon Sep 17 00:00:00 2001 From: Samuel Beckley Date: Mon, 11 Sep 2023 03:35:28 -0400 Subject: [PATCH 330/441] feat(macos): update spotify plugin to upstream (#11534) --- plugins/macos/spotify | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/plugins/macos/spotify b/plugins/macos/spotify index 5fb40517c..ae42db425 100644 --- a/plugins/macos/spotify +++ b/plugins/macos/spotify @@ -1,7 +1,7 @@ #!/usr/bin/env bash function spotify() { -# Copyright (c) 2012--2019 Harish Narayanan +# Copyright (c) 2012--2023 Harish Narayanan # # Contains numerous helpful contributions from Jorge Colindres, Thomas # Pritchard, iLan Epstein, Gabriele Bonetti, Sean Heller, Eric Martin @@ -35,6 +35,9 @@ if ! [[ -f "${USER_CONFIG_FILE}" ]]; then fi source "${USER_CONFIG_FILE}"; +# Set the percent change in volume for vol up and vol down +VOL_INCREMENT=10 + showAPIHelp() { echo; echo "Connecting to Spotify's API:"; @@ -170,12 +173,12 @@ while [ $# -gt 0 ]; do if [ -z "${CLIENT_ID}" ]; then cecho "Invalid Client ID, please update ${USER_CONFIG_FILE}"; showAPIHelp; - return 1 + return 1; fi if [ -z "${CLIENT_SECRET}" ]; then cecho "Invalid Client Secret, please update ${USER_CONFIG_FILE}"; showAPIHelp; - return 1 + return 1; fi SHPOTIFY_CREDENTIALS=$(printf "${CLIENT_ID}:${CLIENT_SECRET}" | base64 | tr -d "\n"|tr -d '\r'); SPOTIFY_PLAY_URI=""; @@ -198,7 +201,7 @@ while [ $# -gt 0 ]; do fi SPOTIFY_ACCESS_TOKEN=$( \ printf "${SPOTIFY_TOKEN_RESPONSE_DATA}" \ - | grep -E -o '"access_token":".*",' \ + | command grep -E -o '"access_token":".*",' \ | sed 's/"access_token"://g' \ | sed 's/"//g' \ | sed 's/,.*//g' \ @@ -219,9 +222,8 @@ while [ $# -gt 0 ]; do -H "Accept: application/json" \ --data-urlencode "q=$Q" \ -d "type=$type&limit=1&offset=0" \ - | grep -E -o "spotify:$type:[a-zA-Z0-9]+" -m 1 + | command grep -E -o "spotify:$type:[a-zA-Z0-9]+" -m 1 ) - echo "play uri: ${SPOTIFY_PLAY_URI}" } case $2 in @@ -235,11 +237,11 @@ while [ $# -gt 0 ]; do results=$( \ curl -s -G $SPOTIFY_SEARCH_API --data-urlencode "q=$Q" -d "type=playlist&limit=10&offset=0" -H "Accept: application/json" -H "Authorization: Bearer ${SPOTIFY_ACCESS_TOKEN}" \ - | grep -E -o "spotify:playlist:[a-zA-Z0-9]+" -m 10 \ + | command grep -E -o "spotify:playlist:[a-zA-Z0-9]+" -m 10 \ ) count=$( \ - echo "$results" | grep -c "spotify:playlist" \ + echo "$results" | command grep -c "spotify:playlist" \ ) if [ "$count" -gt 0 ]; then @@ -333,16 +335,16 @@ while [ $# -gt 0 ]; do cecho "Current Spotify volume level is $vol."; break ; elif [ "$2" = "up" ]; then - if [ $vol -le 90 ]; then - newvol=$(( vol+10 )); + if [ $vol -le $(( 100-$VOL_INCREMENT )) ]; then + newvol=$(( vol+$VOL_INCREMENT )); cecho "Increasing Spotify volume to $newvol."; else newvol=100; cecho "Spotify volume level is at max."; fi elif [ "$2" = "down" ]; then - if [ $vol -ge 10 ]; then - newvol=$(( vol-10 )); + if [ $vol -ge $(( $VOL_INCREMENT )) ]; then + newvol=$(( vol-$VOL_INCREMENT )); cecho "Reducing Spotify volume to $newvol."; else newvol=0; @@ -354,11 +356,11 @@ while [ $# -gt 0 ]; do else echo "Improper use of 'vol' command" echo "The 'vol' command should be used as follows:" - echo " vol up # Increases the volume by 10%."; - echo " vol down # Decreases the volume by 10%."; + echo " vol up # Increases the volume by $VOL_INCREMENT%."; + echo " vol down # Decreases the volume by $VOL_INCREMENT%."; echo " vol [amount] # Sets the volume to an amount between 0 and 100."; echo " vol # Shows the current Spotify volume."; - return 1 + return 1; fi osascript -e "tell application \"Spotify\" to set sound volume to $newvol"; @@ -468,10 +470,9 @@ while [ $# -gt 0 ]; do "help" ) showHelp; break ;; - * ) showHelp; - return 1 ;; + return 1; esac done From 38ef5192cb1c43159b516d15ab8fed96f847b36b Mon Sep 17 00:00:00 2001 From: Felipe Gallois Date: Mon, 11 Sep 2023 10:05:50 +0100 Subject: [PATCH 331/441] feat(oldgalois): add theme (#11880) Closes #11879 --- themes/oldgallois.zsh-theme | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 themes/oldgallois.zsh-theme diff --git a/themes/oldgallois.zsh-theme b/themes/oldgallois.zsh-theme new file mode 100644 index 000000000..bb97bfb17 --- /dev/null +++ b/themes/oldgallois.zsh-theme @@ -0,0 +1,24 @@ +# Depends on the git plugin for work_in_progress() +(( $+functions[work_in_progress] )) || work_in_progress() {} + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}[" +ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}*%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="" + +# Customized git status, oh-my-zsh currently does not allow render dirty status before branch +git_custom_status() { + local branch=$(git_current_branch) + [[ -n "$branch" ]] || return 0 + echo "$(parse_git_dirty)\ +%{${fg_bold[yellow]}%}$(work_in_progress)%{$reset_color%}\ +${ZSH_THEME_GIT_PROMPT_PREFIX}${branch}${ZSH_THEME_GIT_PROMPT_SUFFIX}" +} + +# RVM component of prompt +ZSH_THEME_RUBY_PROMPT_PREFIX="%{$fg[red]%}[" +ZSH_THEME_RUBY_PROMPT_SUFFIX="]%{$reset_color%}" + +# Combine it all into a final right-side prompt +RPS1="\$(git_custom_status)\$(ruby_prompt_info)${RPS1:+ $RPS1}" +PROMPT='%{$fg[cyan]%}[%~% ]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b ' From 01f55123118601a935f28ff6c49e625448bdd32d Mon Sep 17 00:00:00 2001 From: bretello Date: Tue, 12 Sep 2023 21:41:07 +0200 Subject: [PATCH 332/441] feat(systemd): add alias for --failed commands (#11847) --- plugins/systemd/README.md | 1 + plugins/systemd/systemd.plugin.zsh | 3 +++ 2 files changed, 4 insertions(+) diff --git a/plugins/systemd/README.md b/plugins/systemd/README.md index ffa0567a8..755c649a1 100644 --- a/plugins/systemd/README.md +++ b/plugins/systemd/README.md @@ -12,6 +12,7 @@ plugins=(... systemd) | Alias | Command | Description | |:-----------------------|:-----------------------------------|:-----------------------------------------------------------------| +| `sc-failed` | `systemctl --failed` | List failed systemd units | | `sc-list-units` | `systemctl list-units` | List all units systemd has in memory | | `sc-is-active` | `systemctl is-active` | Show whether a unit is active | | `sc-status` | `systemctl status` | Show terse runtime status information about one or more units | diff --git a/plugins/systemd/systemd.plugin.zsh b/plugins/systemd/systemd.plugin.zsh index 1270bea0e..382a57b29 100644 --- a/plugins/systemd/systemd.plugin.zsh +++ b/plugins/systemd/systemd.plugin.zsh @@ -93,6 +93,9 @@ alias scu-enable-now="scu-enable --now" alias scu-disable-now="scu-disable --now" alias scu-mask-now="scu-mask --now" +# --failed commands +alias scu-failed='systemctl --user --failed' +alias sc-failed='systemctl --failed' function systemd_prompt_info { local unit From 7e4c26860d74a01cd6d91fd10fcc28fccd740ddd Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 13 Sep 2023 10:48:16 +0200 Subject: [PATCH 333/441] feat(brew): add support for custom `BREW_LOCATION` Fixes #11888 Co-authored-by: Matt Cable --- plugins/brew/README.md | 20 +++++++++++--------- plugins/brew/brew.plugin.zsh | 7 ++++++- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/plugins/brew/README.md b/plugins/brew/README.md index 4730194bc..299393b28 100644 --- a/plugins/brew/README.md +++ b/plugins/brew/README.md @@ -10,10 +10,12 @@ plugins=(... brew) ## Shellenv -If `brew` is not found in the PATH, this plugin will attempt to find it in common -locations, and execute `brew shellenv` to set the environment appropriately. -This plugin will also export `HOMEBREW_PREFIX="$(brew --prefix)"` if not previously -defined for convenience. +If `brew` is not found in the PATH, this plugin will attempt to find it in common locations, and execute +`brew shellenv` to set the environment appropriately. This plugin will also export +`HOMEBREW_PREFIX="$(brew --prefix)"` if not previously defined for convenience. + +In case you installed `brew` in a non-common location, you can still set `BREW_LOCATION` variable pointing to +the `brew` binary before sourcing `oh-my-zsh.sh` and it'll set up the environment. ## Aliases @@ -33,9 +35,9 @@ defined for convenience. ## Completion -This plugin configures paths with Homebrew's completion functions automatically, so you don't need to do it manually. See: https://docs.brew.sh/Shell-Completion#configuring-completions-in-zsh. +This plugin configures paths with Homebrew's completion functions automatically, so you don't need to do it +manually. See: https://docs.brew.sh/Shell-Completion#configuring-completions-in-zsh. -With the release of Homebrew 1.0, they decided to bundle the zsh completion as part of the -brew installation, so we no longer ship it with the brew plugin; now it only has brew -aliases. If you find that brew completion no longer works, make sure you have your Homebrew -installation fully up to date. +With the release of Homebrew 1.0, they decided to bundle the zsh completion as part of the brew installation, +so we no longer ship it with the brew plugin; now it only has brew aliases. If you find that brew completion +no longer works, make sure you have your Homebrew installation fully up to date. diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh index b52664a39..447036376 100644 --- a/plugins/brew/brew.plugin.zsh +++ b/plugins/brew/brew.plugin.zsh @@ -1,5 +1,10 @@ if (( ! $+commands[brew] )); then - if [[ -x /opt/homebrew/bin/brew ]]; then + if [[ -n "$BREW_LOCATION" ]]; then + if [[ ! -x "$BREW_LOCATION" ]]; then + echo "[oh-my-zsh] $BREW_LOCATION is not executable" + return + fi + elif [[ -x /opt/homebrew/bin/brew ]]; then BREW_LOCATION="/opt/homebrew/bin/brew" elif [[ -x /usr/local/bin/brew ]]; then BREW_LOCATION="/usr/local/bin/brew" From 4167474f124bfc39d0e6cd612c95acf0a1ae9904 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Wed, 13 Sep 2023 16:31:24 +0200 Subject: [PATCH 334/441] feat(grc): add support for arm64 macos (#11890) --- plugins/grc/grc.plugin.zsh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/grc/grc.plugin.zsh b/plugins/grc/grc.plugin.zsh index b709b9e02..e036b8d89 100644 --- a/plugins/grc/grc.plugin.zsh +++ b/plugins/grc/grc.plugin.zsh @@ -2,8 +2,9 @@ # common grc.zsh paths files=( - /etc/grc.zsh # default - /usr/local/etc/grc.zsh # homebrew + /etc/grc.zsh # default + /usr/local/etc/grc.zsh # homebrew darwin-x64 + /opt/homebrew/etc/grc.zsh # homebrew darwin-arm64 ) # verify the file is readable and source it From bbda81fe4b338f00bbf7c7f33e6d1b12d067dc05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 13 Sep 2023 19:23:41 +0200 Subject: [PATCH 335/441] fix(changelog): fix regression for unstyled code in commit subjects --- tools/changelog.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/changelog.sh b/tools/changelog.sh index 1af74e42d..6d768963e 100755 --- a/tools/changelog.sh +++ b/tools/changelog.sh @@ -366,7 +366,7 @@ function display-release { # In text mode, highlight (#) and dim text between `backticks` text) if supports_hyperlinks; then - sed -E $'s|#([0-9]+)|\e]8;;https://github.com/ohmyzsh/ohmyzsh/issues/\\1\a\e[32m#\\1\e[0m\e]8;;\a|g' <<< "$subject" + sed -E $'s|#([0-9]+)|\e]8;;https://github.com/ohmyzsh/ohmyzsh/issues/\\1\a\e[32m#\\1\e[0m\e]8;;\a|g;s|`([^`]+)`|`\e[2m\\1\e[0m`|g' <<< "$subject" else sed -E $'s|#([0-9]+)|\e[32m#\\1\e[0m|g;s|`([^`]+)`|`\e[2m\\1\e[0m`|g' <<< "$subject" fi ;; From cdd7dab5db4c668b962f908b57e244aa1ff4b574 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sun, 17 Sep 2023 16:20:46 +0200 Subject: [PATCH 336/441] ci(installer): remove `vc link` which generates the wrong project `vc link` is not needed, as we already have `VERCEL_PROJECT_ID` defined as an env variable. Currently the `vc link` only creates a second empty project with the name `installer` as seen in logs: Linked to ohmyzsh/installer (created .vercel and added it to .gitignore) Vercel CLI 32.2.4 --- .github/workflows/installer.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/installer.yml b/.github/workflows/installer.yml index ac88d10b0..4a25c8079 100644 --- a/.github/workflows/installer.yml +++ b/.github/workflows/installer.yml @@ -51,5 +51,4 @@ jobs: run: | cp tools/install.sh .github/workflows/installer/install.sh cd .github/workflows/installer - vc link --yes -t ${{ secrets.VERCEL_TOKEN }} vc deploy --prod -t ${{ secrets.VERCEL_TOKEN }} From 91cd5341b9e682bf1c1be4a4051249cffdab7943 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Godde Date: Wed, 20 Sep 2023 12:09:46 +0200 Subject: [PATCH 337/441] fix(gcloud): source `path.zsh.inc` always (#11901) --- plugins/gcloud/gcloud.plugin.zsh | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/plugins/gcloud/gcloud.plugin.zsh b/plugins/gcloud/gcloud.plugin.zsh index 5c57302d3..9a4213aaf 100644 --- a/plugins/gcloud/gcloud.plugin.zsh +++ b/plugins/gcloud/gcloud.plugin.zsh @@ -29,11 +29,9 @@ if [[ -z "${CLOUDSDK_HOME}" ]]; then fi if (( ${+CLOUDSDK_HOME} )); then - # Only source this if gcloud isn't already on the path - if (( ! $+commands[gcloud] )); then - if [[ -f "${CLOUDSDK_HOME}/path.zsh.inc" ]]; then - source "${CLOUDSDK_HOME}/path.zsh.inc" - fi + # Source path file + if [[ -f "${CLOUDSDK_HOME}/path.zsh.inc" ]]; then + source "${CLOUDSDK_HOME}/path.zsh.inc" fi # Look for completion file in different paths From 350427dea2293a3e23f9823b5dc2574c1b1ae2a2 Mon Sep 17 00:00:00 2001 From: Trick van Staveren Date: Wed, 20 Sep 2023 09:09:26 -0500 Subject: [PATCH 338/441] feat(hitchhiker): clean up refs to magic string (#11900) --- plugins/hitchhiker/fortunes/hitchhiker | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/plugins/hitchhiker/fortunes/hitchhiker b/plugins/hitchhiker/fortunes/hitchhiker index 825b86cd6..b0448b21e 100644 --- a/plugins/hitchhiker/fortunes/hitchhiker +++ b/plugins/hitchhiker/fortunes/hitchhiker @@ -194,31 +194,31 @@ ARTHUR It probably seems a terrible thing to say, but you know what I sometimes - One of the more preferable pieces of advice contained in the Guide. % -"His eyes seemed to be popping out of his head. He wasn't certain if this was because they were trying to see more clearly, or if they simply wanted to leave at this point."QUOTEHERESTRINGMAGIC1234- Arthur trying to see who had diverted him from going to a party. +"His eyes seemed to be popping out of his head. He wasn't certain if this was because they were trying to see more clearly, or if they simply wanted to leave at this point." - Arthur trying to see who had diverted him from going to a party. % -"Arthur yawed wildly as his skin tried to jump one way and his skeleton the other, whilst his brain tried to work out which of his ears it most wanted to crawl out of. `Bet you weren't expecting to see me again,' said the monster, which Arthur couldn't help thinking was a strange remark for it to make, seeing as he had never met the creature before. He could tell that he hadn't met the creature before from the simple fact that he was able to sleep at nights."QUOTEHERESTRINGMAGIC1234- Arthur discovering who had diverted him from going to a party. +"Arthur yawed wildly as his skin tried to jump one way and his skeleton the other, whilst his brain tried to work out which of his ears it most wanted to crawl out of. `Bet you weren't expecting to see me again,' said the monster, which Arthur couldn't help thinking was a strange remark for it to make, seeing as he had never met the creature before. He could tell that he hadn't met the creature before from the simple fact that he was able to sleep at nights." - Arthur discovering who had diverted him from going to a party. % -"`That young girl is one of the least benightedly unintelligent organic life forms it has been my profound lack of pleasure not to be able to avoid meeting.'"QUOTEHERESTRINGMAGIC1234- Marvin's first ever compliment about anybody. +"`That young girl is one of the least benightedly unintelligent organic life forms it has been my profound lack of pleasure not to be able to avoid meeting.'" - Marvin's first ever compliment about anybody. % -"Arthur hoped and prayed that there wasn't an afterlife. Then he realised there was a contradiction there and merely hoped that there wasn't an afterlife."QUOTEHERESTRINGMAGIC1234- Arthur realising that he's in a certain death situation with a supernova bomb that is shaped like a cricket ball. +"Arthur hoped and prayed that there wasn't an afterlife. Then he realised there was a contradiction there and merely hoped that there wasn't an afterlife." - Arthur realising that he's in a certain death situation with a supernova bomb that is shaped like a cricket ball. % -"`Credit?' he said. `Aaaargggh...' These two words are usually coupled together in the Old Pink Dog Bar."QUOTEHERESTRINGMAGIC1234- Ford in a spot of bother. +"`Credit?' he said. `Aaaargggh...' These two words are usually coupled together in the Old Pink Dog Bar." - Ford in a spot of bother. % -"`...we might as well start with where your hand is now.' Arthur said, `So which way do I go?' `Down,' said Fenchurch, `on this occasion.' He moved his hand. `Down,' she said, `is in fact the other way.' `Oh yes.'"QUOTEHERESTRINGMAGIC1234- Arthur trying to discover which part of Fenchurch is wrong. +"`...we might as well start with where your hand is now.' Arthur said, `So which way do I go?' `Down,' said Fenchurch, `on this occasion.' He moved his hand. `Down,' she said, `is in fact the other way.' `Oh yes.'" - Arthur trying to discover which part of Fenchurch is wrong. % -"There was a point to this story, but it has temporarily escaped the chronicler's mind."QUOTEHERESTRINGMAGIC1234- This line perhaps best sums up the whole book. +"There was a point to this story, but it has temporarily escaped the chronicler's mind." - This line perhaps best sums up the whole book. % -"The last time anybody made a list of the top hundred character attributes of New Yorkers, common sense snuck in at number 79. .... When it's fall in New York, the air smells as if someone's been frying goats in it, and if you are keen to breathe the best plan is to open a window and stick your head in a building."QUOTEHERESTRINGMAGIC1234- Nuff said?? +"The last time anybody made a list of the top hundred character attributes of New Yorkers, common sense snuck in at number 79. .... When it's fall in New York, the air smells as if someone's been frying goats in it, and if you are keen to breathe the best plan is to open a window and stick your head in a building." - Nuff said?? % -"`What's been happening here?' he demanded. `Oh just the nicest things, sir, just the nicest things. can I sit on your lap please?'" "`Colin, I am going to abandon you to your fate.' `I'm so happy.'" "`It will be very, very nasty for you, and that's just too bad. Got it?' `I gurgle with pleasure.'"QUOTEHERESTRINGMAGIC1234- Ford and Colin the robot. +"`What's been happening here?' he demanded. `Oh just the nicest things, sir, just the nicest things. can I sit on your lap please?'" "`Colin, I am going to abandon you to your fate.' `I'm so happy.'" "`It will be very, very nasty for you, and that's just too bad. Got it?' `I gurgle with pleasure.'" - Ford and Colin the robot. % -"What the hell, he thought, you're only young once, and threw himself out of the window. That would at least keep the element of surprise on his side."QUOTEHERESTRINGMAGIC1234- Ford outwitting a Vogon with a rocket launcher by going into another certain death situation. +"What the hell, he thought, you're only young once, and threw himself out of the window. That would at least keep the element of surprise on his side." - Ford outwitting a Vogon with a rocket launcher by going into another certain death situation. % -"The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair."QUOTEHERESTRINGMAGIC1234- One of the laws of computers and programming revealed. +"The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair." - One of the laws of computers and programming revealed. % -"`You know they've reintroduced the death penalty for insurance company directors?' `Really?' said Arthur. `No I didn't. For what offence?' Trillian frowned. `What do you mean, offence?' `I see.'"QUOTEHERESTRINGMAGIC1234- Evidence that there will be some justice in the Universe eventually. +"`You know they've reintroduced the death penalty for insurance company directors?' `Really?' said Arthur. `No I didn't. For what offence?' Trillian frowned. `What do you mean, offence?' `I see.'" - Evidence that there will be some justice in the Universe eventually. % -"`She hit me on the head with the rock again.' `I think I can confirm that that was my daughter.' `Sweet kid.' `You have to get to know her,' said Arthur. `She eases up does she?' `No,' said Arthur, `but you get a better sense of when to duck.'"QUOTEHERESTRINGMAGIC1234- Ford and Arthur on Random. +"`She hit me on the head with the rock again.' `I think I can confirm that that was my daughter.' `Sweet kid.' `You have to get to know her,' said Arthur. `She eases up does she?' `No,' said Arthur, `but you get a better sense of when to duck.'" - Ford and Arthur on Random. % "Far out in the uncharted backwaters of the unfashionable end of the western spiral arm of the Galaxy lies a small unregarded yellow sun. " % From 1cc32be5f632ff933b3e3f1c7bd9e612a274c095 Mon Sep 17 00:00:00 2001 From: ajatkj Date: Wed, 20 Sep 2023 20:21:27 +0530 Subject: [PATCH 339/441] feat(poetry-env): create plugin (#11069) --- plugins/poetry-env/README.md | 10 +++++++++ plugins/poetry-env/poetry-env.plugin.zsh | 27 ++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 plugins/poetry-env/README.md create mode 100644 plugins/poetry-env/poetry-env.plugin.zsh diff --git a/plugins/poetry-env/README.md b/plugins/poetry-env/README.md new file mode 100644 index 000000000..a7d16563e --- /dev/null +++ b/plugins/poetry-env/README.md @@ -0,0 +1,10 @@ +# Poetry Environment Plugin + +This plugin automatically changes poetry environment when you cd into or out of the project directory. +Note: Script looks for pyproject.toml file to determine poetry if its a poetry environment + +To use it, add `poetry-env` to the plugins array in your zshrc file: + +```zsh +plugins=(... poetry-env) +``` diff --git a/plugins/poetry-env/poetry-env.plugin.zsh b/plugins/poetry-env/poetry-env.plugin.zsh new file mode 100644 index 000000000..86e5fad4e --- /dev/null +++ b/plugins/poetry-env/poetry-env.plugin.zsh @@ -0,0 +1,27 @@ +# Automatic poetry environment activation/deactivation +_togglePoetryShell() { + # deactivate environment if pyproject.toml doesn't exist and not in a subdir + if [[ ! -f "$PWD/pyproject.toml" ]] ; then + if [[ "$poetry_active" == 1 ]]; then + if [[ "$PWD" != "$poetry_dir"* ]]; then + export poetry_active=0 + deactivate + return + fi + fi + fi + + # activate the environment if pyproject.toml exists + if [[ "$poetry_active" != 1 ]]; then + if [[ -f "$PWD/pyproject.toml" ]]; then + if grep -q 'tool.poetry' "$PWD/pyproject.toml"; then + export poetry_active=1 + export poetry_dir="$PWD" + source "$(poetry env info --path)/bin/activate" + fi + fi + fi +} +autoload -U add-zsh-hook +add-zsh-hook chpwd _togglePoetryShell +_togglePoetryShell From 1c55a0fe5246487ec9f18e03b7f28862b76cb7ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20M=C3=BCller?= Date: Thu, 21 Sep 2023 12:43:00 +0200 Subject: [PATCH 340/441] feat(dnf): use `dnf5` if available (#11904) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Marcus Müller --- plugins/dnf/README.md | 3 +++ plugins/dnf/dnf.plugin.zsh | 28 ++++++++++++++++------------ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/plugins/dnf/README.md b/plugins/dnf/README.md index dc0d1e0a0..f45c8778c 100644 --- a/plugins/dnf/README.md +++ b/plugins/dnf/README.md @@ -10,6 +10,9 @@ To use it, add `dnf` to the plugins array in your zshrc file: plugins=(... dnf) ``` +Classic `dnf` is getting superseded by `dnf5`; this plugin detects the presence +of `dnf5` and uses it as drop-in alternative to the slower `dnf`. + ## Aliases | Alias | Command | Description | diff --git a/plugins/dnf/dnf.plugin.zsh b/plugins/dnf/dnf.plugin.zsh index 653ce7dda..642422fe1 100644 --- a/plugins/dnf/dnf.plugin.zsh +++ b/plugins/dnf/dnf.plugin.zsh @@ -1,15 +1,19 @@ ## Aliases +local dnfprog="dnf" -alias dnfl="dnf list" # List packages -alias dnfli="dnf list installed" # List installed packages -alias dnfgl="dnf grouplist" # List package groups -alias dnfmc="dnf makecache" # Generate metadata cache -alias dnfp="dnf info" # Show package information -alias dnfs="dnf search" # Search package +# Prefer dnf5 if installed +command -v dnf5 > /dev/null && dnfprog=dnf5 -alias dnfu="sudo dnf upgrade" # Upgrade package -alias dnfi="sudo dnf install" # Install package -alias dnfgi="sudo dnf groupinstall" # Install package group -alias dnfr="sudo dnf remove" # Remove package -alias dnfgr="sudo dnf groupremove" # Remove package group -alias dnfc="sudo dnf clean all" # Clean cache +alias dnfl="${dnfprog} list" # List packages +alias dnfli="${dnfprog} list installed" # List installed packages +alias dnfgl="${dnfprog} grouplist" # List package groups +alias dnfmc="${dnfprog} makecache" # Generate metadata cache +alias dnfp="${dnfprog} info" # Show package information +alias dnfs="${dnfprog} search" # Search package + +alias dnfu="sudo ${dnfprog} upgrade" # Upgrade package +alias dnfi="sudo ${dnfprog} install" # Install package +alias dnfgi="sudo ${dnfprog} groupinstall" # Install package group +alias dnfr="sudo ${dnfprog} remove" # Remove package +alias dnfgr="sudo ${dnfprog} groupremove" # Remove package group +alias dnfc="sudo ${dnfprog} clean all" # Clean cache From c91684bb1b723833a96415c2c724332a6e2e620f Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Mon, 25 Sep 2023 08:20:20 +0100 Subject: [PATCH 341/441] docs(web-search): add `youtube` entry --- plugins/web-search/README.md | 62 ++++++++++++------------ plugins/web-search/web-search.plugin.zsh | 1 - 2 files changed, 30 insertions(+), 33 deletions(-) diff --git a/plugins/web-search/README.md b/plugins/web-search/README.md index 0bf9f26ad..6e4b4d7b8 100644 --- a/plugins/web-search/README.md +++ b/plugins/web-search/README.md @@ -12,8 +12,8 @@ plugins=( ... web-search) You can use the `web-search` plugin in these two forms: -* `web_search [more terms if you want]` -* ` [more terms if you want]` +- `web_search [more terms if you want]` +- ` [more terms if you want]` For example, these two are equivalent: @@ -24,43 +24,42 @@ $ google oh-my-zsh Available search contexts are: -| Context | URL | -| --------------------- | ---------------------------------------- | -| `bing` | `https://www.bing.com/search?q=` | -| `google` | `https://www.google.com/search?q=` | -| `brs` or `brave` | `https://search.brave.com/search?q=` | -| `yahoo` | `https://search.yahoo.com/search?p=` | -| `ddg` or `duckduckgo` | `https://www.duckduckgo.com/?q=` | -| `sp` or `startpage` | `https://www.startpage.com/do/search?q=` | -| `yandex` | `https://yandex.ru/yandsearch?text=` | -| `github` | `https://github.com/search?q=` | -| `baidu` | `https://www.baidu.com/s?wd=` | -| `ecosia` | `https://www.ecosia.org/search?q=` | -| `goodreads` | `https://www.goodreads.com/search?q=` | -| `qwant` | `https://www.qwant.com/?q=` | -| `givero` | `https://www.givero.com/search?q=` | -| `stackoverflow` | `https://stackoverflow.com/search?q=` | -| `wolframalpha` | `https://wolframalpha.com/input?i=` | -| `archive` | `https://web.archive.org/web/*/` | -| `scholar` | `https://scholar.google.com/scholar?q=` | -| `ask` | `https://www.ask.com/web?q=` | +| Context | URL | +| --------------------- | ----------------------------------------------- | +| `bing` | `https://www.bing.com/search?q=` | +| `google` | `https://www.google.com/search?q=` | +| `brs` or `brave` | `https://search.brave.com/search?q=` | +| `yahoo` | `https://search.yahoo.com/search?p=` | +| `ddg` or `duckduckgo` | `https://www.duckduckgo.com/?q=` | +| `sp` or `startpage` | `https://www.startpage.com/do/search?q=` | +| `yandex` | `https://yandex.ru/yandsearch?text=` | +| `github` | `https://github.com/search?q=` | +| `baidu` | `https://www.baidu.com/s?wd=` | +| `ecosia` | `https://www.ecosia.org/search?q=` | +| `goodreads` | `https://www.goodreads.com/search?q=` | +| `qwant` | `https://www.qwant.com/?q=` | +| `givero` | `https://www.givero.com/search?q=` | +| `stackoverflow` | `https://stackoverflow.com/search?q=` | +| `wolframalpha` | `https://wolframalpha.com/input?i=` | +| `archive` | `https://web.archive.org/web/*/` | +| `scholar` | `https://scholar.google.com/scholar?q=` | +| `ask` | `https://www.ask.com/web?q=` | +| `youtube` | `https://www.youtube.com/results?search_query=` | Also there are aliases for bang-searching DuckDuckGo: | Context | Bang | -|-----------|-------| +| --------- | ----- | | `wiki` | `!w` | | `news` | `!n` | -| `youtube` | `!yt` | | `map` | `!m` | | `image` | `!i` | | `ducky` | `!` | ### Custom search engines -If you want to add other search contexts to the plugin, you can use the -`$ZSH_WEB_SEARCH_ENGINES` variable. Set it before Oh My Zsh is sourced, -with the following format: +If you want to add other search contexts to the plugin, you can use the `$ZSH_WEB_SEARCH_ENGINES` variable. +Set it before Oh My Zsh is sourced, with the following format: ```zsh ZSH_WEB_SEARCH_ENGINES=( @@ -69,13 +68,12 @@ ZSH_WEB_SEARCH_ENGINES=( ) ``` -where `` is the name of the search context, and `` a URL of -the same type as the search contexts above. For example, to add `reddit`, -you'd do: +where `` is the name of the search context, and `` a URL of the same type as the search contexts +above. For example, to add `reddit`, you'd do: ```zsh ZSH_WEB_SEARCH_ENGINES=(reddit "https://www.reddit.com/search/?q=") ``` -These custom search engines will also be turned to aliases, so you can -both do `web_search reddit ` or `reddit `. +These custom search engines will also be turned to aliases, so you can both do `web_search reddit ` or +`reddit `. diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index fc87a3495..a8848fd95 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -72,7 +72,6 @@ alias youtube='web_search youtube' #add your own !bang searches here alias wiki='web_search duckduckgo \!w' alias news='web_search duckduckgo \!n' -#alias youtube='web_search duckduckgo \!yt' alias map='web_search duckduckgo \!m' alias image='web_search duckduckgo \!i' alias ducky='web_search duckduckgo \!' From a17789eedea4f6b9b5a9c970174d6d5dc0ef64ee Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Mon, 25 Sep 2023 09:49:22 +0100 Subject: [PATCH 342/441] docs(git): improve tables and language (#11895) --- plugins/git/README.md | 463 +++++++++++++++++++++--------------------- 1 file changed, 231 insertions(+), 232 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 6eb63ea40..9621a312e 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -10,204 +10,204 @@ plugins=(... git) ## Aliases -| Alias | Command | -| :------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| grt | cd "$(git rev-parse --show-toplevel || echo .)" | -| ggpnp | ggl && ggp | -| ggpur | ggu | -| g | git | -| ga | git add | -| gaa | git add --all | -| gapa | git add --patch | -| gau | git add --update | -| gav | git add --verbose | -| gwip | git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]" | -| gam | git am | -| gama | git am --abort | -| gamc | git am --continue | -| gamscp | git am --show-current-patch | -| gams | git am --skip | -| gap | git apply | -| gapt | git apply --3way | -| gbs | git bisect | -| gbsb | git bisect bad | -| gbsg | git bisect good | -| gbsn | git bisect new | -| gbso | git bisect old | -| gbsr | git bisect reset | -| gbss | git bisect start | -| gbl | git blame -w | -| gb | git branch | -| gba | git branch --all | -| gbd | git branch --delete | -| gbD | git branch --delete --force | -| gbda | git branch --no-color --merged | grep -vE "^([+]|\s($(git_main_branch)|$(git_develop_branch))\s\*$)" | xargs git branch --delete 2>/dev/null | -| gbgd | LANG=C git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -d | -| gbgD | LANG=C git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -D | -| gbnm | git branch --no-merged | -| gbr | git branch --remote | -| ggsup | git branch --set-upstream-to=origin/$(git_current_branch) | -| gbg | LANG=C git branch -vv | grep ": gone\]" | -| gco | git checkout | -| gcor | git checkout --recurse-submodules | -| gcb | git checkout -b | -| gcd | git checkout $(git_develop_branch) | -| gcm | git checkout $(git_main_branch) | -| gcp | git cherry-pick | -| gcpa | git cherry-pick --abort | -| gcpc | git cherry-pick --continue | -| gclean | git clean --interactive -d | -| gcl | git clone --recurse-submodules | -| gccd | git clone --recurse-submodules "$@" && cd "$(basename $\_ .git)" | -| gcam | git commit --all --message | -| gcas | git commit --all --signoff | -| gcasm | git commit --all --signoff --message | -| gcmsg | git commit --message | -| gcsm | git commit --signoff --message | -| gc | git commit --verbose | -| gca | git commit --verbose --all | -| gca! | git commit --verbose --all --amend | -| gcan! | git commit --verbose --all --no-edit --amend | -| gcans! | git commit --verbose --all --signoff --no-edit --amend | -| gc! | git commit --verbose --amend | -| gcn! | git commit --verbose --no-edit --amend | -| gcs | git commit -S | -| gcss | git commit -S -s | -| gcssm | git commit -S -s -m | -| gcf | git config --list | -| gdct | git describe --tags $(git rev-list --tags --max-count=1) | -| gd | git diff | -| gdca | git diff --cached | -| gdcw | git diff --cached --word-diff | -| gds | git diff --staged | -| gdw | git diff --word-diff | -| gdv | git diff -w $@ | view - | -| gdup | git diff @{upstream} | -| gdnolock | git diff $@ ":(exclude)package-lock.json" ":(exclude)\*.lock" | -| gdt | git diff-tree --no-commit-id --name-only -r | -| gf | git fetch | -| gfa | git fetch --all --prune | -| gfo | git fetch origin | -| gg | git gui citool | -| gga | git gui citool --amend | -| ghh | git help | -| glgg | git log --graph | -| glgga | git log --graph --decorate --all | -| glgm | git log --graph --max-count=10 | -| glod | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' | -| glods | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short | -| glol | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' | -| glola | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all | -| glols | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat | -| glo | git log --oneline --decorate | -| glog | git log --oneline --decorate --graph | -| gloga | git log --oneline --decorate --graph --all | -| glp | git log --pretty=\ | -| glg | git log --stat | -| glgp | git log --stat --patch | -| gignored | git ls-files -v | grep "^[[:lower:]]" | -| gfg | git ls-files | grep | -| gm | git merge | -| gma | git merge --abort | -| gms | git merge --squash | -| gmom | git merge origin/$(git_main_branch) | -| gmum | git merge upstream/$(git_main_branch) | -| gmtl | git mergetool --no-prompt | -| gmtlvim | git mergetool --no-prompt --tool=vimdiff | -| gl | git pull | -| gpr | git pull --rebase | -| gup | git pull --rebase | -| gupa | git pull --rebase --autostash | -| gupav | git pull --rebase --autostash --verbose | -| gupv | git pull --rebase --verbose | -| ggu | git pull --rebase origin $(current_branch) | -| gupom | git pull --rebase origin $(git_main_branch) | -| gupomi | git pull --rebase=interactive origin $(git_main_branch) | -| ggpull | git pull origin "$(git_current_branch)" | -| ggl | git pull origin $(current_branch) | -| gluc | git pull upstream $(git_current_branch) | -| glum | git pull upstream $(git_main_branch) | -| gp | git push | -| gpd | git push --dry-run | -| gpf! | git push --force | -| ggf | git push --force origin $(current_branch) | -| gpf | git push --force-with-lease --force-if-includes (git version >= 2.30) | -| gpf | git push --force-with-lease (git version < 2.30) | -| ggfl | git push --force-with-lease origin $(current_branch) | -| gpsup | git push --set-upstream origin $(git_current_branch) | -| gpsupf | git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes (git version >= 2.30) | -| gpsupf | git push --set-upstream origin $(git_current_branch) --force-with-lease (git version < 2.30) | -| gpv | git push --verbose | -| gpoat | git push origin --all && git push origin --tags | -| gpod | git push origin --delete | -| ggpush | git push origin "$(git_current_branch)" | -| ggp | git push origin $(current_branch) | -| gpu | git push upstream | -| grb | git rebase | -| grba | git rebase --abort | -| grbc | git rebase --continue | -| grbi | git rebase --interactive | -| grbo | git rebase --onto | -| grbs | git rebase --skip | -| grbd | git rebase $(git_develop_branch) | -| grbm | git rebase $(git_main_branch) | -| grbom | git rebase origin/$(git_main_branch) | -| gr | git remote | -| grv | git remote --verbose | -| gra | git remote add | -| grrm | git remote remove | -| grmv | git remote rename | -| grset | git remote set-url | -| grup | git remote update | -| grh | git reset | -| gru | git reset -- | -| grhh | git reset --hard | -| gpristine | git reset --hard && git clean -dffx | -| groh | git reset origin/$(git_current_branch) --hard | -| grs | git restore | -| grss | git restore --source | -| grst | git restore --staged | -| gunwip | git rev-list --max-count=1 --format="%s" HEAD | grep -q "--wip--" && git reset HEAD~1 | -| grev | git revert | -| grm | git rm | -| grmc | git rm --cached | -| gcount | git shortlog --summary -n | -| gsh | git show | -| gsps | git show --pretty=short --show-signature | -| gstall | git stash --all | -| gstu | git stash --include-untracked | -| gstaa | git stash apply | -| gstc | git stash clear | -| gstd | git stash drop | -| gstl | git stash list | -| gstp | git stash pop | -| gsta | git stash push (git version >= 2.13) | -| gsta | git stash save (git version < 2.13) | -| gsts | git stash show --text | -| gst | git status | -| gss | git status --short | -| gsb | git status --short -b | -| gsi | git submodule init | -| gsu | git submodule update | -| gsd | git svn dcommit | -| git-svn-dcommit-push | git svn dcommit && git push github $(git_main_branch):svntrunk | -| gsr | git svn rebase | -| gsw | git switch | -| gswc | git switch -c | -| gswd | git switch $(git_develop_branch) | -| gswm | git switch $(git_main_branch) | -| gts | git tag -s | -| gtv | git tag | sort -V | -| gignore | git update-index --assume-unchanged | -| gunignore | git update-index --no-assume-unchanged | -| gwch | git whatchanged -p --abbrev-commit --pretty=medium | -| gwt | git worktree | -| gwtls | git worktree list | -| gwtmv | git worktree move | -| gwtrm | git worktree remove | -| gk | gitk --all --branches &! | -| gke | gitk --all $(git log --walk-reflogs --pretty=%h) &! | -| gtl | gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl | +| Alias | Command | +| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `grt` | `cd "$(git rev-parse --show-toplevel \|\| echo .)"` | +| `ggpnp` | `ggl && ggp` | +| `ggpur` | `ggu` | +| `g` | `git` | +| `ga` | `git add` | +| `gaa` | `git add --all` | +| `gapa` | `git add --patch` | +| `gau` | `git add --update` | +| `gav` | `git add --verbose` | +| `gwip` | `git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"` | +| `gam` | `git am` | +| `gama` | `git am --abort` | +| `gamc` | `git am --continue` | +| `gamscp` | `git am --show-current-patch` | +| `gams` | `git am --skip` | +| `gap` | `git apply` | +| `gapt` | `git apply --3way` | +| `gbs` | `git bisect` | +| `gbsb` | `git bisect bad` | +| `gbsg` | `git bisect good` | +| `gbsn` | `git bisect new` | +| `gbso` | `git bisect old` | +| `gbsr` | `git bisect reset` | +| `gbss` | `git bisect start` | +| `gbl` | `git blame -w` | +| `gb` | `git branch` | +| `gba` | `git branch --all` | +| `gbd` | `git branch --delete` | +| `gbD` | `git branch --delete --force` | +| `gbda` | `git branch --no-color --merged \| command grep -vE "^([+*]\|\s*($(git_main_branch)\|$(git_develop_branch))\s*$)" \| command xargs git branch --delete 2>/dev/null` | +| `gbgd` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -d` | +| `gbgD` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -D` | +| `gbnm` | `git branch --no-merged` | +| `gbr` | `git branch --remote` | +| `ggsup` | `git branch --set-upstream-to=origin/$(git_current_branch)` | +| `gbg` | `LANG=C git branch -vv \| grep ": gone\]"` | +| `gco` | `git checkout` | +| `gcor` | `git checkout --recurse-submodules` | +| `gcb` | `git checkout -b` | +| `gcd` | `git checkout $(git_develop_branch)` | +| `gcm` | `git checkout $(git_main_branch)` | +| `gcp` | `git cherry-pick` | +| `gcpa` | `git cherry-pick --abort` | +| `gcpc` | `git cherry-pick --continue` | +| `gclean` | `git clean --interactive -d` | +| `gcl` | `git clone --recurse-submodules` | +| `gccd` | `git clone --recurse-submodules "$@" && cd "$(basename $\_ .git)"` | +| `gcam` | `git commit --all --message` | +| `gcas` | `git commit --all --signoff` | +| `gcasm` | `git commit --all --signoff --message` | +| `gcmsg` | `git commit --message` | +| `gcsm` | `git commit --signoff --message` | +| `gc` | `git commit --verbose` | +| `gca` | `git commit --verbose --all` | +| `gca!` | `git commit --verbose --all --amend` | +| `gcan!` | `git commit --verbose --all --no-edit --amend` | +| `gcans!` | `git commit --verbose --all --signoff --no-edit --amend` | +| `gc!` | `git commit --verbose --amend` | +| `gcn!` | `git commit --verbose --no-edit --amend` | +| `gcs` | `git commit -S` | +| `gcss` | `git commit -S -s` | +| `gcssm` | `git commit -S -s -m` | +| `gcf` | `git config --list` | +| `gdct` | `git describe --tags $(git rev-list --tags --max-count=1)` | +| `gd` | `git diff` | +| `gdca` | `git diff --cached` | +| `gdcw` | `git diff --cached --word-diff` | +| `gds` | `git diff --staged` | +| `gdw` | `git diff --word-diff` | +| `gdv` | `git diff -w "$@" \| view -` | +| `gdup` | `git diff @{upstream}` | +| `gdnolock` | `git diff $@ ":(exclude)package-lock.json" ":(exclude)\*.lock"` | +| `gdt` | `git diff-tree --no-commit-id --name-only -r` | +| `gf` | `git fetch` | +| `gfa` | `git fetch --all --prune` | +| `gfo` | `git fetch origin` | +| `gg` | `git gui citool` | +| `gga` | `git gui citool --amend` | +| `ghh` | `git help` | +| `glgg` | `git log --graph` | +| `glgga` | `git log --graph --decorate --all` | +| `glgm` | `git log --graph --max-count=10` | +| `glod` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'` | +| `glods` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short` | +| `glol` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'` | +| `glola` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all` | +| `glols` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat` | +| `glo` | `git log --oneline --decorate` | +| `glog` | `git log --oneline --decorate --graph` | +| `gloga` | `git log --oneline --decorate --graph --all` | +| `glp` | `git log --pretty=` | +| `glg` | `git log --stat` | +| `glgp` | `git log --stat --patch` | +| `gignored` | `git ls-files -v \| grep "^[[:lower:]]"` | +| `gfg` | `git ls-files \| grep` | +| `gm` | `git merge` | +| `gma` | `git merge --abort` | +| `gms` | `git merge --squash` | +| `gmom` | `git merge origin/$(git_main_branch)` | +| `gmum` | `git merge upstream/$(git_main_branch)` | +| `gmtl` | `git mergetool --no-prompt` | +| `gmtlvim` | `git mergetool --no-prompt --tool=vimdiff` | +| `gl` | `git pull` | +| `gpr` | `git pull --rebase` | +| `gup` | `git pull --rebase` | +| `gupa` | `git pull --rebase --autostash` | +| `gupav` | `git pull --rebase --autostash --verbose` | +| `gupv` | `git pull --rebase --verbose` | +| `ggu` | `git pull --rebase origin $(current_branch)` | +| `gupom` | `git pull --rebase origin $(git_main_branch)` | +| `gupomi` | `git pull --rebase=interactive origin $(git_main_branch)` | +| `ggpull` | `git pull origin "$(git_current_branch)"` | +| `ggl` | `git pull origin $(current_branch)` | +| `gluc` | `git pull upstream $(git_current_branch)` | +| `glum` | `git pull upstream $(git_main_branch)` | +| `gp` | `git push` | +| `gpd` | `git push --dry-run` | +| `gpf!` | `git push --force` | +| `ggf` | `git push --force origin $(current_branch)` | +| `gpf` | On Git >= 2.30: `git push --force-with-lease --force-if-includes` | +| `gpf` | On Git < 2.30: `git push --force-with-lease` | +| `ggfl` | `git push --force-with-lease origin $(current_branch)` | +| `gpsup` | `git push --set-upstream origin $(git_current_branch)` | +| `gpsupf` | On Git >= 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes` | +| `gpsupf` | On Git < 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease` | +| `gpv` | `git push --verbose` | +| `gpoat` | `git push origin --all && git push origin --tags` | +| `gpod` | `git push origin --delete` | +| `ggpush` | `git push origin "$(git_current_branch)"` | +| `ggp` | `git push origin $(current_branch)` | +| `gpu` | `git push upstream` | +| `grb` | `git rebase` | +| `grba` | `git rebase --abort` | +| `grbc` | `git rebase --continue` | +| `grbi` | `git rebase --interactive` | +| `grbo` | `git rebase --onto` | +| `grbs` | `git rebase --skip` | +| `grbd` | `git rebase $(git_develop_branch)` | +| `grbm` | `git rebase $(git_main_branch)` | +| `grbom` | `git rebase origin/$(git_main_branch)` | +| `gr` | `git remote` | +| `grv` | `git remote --verbose` | +| `gra` | `git remote add` | +| `grrm` | `git remote remove` | +| `grmv` | `git remote rename` | +| `grset` | `git remote set-url` | +| `grup` | `git remote update` | +| `grh` | `git reset` | +| `gru` | `git reset --` | +| `grhh` | `git reset --hard` | +| `gpristine` | `git reset --hard && git clean -dffx` | +| `groh` | `git reset origin/$(git_current_branch) --hard` | +| `grs` | `git restore` | +| `grss` | `git restore --source` | +| `grst` | `git restore --staged` | +| `gunwip` | `git rev-list --max-count=1 --format="%s" HEAD \| grep -q "--wip--" && git reset HEAD~1` | +| `grev` | `git revert` | +| `grm` | `git rm` | +| `grmc` | `git rm --cached` | +| `gcount` | `git shortlog --summary -n` | +| `gsh` | `git show` | +| `gsps` | `git show --pretty=short --show-signature` | +| `gstall` | `git stash --all` | +| `gstu` | `git stash --include-untracked` | +| `gstaa` | `git stash apply` | +| `gstc` | `git stash clear` | +| `gstd` | `git stash drop` | +| `gstl` | `git stash list` | +| `gstp` | `git stash pop` | +| `gsta` | On Git >= 2.13: `git stash push` | +| `gsta` | On Git < 2.13: `git stash save` | +| `gsts` | `git stash show --text` | +| `gst` | `git status` | +| `gss` | `git status --short` | +| `gsb` | `git status --short -b` | +| `gsi` | `git submodule init` | +| `gsu` | `git submodule update` | +| `gsd` | `git svn dcommit` | +| `git-svn-dcommit-push` | `git svn dcommit && git push github $(git_main_branch):svntrunk` | +| `gsr` | `git svn rebase` | +| `gsw` | `git switch` | +| `gswc` | `git switch -c` | +| `gswd` | `git switch $(git_develop_branch)` | +| `gswm` | `git switch $(git_main_branch)` | +| `gts` | `git tag -s` | +| `gtv` | `git tag \| sort -V` | +| `gignore` | `git update-index --assume-unchanged` | +| `gunignore` | `git update-index --no-assume-unchanged` | +| `gwch` | `git whatchanged -p --abbrev-commit --pretty=medium` | +| `gwt` | `git worktree` | +| `gwtls` | `git worktree list` | +| `gwtmv` | `git worktree move` | +| `gwtrm` | `git worktree remove` | +| `gk` | `gitk --all --branches &!` | +| `gke` | `gitk --all $(git log --walk-reflogs --pretty=%h) &!` | +| `gtl` | `gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl` | ### Main branch preference @@ -221,50 +221,49 @@ branch exists. We do this via the function `git_main_branch`. These are aliases that have been removed, renamed, or otherwise modified in a way that may, or may not, receive further support. -| Alias | Command | Modification | -| :----- | :----------------------------------------------------- | :----------------------------------------------------- | -| gap | `git add --patch` | new alias `gapa` | -| gcl | `git config --list` | new alias `gcf` | -| gdc | `git diff --cached` | new alias `gdca` | -| gdt | `git difftool` | no replacement | -| ggpull | `git pull origin $(current_branch)` | new alias `ggl` (`ggpull` still exists for now though) | -| ggpur | `git pull --rebase origin $(current_branch)` | new alias `ggu` (`ggpur` still exists for now though) | -| ggpush | `git push origin $(current_branch)` | new alias `ggp` (`ggpush` still exists for now though) | -| gk | `gitk --all --branches` | now aliased to `gitk --all --branches` | -| glg | `git log --stat --max-count = 10` | now aliased to `git log --stat --color` | -| glgg | `git log --graph --max-count = 10` | now aliased to `git log --graph --color` | -| gwc | `git whatchanged -p --abbrev-commit --pretty = medium` | new alias `gwch` | +| Alias | Command | Modification | +| :------- | :----------------------------------------------------- | :-------------------------------------------------------- | +| `gap` | `git add --patch` | New alias: `gapa`. | +| `gcl` | `git config --list` | New alias: `gcf`. | +| `gdc` | `git diff --cached` | New alias: `gdca`. | +| `gdt` | `git difftool` | No replacement. | +| `ggpull` | `git pull origin $(current_branch)` | New alias: `ggl`. (`ggpull` still exists for now though.) | +| `ggpur` | `git pull --rebase origin $(current_branch)` | New alias: `ggu`. (`ggpur` still exists for now though.) | +| `ggpush` | `git push origin $(current_branch)` | New alias: `ggp`. (`ggpush` still exists for now though.) | +| `gk` | `gitk --all --branches` | Now aliased to `gitk --all --branches`. | +| `glg` | `git log --stat --max-count=10` | Now aliased to `git log --stat --color`. | +| `glgg` | `git log --graph --max-count=10` | Now aliased to `git log --graph --color`. | +| `gwc` | `git whatchanged -p --abbrev-commit --pretty = medium` | New alias: `gwch`. | ## Functions ### Current -| Command | Description | -| :--------------------- | :------------------------------------------------------------------------------------------------------- | -| current_branch | Return the name of the current branch | -| git_current_user_email | Returns the `user.email` config value (lives in lib/git.zsh) | -| git_current_user_name | Returns the `user.name` config value (lives in lib/git.zsh) | -| git_develop_branch | Returns the name of the develop branch: `dev`, `devel`, `development` if they exist, `develop` otherwise | -| git_main_branch | Returns the name of the main branch: `main` if it exists, `master` otherwise | -| grename \ \ | Rename `old` branch to `new`, including in origin remote | +| Command | Description | +| :----------------------- | :-------------------------------------------------------------------------------------------------------------- | +| `current_branch` | Returns the name of the current branch. | +| `git_current_user_email` | Returns the `user.email` config value. (Lives in `lib/git.zsh`.) | +| `git_current_user_name` | Returns the `user.name` config value. (Lives in `lib/git.zsh`.) | +| `git_develop_branch` | Returns the name of the “development” branch: `dev`, `devel`, `development` if they exist, `develop` otherwise. | +| `git_main_branch` | Returns the name of the main branch: `main` if it exists, `master` otherwise. | +| `grename ` | Renames branch `` to ``, including on the origin remote. | ### Work in Progress (WIP) -These features allow to pause a branch development and switch to another one (_"Work in Progress"_, or wip). -When you want to go back to work, just unwip it. +These features allow you to pause developing one branch and switch to another one (_"Work in Progress"_, or +“wip”). When you want to go back to work, just “unwip” it. -| Command | Description | -| :--------------- | :---------------------------------------------- | -| gwip | Commit wip branch | -| gunwip | Uncommit wip branch | -| gunwipall | Uncommit all recent `--wip--` commits | -| work_in_progress | Echoes a warning if the current branch is a wip | +| Command | Description | +| :----------------- | :---------------------------------------------- | +| `gwip` | Commit wip branch | +| `gunwip` | Uncommit wip branch | +| `gunwipall` | Uncommit all recent `--wip--` commits | +| `work_in_progress` | Echoes a warning if the current branch is a wip | -Note that `gwip` and `gunwip` are effectivly alias, but are also documented here to group all related WIP -features. +Note that `gwip` and `gunwip` are aliases, but are also documented here to group all related WIP features. ### Deprecated functions -| Command | Description | Reason | -| :----------------- | :-------------------------------------- | :-------------------------------------------------------------- | -| current_repository | Return the names of the current remotes | Didn't work properly. Use `git remote -v` instead (`grv` alias) | +| Command | Description | Reason | +| :------------------- | :-------------------------------------- | :--------------------------------------------------------------- | +| `current_repository` | Return the names of the current remotes | Didn't work properly. Use `git remote -v` instead (`grv` alias). | From aaa74964a8f5908716f5bc8658116db096467702 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 26 Sep 2023 08:18:54 +0100 Subject: [PATCH 343/441] fix(git): remove `--text` from `gsts` (#11897) --- plugins/git/README.md | 2 +- plugins/git/git.plugin.zsh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 9621a312e..390f52001 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -183,7 +183,7 @@ plugins=(... git) | `gstp` | `git stash pop` | | `gsta` | On Git >= 2.13: `git stash push` | | `gsta` | On Git < 2.13: `git stash save` | -| `gsts` | `git stash show --text` | +| `gsts` | `git stash show` | | `gst` | `git status` | | `gss` | `git status --short` | | `gsb` | `git status --short -b` | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 4afe34e99..426f51979 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -331,7 +331,7 @@ alias gstp='git stash pop' is-at-least 2.13 "$git_version" \ && alias gsta='git stash push' \ || alias gsta='git stash save' -alias gsts='git stash show --text' +alias gsts='git stash show' alias gst='git status' alias gss='git status --short' alias gsb='git status --short --branch' From bca62f78e23247afdc44882111a27a7333e5acb0 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 26 Sep 2023 08:22:32 +0100 Subject: [PATCH 344/441] feat(git): add branch rename alias `gbm` (#11909) Co-authored-by: Gabriel Akinyosoye --- 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 390f52001..e7c32e97f 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -44,6 +44,7 @@ plugins=(... git) | `gbda` | `git branch --no-color --merged \| command grep -vE "^([+*]\|\s*($(git_main_branch)\|$(git_develop_branch))\s*$)" \| command xargs git branch --delete 2>/dev/null` | | `gbgd` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -d` | | `gbgD` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -D` | +| `gbm` | `git branch --move` | | `gbnm` | `git branch --no-merged` | | `gbr` | `git branch --remote` | | `ggsup` | `git branch --set-upstream-to=origin/$(git_current_branch)` | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 426f51979..01eab682e 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -125,6 +125,7 @@ alias gbD='git branch --delete --force' alias gbda='git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null' alias gbgd='LANG=C git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -d' alias gbgD='LANG=C git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -D' +alias gbm='git branch --move' alias gbnm='git branch --no-merged' alias gbr='git branch --remote' alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)' From e2b855341bfd587590734da860d75ead7788810f Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 26 Sep 2023 08:27:48 +0100 Subject: [PATCH 345/441] feat(git): add tag aliases `gt` and `gta` (#11910) Co-authored-by: hasecilu Co-authored-by: Rik Co-authored-by: Carlo Sala --- plugins/git/README.md | 2 ++ plugins/git/git.plugin.zsh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/plugins/git/README.md b/plugins/git/README.md index e7c32e97f..5a732ed63 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -197,6 +197,8 @@ plugins=(... git) | `gswc` | `git switch -c` | | `gswd` | `git switch $(git_develop_branch)` | | `gswm` | `git switch $(git_main_branch)` | +| `gt` | `git tag` | +| `gta` | `git tag --annotate` | | `gts` | `git tag -s` | | `gtv` | `git tag \| sort -V` | | `gignore` | `git update-index --assume-unchanged` | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 01eab682e..527093c28 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -345,6 +345,8 @@ alias gsw='git switch' alias gswc='git switch --create' alias gswd='git switch $(git_develop_branch)' alias gswm='git switch $(git_main_branch)' +alias gt='git tag' +alias gta='git tag --annotate' alias gts='git tag --sign' alias gtv='git tag | sort -V' alias gignore='git update-index --assume-unchanged' From 4fb5d02db94fa87d22afea9825bd5f866e0cd1ac Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 26 Sep 2023 08:31:32 +0100 Subject: [PATCH 346/441] feat(git): add reset aliases `grhk` and `grhs` (#11896) --- plugins/git/README.md | 2 ++ plugins/git/git.plugin.zsh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/plugins/git/README.md b/plugins/git/README.md index 5a732ed63..5b2db55fa 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -163,6 +163,8 @@ plugins=(... git) | `grh` | `git reset` | | `gru` | `git reset --` | | `grhh` | `git reset --hard` | +| `grhk` | `git reset --keep` | +| `grhs` | `git reset --soft` | | `gpristine` | `git reset --hard && git clean -dffx` | | `groh` | `git reset origin/$(git_current_branch) --hard` | | `grs` | `git restore` | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 527093c28..ba90c936e 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -310,6 +310,8 @@ alias grup='git remote update' alias grh='git reset' alias gru='git reset --' alias grhh='git reset --hard' +alias grhk='git reset --keep' +alias grhs='git reset --soft' alias gpristine='git reset --hard && git clean --force -dfx' alias groh='git reset origin/$(git_current_branch) --hard' alias grs='git restore' From 0e1e877ea9182f87b3ab34cbc2ea944b34f5345e Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 27 Sep 2023 08:19:57 +0200 Subject: [PATCH 347/441] fix(git)!: remove `gt` alias BREAKING CHANGE: `gt` alias clashes with Graphite CLI (https://graphite.dev). See https://github.com/ohmyzsh/ohmyzsh/pull/11910#issuecomment-1736340910 --- plugins/git/README.md | 1 - plugins/git/git.plugin.zsh | 1 - 2 files changed, 2 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 5b2db55fa..9c16cb6e7 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -199,7 +199,6 @@ plugins=(... git) | `gswc` | `git switch -c` | | `gswd` | `git switch $(git_develop_branch)` | | `gswm` | `git switch $(git_main_branch)` | -| `gt` | `git tag` | | `gta` | `git tag --annotate` | | `gts` | `git tag -s` | | `gtv` | `git tag \| sort -V` | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index ba90c936e..cb848b407 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -347,7 +347,6 @@ alias gsw='git switch' alias gswc='git switch --create' alias gswd='git switch $(git_develop_branch)' alias gswm='git switch $(git_main_branch)' -alias gt='git tag' alias gta='git tag --annotate' alias gts='git tag --sign' alias gtv='git tag | sort -V' From d3b6f1fd5e42deafb3a6458213762a492e484073 Mon Sep 17 00:00:00 2001 From: Piotr Minkina Date: Thu, 28 Sep 2023 23:43:06 +0200 Subject: [PATCH 348/441] fix(gradle): remove look for settings.gradle files (#11917) --- plugins/gradle/gradle.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/gradle/gradle.plugin.zsh b/plugins/gradle/gradle.plugin.zsh index 5bca364d1..dacc46478 100644 --- a/plugins/gradle/gradle.plugin.zsh +++ b/plugins/gradle/gradle.plugin.zsh @@ -6,7 +6,7 @@ function gradle-or-gradlew() { # taken from https://github.com/gradle/gradle-completion local dir="$PWD" project_root="$PWD" while [[ "$dir" != / ]]; do - if [[ -f "$dir/settings.gradle" || -f "$dir/settings.gradle.kts" || -f "$dir/gradlew" ]]; then + if [[ -x "$dir/gradlew" ]]; then project_root="$dir" break fi From 27402e2603b9354f419af3695bad8ff17ed33bac Mon Sep 17 00:00:00 2001 From: Jake Conway Date: Fri, 29 Sep 2023 05:24:40 -0500 Subject: [PATCH 349/441] docs(gas): update plugin url (#11918) --- plugins/gas/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/gas/README.md b/plugins/gas/README.md index 47b3fb9df..a0a7a568f 100644 --- a/plugins/gas/README.md +++ b/plugins/gas/README.md @@ -1,6 +1,6 @@ # Gas plugin -This plugin adds autocompletion for the [gas](http://walle.github.com/gas) command, +This plugin adds autocompletion for the [gas](http://ramblingsby.me/gas/) command, a utility to manage Git authors. To use it, add `gas` to the plugins array of your zshrc file: From 278bcfc93bed91d1095a9ea7981c4a1109da7abd Mon Sep 17 00:00:00 2001 From: Thomas Faugier Date: Mon, 2 Oct 2023 20:25:17 +0200 Subject: [PATCH 350/441] feat(asdf): load zsh completions instead of bash ones Closes #11143 Closes #8779 Co-authored-by: Carlo Sala --- plugins/asdf/asdf.plugin.zsh | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/plugins/asdf/asdf.plugin.zsh b/plugins/asdf/asdf.plugin.zsh index 3016282c6..7635d20c3 100644 --- a/plugins/asdf/asdf.plugin.zsh +++ b/plugins/asdf/asdf.plugin.zsh @@ -2,26 +2,29 @@ ASDF_DIR="${ASDF_DIR:-$HOME/.asdf}" ASDF_COMPLETIONS="$ASDF_DIR/completions" -# If not found, check for archlinux/AUR package (/opt/asdf-vm/) -if [[ ! -f "$ASDF_DIR/asdf.sh" || ! -f "$ASDF_COMPLETIONS/asdf.bash" ]] && [[ -f "/opt/asdf-vm/asdf.sh" ]]; then - ASDF_DIR="/opt/asdf-vm" - ASDF_COMPLETIONS="$ASDF_DIR" -fi - -# If not found, check for Homebrew package -if [[ ! -f "$ASDF_DIR/asdf.sh" || ! -f "$ASDF_COMPLETIONS/asdf.bash" ]] && (( $+commands[brew] )); then - brew_prefix="$(brew --prefix asdf)" - ASDF_DIR="${brew_prefix}/libexec" - ASDF_COMPLETIONS="${brew_prefix}/etc/bash_completion.d" - unset brew_prefix +if [[ ! -f "$ASDF_DIR/asdf.sh" || ! -f "$ASDF_COMPLETIONS/_asdf" ]]; then + # If not found, check for archlinux/AUR package (/opt/asdf-vm/) + if [[ -f "/opt/asdf-vm/asdf.sh" ]]; then + ASDF_DIR="/opt/asdf-vm" + ASDF_COMPLETIONS="$ASDF_DIR" + # If not found, check for Homebrew package + elif (( $+commands[brew] )); then + _ASDF_PREFIX="$(brew --prefix asdf)" + ASDF_DIR="${_ASDF_PREFIX}/libexec" + ASDF_COMPLETIONS="${_ASDF_PREFIX}/share/zsh/site-functions" + unset _ASDF_PREFIX + else + return + fi fi # Load command if [[ -f "$ASDF_DIR/asdf.sh" ]]; then - . "$ASDF_DIR/asdf.sh" - + source "$ASDF_DIR/asdf.sh" # Load completions - if [[ -f "$ASDF_COMPLETIONS/asdf.bash" ]]; then - . "$ASDF_COMPLETIONS/asdf.bash" + if [[ -f "$ASDF_COMPLETIONS/_asdf" ]]; then + fpath+=("$ASDF_COMPLETIONS") + autoload -Uz _asdf + compdef _asdf asdf # compdef is already loaded before loading plugins fi fi From fea4584cebf98fc58334b7cca841ab1ef224a35e Mon Sep 17 00:00:00 2001 From: HeroCC Date: Mon, 2 Oct 2023 14:34:57 -0400 Subject: [PATCH 351/441] fix(tmux): don't autostart inside background intelliJ (#11927) --- plugins/tmux/tmux.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 680f72598..6ed91c447 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -109,7 +109,7 @@ compdef _tmux _zsh_tmux_plugin_run alias tmux=_zsh_tmux_plugin_run # Autostart if not already in tmux and enabled. -if [[ -z "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" && -z "$INSIDE_EMACS" && -z "$EMACS" && -z "$VIM" ]]; then +if [[ -z "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" && -z "$INSIDE_EMACS" && -z "$EMACS" && -z "$VIM" && -z "$INTELLIJ_ENVIRONMENT_READER" ]]; then # Actually don't autostart if we already did and multiple autostarts are disabled. if [[ "$ZSH_TMUX_AUTOSTART_ONCE" == "false" || "$ZSH_TMUX_AUTOSTARTED" != "true" ]]; then export ZSH_TMUX_AUTOSTARTED=true From df80a2da5475fc3c068bc5f700fa176a47f7adbe Mon Sep 17 00:00:00 2001 From: bretello Date: Mon, 2 Oct 2023 20:41:01 +0200 Subject: [PATCH 352/441] feat(vi-mode): copy to clipboard when using `vi-change*` and `vi-yank*` widgets (#11861) --- plugins/vi-mode/README.md | 6 ++++++ plugins/vi-mode/vi-mode.plugin.zsh | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/plugins/vi-mode/README.md b/plugins/vi-mode/README.md index 0cb516751..821c12adb 100644 --- a/plugins/vi-mode/README.md +++ b/plugins/vi-mode/README.md @@ -144,11 +144,17 @@ NOTE: this used to be bound to `v`. That is now the default (`visual-mode`). - `c{motion}` : Delete {motion} text and start insert - `cc` : Delete line and start insert - `C` : Delete to the end of the line and start insert +- `P` : Insert the contents of the clipboard before the cursor +- `p` : Insert the contents of the clipboard after the cursor - `r{char}` : Replace the character under the cursor with {char} - `R` : Enter replace mode: Each character replaces existing one - `x` : Delete `count` characters under and after the cursor - `X` : Delete `count` characters before the cursor +NOTE: delete/kill commands (`dd`, `D`, `c{motion}`, `C`, `x`,`X`) and yank commands +(`y`, `Y`) will copy to the clipboard. Contents can then be put back using paste commands +(`P`, `p`). + ## Known issues ### Low `$KEYTIMEOUT` diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index cc9817a74..d1493e02f 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -147,8 +147,15 @@ function wrap_clipboard_widgets() { done } -wrap_clipboard_widgets copy vi-yank vi-yank-eol vi-backward-kill-word vi-change-whole-line vi-delete vi-delete-char -wrap_clipboard_widgets paste vi-put-{before,after} +wrap_clipboard_widgets copy \ + vi-yank vi-yank-eol vi-yank-whole-line \ + vi-change vi-change-eol vi-change-whole-line \ + vi-kill-line vi-kill-eol vi-backward-kill-word \ + vi-delete vi-delete-char vi-backward-delete-char + +wrap_clipboard_widgets paste \ + vi-put-{before,after} + unfunction wrap_clipboard_widgets # if mode indicator wasn't setup by theme, define default, we'll leave INSERT_MODE_INDICATOR empty by default From 7400d469b67e2e72a6405df39c5f28cba646e1a8 Mon Sep 17 00:00:00 2001 From: jack Date: Tue, 3 Oct 2023 02:41:18 +0800 Subject: [PATCH 353/441] fix(ruby): add missing `-run` in `rserver` alias (#11913) --- plugins/ruby/ruby.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ruby/ruby.plugin.zsh b/plugins/ruby/ruby.plugin.zsh index 408512110..e09b22c75 100644 --- a/plugins/ruby/ruby.plugin.zsh +++ b/plugins/ruby/ruby.plugin.zsh @@ -23,4 +23,4 @@ alias gel="gem lock" alias geo="gem open" alias geoe="gem open -e" alias rrun="ruby -e" -alias rserver="ruby -e httpd . -p 8080" # requires webrick +alias rserver="ruby -run -e httpd . -p 8080" # requires webrick From f36c6db0eac17b022eee87411e6996a5f5fc8457 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Tue, 3 Oct 2023 00:28:42 +0530 Subject: [PATCH 354/441] feat(shell-proxy): allow excluding endpoints with `NO_PROXY` (#11924) --- plugins/shell-proxy/README.md | 5 +++++ plugins/shell-proxy/proxy.py | 23 +++++++++++++++++----- plugins/shell-proxy/shell-proxy.plugin.zsh | 2 +- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/plugins/shell-proxy/README.md b/plugins/shell-proxy/README.md index b19888c56..102e46b6b 100644 --- a/plugins/shell-proxy/README.md +++ b/plugins/shell-proxy/README.md @@ -23,6 +23,7 @@ Set `SHELLPROXY_URL` environment variable to the URL of the proxy server: ```sh SHELLPROXY_URL="http://127.0.0.1:8123" +SHELLPROXY_NO_PROXY="localhost,127.0.0.1" proxy enable ``` @@ -36,11 +37,15 @@ Example: ```sh #!/bin/bash +# HTTP Proxy if [[ "$(uname)" = Darwin ]]; then echo "http://127.0.0.1:6152" # Surge Mac else echo "http://127.0.0.1:8123" # polipo fi + +# No Proxy +echo "localhost,127.0.0.1" ``` ### Method 3 diff --git a/plugins/shell-proxy/proxy.py b/plugins/shell-proxy/proxy.py index 14f2944cc..8c2aaf9f3 100755 --- a/plugins/shell-proxy/proxy.py +++ b/plugins/shell-proxy/proxy.py @@ -6,6 +6,7 @@ from subprocess import check_output, list2cmdline cwd = os.path.dirname(__file__) ssh_agent = os.path.join(cwd, "ssh-agent.py") proxy_env = "SHELLPROXY_URL" +no_proxy_env = "SHELLPROXY_NO_PROXY" proxy_config = os.environ.get("SHELLPROXY_CONFIG") or os.path.expandvars("$HOME/.config/proxy") usage="""shell-proxy: no proxy configuration found. @@ -15,18 +16,30 @@ See the plugin README for more information.""".format(env=proxy_env, config=prox def get_http_proxy(): default_proxy = os.environ.get(proxy_env) - if default_proxy: - return default_proxy + no_proxy = os.environ.get(no_proxy_env) + if default_proxy and no_proxy: + return default_proxy, no_proxy + if os.path.isfile(proxy_config): - return check_output(proxy_config).decode("utf-8").strip() + proxy_configdata = [line.strip() for line in check_output(proxy_config).decode("utf-8").splitlines()] + if len(proxy_configdata) >= 1: + if not default_proxy: + default_proxy = proxy_configdata[0] + if len(proxy_configdata) == 2 and not no_proxy: + no_proxy = proxy_configdata[1] + + if default_proxy: + return default_proxy, no_proxy print(usage, file=sys.stderr) sys.exit(1) -def make_proxies(url: str): +def make_proxies(url: str, no_proxy: str): proxies = {"%s_PROXY" % _: url for _ in ("HTTP", "HTTPS", "FTP", "RSYNC", "ALL")} proxies.update({name.lower(): value for (name, value) in proxies.items()}) proxies["GIT_SSH"] = ssh_agent + if no_proxy: + proxies.update({"NO_PROXY": no_proxy, "no_proxy": no_proxy}) return proxies @@ -35,7 +48,7 @@ def merge(mapping: dict): class CommandSet: - proxies = make_proxies(get_http_proxy()) + proxies = make_proxies(*get_http_proxy()) aliases = { _: "env __SSH_PROGRAM_NAME__=%s %s" % (_, ssh_agent) for _ in ("ssh", "sftp", "scp", "slogin", "ssh-copy-id") diff --git a/plugins/shell-proxy/shell-proxy.plugin.zsh b/plugins/shell-proxy/shell-proxy.plugin.zsh index 4fdbe9322..f6c31da45 100644 --- a/plugins/shell-proxy/shell-proxy.plugin.zsh +++ b/plugins/shell-proxy/shell-proxy.plugin.zsh @@ -27,7 +27,7 @@ eval ' # capture the output of the proxy script and bail out if it fails local output - output="$(SHELLPROXY_URL="$SHELLPROXY_URL" SHELLPROXY_CONFIG="$SHELLPROXY_CONFIG" "$proxy" "$1")" || + output="$(SHELLPROXY_URL="$SHELLPROXY_URL" SHELLPROXY_NO_PROXY="$SHELLPROXY_NO_PROXY" SHELLPROXY_CONFIG="$SHELLPROXY_CONFIG" "$proxy" "$1")" || return $? # evaluate the output generated by the proxy script From 974055f638dac907cfb10281bce9cf998641febd Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Sun, 8 Oct 2023 13:47:16 +0200 Subject: [PATCH 355/441] Adding Mastadon and updating X badge --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a30595581..d915bd720 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,8 @@ Finally, you'll begin to get the sort of attention that you have always felt you To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter, and join us on [Discord](https://discord.gg/ohmyzsh). [![CI](https://github.com/ohmyzsh/ohmyzsh/workflows/CI/badge.svg)](https://github.com/ohmyzsh/ohmyzsh/actions?query=workflow%3ACI) -[![Follow @ohmyzsh](https://img.shields.io/twitter/follow/ohmyzsh?label=Follow+@ohmyzsh&style=flat)](https://twitter.com/intent/follow?screen_name=ohmyzsh) +![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/ohmyzsh?style=flat) +![Mastodon Follow](https://img.shields.io/mastodon/follow/111169632522566717?domain=https%3A%2F%2Fmstdn.social&style=flat) [![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) From ee857e3acf4beba9e3121bc8e776a048c46fa85f Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Sun, 8 Oct 2023 14:05:03 +0200 Subject: [PATCH 356/441] Adding operating system compatibility chart --- README.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d915bd720..70c4faaf0 100644 --- a/README.md +++ b/README.md @@ -59,9 +59,21 @@ To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twi ## Getting Started +### Operating System Compatibility + +| O/S | Status | +| :---------------- | :------: | +| Android | ✅ | +| FreeBSD | ✅ | +| LCARS | 🛸 | +| Linux | ✅ | +| MacOS | ✅ | +| OS/2 Warp | ❌ | +| Windows (WSL2) | ✅ | + + ### Prerequisites -- A Unix-like operating system: macOS, Linux, BSD. On Windows: WSL2 is preferred, but cygwin or msys also mostly work. - [Zsh](https://www.zsh.org) should be installed (v4.3.9 or more recent is fine but we prefer 5.0.8 and newer). If not pre-installed (run `zsh --version` to confirm), check the following wiki instructions here: [Installing ZSH](https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH) - `curl` or `wget` should be installed - `git` should be installed (recommended v2.4.11 or higher) From 7105e37ef09ff890f7eca3e64d48b8b7ff94a494 Mon Sep 17 00:00:00 2001 From: DemonKiller <55846983+demonkillerr@users.noreply.github.com> Date: Sun, 8 Oct 2023 14:27:55 +0100 Subject: [PATCH 357/441] feat(rtx) Added new polyglot runtime manager (asdf rust clone) (#11932) * add readme.md for rtx * add rtx plugin * update install info * remove redundant slashes --- plugins/rtx/README.md | 30 ++++++++++++++++++++++++++++++ plugins/rtx/rtx.plugin.zsh | 30 ++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 plugins/rtx/README.md create mode 100644 plugins/rtx/rtx.plugin.zsh diff --git a/plugins/rtx/README.md b/plugins/rtx/README.md new file mode 100644 index 000000000..c6436d3a7 --- /dev/null +++ b/plugins/rtx/README.md @@ -0,0 +1,30 @@ +## rtx + + +Adds integration with [rtx](https://github.com/jdx/rtx), a runtime executor compatible with npm, nodenv, pyenv, etc. rtx is written in rust and is very fast. 20x-200x faster than asdf. With that being said, rtx is compatible with asdf plugins and .tool-versions files. It can be used as a drop-in replacement. + +### Installation + +1. [Download & install rtx](https://github.com/jdx/rtx#installation) by running the following: + + ``` + curl https://rtx.pub/install.sh | sh + ``` + + +2. [Enable rtx](https://github.com/jdx/rtx#quickstart) by adding it to your `plugins` definition in `~/.zshrc`. + + ``` + plugins=(rtx) + ``` + +### Usage + +See the [rtx readme](https://github.com/jdx/rtx#table-of-contents) for information on how to use rtx. Here are a few examples: + +``` +rtx install node Install the current version specified in .tool-versions/.rtx.toml +rtx use -g node@system Use system node as global default +rtx install node@20.0.0 Install a specific version number +rtx use -g node@20 Use node-20.x as global default +``` diff --git a/plugins/rtx/rtx.plugin.zsh b/plugins/rtx/rtx.plugin.zsh new file mode 100644 index 000000000..aaccaf015 --- /dev/null +++ b/plugins/rtx/rtx.plugin.zsh @@ -0,0 +1,30 @@ +# Find where rtx should be installed +RTX_DIR="${RTX_DIR:-$HOME/.rtx}" +RTX_COMPLETIONS="$RTX_DIR/completions" + +if [[ ! -f "$RTX_DIR/rtx.sh" || ! -f "$RTX_COMPLETIONS/_rtx" ]]; then + # If not found, check for archlinux/AUR package (/opt/rtx-vm/) + if [[ -f "/opt/rtx-vm/rtx.sh" ]]; then + RTX_DIR="/opt/rtx-vm" + RTX_COMPLETIONS="$RTX_DIR" + # If not found, check for Homebrew package + elif (( $+commands[brew] )); then + _RTX_PREFIX="$(brew --prefix rtx)" + RTX_DIR="${_RTX_PREFIX}/libexec" + RTX_COMPLETIONS="${_RTX_PREFIX}/share/zsh/site-functions" + unset _RTX_PREFIX + else + return + fi +fi + +# Load command +if [[ -f "$RTX_DIR/rtx.sh" ]]; then + source "$RTX_DIR/rtx.sh" + # Load completions + if [[ -f "$RTX_COMPLETIONS/_rtx" ]]; then + fpath+=("$RTX_COMPLETIONS") + autoload -Uz _rtx + compdef _rtx rtx # compdef is already loaded before loading plugins + fi +fi From b75b01a3092e59cd10ff01084d4a5e3ac0be3e3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sun, 8 Oct 2023 20:01:46 +0200 Subject: [PATCH 358/441] chore: update README badges --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 70c4faaf0..c83e16218 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,8 @@ Finally, you'll begin to get the sort of attention that you have always felt you To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter, and join us on [Discord](https://discord.gg/ohmyzsh). [![CI](https://github.com/ohmyzsh/ohmyzsh/workflows/CI/badge.svg)](https://github.com/ohmyzsh/ohmyzsh/actions?query=workflow%3ACI) -![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/ohmyzsh?style=flat) -![Mastodon Follow](https://img.shields.io/mastodon/follow/111169632522566717?domain=https%3A%2F%2Fmstdn.social&style=flat) +[![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/ohmyzsh?label=%40ohmyzsh&logo=x&style=flat)](https://twitter.com/intent/follow?screen_name=ohmyzsh) +[![Mastodon Follow](https://img.shields.io/mastodon/follow/111169632522566717?label=%40ohmyzsh&domain=https%3A%2F%2Fmstdn.social&logo=mastodon&style=flat)](https://mstdn.social/@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) From 30a8a5d3e2f36e395c439c3346ef96e40e7bd277 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 9 Oct 2023 17:53:00 +0200 Subject: [PATCH 359/441] fix(rtx): fix `rtx` init procedure (#11949) --- plugins/rtx/rtx.plugin.zsh | 42 ++++++++++++++------------------------ 1 file changed, 15 insertions(+), 27 deletions(-) diff --git a/plugins/rtx/rtx.plugin.zsh b/plugins/rtx/rtx.plugin.zsh index aaccaf015..a01828afd 100644 --- a/plugins/rtx/rtx.plugin.zsh +++ b/plugins/rtx/rtx.plugin.zsh @@ -1,30 +1,18 @@ -# Find where rtx should be installed -RTX_DIR="${RTX_DIR:-$HOME/.rtx}" -RTX_COMPLETIONS="$RTX_DIR/completions" - -if [[ ! -f "$RTX_DIR/rtx.sh" || ! -f "$RTX_COMPLETIONS/_rtx" ]]; then - # If not found, check for archlinux/AUR package (/opt/rtx-vm/) - if [[ -f "/opt/rtx-vm/rtx.sh" ]]; then - RTX_DIR="/opt/rtx-vm" - RTX_COMPLETIONS="$RTX_DIR" - # If not found, check for Homebrew package - elif (( $+commands[brew] )); then - _RTX_PREFIX="$(brew --prefix rtx)" - RTX_DIR="${_RTX_PREFIX}/libexec" - RTX_COMPLETIONS="${_RTX_PREFIX}/share/zsh/site-functions" - unset _RTX_PREFIX - else - return - fi +# rtx needs to be in $PATH +if (( ! ${+commands[rtx]} )); then + return fi -# Load command -if [[ -f "$RTX_DIR/rtx.sh" ]]; then - source "$RTX_DIR/rtx.sh" - # Load completions - if [[ -f "$RTX_COMPLETIONS/_rtx" ]]; then - fpath+=("$RTX_COMPLETIONS") - autoload -Uz _rtx - compdef _rtx rtx # compdef is already loaded before loading plugins - fi +# Load rtx hooks +eval "$(rtx activate zsh)" + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `rtx`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_rtx" ]]; then + typeset -g -A _comps + autoload -Uz _rtx + _comps[rtx]=_rtx fi + +# Generate and load rtx completion +rtx completion zsh >! "$ZSH_CACHE_DIR/completions/_rtx" &| From 29b99c2c7b16f22f3ca2bdf9478ba700ac6c48b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 9 Oct 2023 18:00:17 +0200 Subject: [PATCH 360/441] feat(updater): add `background-alpha` update mode (preview) (#11928) NOTE: this feature is in alpha / preview mode, it is not guaranteed to work 100% of the time in all cases. If you experience any issues, open an issue or search for an open one describing your same situation. To use this, use the zstyle update mode settings [1] with the value `background-alpha`: zstyle ':omz:update' mode background-alpha [1] https://github.com/ohmyzsh/ohmyzsh#getting-updates --- tools/check_for_upgrade.sh | 228 +++++++++++++++++++++++++------------ 1 file changed, 155 insertions(+), 73 deletions(-) diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index 3210e4375..1cc193bde 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -9,6 +9,7 @@ fi # - prompt (default): the user is asked before updating when it's time to update # - auto: the update is performed automatically when it's time # - reminder: a reminder is shown to the user when it's time to update +# - background-alpha: an experimental update-on-the-background option # - disabled: automatic update is turned off zstyle -s ':omz:update' mode update_mode || { update_mode=prompt @@ -91,13 +92,37 @@ function is_update_available() { } function update_last_updated_file() { - echo "LAST_EPOCH=$(current_epoch)" >! "${ZSH_CACHE_DIR}/.zsh-update" + local exit_status="$1" error="$2" + + if [[ -z "${1}${2}" ]]; then + echo "LAST_EPOCH=$(current_epoch)" >! "${ZSH_CACHE_DIR}/.zsh-update" + return + fi + + cat >! "${ZSH_CACHE_DIR}/.zsh-update" <&1); then + update_last_updated_file 0 "Update successful" + else + exit_status=$? + update_last_updated_file $exit_status "$error" + return $exit_status fi } @@ -126,88 +151,145 @@ function has_typed_input() { } } -() { - emulate -L zsh +function handle_update() { + () { + emulate -L zsh - local epoch_target mtime option LAST_EPOCH + local epoch_target mtime option LAST_EPOCH - # Remove lock directory if older than a day - zmodload zsh/datetime - zmodload -F zsh/stat b:zstat - if mtime=$(zstat +mtime "$ZSH/log/update.lock" 2>/dev/null); then - if (( (mtime + 3600 * 24) < EPOCHSECONDS )); then - command rm -rf "$ZSH/log/update.lock" + # Remove lock directory if older than a day + zmodload zsh/datetime + zmodload -F zsh/stat b:zstat + if mtime=$(zstat +mtime "$ZSH/log/update.lock" 2>/dev/null); then + if (( (mtime + 3600 * 24) < EPOCHSECONDS )); then + command rm -rf "$ZSH/log/update.lock" + fi fi - fi - # Check for lock directory - if ! command mkdir "$ZSH/log/update.lock" 2>/dev/null; then - return - fi + # Check for lock directory + if ! command mkdir "$ZSH/log/update.lock" 2>/dev/null; then + return + fi - # Remove lock directory on exit. `return $ret` is important for when trapping a SIGINT: - # The return status from the function is handled specially. If it is zero, the signal is - # assumed to have been handled, and execution continues normally. Otherwise, the shell - # will behave as interrupted except that the return status of the trap is retained. - # This means that for a CTRL+C, the trap needs to return the same exit status so that - # the shell actually exits what it's running. - trap " - ret=\$? - unset update_mode - unset -f current_epoch is_update_available update_last_updated_file update_ohmyzsh 2>/dev/null - command rm -rf '$ZSH/log/update.lock' - return \$ret - " EXIT INT QUIT + # Remove lock directory on exit. `return $ret` is important for when trapping a SIGINT: + # The return status from the function is handled specially. If it is zero, the signal is + # assumed to have been handled, and execution continues normally. Otherwise, the shell + # will behave as interrupted except that the return status of the trap is retained. + # This means that for a CTRL+C, the trap needs to return the same exit status so that + # the shell actually exits what it's running. + trap " + ret=\$? + unset update_mode + unset -f current_epoch is_update_available update_last_updated_file update_ohmyzsh handle_update 2>/dev/null + command rm -rf '$ZSH/log/update.lock' + return \$ret + " EXIT INT QUIT - # Create or update .zsh-update file if missing or malformed - if ! source "${ZSH_CACHE_DIR}/.zsh-update" 2>/dev/null || [[ -z "$LAST_EPOCH" ]]; then - update_last_updated_file - return - fi + # Create or update .zsh-update file if missing or malformed + if ! source "${ZSH_CACHE_DIR}/.zsh-update" 2>/dev/null || [[ -z "$LAST_EPOCH" ]]; then + update_last_updated_file + return + fi - # Number of days before trying to update again - zstyle -s ':omz:update' frequency epoch_target || epoch_target=${UPDATE_ZSH_DAYS:-13} - # Test if enough time has passed until the next update - if (( ( $(current_epoch) - $LAST_EPOCH ) < $epoch_target )); then - return - fi + # Number of days before trying to update again + zstyle -s ':omz:update' frequency epoch_target || epoch_target=${UPDATE_ZSH_DAYS:-13} + # Test if enough time has passed until the next update + if (( ( $(current_epoch) - $LAST_EPOCH ) < $epoch_target )); then + return + fi - # Test if Oh My Zsh directory is a git repository - if ! (builtin cd -q "$ZSH" && LANG= git rev-parse &>/dev/null); then - echo >&2 "[oh-my-zsh] Can't update: not a git repository." - return - fi + # Test if Oh My Zsh directory is a git repository + if ! (builtin cd -q "$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 - update_last_updated_file - return - fi + # Check if there are updates available before proceeding + if ! is_update_available; then + update_last_updated_file + return + fi - # If in reminder mode or user has typed input, show reminder and exit - if [[ "$update_mode" = reminder ]] || has_typed_input; then - printf '\r\e[0K' # move cursor to first column and clear whole line - echo "[oh-my-zsh] It's time to update! You can do that by running \`omz update\`" - return 0 - fi + # If in reminder mode or user has typed input, show reminder and exit + if [[ "$update_mode" = reminder ]] || { [[ "$update_mode" != background-alpha ]] && has_typed_input }; then + printf '\r\e[0K' # move cursor to first column and clear whole line + echo "[oh-my-zsh] It's time to update! You can do that by running \`omz update\`" + return 0 + fi - # Don't ask for confirmation before updating if in auto mode - if [[ "$update_mode" = auto ]]; then - update_ohmyzsh - return $? - fi + # Don't ask for confirmation before updating if in auto mode + if [[ "$update_mode" = (auto|background-alpha) ]]; then + update_ohmyzsh + return $? + fi - # Ask for confirmation and only update on 'y', 'Y' or Enter - # Otherwise just show a reminder for how to update - echo -n "[oh-my-zsh] Would you like to update? [Y/n] " - read -r -k 1 option - [[ "$option" = $'\n' ]] || echo - case "$option" in - [yY$'\n']) update_ohmyzsh ;; - [nN]) update_last_updated_file ;& - *) echo "[oh-my-zsh] You can update manually by running \`omz update\`" ;; - esac + # Ask for confirmation and only update on 'y', 'Y' or Enter + # Otherwise just show a reminder for how to update + echo -n "[oh-my-zsh] Would you like to update? [Y/n] " + read -r -k 1 option + [[ "$option" = $'\n' ]] || echo + case "$option" in + [yY$'\n']) update_ohmyzsh ;; + [nN]) update_last_updated_file ;& + *) echo "[oh-my-zsh] You can update manually by running \`omz update\`" ;; + esac + } + + unset update_mode + unset -f current_epoch is_update_available update_last_updated_file update_ohmyzsh handle_update } -unset update_mode -unset -f current_epoch is_update_available update_last_updated_file update_ohmyzsh +case "$update_mode" in + background-alpha) + autoload -Uz add-zsh-hook + + _omz_bg_update() { + # do the update in a subshell + (handle_update) &| + + # register update results function + add-zsh-hook precmd _omz_bg_update_status + + # deregister background function + add-zsh-hook -d precmd _omz_bg_update + unset -f _omz_bg_update + } + + _omz_bg_update_status() { + { + local LAST_EPOCH EXIT_STATUS ERROR + if [[ ! -f "$ZSH_CACHE_DIR"/.zsh-update ]]; then + return 1 + fi + + # check update results until timeout is reached + . "$ZSH_CACHE_DIR/.zsh-update" + if [[ -z "$EXIT_STATUS" || -z "$ERROR" ]]; then + return 1 + fi + + if [[ "$EXIT_STATUS" -eq 0 ]]; then + print -P "\n%F{green}[oh-my-zsh] Update successful.%f" + return 0 + elif [[ "$EXIT_STATUS" -ne 0 ]]; then + print -P "\n%F{red}[oh-my-zsh] There was an error updating:%f" + printf "\n${fg[yellow]}%s${reset_color}" "$ERROR" + return 0 + fi + } always { + if (( TRY_BLOCK_ERROR == 0 )); then + # if last update results have been handled, remove them from the status file + update_last_updated_file + + # deregister background function + add-zsh-hook -d precmd _omz_bg_update_status + unset -f _omz_bg_update_status + fi + } + } + + add-zsh-hook precmd _omz_bg_update + ;; + *) + handle_update ;; +esac From 24b2600558f999dd53f0d354ad61fc07cf7d6e2b Mon Sep 17 00:00:00 2001 From: tobi1805 <66414944+tobi1805@users.noreply.github.com> Date: Mon, 9 Oct 2023 18:07:51 +0200 Subject: [PATCH 361/441] feat(git): delete squash-merged branches in `gbda` (#11948) --- plugins/git/README.md | 2 +- plugins/git/git.plugin.zsh | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 9c16cb6e7..33c10ffd0 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -41,7 +41,6 @@ plugins=(... git) | `gba` | `git branch --all` | | `gbd` | `git branch --delete` | | `gbD` | `git branch --delete --force` | -| `gbda` | `git branch --no-color --merged \| command grep -vE "^([+*]\|\s*($(git_main_branch)\|$(git_develop_branch))\s*$)" \| command xargs git branch --delete 2>/dev/null` | | `gbgd` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -d` | | `gbgD` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -D` | | `gbm` | `git branch --move` | @@ -251,6 +250,7 @@ receive further support. | `git_develop_branch` | Returns the name of the “development” branch: `dev`, `devel`, `development` if they exist, `develop` otherwise. | | `git_main_branch` | Returns the name of the main branch: `main` if it exists, `master` otherwise. | | `grename ` | Renames branch `` to ``, including on the origin remote. | +| `gbda` | Deletes all merged and squash-merged branches | ### Work in Progress (WIP) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index cb848b407..ceb2011f9 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -122,7 +122,22 @@ alias gb='git branch' alias gba='git branch --all' alias gbd='git branch --delete' alias gbD='git branch --delete --force' -alias gbda='git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null' + +# Copied and modified from James Roeder (jmaroeder) under MIT License +# https://github.com/jmaroeder/plugin-git/blob/216723ef4f9e8dde399661c39c80bdf73f4076c4/functions/gbda.fish +function gbda() { + git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null + + local default_branch=$(git_main_branch) + git for-each-ref refs/heads/ "--format=%(refname:short)" | \ + while read branch; do + local merge_base=$(git merge-base $default_branch $branch) + if [[ '-*' == $(git cherry $default_branch $(git commit-tree $(git rev-parse $branch\^{tree}) -p $merge_base -m _)) ]]; then + git branch -D $branch + fi + done +} + alias gbgd='LANG=C git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -d' alias gbgD='LANG=C git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -D' alias gbm='git branch --move' From 38db3e16ef3266800e1a9516c0615ff04ec97cb6 Mon Sep 17 00:00:00 2001 From: Adam Henley <71472057+ajh-sr@users.noreply.github.com> Date: Tue, 10 Oct 2023 07:28:09 +1300 Subject: [PATCH 362/441] feat(kind): add plugin for Kind k8s tool (#9827) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: jxlwqq Co-authored-by: Francesco Ilario Co-authored-by: Marc Cornellà --- plugins/kind/README.md | 22 ++++++++++++++++++++++ plugins/kind/kind.plugin.zsh | 23 +++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 plugins/kind/README.md create mode 100644 plugins/kind/kind.plugin.zsh diff --git a/plugins/kind/README.md b/plugins/kind/README.md new file mode 100644 index 000000000..49024648d --- /dev/null +++ b/plugins/kind/README.md @@ -0,0 +1,22 @@ +# Kind plugin + +This plugin adds completion for the [Kind](https://kind.sigs.k8s.io/) tool, as well +as a few aliases for easier use. + +To use it, add `kind` to the plugins array in your zshrc file: + +```zsh +plugins=(... kind) +``` + +## Aliases + +| Alias | Command | +| ------- | ---------------------------- | +| `kicc` | `kind create cluster` | +| `kiccn` | `kind create cluster --name` | +| `kigc` | `kind get clusters` | +| `kidc` | `kind delete cluster` | +| `kidcn` | `kind delete cluster --name` | +| `kidca` | `kind delete clusters -A` | +| `kigk` | `kind get kubeconfig` | diff --git a/plugins/kind/kind.plugin.zsh b/plugins/kind/kind.plugin.zsh new file mode 100644 index 000000000..183eb7bd6 --- /dev/null +++ b/plugins/kind/kind.plugin.zsh @@ -0,0 +1,23 @@ +if (( ! $+commands[kind] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `kind`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_kind" ]]; then + typeset -g -A _comps + autoload -Uz _kind + _comps[kind]=_kind +fi + +# Generate and load kind completion +kind completion zsh >! "$ZSH_CACHE_DIR/completions/_kind" &| + +# Register aliases +alias kicc="kind create cluster" +alias kiccn="kind create cluster --name" +alias kigc="kind get clusters" +alias kidc="kind delete cluster" +alias kidcn="kind delete cluster --name" +alias kidca="kind delete clusters -A" +alias kigk="kind get kubeconfig" From b1821a24f0574488554de8e7f6d0735fb851de8b Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 10 Oct 2023 16:56:54 +0100 Subject: [PATCH 363/441] fix(git): restore showing patch in `gsts` (#11951) --- plugins/git/README.md | 2 +- plugins/git/git.plugin.zsh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 33c10ffd0..a4e9f4c4a 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -185,7 +185,7 @@ plugins=(... git) | `gstp` | `git stash pop` | | `gsta` | On Git >= 2.13: `git stash push` | | `gsta` | On Git < 2.13: `git stash save` | -| `gsts` | `git stash show` | +| `gsts` | `git stash show --patch` | | `gst` | `git status` | | `gss` | `git status --short` | | `gsb` | `git status --short -b` | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index ceb2011f9..b0376308f 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -349,7 +349,7 @@ alias gstp='git stash pop' is-at-least 2.13 "$git_version" \ && alias gsta='git stash push' \ || alias gsta='git stash save' -alias gsts='git stash show' +alias gsts='git stash show --patch' alias gst='git status' alias gss='git status --short' alias gsb='git status --short --branch' From da3b8fcb6a6bcf4d440b9768d2deab27f787929a Mon Sep 17 00:00:00 2001 From: Lukas Elmer Date: Wed, 11 Oct 2023 18:06:22 +0200 Subject: [PATCH 364/441] fix(yarn): output completion entries in UTF-8 (#11955) --- plugins/yarn/_yarn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/yarn/_yarn b/plugins/yarn/_yarn index 1237ba672..f15756ff4 100644 --- a/plugins/yarn/_yarn +++ b/plugins/yarn/_yarn @@ -144,7 +144,7 @@ _yarn_scripts() { fi if [[ -n $packageJson ]]; then - scripts=("${(@f)$(cat ${packageJson} | perl -0777 -MJSON::PP -n -E '%r=%{decode_json($_)->{scripts}}; do{$k=$_;($e=$k)=~s/:/\\:/g; printf "$e:$r{$k}\n"} for sort keys %r')}") + scripts=("${(@f)$(cat ${packageJson} | perl -0777 -MJSON::PP -n -E 'binmode(STDOUT, ":encoding(UTF-8)"); %r=%{decode_json($_)->{scripts}}; do{$k=$_;($e=$k)=~s/:/\\:/g; printf "$e:$r{$k}\n"} for sort keys %r')}") fi commands=('env' $scripts $binaries) From fedef5dbd5f8ffef16815cb3a2c611eb0f7f00b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 11 Oct 2023 19:23:44 +0200 Subject: [PATCH 365/441] fix(xcode): open Xcode in current Desk if already open in another (#10384) Fixes #10384 --- plugins/xcode/xcode.plugin.zsh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plugins/xcode/xcode.plugin.zsh b/plugins/xcode/xcode.plugin.zsh index 5d1f901a3..f09434e69 100644 --- a/plugins/xcode/xcode.plugin.zsh +++ b/plugins/xcode/xcode.plugin.zsh @@ -17,6 +17,13 @@ function xc { local active_path active_path=${"$(xcode-select -p)"%%/Contents/Developer*} echo "Found ${xcode_files[1]}. Opening with ${active_path}" + + # If Xcode is already opened in another Desk, we need this double call + # with -g to open the project window in the current Desk and focus it. + # See https://github.com/ohmyzsh/ohmyzsh/issues/10384 + if command pgrep -q "^Xcode"; then + open -g -a "$active_path" "${xcode_files[1]}" + fi open -a "$active_path" "${xcode_files[1]}" } From 53cb50acb5c2c70f6ba9d26d3d2ffb37c8a19e8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 11 Oct 2023 20:43:55 +0200 Subject: [PATCH 366/441] refactor(systemadmin): use `ss` instead of `netstat` when available (#11957) --- plugins/systemadmin/systemadmin.plugin.zsh | 116 ++++++++++++--------- 1 file changed, 67 insertions(+), 49 deletions(-) diff --git a/plugins/systemadmin/systemadmin.plugin.zsh b/plugins/systemadmin/systemadmin.plugin.zsh index 7ce62bac1..03dd995b6 100644 --- a/plugins/systemadmin/systemadmin.plugin.zsh +++ b/plugins/systemadmin/systemadmin.plugin.zsh @@ -13,11 +13,11 @@ # ------------------------------------------------------------------------------ function retlog() { - if [[ -z $1 ]];then - echo '/var/log/nginx/access.log' - else - echo $1 - fi + if [[ -z $1 ]];then + echo '/var/log/nginx/access.log' + else + echo $1 + fi } alias ping='ping -c 5' @@ -28,142 +28,160 @@ alias mkdir='mkdir -pv' 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 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' +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 alias hist10='print -l ${(o)history%% *} | uniq -c | sort -nr | head -n 10' function ip() { - if [ -t 1 ]; then - command ip -color "$@" - else - command ip "$@" - fi + if [ -t 1 ]; then + command ip -color "$@" + else + command ip "$@" + fi } # directory LS function dls() { - print -l *(/) + print -l *(/) } function psgrep() { - ps aux | grep "${1:-.}" | grep -v grep + ps aux | grep "${1:-.}" | grep -v grep } # Kills any process that matches a regexp passed to it function killit() { - ps aux | grep -v "grep" | grep "$@" | awk '{print $2}' | xargs sudo kill + ps aux | grep -v "grep" | grep "$@" | awk '{print $2}' | xargs sudo kill } # list contents of directories in a tree-like format if ! (( $+commands[tree] )); then - function tree() { - find $@ -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g' - } + function tree() { + find $@ -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g' + } fi # Sort connection state function sortcons() { - netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn + { + LANG= ss -nat | awk 'NR > 1 {print $1}' \ + || LANG= netstat -nat | awk 'NR > 2 {print $6}' + } | sort | uniq -c | sort -rn } # View all 80 Port Connections function con80() { - netstat -nat|grep -i ":80"|wc -l + { + LANG= ss -nat || LANG= netstat -nat + } | grep -E ":80[^0-9]" | wc -l } # On the connected IP sorted by the number of connections function sortconip() { - netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n + { + LANG= ss -ntu | awk 'NR > 1 {print $6}' \ + || LANG= netstat -ntu | awk 'NR > 2 {print $5}' + } | cut -d: -f1 | sort | uniq -c | sort -n } # top20 of Find the number of requests on 80 port function req20() { - netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20 + { + LANG= ss -tn | awk '$4 ~ /:80$/ {print $5}' \ + || LANG= netstat -tn | awk '$4 ~ /:80$/ {print $5}' + } | awk -F: '{print $1}' | sort | uniq -c | sort -nr | head -n 20 } # top20 of Using tcpdump port 80 access to view function http20() { - 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 + 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 function timewait20() { - netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20 + { + LANG= ss -nat | awk 'NR > 1 && /TIME-WAIT/ {print $5}' \ + || LANG= netstat -nat | awk 'NR > 2 && /TIME_WAIT/ {print $5}' + } | sort | uniq -c | sort -rn | head -n 20 } # top20 of Find SYN connection function syn20() { - netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr|head -n20 + { + LANG= ss -an | awk '/SYN/ {print $5}' \ + || LANG= netstat -an | awk '/SYN/ {print $5}' + } | awk -F: '{print $1}' | sort | uniq -c | sort -nr | head -n20 } # Printing process according to the port number function port_pro() { - netstat -ntlp | grep "${1:-.}" | awk '{print $7}' | cut -d/ -f1 + LANG= ss -ntlp | awk "NR > 1 && /:${1:-}/ {print \$6}" | sed 's/.*pid=\([^,]*\).*/\1/' \ + || LANG= netstat -ntlp | awk "NR > 2 && /:${1:-}/ {print \$7}" | cut -d/ -f1 } # top10 of gain access to the ip address function accessip10() { - awk '{counts[$(11)]+=1}; END {for(url in counts) print counts[url], url}' "$(retlog)" + awk '{counts[$(11)]+=1}; END {for(url in counts) print counts[url], url}' "$(retlog)" } # top20 of Most Visited file or page function visitpage20() { - awk '{print $11}' "$(retlog)"|sort|uniq -c|sort -nr|head -n 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 function consume100() { - awk '($NF > 60 && $7~/\.php/){print $7}' "$(retlog)" |sort -n|uniq -c|sort -nr|head -n 100 - # if django website or other website make by no suffix language - # awk '{print $7}' "$(retlog)" |sort -n|uniq -c|sort -nr|head -n 100 + awk '($NF > 60 && $7~/\.php/){print $7}' "$(retlog)" | sort -n | uniq -c | sort -nr | head -n 100 + # if django website or other website make by no suffix language + # awk '{print $7}' "$(retlog)" | sort -n | uniq -c | sort -nr | head -n 100 } # Website traffic statistics (G) function webtraffic() { - awk "{sum+=$10} END {print sum/1024/1024/1024}" "$(retlog)" + awk "{sum+=$10} END {print sum/1024/1024/1024}" "$(retlog)" } # Statistical connections 404 function c404() { - awk '($9 ~/404/)' "$(retlog)" | awk '{print $9,$7}' | sort + awk '($9 ~ /404/)' "$(retlog)" | awk '{print $9,$7}' | sort } # Statistical http status. function httpstatus() { - awk '{counts[$(9)]+=1}; END {for(code in counts) print code, counts[code]}' "$(retlog)" + awk '{counts[$(9)]+=1}; END {for(code in counts) print code, counts[code]}' "$(retlog)" } # Delete 0 byte file function d0() { - find "${1:-.}" -type f -size 0 -exec rm -rf {} \; + find "${1:-.}" -type f -size 0 -exec rm -rf {} \; } # gather external ip address function geteip() { - curl -s -S -4 https://icanhazip.com + curl -s -S -4 https://icanhazip.com - # handle case when there is no IPv6 external IP, which shows error - # curl: (7) Couldn't connect to server - curl -s -S -6 https://icanhazip.com 2>/dev/null - local ret=$? - (( ret == 7 )) && print -P -u2 "%F{red}error: no IPv6 route to host%f" - return $ret + # handle case when there is no IPv6 external IP, which shows error + # curl: (7) Couldn't connect to server + curl -s -S -6 https://icanhazip.com 2>/dev/null + local ret=$? + (( ret == 7 )) && print -P -u2 "%F{red}error: no IPv6 route to host%f" + return $ret } # determine local IP address(es) function getip() { - if (( ${+commands[ip]} )); then - ip addr | awk '/inet /{print $2}' | command grep -v 127.0.0.1 - else - ifconfig | awk '/inet /{print $2}' | command grep -v 127.0.0.1 - fi + if (( ${+commands[ip]} )); then + ip addr | awk '/inet /{print $2}' | command grep -v 127.0.0.1 + else + ifconfig | awk '/inet /{print $2}' | command grep -v 127.0.0.1 + fi } # Clear zombie processes function clrz() { - ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9 + ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9 } # Second concurrent function conssec() { - awk '{if($9~/200|30|404/)COUNT[$4]++}END{for( a in COUNT) print a,COUNT[a]}' "$(retlog)"|sort -k 2 -nr|head -n10 + awk '{if($9~/200|30|404/)COUNT[$4]++}END{for( a in COUNT) print a,COUNT[a]}' "$(retlog)" | sort -k 2 -nr | head -n10 } From 408330e131110c8b86ce60ab0492b35657cb4d57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 11 Oct 2023 20:44:46 +0200 Subject: [PATCH 367/441] ci: remove redundant macos runner for CI tests Currently the macOS runner is not needed, as we are only checking zsh syntax. We can reactivate it in the future if needed. --- .github/workflows/main.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 57403629c..de7d98262 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,16 +20,12 @@ permissions: jobs: tests: name: Run tests - runs-on: ${{ matrix.os }} + runs-on: ubuntu-latest if: github.repository == 'ohmyzsh/ohmyzsh' - strategy: - matrix: - os: [ubuntu-latest, macos-latest] steps: - name: Set up git repository uses: actions/checkout@v3 - name: Install zsh - if: runner.os == 'Linux' run: sudo apt-get update; sudo apt-get install zsh - name: Check syntax run: | From 6768906d07151140db901510b2c8b1ce2622f365 Mon Sep 17 00:00:00 2001 From: sattisumasri <73093486+sattisumasri@users.noreply.github.com> Date: Thu, 12 Oct 2023 00:27:01 +0530 Subject: [PATCH 368/441] chore: change headings in README to Title Case (#11956) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Marc Cornellà --- README.md | 69 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index c83e16218..308d117e1 100644 --- a/README.md +++ b/README.md @@ -23,32 +23,33 @@ To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twi Table of Contents - [Getting Started](#getting-started) + - [Operating System Compatibility](#operating-system-compatibility) - [Prerequisites](#prerequisites) - [Basic Installation](#basic-installation) - - [Manual inspection](#manual-inspection) + - [Manual Inspection](#manual-inspection) - [Using Oh My Zsh](#using-oh-my-zsh) - [Plugins](#plugins) - [Enabling Plugins](#enabling-plugins) - [Using Plugins](#using-plugins) - [Themes](#themes) - - [Selecting a Theme](#selecting-a-theme) + - [Selecting A Theme](#selecting-a-theme) - [FAQ](#faq) - [Advanced Topics](#advanced-topics) - [Advanced Installation](#advanced-installation) - [Custom Directory](#custom-directory) - - [Unattended install](#unattended-install) - - [Installing from a forked repository](#installing-from-a-forked-repository) + - [Unattended Install](#unattended-install) + - [Installing From A Forked Repository](#installing-from-a-forked-repository) - [Manual Installation](#manual-installation) - [Installation Problems](#installation-problems) - - [Custom Plugins and Themes](#custom-plugins-and-themes) - - [Enable GNU ls in macOS and freeBSD systems](#enable-gnu-ls) - - [Skip aliases](#skip-aliases) + - [Custom Plugins And Themes](#custom-plugins-and-themes) + - [Enable GNU ls In macOS And freeBSD Systems](#enable-gnu-ls-in-macos-and-freebsd-systems) + - [Skip Aliases](#skip-aliases) - [Getting Updates](#getting-updates) - - [Updates verbosity](#updates-verbosity) + - [Updates Verbosity](#updates-verbosity) - [Manual Updates](#manual-updates) - [Uninstalling Oh My Zsh](#uninstalling-oh-my-zsh) -- [How do I contribute to Oh My Zsh?](#how-do-i-contribute-to-oh-my-zsh) - - [Do NOT send us themes](#do-not-send-us-themes) +- [How Do I Contribute To Oh My Zsh?](#how-do-i-contribute-to-oh-my-zsh) + - [Do Not Send Us Themes](#do-not-send-us-themes) - [Contributors](#contributors) - [Follow Us](#follow-us) - [Merchandise](#merchandise) @@ -61,15 +62,15 @@ To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twi ### Operating System Compatibility -| O/S | Status | -| :---------------- | :------: | -| Android | ✅ | -| FreeBSD | ✅ | -| LCARS | 🛸 | -| Linux | ✅ | -| MacOS | ✅ | -| OS/2 Warp | ❌ | -| Windows (WSL2) | ✅ | +| O/S | Status | +| :------------- | :-----: | +| Android | ✅ | +| freeBSD | ✅ | +| LCARS | 🛸 | +| Linux | ✅ | +| macOS | ✅ | +| OS/2 Warp | ❌ | +| Windows (WSL2) | ✅ | ### Prerequisites @@ -90,7 +91,7 @@ Oh My Zsh is installed by running one of the following commands in your terminal _Note that any previous `.zshrc` will be renamed to `.zshrc.pre-oh-my-zsh`. After installation, you can move the configuration you want to preserve into the new `.zshrc`._ -#### Manual inspection +#### Manual Inspection It's a good idea to inspect the install script from projects you don't yet know. You can do that by downloading the install script first, looking through it so everything looks normal, @@ -139,7 +140,7 @@ Each built-in plugin includes a **README**, documenting it. This README should s We'll admit it. Early in the Oh My Zsh world, we may have gotten a bit too theme happy. We have over one hundred and fifty themes now bundled. Most of them have [screenshots](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes) on the wiki (We are working on updating this!). Check them out! -#### Selecting a Theme +#### Selecting A Theme _Robby's theme is the default one. It's not the fanciest one. It's not the simplest one. It's just the right one (for him)._ @@ -210,7 +211,7 @@ like this: ZSH="$HOME/.dotfiles/oh-my-zsh" sh install.sh ``` -#### Unattended install +#### Unattended Install If you're running the Oh My Zsh install script as part of an automated install, you can pass the `--unattended` flag to the `install.sh` script. This will have the effect of not trying to change @@ -220,7 +221,7 @@ the default shell, and it also won't run `zsh` when the installation has finishe sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended ``` -#### Installing from a forked repository +#### Installing From A Forked Repository The install script also accepts these variables to allow installation of a different repository: @@ -245,19 +246,19 @@ REPO=apjanke/oh-my-zsh BRANCH=edge sh install.sh #### Manual Installation -##### 1. Clone the repository +##### 1. Clone The Repository ```sh git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh ``` -##### 2. _Optionally_, backup your existing `~/.zshrc` file +##### 2. _Optionally_, Backup Your Existing `~/.zshrc` File ```sh cp ~/.zshrc ~/.zshrc.orig ``` -##### 3. Create a new zsh configuration file +##### 3. Create A New Zsh Configuration File You can create a new zsh config file by copying the template that we have included for you. @@ -265,7 +266,7 @@ You can create a new zsh config file by copying the template that we have includ cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc ``` -##### 4. Change your default shell +##### 4. Change Your Default Shell ```sh chsh -s $(which zsh) @@ -273,7 +274,7 @@ chsh -s $(which zsh) You must log out from your user session and log back in to see this change. -##### 5. Initialize your new zsh configuration +##### 5. Initialize Your New Zsh Configuration Once you open up a new terminal window, it should load zsh with Oh My Zsh's configuration. @@ -284,7 +285,7 @@ If you have any hiccups installing, here are a few common fixes. - You _might_ need to modify your `PATH` in `~/.zshrc` if you're not able to find some commands after switching to `oh-my-zsh`. - If you installed manually or changed the install location, check the `ZSH` environment variable in `~/.zshrc`. -### Custom Plugins and Themes +### Custom Plugins And Themes If you want to override any of the default behaviors, just add a new file (ending in `.zsh`) in the `custom/` directory. @@ -292,7 +293,7 @@ If you have many functions that go well together, you can put them as a `XYZ.plu If you would like to override the functionality of a plugin distributed with Oh My Zsh, create a plugin of the same name in the `custom/plugins/` directory and it will be loaded instead of the one in `plugins/`. -### Enable GNU ls in macOS and freeBSD systems +### Enable GNU ls In macOS And freeBSD Systems @@ -306,7 +307,7 @@ zstyle ':omz:lib:theme-and-appearance' gnu-ls yes _Note: this is not compatible with `DISABLE_LS_COLORS=true`_ -### Skip aliases +### Skip Aliases @@ -389,7 +390,7 @@ zstyle ':omz:update' frequency 7 zstyle ':omz:update' frequency 0 ``` -### Updates verbosity +### Updates Verbosity You can also limit the update verbosity with the following settings: @@ -417,7 +418,7 @@ Oh My Zsh isn't for everyone. We'll miss you, but we want to make this an easy b If you want to uninstall `oh-my-zsh`, just run `uninstall_oh_my_zsh` from the command-line. It will remove itself and revert your previous `bash` or `zsh` configuration. -## How do I contribute to Oh My Zsh? +## How Do I Contribute To Oh My Zsh? Before you participate in our delightful community, please read the [code of conduct](CODE_OF_CONDUCT.md). @@ -427,7 +428,7 @@ We also need people to test out pull requests. So take a look through [the open See [Contributing](CONTRIBUTING.md) for more details. -### Do NOT send us themes +### Do Not Send Us Themes We have (more than) enough themes for the time being. Please add your theme to the [external themes](https://github.com/ohmyzsh/ohmyzsh/wiki/External-themes) wiki page. From 5743198e0ed5de137b4aa1b948cf4c82b02bdd8e Mon Sep 17 00:00:00 2001 From: Preston Button Date: Thu, 12 Oct 2023 04:32:48 -0400 Subject: [PATCH 369/441] docs(aliases): fix typo (#11958) --- plugins/aliases/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/aliases/README.md b/plugins/aliases/README.md index 53b68ea01..14f9c5c53 100644 --- a/plugins/aliases/README.md +++ b/plugins/aliases/README.md @@ -17,7 +17,7 @@ Requirements: Python needs to be installed. - `als`: show all aliases by group -- `als -h/--help`: print help mesage +- `als -h/--help`: print help message - `als `: filter and highlight aliases by `` From 7329b2fbb1787651d4900d5ef280b926c5696c01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 12 Oct 2023 11:46:49 +0200 Subject: [PATCH 370/441] docs(debian): clarify override behavior for `apt_pref` and `apt_upgr` Fixes #11959 --- plugins/debian/README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/debian/README.md b/plugins/debian/README.md index 1db534f13..6835ad65c 100644 --- a/plugins/debian/README.md +++ b/plugins/debian/README.md @@ -13,7 +13,12 @@ plugins=(... debian) - `$apt_pref`: use aptitude or apt if installed, fallback is apt-get. - `$apt_upgr`: use upgrade or safe-upgrade (for aptitude). -Set `$apt_pref` and `$apt_upgr` to whatever command you want (before sourcing Oh My Zsh) to override this behavior. +Set **both** `$apt_pref` and `$apt_upgr` to whatever command you want (before sourcing Oh My Zsh) to override this behavior, e.g.: + +```sh +apt_pref='apt' +apt_upgr='full-upgrade' +``` ## Common Aliases From 772b41ea5a362206e1498453dd053e638752c5dc Mon Sep 17 00:00:00 2001 From: Sandesh Pyakurel <82999440+Sandesh-Pyakurel@users.noreply.github.com> Date: Thu, 12 Oct 2023 20:09:40 +0545 Subject: [PATCH 371/441] chore(zsh-navigation-tools): fix typo (#11960) --- plugins/zsh-navigation-tools/n-list | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/zsh-navigation-tools/n-list b/plugins/zsh-navigation-tools/n-list index f25db8f60..a852b083a 100644 --- a/plugins/zsh-navigation-tools/n-list +++ b/plugins/zsh-navigation-tools/n-list @@ -467,7 +467,7 @@ while (( 1 )); do elif [ -n "$keypad" ]; then final_key="$keypad" else - _nlist_status_msg "Inproper input detected" + _nlist_status_msg "Improper input detected" zcurses refresh main inner fi From 3efdbf9e1e6663adf9d8a2d113ec62855c621ef7 Mon Sep 17 00:00:00 2001 From: Sandesh Pyakurel <82999440+Sandesh-Pyakurel@users.noreply.github.com> Date: Fri, 13 Oct 2023 13:38:48 +0545 Subject: [PATCH 372/441] chore(hitchhiker): fix typos (#11961) --- plugins/hitchhiker/fortunes/hitchhiker | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/hitchhiker/fortunes/hitchhiker b/plugins/hitchhiker/fortunes/hitchhiker index b0448b21e..94cc1c835 100644 --- a/plugins/hitchhiker/fortunes/hitchhiker +++ b/plugins/hitchhiker/fortunes/hitchhiker @@ -80,7 +80,7 @@ % "The fronting for the eighty-yard-long marble-topped bar had been made by stitching together nearly twenty thousand Antarean Mosaic Lizard skins, despite the fact that the twenty thousand lizards concerned had needed them to keep their insides in." -- The Book decribing Milliways' politically incorrect decor. +- The Book describing Milliways' politically incorrect decor. % "`...and the Universe,' continued the waiter, determined not to be deflected on his home stretch, `will explode later for your pleasure.' Ford's head swivelled slowly towards him. He spoke with feeling. `Wow,' he said, `What sort of drinks do you serve in this place?' The waiter laughed a polite little waiter's laugh. `Ah,' he said, `I think sir has perhaps misunderstood me.' `Oh, I hope not,' breathed Ford." @@ -104,7 +104,7 @@ % "`The first ten million years were the worst,' said Marvin, `and the second ten million, they were the worst too. The third ten million I didn't enjoy at all. After that I went into a bit of a decline.'" -- Marvin reflecting back on his 576,000,003,579 year career as Milliways' car park attendent. +- Marvin reflecting back on his 576,000,003,579 year career as Milliways' car park attendant. % "`Incidentally,' he said, `what does teleport mean?' Another moment passed. Slowly, the others turned to face him. `Probably the wrong moment to ask,' said Arthur, `It's just I remember you use the word a short while ago and I only bring it up because...' `Where,' said Ford quietly, `does it say teleport?' `Well, just over here in fact,' said Arthur, pointing at a dark control box in the rear of the cabin, `Just under the word "emergency", above the word "system" and beside the sign saying "out of order".'" @@ -122,7 +122,7 @@ - Ford "debating" what to do with fire with a marketing girl. % -"The story goes that I first had the idea for THHGTTG while lying drunk in a field in Innsbruck (or `Spain' as the BBC TV publicity department authoritatively has it, probably because it's easier to spell)." - Foreward by DNA. +"The story goes that I first had the idea for THHGTTG while lying drunk in a field in Innsbruck (or `Spain' as the BBC TV publicity department authoritatively has it, probably because it's easier to spell)." - Foreword by DNA. FORD Six pints of bitter. And quickly please, the world's about to end. BARMAN Oh yes, sir? Nice weather for it. % @@ -162,7 +162,7 @@ ARTHUR It probably seems a terrible thing to say, but you know what I sometimes - Arthur discovering a way of coping with life on Prehistoric Earth. % -"`... then I decided that I was a lemon for a couple of weeks. I kept myself amused all that time jumping in and out of a gin and tonic.' Arthur cleared his throat, and then did it again. `Where,' he said, `did you...?' `Find a gin and tonic?' said Ford brightly. `I found a small lake that thought it was a gin and tonic, and jumped in and out of that. At least, I think it thought it was a gin and tonic.' `I may,' he addded with a grin which would have sent sane men scampering into the trees, `have been imagining it.'" +"`... then I decided that I was a lemon for a couple of weeks. I kept myself amused all that time jumping in and out of a gin and tonic.' Arthur cleared his throat, and then did it again. `Where,' he said, `did you...?' `Find a gin and tonic?' said Ford brightly. `I found a small lake that thought it was a gin and tonic, and jumped in and out of that. At least, I think it thought it was a gin and tonic.' `I may,' he added with a grin which would have sent sane men scampering into the trees, `have been imagining it.'" - Ford updating Arthur about what he's been doing for the past four years. % From 8d9c9b6174466cc432a9946b0459c214586cb1b2 Mon Sep 17 00:00:00 2001 From: Sandesh Pyakurel <82999440+Sandesh-Pyakurel@users.noreply.github.com> Date: Fri, 13 Oct 2023 20:45:28 +0545 Subject: [PATCH 373/441] chore(postgres): fix typo (#11967) --- plugins/postgres/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/postgres/README.md b/plugins/postgres/README.md index 59445f31c..3f59a8fe4 100644 --- a/plugins/postgres/README.md +++ b/plugins/postgres/README.md @@ -19,4 +19,4 @@ plugins=(... postgres) | stoppost | `pg_ctl -D /usr/local/var/postgres stop -s -m fast` | Stop postgres server | | restartpost | `stoppost && sleep 1 && startpost` | Restart (calls stop, then start) | | reloadpost | `pg_ctl reload -D /usr/local/var/postgres -s` | Reload postgres configuration (some setting require restart)| -| statuspost | `pg_ctl status -D /usr/local/var/postgres -s` | Check startus of postgres server (running, stopped) | +| statuspost | `pg_ctl status -D /usr/local/var/postgres -s` | Check status of postgres server (running, stopped) | From 48a62a9f713449a014d66b01afd99a4fcf1911fe Mon Sep 17 00:00:00 2001 From: Kapil Pau Date: Fri, 13 Oct 2023 23:11:47 +0100 Subject: [PATCH 374/441] feat(span): Introducing Snapcraft CLI plugin (#9357) --- plugins/snap/README.md | 18 ++++++++++++++++++ plugins/snap/snap.plugin.zsh | 10 ++++++++++ 2 files changed, 28 insertions(+) create mode 100644 plugins/snap/README.md create mode 100644 plugins/snap/snap.plugin.zsh diff --git a/plugins/snap/README.md b/plugins/snap/README.md new file mode 100644 index 000000000..75c5ec19a --- /dev/null +++ b/plugins/snap/README.md @@ -0,0 +1,18 @@ +# snap plugin + +This plugin sets up aliases for the common [snap](https://snapcraft.io/docs/getting-started) commands + +## Aliases + +| Alias | Full command | +| --- | ---| +| sv | snap version | +| sf | snap find | +| si | snap install | +| sin | snap info | +| sr | snap remove | +| sref | snap refresh | +| srev | snap revert | +| sl | snap list | +| sd | snap disable | +| se | snap enable | diff --git a/plugins/snap/snap.plugin.zsh b/plugins/snap/snap.plugin.zsh new file mode 100644 index 000000000..af2346978 --- /dev/null +++ b/plugins/snap/snap.plugin.zsh @@ -0,0 +1,10 @@ +alias sv="snap version" +alias sf="snap find" +alias si="snap install" +alias sin="snap info" +alias sr="snap remove" +alias sref="snap refresh" +alias srev="snap revert" +alias sl="snap list" +alias sd="snap disable" +alias se="snap enable" From 2db53ff1da078b2207cb98736370f1f145e5c667 Mon Sep 17 00:00:00 2001 From: Steve Lessard Jr Date: Fri, 13 Oct 2023 18:26:16 -0400 Subject: [PATCH 375/441] fix(avit): RPROMPT Fix for #10307 (#11131) Co-authored-by: Steve Lessard --- themes/avit.zsh-theme | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/themes/avit.zsh-theme b/themes/avit.zsh-theme index 1279ea919..206274462 100644 --- a/themes/avit.zsh-theme +++ b/themes/avit.zsh-theme @@ -11,7 +11,12 @@ $(_user_host)${_current_dir} $(git_prompt_info) $(ruby_prompt_info) PROMPT2='%{%(!.${fg[red]}.${fg[white]})%}◀%{$reset_color%} ' -RPROMPT='$(vi_mode_prompt_info)%{$(echotc UP 1)%}$(_git_time_since_commit) $(git_prompt_status) ${_return_status}%{$(echotc DO 1)%}' +__RPROMPT='$(vi_mode_prompt_info)%{$(echotc UP 1)%}$(_git_time_since_commit) $(git_prompt_status) ${_return_status}%{$(echotc DO 1)%}' +if [[ -z $RPROMPT ]]; then + RPROMPT=$__RPROMPT +else + RPROMPT="${RPROMPT} ${__RPROMPT}" +fi function _user_host() { local me From f7130bb529a2d15652f739c552688b34aac63315 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Fri, 13 Oct 2023 15:38:13 -0700 Subject: [PATCH 376/441] fix(gnzh): Don't show .local for local hostnames in theme Fixes #10871 --- themes/gnzh.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/gnzh.zsh-theme b/themes/gnzh.zsh-theme index 1e6c4e93b..ca62320e2 100644 --- a/themes/gnzh.zsh-theme +++ b/themes/gnzh.zsh-theme @@ -21,7 +21,7 @@ fi if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then PR_HOST='%F{red}%M%f' # SSH else - PR_HOST='%F{green}%M%f' # no SSH + PR_HOST='%F{green}%m%f' # no SSH fi From f93976875133409297be864ce94d50f20a9bc18d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sat, 14 Oct 2023 16:40:45 +0200 Subject: [PATCH 377/441] fix(git): fix fallback to develop branch if `master` not found (#11966) --- plugins/git/git.plugin.zsh | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index b0376308f..d053a7638 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -20,26 +20,31 @@ function current_branch() { function git_develop_branch() { command git rev-parse --git-dir &>/dev/null || return local branch - for branch in dev devel development; do + for branch in dev devel develop development; do if command git show-ref -q --verify refs/heads/$branch; then echo $branch - return + return 0 fi done + echo develop + return 1 } # Check if main exists and use instead of master function git_main_branch() { command git rev-parse --git-dir &>/dev/null || return local ref - for ref in refs/{heads,remotes/{origin,upstream}}/{main,trunk,mainline,default}; do + for ref in refs/{heads,remotes/{origin,upstream}}/{main,trunk,mainline,default,master}; do if command git show-ref -q --verify $ref; then echo ${ref:t} - return + return 0 fi done + + # If no main branch was found, fall back to master but return error echo master + return 1 } function grename() { @@ -129,6 +134,8 @@ function gbda() { git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null local default_branch=$(git_main_branch) + (( ! $? )) || default_branch=$(git_develop_branch) + git for-each-ref refs/heads/ "--format=%(refname:short)" | \ while read branch; do local merge_base=$(git merge-base $default_branch $branch) From 96c976637a4112e1e72a1a449ac51d78acc67597 Mon Sep 17 00:00:00 2001 From: nishanthps-cai <123212871+nishanthps-cai@users.noreply.github.com> Date: Tue, 17 Oct 2023 00:55:05 -0700 Subject: [PATCH 378/441] feat(bazel): use completion also for bazelisk (#11984) --- plugins/bazel/_bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bazel/_bazel b/plugins/bazel/_bazel index c34c572b0..ea1f4cace 100644 --- a/plugins/bazel/_bazel +++ b/plugins/bazel/_bazel @@ -1,4 +1,4 @@ -#compdef bazel +#compdef bazel bazelisk # Copyright 2015 The Bazel Authors. All rights reserved. # From d3112d67a3eb55fc39975f917467704ebb2c296b Mon Sep 17 00:00:00 2001 From: Vyacheslav Scherbinin Date: Wed, 18 Oct 2023 14:18:05 +0700 Subject: [PATCH 379/441] feat(vscode): allow arguments to `vsc` alias (#11903) Co-authored-by: Carlo Sala --- plugins/vscode/README.md | 3 ++- plugins/vscode/vscode.plugin.zsh | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/plugins/vscode/README.md b/plugins/vscode/README.md index e95ed5d4f..726b23d35 100644 --- a/plugins/vscode/README.md +++ b/plugins/vscode/README.md @@ -31,7 +31,7 @@ the Command Palette via (F1 or ⇧⌘P) and type shell command to find the Shell ## Using multiple flavours -If for any reason, you ever require to use multiple flavours of VS Code i.e. VS Code (stable) and VS Code Insiders, you can +If for any reason, you ever require to use multiple flavours of VS Code i.e. VS Code (stable) and VS Code Insiders, you can manually specify the flavour's executable. Add the following line to the .zshrc file (between the `ZSH_THEME` and the `plugins=()` lines). This will make the plugin use your manually defined executable. @@ -53,6 +53,7 @@ source $ZSH/oh-my-zsh.sh | Alias | Command | Description | | ----------------------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------- | | vsc | code . | Open the current folder in VS code | +| vsc `dir` | code `dir` | Open passed folder in VS code | | vsca `dir` | code --add `dir` | Add folder(s) to the last active window | | vscd `file` `file` | code --diff `file` `file` | Compare two files with each other. | | vscg `file:line[:char]` | code --goto `file:line[:char]` | Open a file at the path on the specified line and character position. | diff --git a/plugins/vscode/vscode.plugin.zsh b/plugins/vscode/vscode.plugin.zsh index 48d904377..356c62360 100644 --- a/plugins/vscode/vscode.plugin.zsh +++ b/plugins/vscode/vscode.plugin.zsh @@ -23,7 +23,14 @@ if [[ -z "$VSCODE" ]]; then fi fi -alias vsc="$VSCODE ." +function vsc { + if (( $# )); then + $VSCODE $@ + else + $VSCODE . + fi +} + alias vsca="$VSCODE --add" alias vscd="$VSCODE --diff" alias vscg="$VSCODE --goto" From f10cd5281d805bb5679dd46b304d9b8997f98981 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patryk=20Krawaczy=C5=84ski?= Date: Wed, 18 Oct 2023 13:59:28 +0200 Subject: [PATCH 380/441] feat(history): add `hl` alias (#11990) --- plugins/history/README.md | 1 + plugins/history/history.plugin.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/history/README.md b/plugins/history/README.md index a9d480f46..73d6a5052 100644 --- a/plugins/history/README.md +++ b/plugins/history/README.md @@ -13,5 +13,6 @@ plugins=(... history) | Alias | Command | Description | |-------|----------------------|------------------------------------------------------------------| | `h` | `history` | Prints your command history | +| `hl` | `history \| less` | Pipe history output to less to search and navigate it easily | | `hs` | `history \| grep` | Use grep to search your command history | | `hsi` | `history \| grep -i` | Use grep to do a case-insensitive search of your command history | diff --git a/plugins/history/history.plugin.zsh b/plugins/history/history.plugin.zsh index 9cee48fe4..fb3e31389 100644 --- a/plugins/history/history.plugin.zsh +++ b/plugins/history/history.plugin.zsh @@ -1,3 +1,4 @@ alias h='history' +alias hl='history | less' alias hs='history | grep' alias hsi='history | grep -i' From b696288337618ca749369a679bd77989bd4cd47e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my?= Date: Wed, 18 Oct 2023 19:27:47 +0200 Subject: [PATCH 381/441] feat(kubectl): add `kgdsa` alias (#11863) --- plugins/kubectl/kubectl.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/kubectl/kubectl.plugin.zsh b/plugins/kubectl/kubectl.plugin.zsh index 315d3ce93..0dd4e691a 100644 --- a/plugins/kubectl/kubectl.plugin.zsh +++ b/plugins/kubectl/kubectl.plugin.zsh @@ -162,6 +162,7 @@ alias kdelsa="kubectl delete sa" # DaemonSet management. alias kgds='kubectl get daemonset' +alias kgdsa='kubectl get daemonset --all-namespaces' alias kgdsw='kgds --watch' alias keds='kubectl edit daemonset' alias kdds='kubectl describe daemonset' From 8152dc673b14c89dc12e816583e24532ed77e8ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 18 Oct 2023 20:01:58 +0200 Subject: [PATCH 382/441] fix(git): move squash-merged branch deletion from `gbda` to `gbds` function (#11991) --- plugins/git/README.md | 3 ++- plugins/git/git.plugin.zsh | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index a4e9f4c4a..724965302 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -250,7 +250,8 @@ receive further support. | `git_develop_branch` | Returns the name of the “development” branch: `dev`, `devel`, `development` if they exist, `develop` otherwise. | | `git_main_branch` | Returns the name of the main branch: `main` if it exists, `master` otherwise. | | `grename ` | Renames branch `` to ``, including on the origin remote. | -| `gbda` | Deletes all merged and squash-merged branches | +| `gbda` | Deletes all merged branches | +| `gbds` | Deletes all squash-merged branches (**Note: performance degrades with number of branches**) | ### Work in Progress (WIP) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index d053a7638..48937cb83 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -128,11 +128,13 @@ alias gba='git branch --all' alias gbd='git branch --delete' alias gbD='git branch --delete --force' -# Copied and modified from James Roeder (jmaroeder) under MIT License -# https://github.com/jmaroeder/plugin-git/blob/216723ef4f9e8dde399661c39c80bdf73f4076c4/functions/gbda.fish function gbda() { git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null +} +# Copied and modified from James Roeder (jmaroeder) under MIT License +# https://github.com/jmaroeder/plugin-git/blob/216723ef4f9e8dde399661c39c80bdf73f4076c4/functions/gbda.fish +function gbds() { local default_branch=$(git_main_branch) (( ! $? )) || default_branch=$(git_develop_branch) From 0da416986aadbaf89dc5596b01f9b42403f4d9fd Mon Sep 17 00:00:00 2001 From: Vishal Sharma <106011641+vishal-sharma-369@users.noreply.github.com> Date: Wed, 18 Oct 2023 23:44:47 +0530 Subject: [PATCH 383/441] fix(ssh-agent): add error message if `~/.ssh` is not found (#11929) Closes #11829 Co-authored-by: Carlo Sala --- plugins/ssh-agent/ssh-agent.plugin.zsh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/ssh-agent/ssh-agent.plugin.zsh b/plugins/ssh-agent/ssh-agent.plugin.zsh index 78ac46b13..49ad95a11 100644 --- a/plugins/ssh-agent/ssh-agent.plugin.zsh +++ b/plugins/ssh-agent/ssh-agent.plugin.zsh @@ -13,6 +13,11 @@ function _start_agent() { fi fi + if [[ ! -d "$HOME/.ssh" ]]; then + echo "[oh-my-zsh] ssh-agent plugin requires ~/.ssh directory" + return 1 + fi + # Set a maximum lifetime for identities added to ssh-agent local lifetime zstyle -s :omz:plugins:ssh-agent lifetime lifetime From 104041a018dc9a3eb74f93815192dba4c9386e1a Mon Sep 17 00:00:00 2001 From: Peat Bakke Date: Thu, 19 Oct 2023 02:49:38 -0700 Subject: [PATCH 384/441] feat(tmux): add `tds` alias for directory sessions (#11987) --- plugins/tmux/README.md | 1 + plugins/tmux/tmux.plugin.zsh | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/plugins/tmux/README.md b/plugins/tmux/README.md index 0f8473daf..b4516ef26 100644 --- a/plugins/tmux/README.md +++ b/plugins/tmux/README.md @@ -25,6 +25,7 @@ The plugin also supports the following: | `tkss` | tmux kill-session -t | Terminate named running tmux session | | `tmux` | `_zsh_tmux_plugin_run` | Start a new tmux session | | `tmuxconf` | `$EDITOR $ZSH_TMUX_CONFIG` | Open .tmux.conf file with an editor | +| `tds` | `_tmux_directory_session` | Creates or attaches to a session for the current path | ## Configuration Variables diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 6ed91c447..72cdd4818 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -108,6 +108,19 @@ compdef _tmux _zsh_tmux_plugin_run # Alias tmux to our wrapper function. alias tmux=_zsh_tmux_plugin_run +function _tmux_directory_session() { + # current directory without leading path + local dir=${PWD##*/} + # md5 hash for the full working directory path + local md5=$(printf '%s' "$PWD" | md5sum | cut -d ' ' -f 1) + # human friendly unique session name for this directory + local session_name="${dir}-${md5:0:6}" + # create or attach to the session + tmux new -As "$session_name" +} + +alias tds=_tmux_directory_session + # Autostart if not already in tmux and enabled. if [[ -z "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" && -z "$INSIDE_EMACS" && -z "$EMACS" && -z "$VIM" && -z "$INTELLIJ_ENVIRONMENT_READER" ]]; then # Actually don't autostart if we already did and multiple autostarts are disabled. From a8dee63ffe8839d3bcf1066f8359fa43caccf3f2 Mon Sep 17 00:00:00 2001 From: Ryan Tvenge Date: Thu, 19 Oct 2023 09:41:36 -0500 Subject: [PATCH 385/441] feat(lando): bypass `lando` if command is not available in container (#11993) Closes #11993 --- plugins/lando/lando.plugin.zsh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/plugins/lando/lando.plugin.zsh b/plugins/lando/lando.plugin.zsh index af53e7e5a..b5fa80092 100644 --- a/plugins/lando/lando.plugin.zsh +++ b/plugins/lando/lando.plugin.zsh @@ -11,15 +11,23 @@ function artisan \ php \ wp \ yarn { - if checkForLandoFile; then - lando "$0" "$@" + # If the lando task is available in `lando --help`, then it means: + # + # 1. `lando` is in a project with a `.lando.yml` file. + # 2. The lando task is available for lando, based on the .lando.yml config file. + # + # This has a penalty of about 250ms, so we still want to check if the lando file + # exists before, which is the fast path. If it exists, checking help output is + # still faster than running the command and failing. + if _lando_file_exists && lando --help 2>&1 | command grep -Eq "^ +lando $0 "; then + command lando "$0" "$@" else command "$0" "$@" fi } # Check for the file in the current and parent directories. -checkForLandoFile() { +_lando_file_exists() { # Only bother checking for lando within the Sites directory. if [[ "$PWD/" != "$LANDO_ZSH_SITES_DIRECTORY"/* ]]; then # Not within $LANDO_ZSH_SITES_DIRECTORY @@ -38,4 +46,4 @@ checkForLandoFile() { # Could not find $LANDO_ZSH_CONFIG_FILE in the current directory # or in any of its parents up to $LANDO_ZSH_SITES_DIRECTORY. return 1 -} \ No newline at end of file +} From d082d87580f05cca524c546d54eb8009cf8bb10c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 19 Oct 2023 20:35:01 +0200 Subject: [PATCH 386/441] refactor(lando): add `LANDO_ZSH_WRAPPED_COMMANDS` setting and refactor --- plugins/lando/README.md | 24 +++++++++++++++++++++--- plugins/lando/lando.plugin.zsh | 19 +++++++++++-------- 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/plugins/lando/README.md b/plugins/lando/README.md index 6daeae4e4..2f881cf3d 100644 --- a/plugins/lando/README.md +++ b/plugins/lando/README.md @@ -8,7 +8,7 @@ To use it, add `lando` to the plugins array in your zshrc file: plugins=(... lando) ``` -## ALIASES: +## Wrapped Commands | Alias | Description | |:----------:|:----------------:| @@ -21,16 +21,34 @@ plugins=(... lando) | `wp` | `lando wp` | | `yarn` | `lando yarn` | +More or different commands can be wrapped by setting the `LANDO_ZSH_WRAPPED_COMMANDS` setting, see [Settings](#settings) below. + ## How It Works: This plugin removes the requirement to type `lando` before a command. It utilizes the lando version of supported commands run within directories with the following criteria: + - The `.lando.yml` file is found in the current directory or any parent directory within `$LANDO_ZSH_SITES_DIRECTORY`. - The current directory is within `$LANDO_ZSH_SITES_DIRECTORY` but is not `$LANDO_ZSH_SITES_DIRECTORY` itself. +- If the command is not a part of the commands available in the lando environment, it will run the command without `lando`. ## Settings: -- `LANDO_ZSH_SITES_DIRECTORY`: The plugin will stop searching through parents for `CONFIG_FILE` once it hits this directory. -- `LANDO_ZSH_CONFIG_FILE`: The plugin will check to see if this provided file exists to check for presence of Lando. +> NOTE: these settings must be set *before* the plugin is loaded, and any changes require a restart of the shell to be applied. + +- `LANDO_ZSH_SITES_DIRECTORY`: The plugin will stop searching through parents for `CONFIG_FILE` once it hits this directory: + ```sh + LANDO_ZSH_SITES_DIRECTORY="$HOME/Code" + ``` + +- `LANDO_ZSH_CONFIG_FILE`: The plugin will check to see if this provided file exists to check for presence of Lando: + ```sh + LANDO_ZSH_CONFIG_FILE=".lando.dev.yml" + ``` + +- `LANDO_ZSH_WRAPPED_COMMANDS`: The list of commands to wrap, as a string of commands separated by whitespace: + ```sh + LANDO_ZSH_WRAPPED_COMMANDS="mysql php composer test artisan" + ``` ## Author: diff --git a/plugins/lando/lando.plugin.zsh b/plugins/lando/lando.plugin.zsh index b5fa80092..ee796d212 100644 --- a/plugins/lando/lando.plugin.zsh +++ b/plugins/lando/lando.plugin.zsh @@ -1,16 +1,19 @@ # Settings : ${LANDO_ZSH_SITES_DIRECTORY:="$HOME/Sites"} : ${LANDO_ZSH_CONFIG_FILE:=.lando.yml} +: ${LANDO_ZSH_WRAPPED_COMMANDS:=" + artisan + composer + drush + gulp + npm + php + wp + yarn +"} # Enable multiple commands with lando. -function artisan \ - composer \ - drush \ - gulp \ - npm \ - php \ - wp \ - yarn { +function ${=LANDO_ZSH_WRAPPED_COMMANDS} { # If the lando task is available in `lando --help`, then it means: # # 1. `lando` is in a project with a `.lando.yml` file. From 9f84ba085425800dee0b4e391d8cf377806dc75e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 19 Oct 2023 20:47:26 +0200 Subject: [PATCH 387/441] feat(command-not-found): add support for Homebrew on Linux Fixes #11151 --- plugins/command-not-found/command-not-found.plugin.zsh | 3 ++- 1 file changed, 2 insertions(+), 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 cb8a8989c..c741e18a2 100644 --- a/plugins/command-not-found/command-not-found.plugin.zsh +++ b/plugins/command-not-found/command-not-found.plugin.zsh @@ -3,9 +3,10 @@ for file ( # Arch Linux. Must have pkgfile installed: https://wiki.archlinux.org/index.php/Pkgfile#Command_not_found /usr/share/doc/pkgfile/command-not-found.zsh - # macOS (M1 and classic Homebrew): https://github.com/Homebrew/homebrew-command-not-found + # Homebrew: https://github.com/Homebrew/homebrew-command-not-found /opt/homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh /usr/local/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh + /home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh ); do if [[ -r "$file" ]]; then source "$file" From 207d29b716301c77392ae140b1482eeba44e9102 Mon Sep 17 00:00:00 2001 From: Zeeshan Date: Tue, 4 Oct 2022 18:51:24 +0530 Subject: [PATCH 388/441] fix(git)!: standardize `git pull --rebase` aliases (#11224) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BREAKING CHANGE: The alias `gup` for `git pull --rebase` and its derivatives are replaced by `gpr` for standardization. This means the previous aliases will no longer be available after a few months. Meanwhile, the original aliases are still working, with a deprecation notice. See https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/git/README.md#deprecated-aliases for the full list of deprecated aliases. Fixes #11104 Closes #11224 Co-authored-by: Marc Cornellà --- plugins/git/README.md | 434 +++++++++++++++++++------------------ plugins/git/git.plugin.zsh | 29 ++- 2 files changed, 242 insertions(+), 221 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 724965302..93dc8ccea 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -10,207 +10,205 @@ plugins=(... git) ## Aliases -| Alias | Command | -| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `grt` | `cd "$(git rev-parse --show-toplevel \|\| echo .)"` | -| `ggpnp` | `ggl && ggp` | -| `ggpur` | `ggu` | -| `g` | `git` | -| `ga` | `git add` | -| `gaa` | `git add --all` | -| `gapa` | `git add --patch` | -| `gau` | `git add --update` | -| `gav` | `git add --verbose` | -| `gwip` | `git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"` | -| `gam` | `git am` | -| `gama` | `git am --abort` | -| `gamc` | `git am --continue` | -| `gamscp` | `git am --show-current-patch` | -| `gams` | `git am --skip` | -| `gap` | `git apply` | -| `gapt` | `git apply --3way` | -| `gbs` | `git bisect` | -| `gbsb` | `git bisect bad` | -| `gbsg` | `git bisect good` | -| `gbsn` | `git bisect new` | -| `gbso` | `git bisect old` | -| `gbsr` | `git bisect reset` | -| `gbss` | `git bisect start` | -| `gbl` | `git blame -w` | -| `gb` | `git branch` | -| `gba` | `git branch --all` | -| `gbd` | `git branch --delete` | -| `gbD` | `git branch --delete --force` | -| `gbgd` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -d` | -| `gbgD` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -D` | -| `gbm` | `git branch --move` | -| `gbnm` | `git branch --no-merged` | -| `gbr` | `git branch --remote` | -| `ggsup` | `git branch --set-upstream-to=origin/$(git_current_branch)` | -| `gbg` | `LANG=C git branch -vv \| grep ": gone\]"` | -| `gco` | `git checkout` | -| `gcor` | `git checkout --recurse-submodules` | -| `gcb` | `git checkout -b` | -| `gcd` | `git checkout $(git_develop_branch)` | -| `gcm` | `git checkout $(git_main_branch)` | -| `gcp` | `git cherry-pick` | -| `gcpa` | `git cherry-pick --abort` | -| `gcpc` | `git cherry-pick --continue` | -| `gclean` | `git clean --interactive -d` | -| `gcl` | `git clone --recurse-submodules` | -| `gccd` | `git clone --recurse-submodules "$@" && cd "$(basename $\_ .git)"` | -| `gcam` | `git commit --all --message` | -| `gcas` | `git commit --all --signoff` | -| `gcasm` | `git commit --all --signoff --message` | -| `gcmsg` | `git commit --message` | -| `gcsm` | `git commit --signoff --message` | -| `gc` | `git commit --verbose` | -| `gca` | `git commit --verbose --all` | -| `gca!` | `git commit --verbose --all --amend` | -| `gcan!` | `git commit --verbose --all --no-edit --amend` | -| `gcans!` | `git commit --verbose --all --signoff --no-edit --amend` | -| `gc!` | `git commit --verbose --amend` | -| `gcn!` | `git commit --verbose --no-edit --amend` | -| `gcs` | `git commit -S` | -| `gcss` | `git commit -S -s` | -| `gcssm` | `git commit -S -s -m` | -| `gcf` | `git config --list` | -| `gdct` | `git describe --tags $(git rev-list --tags --max-count=1)` | -| `gd` | `git diff` | -| `gdca` | `git diff --cached` | -| `gdcw` | `git diff --cached --word-diff` | -| `gds` | `git diff --staged` | -| `gdw` | `git diff --word-diff` | -| `gdv` | `git diff -w "$@" \| view -` | -| `gdup` | `git diff @{upstream}` | -| `gdnolock` | `git diff $@ ":(exclude)package-lock.json" ":(exclude)\*.lock"` | -| `gdt` | `git diff-tree --no-commit-id --name-only -r` | -| `gf` | `git fetch` | -| `gfa` | `git fetch --all --prune` | -| `gfo` | `git fetch origin` | -| `gg` | `git gui citool` | -| `gga` | `git gui citool --amend` | -| `ghh` | `git help` | -| `glgg` | `git log --graph` | -| `glgga` | `git log --graph --decorate --all` | -| `glgm` | `git log --graph --max-count=10` | -| `glod` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'` | -| `glods` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short` | -| `glol` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'` | -| `glola` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all` | -| `glols` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat` | -| `glo` | `git log --oneline --decorate` | -| `glog` | `git log --oneline --decorate --graph` | -| `gloga` | `git log --oneline --decorate --graph --all` | -| `glp` | `git log --pretty=` | -| `glg` | `git log --stat` | -| `glgp` | `git log --stat --patch` | -| `gignored` | `git ls-files -v \| grep "^[[:lower:]]"` | -| `gfg` | `git ls-files \| grep` | -| `gm` | `git merge` | -| `gma` | `git merge --abort` | -| `gms` | `git merge --squash` | -| `gmom` | `git merge origin/$(git_main_branch)` | -| `gmum` | `git merge upstream/$(git_main_branch)` | -| `gmtl` | `git mergetool --no-prompt` | -| `gmtlvim` | `git mergetool --no-prompt --tool=vimdiff` | -| `gl` | `git pull` | -| `gpr` | `git pull --rebase` | -| `gup` | `git pull --rebase` | -| `gupa` | `git pull --rebase --autostash` | -| `gupav` | `git pull --rebase --autostash --verbose` | -| `gupv` | `git pull --rebase --verbose` | -| `ggu` | `git pull --rebase origin $(current_branch)` | -| `gupom` | `git pull --rebase origin $(git_main_branch)` | -| `gupomi` | `git pull --rebase=interactive origin $(git_main_branch)` | -| `ggpull` | `git pull origin "$(git_current_branch)"` | -| `ggl` | `git pull origin $(current_branch)` | -| `gluc` | `git pull upstream $(git_current_branch)` | -| `glum` | `git pull upstream $(git_main_branch)` | -| `gp` | `git push` | -| `gpd` | `git push --dry-run` | -| `gpf!` | `git push --force` | -| `ggf` | `git push --force origin $(current_branch)` | -| `gpf` | On Git >= 2.30: `git push --force-with-lease --force-if-includes` | -| `gpf` | On Git < 2.30: `git push --force-with-lease` | -| `ggfl` | `git push --force-with-lease origin $(current_branch)` | -| `gpsup` | `git push --set-upstream origin $(git_current_branch)` | -| `gpsupf` | On Git >= 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes` | -| `gpsupf` | On Git < 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease` | -| `gpv` | `git push --verbose` | -| `gpoat` | `git push origin --all && git push origin --tags` | -| `gpod` | `git push origin --delete` | -| `ggpush` | `git push origin "$(git_current_branch)"` | -| `ggp` | `git push origin $(current_branch)` | -| `gpu` | `git push upstream` | -| `grb` | `git rebase` | -| `grba` | `git rebase --abort` | -| `grbc` | `git rebase --continue` | -| `grbi` | `git rebase --interactive` | -| `grbo` | `git rebase --onto` | -| `grbs` | `git rebase --skip` | -| `grbd` | `git rebase $(git_develop_branch)` | -| `grbm` | `git rebase $(git_main_branch)` | -| `grbom` | `git rebase origin/$(git_main_branch)` | -| `gr` | `git remote` | -| `grv` | `git remote --verbose` | -| `gra` | `git remote add` | -| `grrm` | `git remote remove` | -| `grmv` | `git remote rename` | -| `grset` | `git remote set-url` | -| `grup` | `git remote update` | -| `grh` | `git reset` | -| `gru` | `git reset --` | -| `grhh` | `git reset --hard` | -| `grhk` | `git reset --keep` | -| `grhs` | `git reset --soft` | -| `gpristine` | `git reset --hard && git clean -dffx` | -| `groh` | `git reset origin/$(git_current_branch) --hard` | -| `grs` | `git restore` | -| `grss` | `git restore --source` | -| `grst` | `git restore --staged` | -| `gunwip` | `git rev-list --max-count=1 --format="%s" HEAD \| grep -q "--wip--" && git reset HEAD~1` | -| `grev` | `git revert` | -| `grm` | `git rm` | -| `grmc` | `git rm --cached` | -| `gcount` | `git shortlog --summary -n` | -| `gsh` | `git show` | -| `gsps` | `git show --pretty=short --show-signature` | -| `gstall` | `git stash --all` | -| `gstu` | `git stash --include-untracked` | -| `gstaa` | `git stash apply` | -| `gstc` | `git stash clear` | -| `gstd` | `git stash drop` | -| `gstl` | `git stash list` | -| `gstp` | `git stash pop` | -| `gsta` | On Git >= 2.13: `git stash push` | -| `gsta` | On Git < 2.13: `git stash save` | -| `gsts` | `git stash show --patch` | -| `gst` | `git status` | -| `gss` | `git status --short` | -| `gsb` | `git status --short -b` | -| `gsi` | `git submodule init` | -| `gsu` | `git submodule update` | -| `gsd` | `git svn dcommit` | -| `git-svn-dcommit-push` | `git svn dcommit && git push github $(git_main_branch):svntrunk` | -| `gsr` | `git svn rebase` | -| `gsw` | `git switch` | -| `gswc` | `git switch -c` | -| `gswd` | `git switch $(git_develop_branch)` | -| `gswm` | `git switch $(git_main_branch)` | -| `gta` | `git tag --annotate` | -| `gts` | `git tag -s` | -| `gtv` | `git tag \| sort -V` | -| `gignore` | `git update-index --assume-unchanged` | -| `gunignore` | `git update-index --no-assume-unchanged` | -| `gwch` | `git whatchanged -p --abbrev-commit --pretty=medium` | -| `gwt` | `git worktree` | -| `gwtls` | `git worktree list` | -| `gwtmv` | `git worktree move` | -| `gwtrm` | `git worktree remove` | -| `gk` | `gitk --all --branches &!` | -| `gke` | `gitk --all $(git log --walk-reflogs --pretty=%h) &!` | -| `gtl` | `gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl` | +| Alias | Command | +| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------ | +| `grt` | `cd "$(git rev-parse --show-toplevel \|\| echo .)"` | +| `ggpnp` | `ggl && ggp` | +| `ggpur` | `ggu` | +| `g` | `git` | +| `ga` | `git add` | +| `gaa` | `git add --all` | +| `gapa` | `git add --patch` | +| `gau` | `git add --update` | +| `gav` | `git add --verbose` | +| `gwip` | `git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"` | +| `gam` | `git am` | +| `gama` | `git am --abort` | +| `gamc` | `git am --continue` | +| `gamscp` | `git am --show-current-patch` | +| `gams` | `git am --skip` | +| `gap` | `git apply` | +| `gapt` | `git apply --3way` | +| `gbs` | `git bisect` | +| `gbsb` | `git bisect bad` | +| `gbsg` | `git bisect good` | +| `gbsn` | `git bisect new` | +| `gbso` | `git bisect old` | +| `gbsr` | `git bisect reset` | +| `gbss` | `git bisect start` | +| `gbl` | `git blame -w` | +| `gb` | `git branch` | +| `gba` | `git branch --all` | +| `gbd` | `git branch --delete` | +| `gbD` | `git branch --delete --force` | +| `gbgd` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -d` | +| `gbgD` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -D` | +| `gbm` | `git branch --move` | +| `gbnm` | `git branch --no-merged` | +| `gbr` | `git branch --remote` | +| `ggsup` | `git branch --set-upstream-to=origin/$(git_current_branch)` | +| `gbg` | `LANG=C git branch -vv \| grep ": gone\]"` | +| `gco` | `git checkout` | +| `gcor` | `git checkout --recurse-submodules` | +| `gcb` | `git checkout -b` | +| `gcd` | `git checkout $(git_develop_branch)` | +| `gcm` | `git checkout $(git_main_branch)` | +| `gcp` | `git cherry-pick` | +| `gcpa` | `git cherry-pick --abort` | +| `gcpc` | `git cherry-pick --continue` | +| `gclean` | `git clean --interactive -d` | +| `gcl` | `git clone --recurse-submodules` | +| `gccd` | `git clone --recurse-submodules "$@" && cd "$(basename $\_ .git)"` | +| `gcam` | `git commit --all --message` | +| `gcas` | `git commit --all --signoff` | +| `gcasm` | `git commit --all --signoff --message` | +| `gcmsg` | `git commit --message` | +| `gcsm` | `git commit --signoff --message` | +| `gc` | `git commit --verbose` | +| `gca` | `git commit --verbose --all` | +| `gca!` | `git commit --verbose --all --amend` | +| `gcan!` | `git commit --verbose --all --no-edit --amend` | +| `gcans!` | `git commit --verbose --all --signoff --no-edit --amend` | +| `gc!` | `git commit --verbose --amend` | +| `gcn!` | `git commit --verbose --no-edit --amend` | +| `gcs` | `git commit -S` | +| `gcss` | `git commit -S -s` | +| `gcssm` | `git commit -S -s -m` | +| `gcf` | `git config --list` | +| `gdct` | `git describe --tags $(git rev-list --tags --max-count=1)` | +| `gd` | `git diff` | +| `gdca` | `git diff --cached` | +| `gdcw` | `git diff --cached --word-diff` | +| `gds` | `git diff --staged` | +| `gdw` | `git diff --word-diff` | +| `gdv` | `git diff -w "$@" \| view -` | +| `gdup` | `git diff @{upstream}` | +| `gdnolock` | `git diff $@ ":(exclude)package-lock.json" ":(exclude)\*.lock"` | +| `gdt` | `git diff-tree --no-commit-id --name-only -r` | +| `gf` | `git fetch` | +| `gfa` | `git fetch --all --prune` | +| `gfo` | `git fetch origin` | +| `gg` | `git gui citool` | +| `gga` | `git gui citool --amend` | +| `ghh` | `git help` | +| `glgg` | `git log --graph` | +| `glgga` | `git log --graph --decorate --all` | +| `glgm` | `git log --graph --max-count=10` | +| `glod` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'` | +| `glods` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short` | +| `glol` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'` | +| `glola` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all` | +| `glols` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat` | +| `glo` | `git log --oneline --decorate` | +| `glog` | `git log --oneline --decorate --graph` | +| `gloga` | `git log --oneline --decorate --graph --all` | +| `glp` | `git log --pretty=` | +| `glg` | `git log --stat` | +| `glgp` | `git log --stat --patch` | +| `gignored` | `git ls-files -v \| grep "^[[:lower:]]"` | +| `gfg` | `git ls-files \| grep` | +| `gm` | `git merge` | +| `gma` | `git merge --abort` | +| `gms` | `git merge --squash` | +| `gmom` | `git merge origin/$(git_main_branch)` | +| `gmum` | `git merge upstream/$(git_main_branch)` | +| `gmtl` | `git mergetool --no-prompt` | +| `gmtlvim` | `git mergetool --no-prompt --tool=vimdiff` | +| `gl` | `git pull` | +| `gpr` | `git pull --rebase` | +| `gprv` | `git pull --rebase -v` | +| `gpra` | `git pull --rebase --autostash` | +| `gprav` | `git pull --rebase --autostash -v` | +| `gprom` | `git pull --rebase origin $(git_main_branch)` | +| `gpromi` | `git pull --rebase=interactive origin $(git_main_branch)` | +| `ggpull` | `git pull origin "$(git_current_branch)"` | +| `ggl` | `git pull origin $(current_branch)` | +| `gluc` | `git pull upstream $(git_current_branch)` | +| `glum` | `git pull upstream $(git_main_branch)` | +| `gp` | `git push` | +| `gpd` | `git push --dry-run` | +| `gpf!` | `git push --force` | +| `ggf` | `git push --force origin $(current_branch)` | +| `gpf` | On Git >= 2.30: `git push --force-with-lease --force-if-includes` | +| `gpf` | On Git < 2.30: `git push --force-with-lease` | +| `ggfl` | `git push --force-with-lease origin $(current_branch)` | +| `gpsup` | `git push --set-upstream origin $(git_current_branch)` | +| `gpsupf` | On Git >= 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes` | +| `gpsupf` | On Git < 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease` | +| `gpv` | `git push --verbose` | +| `gpoat` | `git push origin --all && git push origin --tags` | +| `gpod` | `git push origin --delete` | +| `ggpush` | `git push origin "$(git_current_branch)"` | +| `ggp` | `git push origin $(current_branch)` | +| `gpu` | `git push upstream` | +| `grb` | `git rebase` | +| `grba` | `git rebase --abort` | +| `grbc` | `git rebase --continue` | +| `grbi` | `git rebase --interactive` | +| `grbo` | `git rebase --onto` | +| `grbs` | `git rebase --skip` | +| `grbd` | `git rebase $(git_develop_branch)` | +| `grbm` | `git rebase $(git_main_branch)` | +| `grbom` | `git rebase origin/$(git_main_branch)` | +| `gr` | `git remote` | +| `grv` | `git remote --verbose` | +| `gra` | `git remote add` | +| `grrm` | `git remote remove` | +| `grmv` | `git remote rename` | +| `grset` | `git remote set-url` | +| `grup` | `git remote update` | +| `grh` | `git reset` | +| `gru` | `git reset --` | +| `grhh` | `git reset --hard` | +| `grhk` | `git reset --keep` | +| `grhs` | `git reset --soft` | +| `gpristine` | `git reset --hard && git clean -dffx` | +| `groh` | `git reset origin/$(git_current_branch) --hard` | +| `grs` | `git restore` | +| `grss` | `git restore --source` | +| `grst` | `git restore --staged` | +| `gunwip` | `git rev-list --max-count=1 --format="%s" HEAD \| grep -q "--wip--" && git reset HEAD~1` | +| `grev` | `git revert` | +| `grm` | `git rm` | +| `grmc` | `git rm --cached` | +| `gcount` | `git shortlog --summary -n` | +| `gsh` | `git show` | +| `gsps` | `git show --pretty=short --show-signature` | +| `gstall` | `git stash --all` | +| `gstu` | `git stash --include-untracked` | +| `gstaa` | `git stash apply` | +| `gstc` | `git stash clear` | +| `gstd` | `git stash drop` | +| `gstl` | `git stash list` | +| `gstp` | `git stash pop` | +| `gsta` | On Git >= 2.13: `git stash push` | +| `gsta` | On Git < 2.13: `git stash save` | +| `gsts` | `git stash show --patch` | +| `gst` | `git status` | +| `gss` | `git status --short` | +| `gsb` | `git status --short -b` | +| `gsi` | `git submodule init` | +| `gsu` | `git submodule update` | +| `gsd` | `git svn dcommit` | +| `git-svn-dcommit-push` | `git svn dcommit && git push github $(git_main_branch):svntrunk` | +| `gsr` | `git svn rebase` | +| `gsw` | `git switch` | +| `gswc` | `git switch -c` | +| `gswd` | `git switch $(git_develop_branch)` | +| `gswm` | `git switch $(git_main_branch)` | +| `gta` | `git tag --annotate` | +| `gts` | `git tag -s` | +| `gtv` | `git tag \| sort -V` | +| `gignore` | `git update-index --assume-unchanged` | +| `gunignore` | `git update-index --no-assume-unchanged` | +| `gwch` | `git whatchanged -p --abbrev-commit --pretty=medium` | +| `gwt` | `git worktree` | +| `gwtls` | `git worktree list` | +| `gwtmv` | `git worktree move` | +| `gwtrm` | `git worktree remove` | +| `gk` | `gitk --all --branches &!` | +| `gke` | `gitk --all $(git log --walk-reflogs --pretty=%h) &!` | +| `gtl` | `gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl` | ### Main branch preference @@ -224,19 +222,25 @@ branch exists. We do this via the function `git_main_branch`. These are aliases that have been removed, renamed, or otherwise modified in a way that may, or may not, receive further support. -| Alias | Command | Modification | -| :------- | :----------------------------------------------------- | :-------------------------------------------------------- | -| `gap` | `git add --patch` | New alias: `gapa`. | -| `gcl` | `git config --list` | New alias: `gcf`. | -| `gdc` | `git diff --cached` | New alias: `gdca`. | -| `gdt` | `git difftool` | No replacement. | -| `ggpull` | `git pull origin $(current_branch)` | New alias: `ggl`. (`ggpull` still exists for now though.) | -| `ggpur` | `git pull --rebase origin $(current_branch)` | New alias: `ggu`. (`ggpur` still exists for now though.) | -| `ggpush` | `git push origin $(current_branch)` | New alias: `ggp`. (`ggpush` still exists for now though.) | -| `gk` | `gitk --all --branches` | Now aliased to `gitk --all --branches`. | -| `glg` | `git log --stat --max-count=10` | Now aliased to `git log --stat --color`. | -| `glgg` | `git log --graph --max-count=10` | Now aliased to `git log --graph --color`. | -| `gwc` | `git whatchanged -p --abbrev-commit --pretty = medium` | New alias: `gwch`. | +| Alias | Command | Modification | +| :------- | :-------------------------------------------------------- | :-------------------------------------------------------- | +| `gap` | `git add --patch` | New alias: `gapa`. | +| `gcl` | `git config --list` | New alias: `gcf`. | +| `gdc` | `git diff --cached` | New alias: `gdca`. | +| `gdt` | `git difftool` | No replacement. | +| `ggpull` | `git pull origin $(current_branch)` | New alias: `ggl`. (`ggpull` still exists for now though.) | +| `ggpur` | `git pull --rebase origin $(current_branch)` | New alias: `ggu`. (`ggpur` still exists for now though.) | +| `ggpush` | `git push origin $(current_branch)` | New alias: `ggp`. (`ggpush` still exists for now though.) | +| `gk` | `gitk --all --branches` | Now aliased to `gitk --all --branches`. | +| `glg` | `git log --stat --max-count=10` | Now aliased to `git log --stat --color`. | +| `glgg` | `git log --graph --max-count=10` | Now aliased to `git log --graph --color`. | +| `gwc` | `git whatchanged -p --abbrev-commit --pretty = medium` | New alias: `gwch`. | +| `gup` | `git pull --rebase` | now alias `gpr` | +| `gupv` | `git pull --rebase -v` | now alias `gprv` | +| `gupa` | `git pull --rebase --autostash` | now alias `gpra` | +| `gupav` | `git pull --rebase --autostash -v` | now alias `gprav` | +| `gupom` | `git pull --rebase origin $(git_main_branch)` | now alias `gprom` | +| `gupomi` | `git pull --rebase=interactive origin $(git_main_branch)` | now alias `gpromi` | ## Functions @@ -250,7 +254,7 @@ receive further support. | `git_develop_branch` | Returns the name of the “development” branch: `dev`, `devel`, `development` if they exist, `develop` otherwise. | | `git_main_branch` | Returns the name of the main branch: `main` if it exists, `master` otherwise. | | `grename ` | Renames branch `` to ``, including on the origin remote. | -| `gbda` | Deletes all merged branches | +| `gbda` | Deletes all merged branches | | `gbds` | Deletes all squash-merged branches (**Note: performance degrades with number of branches**) | ### Work in Progress (WIP) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 48937cb83..5ec2bbe2b 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -246,12 +246,12 @@ alias gmom='git merge origin/$(git_main_branch)' alias gmum='git merge upstream/$(git_main_branch)' alias gmtl='git mergetool --no-prompt' alias gmtlvim='git mergetool --no-prompt --tool=vimdiff' + alias gl='git pull' alias gpr='git pull --rebase' -alias gup='git pull --rebase' -alias gupa='git pull --rebase --autostash' -alias gupav='git pull --rebase --autostash --verbose' -alias gupv='git pull --rebase --verbose' +alias gprv='git pull --rebase -v' +alias gpra='git pull --rebase --autostash' +alias gprav='git pull --rebase --autostash -v' function ggu() { [[ "$#" != 1 ]] && local b="$(git_current_branch)" @@ -259,8 +259,8 @@ function ggu() { } compdef _git ggu=git-checkout -alias gupom='git pull --rebase origin $(git_main_branch)' -alias gupomi='git pull --rebase=interactive origin $(git_main_branch)' +alias gprom='git pull --rebase origin $(git_main_branch)' +alias gpromi='git pull --rebase=interactive origin $(git_main_branch)' alias ggpull='git pull origin "$(git_current_branch)"' function ggl() { @@ -388,3 +388,20 @@ alias gk='\gitk --all --branches &!' alias gke='\gitk --all $(git log --walk-reflogs --pretty=%h) &!' unset git_version + +# Logic for adding warnings on deprecated aliases +local old_alias new_alias +for old_alias new_alias ( + # TODO(2023-10-19): remove deprecated `git pull --rebase` aliases + gup gpr + gupv gprv + gupa gpra + gupav gprav + gupom gprom + gupomi gpromi +); do + aliases[$old_alias]=" + print -Pu2 \"%F{yellow}[oh-my-zsh] '%F{red}${old_alias}%F{yellow}' is a deprecated alias, using '%F{green}${new_alias}%F{yellow}' instead.%f\" + $new_alias" +done +unset old_alias new_alias From f79647dba5df47cd87917bcf527c5825be6511dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 19 Oct 2023 22:05:03 +0200 Subject: [PATCH 389/441] fix(git): fix check in `gbds` function --- plugins/git/git.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 5ec2bbe2b..eef538b75 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -141,7 +141,7 @@ function gbds() { git for-each-ref refs/heads/ "--format=%(refname:short)" | \ while read branch; do local merge_base=$(git merge-base $default_branch $branch) - if [[ '-*' == $(git cherry $default_branch $(git commit-tree $(git rev-parse $branch\^{tree}) -p $merge_base -m _)) ]]; then + if [[ $(git cherry $default_branch $(git commit-tree $(git rev-parse $branch\^{tree}) -p $merge_base -m _)) = -* ]]; then git branch -D $branch fi done From ff6dac56a256e376a10b19a4948ada7df4509c71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 19 Oct 2023 23:04:08 +0200 Subject: [PATCH 390/441] fix(git): fix smart cd to cloned directory in `gccd` function --- plugins/git/git.plugin.zsh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index eef538b75..6ea1d1177 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -166,8 +166,15 @@ alias gclean='git clean --interactive -d' alias gcl='git clone --recurse-submodules' function gccd() { - command git clone --recurse-submodules "$@" - [[ -d "$_" ]] && cd "$_" || cd "${${_:t}%.git}" + # get repo URI from args based on valid formats: https://git-scm.com/docs/git-clone#URLS + local repo="${${@[(r)(ssh://*|git://*|ftp(s)#://*|http(s)#://*|*@*)(.git/#)#]}:-$_}" + + # clone repository and exit if it fails + command git clone --recurse-submodules "$@" || return + + # if last arg passed was a directory, that's where the repo was cloned + # otherwise parse the repo URI and use the last part as the directory + [[ -d "$_" ]] && cd "$_" || cd "${${repo:t}%.git/#}" } compdef _git gccd=git-clone From 8428442ff0e0114fab32b90443911b11a4b7f5df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 19 Oct 2023 23:24:55 +0200 Subject: [PATCH 391/441] fix(termsupport): add workaround for directory tracking issues in Konsole Fixes #11683 Related: 50c6786 --- lib/termsupport.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index a800e651f..d170ffcbf 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -151,7 +151,7 @@ function omz_termsupport_cwd { URL_PATH="$(omz_urlencode -P $PWD)" || return 1 # Konsole errors if the HOST is provided - [[ -z "$KONSOLE_VERSION" ]] || URL_HOST="" + [[ -z "$KONSOLE_PROFILE_NAME" && -z "$KONSOLE_DBUS_SESSION" ]] || URL_HOST="" # common control sequence (OSC 7) to set current host and path printf "\e]7;file://%s%s\e\\" "${URL_HOST}" "${URL_PATH}" From 465253396df1865d3c73b1b3cff243798960ca3f Mon Sep 17 00:00:00 2001 From: Amir Hosseini <19665344+itsamirhn@users.noreply.github.com> Date: Sun, 22 Oct 2023 12:00:25 +0330 Subject: [PATCH 392/441] fix(direnv): use `hook` instead of `export` (#12000) --- plugins/direnv/direnv.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/direnv/direnv.plugin.zsh b/plugins/direnv/direnv.plugin.zsh index 5e32c4c23..6f8debb62 100644 --- a/plugins/direnv/direnv.plugin.zsh +++ b/plugins/direnv/direnv.plugin.zsh @@ -3,7 +3,7 @@ command -v direnv &>/dev/null || return _direnv_hook() { trap -- '' SIGINT; - eval "$(direnv export zsh)"; + eval "$(direnv hook zsh)"; trap - SIGINT; } typeset -ag precmd_functions; From 1868c15ec6b13c2da20375780f1e8b8f61458be5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 23 Oct 2023 13:24:35 +0200 Subject: [PATCH 393/441] chore: remove mentions of huntr.dev huntr.dev has pivoted to ML/AI-only vulnerability reporting, and we are now already using GitHub's private vulnerability reports. --- README.md | 1 - SECURITY.md | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 308d117e1..499986879 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,6 @@ To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twi [![Mastodon Follow](https://img.shields.io/mastodon/follow/111169632522566717?label=%40ohmyzsh&domain=https%3A%2F%2Fmstdn.social&logo=mastodon&style=flat)](https://mstdn.social/@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)
Table of Contents diff --git a/SECURITY.md b/SECURITY.md index 7e5c8eed0..ae7458ee2 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -17,8 +17,7 @@ In the near future we will introduce versioning, so expect this section to chang **Do not submit an issue or pull request**: this might reveal the vulnerability. -Instead, you should email the maintainers directly at: [**security@ohmyz.sh**](mailto:security@ohmyz.sh). +Instead, you should email the maintainers directly at: [**security@ohmyz.sh**](mailto:security@ohmyz.sh), +or using the link to [privately report a vulnerability with GitHub](https://github.com/ohmyzsh/ohmyzsh/security/advisories/new). 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. From b7904ae54867cd9e64dfd3c1f952d72b5cfe17be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=B6=E9=B3=96=E5=A4=A7=E5=B8=9D?= Date: Tue, 24 Oct 2023 19:33:04 +0800 Subject: [PATCH 394/441] fix(firewalld): remove ` (default)` from the end of zone string (#11998) --- plugins/firewalld/firewalld.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/firewalld/firewalld.plugin.zsh b/plugins/firewalld/firewalld.plugin.zsh index 5b1090636..b2c0f64be 100644 --- a/plugins/firewalld/firewalld.plugin.zsh +++ b/plugins/firewalld/firewalld.plugin.zsh @@ -9,7 +9,7 @@ function fwl () { zones=("${(@f)$(sudo firewall-cmd --get-active-zones | grep -v 'interfaces\|sources')}") for i in $zones; do - sudo firewall-cmd --zone $i --list-all + sudo firewall-cmd --zone ${i/ \(default\)} --list-all done echo 'Direct Rules:' From 5c22c5812ec8b980d223b8252edc7759dd354014 Mon Sep 17 00:00:00 2001 From: alps2006 Date: Tue, 24 Oct 2023 20:00:26 +0800 Subject: [PATCH 395/441] feat(vi-mode): allow replacing on visual mode (#12006) --- plugins/vi-mode/vi-mode.plugin.zsh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index d1493e02f..8fefaf86c 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -154,7 +154,8 @@ wrap_clipboard_widgets copy \ vi-delete vi-delete-char vi-backward-delete-char wrap_clipboard_widgets paste \ - vi-put-{before,after} + vi-put-{before,after} \ + put-replace-selection unfunction wrap_clipboard_widgets From 048455ccefdc67c4f137b8f7886769c55c2e5417 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 25 Oct 2023 19:47:10 +0200 Subject: [PATCH 396/441] fix(git-commit): fix revert alias conflict (#12007) Fixes #12007 --- plugins/git-commit/README.md | 14 ++++++++++---- plugins/git-commit/git-commit.plugin.zsh | 24 ++++++++++++++---------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/plugins/git-commit/README.md b/plugins/git-commit/README.md index dc10d8ad5..91cc73b44 100644 --- a/plugins/git-commit/README.md +++ b/plugins/git-commit/README.md @@ -10,7 +10,7 @@ plugins=(... git-commit) ## Syntax -```zshrc +```zsh git [(-s, --scope) ""] "" ``` @@ -26,11 +26,17 @@ Where `type` is one of the following: - `fix` - `perf` - `refactor` -- `revert` +- `rev` - `style` - `test` +> NOTE: the alias for `revert` type is `rev`, as otherwise it conflicts with the git command of the same name. +> It will still generate a commit message in the format `revert: ` + ## Examples -`git style "remove trailing whitespace"` -> `git commit -m "style: remove trailing whitespace"` -`git fix -s "router" "correct redirect link"` -> `git commit -m "fix(router): correct redirect link"` +| Git alias | Command | +| --------------------------------------------- | ---------------------------------------------------- | +| `git style "remove trailing whitespace"` | `git commit -m "style: remove trailing whitespace"` | +| `git fix -s "router" "correct redirect link"` | `git commit -m "fix(router): correct redirect link"` | +| `git rev -s "api" "rollback v2"` | `git commit -m "revert(api): rollback v2"` | diff --git a/plugins/git-commit/git-commit.plugin.zsh b/plugins/git-commit/git-commit.plugin.zsh index 4ad4c0177..72cecb1d6 100644 --- a/plugins/git-commit/git-commit.plugin.zsh +++ b/plugins/git-commit/git-commit.plugin.zsh @@ -1,9 +1,3 @@ -function _git_commit_register { - if ! git config --global --get-all alias.$1 >/dev/null 2>&1; then - git config --global alias.$1 '!a() { if [ "$1" = "-s" ] || [ "$1" = "--scope" ]; then local scope="$2"; shift 2; git commit -m "'$1'(${scope}): ${@}"; else git commit -m "'$1': ${@}"; fi }; a' - fi -} - local -a _git_commit_aliases _git_commit_aliases=( 'build' @@ -19,9 +13,19 @@ _git_commit_aliases=( 'test' ) -for _alias in "${_git_commit_aliases[@]}"; do - _git_commit_register $_alias +local alias type +for type in "${_git_commit_aliases[@]}"; do + # an alias can't be named "revert" because the git command takes precedence + # https://stackoverflow.com/a/3538791 + case "$type" in + revert) alias=rev ;; + *) alias=$type ;; + esac + + local func='!a() { if [ "$1" = "-s" ] || [ "$1" = "--scope" ]; then local scope="$2"; shift 2; git commit -m "'$type'(${scope}): ${@}"; else git commit -m "'$type': ${@}"; fi }; a' + if ! git config --global --get-all alias.${alias} >/dev/null 2>&1; then + git config --global alias.${alias} "$func" + fi done -unfunction _git_commit_register -unset _alias +unset _git_commit_aliases alias type func From 7348d12f8e5cd755037aa6f5d347eab0ac2efb0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sat, 28 Oct 2023 10:24:24 +0200 Subject: [PATCH 397/441] ci(vercel): add Content-Disposition header on installer This allows doing something like curl -O https://install.ohmyz.sh and have the `install.sh` file automatically saved to its right name. --- .github/workflows/installer/vercel.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/installer/vercel.json b/.github/workflows/installer/vercel.json index 8c5aec5e0..524dc3c0f 100644 --- a/.github/workflows/installer/vercel.json +++ b/.github/workflows/installer/vercel.json @@ -2,7 +2,16 @@ "headers": [ { "source": "/((?!favicon.ico).*)", - "headers": [{ "key": "Content-Type", "value": "text/plain" }] + "headers": [ + { + "key": "Content-Type", + "value": "text/plain" + }, + { + "key": "Content-Disposition", + "value": "inline; filename=\"install.sh\"" + } + ] } ], "rewrites": [ From 7733e3ab57ee3f666cf6f3e699d03b69aca2d373 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sat, 28 Oct 2023 10:29:54 +0200 Subject: [PATCH 398/441] ci: fix path filtering in installer workflow See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-including-and-excluding-paths --- .github/workflows/installer.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/installer.yml b/.github/workflows/installer.yml index 4a25c8079..a70c483d1 100644 --- a/.github/workflows/installer.yml +++ b/.github/workflows/installer.yml @@ -3,9 +3,9 @@ on: workflow_dispatch: {} push: paths: - - tools/install.sh - - .github/workflows/installer - - .github/workflows/installer.yml + - 'tools/install.sh' + - '.github/workflows/installer/**' + - '.github/workflows/installer.yml' concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} From cb86d378f287f1731cc6ad907f6248e35b52dc25 Mon Sep 17 00:00:00 2001 From: Josh Hubbard Date: Sat, 28 Oct 2023 04:37:50 -0400 Subject: [PATCH 399/441] feat(git-auto-fetch): fetch also submodules (#12001) --- plugins/git-auto-fetch/git-auto-fetch.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh b/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh index 2df34bb7b..f8dfec759 100644 --- a/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh +++ b/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh @@ -29,7 +29,7 @@ function git-fetch-all { date -R &>! "$gitdir/FETCH_LOG" GIT_SSH_COMMAND="command ssh -o BatchMode=yes" \ GIT_TERMINAL_PROMPT=0 \ - command git fetch --all 2>/dev/null &>> "$gitdir/FETCH_LOG" + command git fetch --all --recurse-submodules=yes 2>/dev/null &>> "$gitdir/FETCH_LOG" ) &| } From 38c01a235fef0d990be5ece0d62f94fd06b10571 Mon Sep 17 00:00:00 2001 From: Sarah Noor <88581241+sarah-noor-12232@users.noreply.github.com> Date: Sat, 28 Oct 2023 20:48:45 +0500 Subject: [PATCH 400/441] feat(npm): add alias for `npm run build` (#12012) Closes #12010 --- plugins/npm/README.md | 1 + plugins/npm/npm.plugin.zsh | 3 +++ 2 files changed, 4 insertions(+) diff --git a/plugins/npm/README.md b/plugins/npm/README.md index 420dd710a..7848a1290 100644 --- a/plugins/npm/README.md +++ b/plugins/npm/README.md @@ -30,6 +30,7 @@ plugins=(... npm) | `npmi` | `npm info` | Run npm info | | `npmSe` | `npm search` | Run npm search | | `npmrd` | `npm run dev` | Run npm run dev | +| `npmrb` | `npm run build` | Run npm run build | ## `npm install` / `npm uninstall` toggle diff --git a/plugins/npm/npm.plugin.zsh b/plugins/npm/npm.plugin.zsh index 3cba18f6c..23377b085 100644 --- a/plugins/npm/npm.plugin.zsh +++ b/plugins/npm/npm.plugin.zsh @@ -73,6 +73,9 @@ alias npmSe="npm search" # Run npm run dev alias npmrd="npm run dev" +# Run npm run build +alias npmrb="npm run build" + npm_toggle_install_uninstall() { # Look up to the previous 2 history commands local line From 632ed413a9ce62747ded83d7736491b081be4b49 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 1 Nov 2023 21:24:28 +0100 Subject: [PATCH 401/441] fix(wd): use `(( ))` instead of `[[ ]]` zsh versions prior to 5.0.6 mark `[[ ]]` as invalid syntax Closes #12017 --- plugins/wd/wd.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/wd/wd.sh b/plugins/wd/wd.sh index e51cf906a..840e92d61 100644 --- a/plugins/wd/wd.sh +++ b/plugins/wd/wd.sh @@ -396,7 +396,7 @@ fi # disable extendedglob for the complete wd execution time setopt | grep -q extendedglob wd_extglob_is_set=$? -[[ $wd_extglob_is_set ]] && setopt noextendedglob +(( ! $wd_extglob_is_set )) && setopt noextendedglob # load warp points typeset -A points @@ -484,7 +484,7 @@ fi # if not, next time warp will pick up variables from this run # remember, there's no sub shell -[[ $wd_extglob_is_set ]] && setopt extendedglob +(( ! $wd_extglob_is_set )) && setopt extendedglob unset wd_extglob_is_set unset wd_warp From b6bb133f230847ed0b3f9f4e25f2ceb874ca6c91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 8 Nov 2023 08:42:34 +0100 Subject: [PATCH 402/441] fix(git): fix repository detection in `gccd` function (#12023) Fixes #12023 --- plugins/git/git.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 6ea1d1177..2a824444b 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -166,6 +166,8 @@ alias gclean='git clean --interactive -d' alias gcl='git clone --recurse-submodules' function gccd() { + setopt localoptions extendedglob + # get repo URI from args based on valid formats: https://git-scm.com/docs/git-clone#URLS local repo="${${@[(r)(ssh://*|git://*|ftp(s)#://*|http(s)#://*|*@*)(.git/#)#]}:-$_}" From c8e600f39779c6d2ef75b40304b5391a541c41df Mon Sep 17 00:00:00 2001 From: Thomas Luzat Date: Wed, 15 Nov 2023 12:53:39 +0100 Subject: [PATCH 403/441] fix(direnv): initialize properly direnv Closes #12038 Closes #12039 Co-authored-by: Carlo Sala --- plugins/direnv/direnv.plugin.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/direnv/direnv.plugin.zsh b/plugins/direnv/direnv.plugin.zsh index 6f8debb62..0a33194dd 100644 --- a/plugins/direnv/direnv.plugin.zsh +++ b/plugins/direnv/direnv.plugin.zsh @@ -3,14 +3,14 @@ command -v direnv &>/dev/null || return _direnv_hook() { trap -- '' SIGINT; - eval "$(direnv hook zsh)"; + eval "$(direnv export zsh)"; trap - SIGINT; } typeset -ag precmd_functions; -if [[ -z ${precmd_functions[(r)_direnv_hook]} ]]; then +if [[ -z "${precmd_functions[(r)_direnv_hook]+1}" ]]; then precmd_functions=( _direnv_hook ${precmd_functions[@]} ) fi typeset -ag chpwd_functions; -if [[ -z ${chpwd_functions[(r)_direnv_hook]} ]]; then +if [[ -z "${chpwd_functions[(r)_direnv_hook]+1}" ]]; then chpwd_functions=( _direnv_hook ${chpwd_functions[@]} ) fi From 6165c257ae56921bf44bfa7488fd5bf179ea0e61 Mon Sep 17 00:00:00 2001 From: nexpspace <380097+nexpspace@users.noreply.github.com> Date: Mon, 20 Nov 2023 12:25:22 +0100 Subject: [PATCH 404/441] fix(grc): source grc.zsh on gentoo (#12050) Co-authored-by: mphi Co-authored-by: Carlo Sala --- plugins/grc/grc.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/grc/grc.plugin.zsh b/plugins/grc/grc.plugin.zsh index e036b8d89..55ffc1a1e 100644 --- a/plugins/grc/grc.plugin.zsh +++ b/plugins/grc/grc.plugin.zsh @@ -5,6 +5,7 @@ files=( /etc/grc.zsh # default /usr/local/etc/grc.zsh # homebrew darwin-x64 /opt/homebrew/etc/grc.zsh # homebrew darwin-arm64 + /usr/share/grc/grc.zsh # Gentoo Linux (app-misc/grc) ) # verify the file is readable and source it From e0213342d12808e916dd02f8ac28509e71dc3283 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9E=C3=B3rhallur=20Sverrisson?= Date: Mon, 20 Nov 2023 11:27:54 +0000 Subject: [PATCH 405/441] feat(vi-mode): add option to disable clipboard (#12037) --- plugins/vi-mode/README.md | 2 ++ plugins/vi-mode/vi-mode.plugin.zsh | 20 +++++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/plugins/vi-mode/README.md b/plugins/vi-mode/README.md index 821c12adb..84ba30105 100644 --- a/plugins/vi-mode/README.md +++ b/plugins/vi-mode/README.md @@ -37,6 +37,8 @@ plugins=(... vi-mode) - `INSERT_MODE_INDICATOR`: controls the string displayed when the shell is in insert mode. See [Mode indicators](#mode-indicators) for details. +- `VI_MODE_DISABLE_CLIPBOARD`: If set, disables clipboard integration on yank/paste + ## Mode indicators *Normal mode* is indicated with a red `<<<` mark at the right prompt, when it diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index 8fefaf86c..5c104f7bb 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -147,17 +147,19 @@ function wrap_clipboard_widgets() { done } -wrap_clipboard_widgets copy \ - vi-yank vi-yank-eol vi-yank-whole-line \ - vi-change vi-change-eol vi-change-whole-line \ - vi-kill-line vi-kill-eol vi-backward-kill-word \ - vi-delete vi-delete-char vi-backward-delete-char +if [[ -z "${VI_MODE_DISABLE_CLIPBOARD:-}" ]]; then + wrap_clipboard_widgets copy \ + vi-yank vi-yank-eol vi-yank-whole-line \ + vi-change vi-change-eol vi-change-whole-line \ + vi-kill-line vi-kill-eol vi-backward-kill-word \ + vi-delete vi-delete-char vi-backward-delete-char -wrap_clipboard_widgets paste \ - vi-put-{before,after} \ - put-replace-selection + wrap_clipboard_widgets paste \ + vi-put-{before,after} \ + put-replace-selection -unfunction wrap_clipboard_widgets + unfunction wrap_clipboard_widgets +fi # if mode indicator wasn't setup by theme, define default, we'll leave INSERT_MODE_INDICATOR empty by default if [[ -z "$MODE_INDICATOR" ]]; then From 22f9a8d3b8e3c229409579caff077ec90fbac9a3 Mon Sep 17 00:00:00 2001 From: "Babak K. Shandiz" Date: Mon, 20 Nov 2023 14:52:32 +0200 Subject: [PATCH 406/441] fix(juju): add `public-address` fallback to `jaddr` (#12046) --- plugins/juju/juju.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/juju/juju.plugin.zsh b/plugins/juju/juju.plugin.zsh index 0c60e35ce..a82ebaf84 100644 --- a/plugins/juju/juju.plugin.zsh +++ b/plugins/juju/juju.plugin.zsh @@ -98,7 +98,7 @@ jaddr() { elif [[ $# -eq 2 ]]; then # Get unit address juju status "$1/$2" --format=json \ - | jq -r ".applications.\"$1\".units.\"$1/$2\".address" + | jq -r ".applications.\"$1\".units.\"$1/$2\" | .address // .\"public-address\"" else echo "Invalid number of arguments." echo "Usage: jaddr []" From e6a1db213d66efdaec00469e58d4f9f3f2a78bd0 Mon Sep 17 00:00:00 2001 From: bretello Date: Mon, 20 Nov 2023 13:54:56 +0100 Subject: [PATCH 407/441] feat(bgnotify): add support to wayland (#12045) --- plugins/bgnotify/bgnotify.plugin.zsh | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index ed2653aa8..9ad989c0b 100644 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -59,11 +59,14 @@ function bgnotify_formatted { fi } -# for macOS, output is "app ID, window ID" (com.googlecode.iterm2, 116) function bgnotify_appid { if (( ${+commands[osascript]} )); then + # output is "app ID, window ID" (com.googlecode.iterm2, 116) osascript -e 'tell application (path to frontmost application as text) to get the {id, id of front window}' 2>/dev/null - elif (( ${+commands[xprop]} )); then + elif [[ -n $WAYLAND_DISPLAY && ${+commands[swaymsg]} && ${+commands[jq]} ]]; then # wayland+sway + # output is "app_id, container id" (Alacritty, 1694) + swaymsg -t get_tree | jq '.. | select(.type?) | select(.focused==true) | {app_id, id} | join(", ")' + elif [[ -n $DISPLAY && ${+commands[xprop]} ]]; then xprop -root _NET_ACTIVE_WINDOW 2>/dev/null | cut -d' ' -f5 else echo $EPOCHSECONDS @@ -71,7 +74,8 @@ function bgnotify_appid { } function bgnotify { - # $1: title, $2: message + local title="$1" + local message="$2" if (( ${+commands[terminal-notifier]} )); then # macOS local term_id="${bgnotify_termid%%,*}" # remove window id if [[ -z "$term_id" ]]; then @@ -82,18 +86,22 @@ function bgnotify { fi if [[ -z "$term_id" ]]; then - terminal-notifier -message "$2" -title "$1" &>/dev/null + terminal-notifier -message "$message" -title "$title" &>/dev/null else - terminal-notifier -message "$2" -title "$1" -activate "$term_id" -sender "$term_id" &>/dev/null + terminal-notifier -message "$message" -title "$title" -activate "$term_id" -sender "$term_id" &>/dev/null fi elif (( ${+commands[growlnotify]} )); then # macOS growl - growlnotify -m "$1" "$2" - elif (( ${+commands[notify-send]} )); then # GNOME - notify-send "$1" "$2" + growlnotify -m "$title" "$message" + elif (( ${+commands[notify-send]} )); then + if [[ -n $ALACRITTY_WINDOW_ID ]]; then + notify-send -i Alacritty "$title" "$message" + else + notify-send "$title" "$message" + fi elif (( ${+commands[kdialog]} )); then # KDE - kdialog --title "$1" --passivepopup "$2" 5 + kdialog --title "$title" --passivepopup "$message" 5 elif (( ${+commands[notifu]} )); then # cygwin - notifu /m "$2" /p "$1" + notifu /m "$message" /p "$title" fi } From 18073af622703a8aca28c630614d13d2f50d30fe Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 22 Nov 2023 15:22:36 +0100 Subject: [PATCH 408/441] fix(bgnotify): detect properly if `swaymsg` is installed Closes #12053 --- plugins/bgnotify/bgnotify.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index 9ad989c0b..493a20815 100644 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -63,10 +63,10 @@ function bgnotify_appid { if (( ${+commands[osascript]} )); then # output is "app ID, window ID" (com.googlecode.iterm2, 116) osascript -e 'tell application (path to frontmost application as text) to get the {id, id of front window}' 2>/dev/null - elif [[ -n $WAYLAND_DISPLAY && ${+commands[swaymsg]} && ${+commands[jq]} ]]; then # wayland+sway + elif [[ -n $WAYLAND_DISPLAY ]] && (( ${+commands[swaymsg]} )) && (( ${+commands[jq]} )); then # wayland+sway # output is "app_id, container id" (Alacritty, 1694) swaymsg -t get_tree | jq '.. | select(.type?) | select(.focused==true) | {app_id, id} | join(", ")' - elif [[ -n $DISPLAY && ${+commands[xprop]} ]]; then + elif [[ -n $DISPLAY ]] && (( ${+commands[xprop]} )); then xprop -root _NET_ACTIVE_WINDOW 2>/dev/null | cut -d' ' -f5 else echo $EPOCHSECONDS From 44a5513fcb3f528afb056490908d216f926497e6 Mon Sep 17 00:00:00 2001 From: Saduff <11700507+Saduff@users.noreply.github.com> Date: Wed, 22 Nov 2023 10:44:21 -0700 Subject: [PATCH 409/441] fix(per-directory-history): print toggle message properly (#10872) --- plugins/per-directory-history/per-directory-history.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/per-directory-history/per-directory-history.zsh b/plugins/per-directory-history/per-directory-history.zsh index acbd64757..cfc4535d3 100644 --- a/plugins/per-directory-history/per-directory-history.zsh +++ b/plugins/per-directory-history/per-directory-history.zsh @@ -68,14 +68,14 @@ function per-directory-history-toggle-history() { if [[ $_per_directory_history_is_global == true ]]; then _per-directory-history-set-directory-history _per_directory_history_is_global=false - print -n "\nusing local history" + zle -I + echo "using local history" else _per-directory-history-set-global-history _per_directory_history_is_global=true - print -n "\nusing global history" + zle -I + echo "using global history" fi - zle .push-line - zle .accept-line } autoload per-directory-history-toggle-history From 38e80e9f21ee981b5f616003c788dcbb9267466c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Sj=C3=B6blom?= Date: Thu, 23 Nov 2023 10:11:08 +0000 Subject: [PATCH 410/441] feat(bgnotify): add icon parameter (#12055) --- plugins/bgnotify/bgnotify.plugin.zsh | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index 493a20815..a4a7b621b 100644 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -52,10 +52,10 @@ function bgnotify_formatted { (( $3 < 60 )) || elapsed="$((( $3 % 3600) / 60 ))m $elapsed" (( $3 < 3600 )) || elapsed="$(( $3 / 3600 ))h $elapsed" - if [[ $1 -eq 0 ]]; then - bgnotify "#win (took $elapsed)" "$2" + if [[ $exit_status -eq 0 ]]; then + bgnotify "#win (took $elapsed)" "$cmd" else - bgnotify "#fail (took $elapsed)" "$2" + bgnotify "#fail (took $elapsed)" "$cmd" fi } @@ -66,7 +66,7 @@ function bgnotify_appid { elif [[ -n $WAYLAND_DISPLAY ]] && (( ${+commands[swaymsg]} )) && (( ${+commands[jq]} )); then # wayland+sway # output is "app_id, container id" (Alacritty, 1694) swaymsg -t get_tree | jq '.. | select(.type?) | select(.focused==true) | {app_id, id} | join(", ")' - elif [[ -n $DISPLAY ]] && (( ${+commands[xprop]} )); then + elif [[ -z $WAYLAND_DISPLAY ]] && [[ -n $DISPLAY ]] && (( ${+commands[xprop]} )); then xprop -root _NET_ACTIVE_WINDOW 2>/dev/null | cut -d' ' -f5 else echo $EPOCHSECONDS @@ -76,6 +76,7 @@ function bgnotify_appid { function bgnotify { local title="$1" local message="$2" + local icon="$3" if (( ${+commands[terminal-notifier]} )); then # macOS local term_id="${bgnotify_termid%%,*}" # remove window id if [[ -z "$term_id" ]]; then @@ -85,23 +86,15 @@ function bgnotify { esac fi - if [[ -z "$term_id" ]]; then - terminal-notifier -message "$message" -title "$title" &>/dev/null - else - terminal-notifier -message "$message" -title "$title" -activate "$term_id" -sender "$term_id" &>/dev/null - fi + terminal-notifier -message "$message" -title "$title" ${=icon:+-appIcon "$icon"} ${=term_id:+-activate "$term_id" -sender "$term_id"} &>/dev/null elif (( ${+commands[growlnotify]} )); then # macOS growl growlnotify -m "$title" "$message" elif (( ${+commands[notify-send]} )); then - if [[ -n $ALACRITTY_WINDOW_ID ]]; then - notify-send -i Alacritty "$title" "$message" - else - notify-send "$title" "$message" - fi + notify-send "$title" "$message" ${=icon:+--icon "$icon"} elif (( ${+commands[kdialog]} )); then # KDE kdialog --title "$title" --passivepopup "$message" 5 elif (( ${+commands[notifu]} )); then # cygwin - notifu /m "$message" /p "$title" + notifu /m "$message" /p "$title" ${=icon:+/i "$icon"} fi } From 6c5586cb085d5cc6fb42b7304428654cc6bf5f31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Sj=C3=B6blom?= Date: Thu, 23 Nov 2023 19:00:34 +0000 Subject: [PATCH 411/441] docs(bgnotify): match README with current features (#12057) --- plugins/bgnotify/README.md | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/plugins/bgnotify/README.md b/plugins/bgnotify/README.md index 1d8fac54d..6bbe3b302 100644 --- a/plugins/bgnotify/README.md +++ b/plugins/bgnotify/README.md @@ -1,19 +1,19 @@ # bgnotify zsh plugin -cross-platform background notifications for long running commands! Supports OSX and Ubuntu linux. +cross-platform background notifications for long running commands! Supports OSX and Linux. Standalone homepage: [t413/zsh-background-notify](https://github.com/t413/zsh-background-notify) ----------------------------------- +--- -## How to use! +## How to use Just add bgnotify to your plugins list in your `.zshrc` - On OS X you'll need [terminal-notifier](https://github.com/alloy/terminal-notifier) * `brew install terminal-notifier` (or `gem install terminal-notifier`) -- On ubuntu you're already all set! -- On windows you can use [notifu](https://www.paralint.com/projects/notifu/) or the Cygwin Ports libnotify package +- On Linux, make sure you have `notify-send` or `kdialog` installed. If you're using Ubuntu you should already be all set! +- On Windows you can use [notifu](https://www.paralint.com/projects/notifu/) or the Cygwin Ports libnotify package ## Screenshots @@ -36,19 +36,26 @@ Just add bgnotify to your plugins list in your `.zshrc` One can configure a few things: - `bgnotify_threshold` sets the notification threshold time (default 6 seconds) -- `function bgnotify_formatted` lets you change the notification +- `function bgnotify_formatted` lets you change the notification. You can for instance customize the message and pass in an icon. Use these by adding a function definition before the your call to source. Example: -~~~ sh +```sh bgnotify_threshold=4 ## set your own notification threshold function bgnotify_formatted { ## $1=exit_status, $2=command, $3=elapsed_time - [ $1 -eq 0 ] && title="Holy Smokes Batman!" || title="Holy Graf Zeppelin!" - bgnotify "$title -- after $3 s" "$2"; + + # Humanly readable elapsed time + local elapsed="$(( $3 % 60 ))s" + (( $3 < 60 )) || elapsed="$((( $3 % 3600) / 60 ))m $elapsed" + (( $3 < 3600 )) || elapsed="$(( $3 / 3600 ))h $elapsed" + + [ $1 -eq 0 ] && title="Holy Smokes Batman" || title="Holy Graf Zeppelin" + [ $1 -eq 0 ] && icon="$HOME/icons/success.png" || icon="$HOME/icons/fail.png" + bgnotify "$title - took ${elapsed}" "$2" "$icon" } plugins=(git bgnotify) ## add to plugins list source $ZSH/oh-my-zsh.sh ## existing source call -~~~ +``` From 76a1dfcf2b5365e966bbc75749d9ced985c2d674 Mon Sep 17 00:00:00 2001 From: Mamad Kajbaf Date: Thu, 23 Nov 2023 11:03:59 -0800 Subject: [PATCH 412/441] feat(docker-compose): add `dclF` alias (#10603) --- plugins/docker-compose/README.md | 41 ++++++++++--------- .../docker-compose/docker-compose.plugin.zsh | 1 + 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/plugins/docker-compose/README.md b/plugins/docker-compose/README.md index bbcff2e0c..66d4e0521 100644 --- a/plugins/docker-compose/README.md +++ b/plugins/docker-compose/README.md @@ -11,23 +11,24 @@ plugins=(... docker-compose) ## Aliases -| Alias | Command | Description | -|-----------|--------------------------------|----------------------------------------------------------------------------------| -| dco | `docker-compose` | Docker-compose main command | -| dcb | `docker-compose build` | Build containers | -| dce | `docker-compose exec` | Execute command inside a container | -| dcps | `docker-compose ps` | List containers | -| dcrestart | `docker-compose restart` | Restart container | -| dcrm | `docker-compose rm` | Remove container | -| dcr | `docker-compose run` | Run a command in container | -| dcstop | `docker-compose stop` | Stop a container | -| dcup | `docker-compose up` | Build, (re)create, start, and attach to containers for a service | -| dcupb | `docker-compose up --build` | Same as `dcup`, but build images before starting containers | -| dcupd | `docker-compose up -d` | Same as `dcup`, but starts as daemon | -| dcupdb | `docker-compose up -d --build` | Same as `dcup`, but build images before starting containers and starts as daemon | -| dcdn | `docker-compose down` | Stop and remove containers | -| dcl | `docker-compose logs` | Show logs of container | -| dclf | `docker-compose logs -f` | Show logs and follow output | -| dcpull | `docker-compose pull` | Pull image of a service | -| dcstart | `docker-compose start` | Start a container | -| dck | `docker-compose kill` | Kills containers | +| Alias | Command | Description | +|-----------|----------------------------------|----------------------------------------------------------------------------------| +| dco | `docker-compose` | Docker-compose main command | +| dcb | `docker-compose build` | Build containers | +| dce | `docker-compose exec` | Execute command inside a container | +| dcps | `docker-compose ps` | List containers | +| dcrestart | `docker-compose restart` | Restart container | +| dcrm | `docker-compose rm` | Remove container | +| dcr | `docker-compose run` | Run a command in container | +| dcstop | `docker-compose stop` | Stop a container | +| dcup | `docker-compose up` | Build, (re)create, start, and attach to containers for a service | +| dcupb | `docker-compose up --build` | Same as `dcup`, but build images before starting containers | +| dcupd | `docker-compose up -d` | Same as `dcup`, but starts as daemon | +| dcupdb | `docker-compose up -d --build` | Same as `dcup`, but build images before starting containers and starts as daemon | +| dcdn | `docker-compose down` | Stop and remove containers | +| dcl | `docker-compose logs` | Show logs of container | +| dclf | `docker-compose logs -f` | Show logs and follow output | +| dclF | `docker-compose logs -f --tail0` | Just follow recent logs | +| dcpull | `docker-compose pull` | Pull image of a service | +| dcstart | `docker-compose start` | Start a container | +| dck | `docker-compose kill` | Kills containers | diff --git a/plugins/docker-compose/docker-compose.plugin.zsh b/plugins/docker-compose/docker-compose.plugin.zsh index 7a8bf4a03..d1823f535 100644 --- a/plugins/docker-compose/docker-compose.plugin.zsh +++ b/plugins/docker-compose/docker-compose.plugin.zsh @@ -16,6 +16,7 @@ alias dcupdb="$dccmd up -d --build" alias dcdn="$dccmd down" alias dcl="$dccmd logs" alias dclf="$dccmd logs -f" +alias dclF="$dccmd logs -f --tail 0" alias dcpull="$dccmd pull" alias dcstart="$dccmd start" alias dck="$dccmd kill" From ddf673b36dd43e5ca60189a117c25ad6f55457e7 Mon Sep 17 00:00:00 2001 From: MikuHatsune39 <32179075+MikuHatsune39@users.noreply.github.com> Date: Fri, 24 Nov 2023 00:35:46 -0800 Subject: [PATCH 413/441] fix(python): set `py` alias if `py` is not installed (#12059) Co-authored-by: Carlo Sala --- plugins/python/README.md | 2 +- plugins/python/python.plugin.zsh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/python/README.md b/plugins/python/README.md index 97c1a34ee..7bf1b34ac 100644 --- a/plugins/python/README.md +++ b/plugins/python/README.md @@ -12,7 +12,7 @@ plugins=(... python) | Command | Description | | ---------------- | -------------------------------------------------------------------------------------- | -| `py` | Runs `python3` | +| `py` | Runs `python3`. Only set if `py` is not installed. | | `ipython` | Runs the appropriate `ipython` version according to the activated virtualenv | | `pyfind` | Finds .py files recursively in the current directory | | `pyclean [dirs]` | Deletes byte-code and cache files from a list of directories or the current one | diff --git a/plugins/python/python.plugin.zsh b/plugins/python/python.plugin.zsh index 2fbb59577..3d7ca55c9 100644 --- a/plugins/python/python.plugin.zsh +++ b/plugins/python/python.plugin.zsh @@ -1,5 +1,5 @@ -# python command -alias py='python3' +# set python command if 'py' not installed +builtin which py > /dev/null || alias py='python3' # Find python file alias pyfind='find . -name "*.py"' From e11d81303753b0fefbc50ce10ec4612c7ff33e84 Mon Sep 17 00:00:00 2001 From: Yuxuan Lu Date: Fri, 24 Nov 2023 03:45:32 -0500 Subject: [PATCH 414/441] fix(robbyrussell): line wrapping for some systems (#12058) --- themes/robbyrussell.zsh-theme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/robbyrussell.zsh-theme b/themes/robbyrussell.zsh-theme index 173e6d579..cfecfc892 100644 --- a/themes/robbyrussell.zsh-theme +++ b/themes/robbyrussell.zsh-theme @@ -1,7 +1,7 @@ -PROMPT="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ ) %{$fg[cyan]%}%c%{$reset_color%}" +PROMPT="%(?:%{$fg_bold[green]%}%1{➜%} :%{$fg_bold[red]%}%1{➜%} ) %{$fg[cyan]%}%c%{$reset_color%}" PROMPT+=' $(git_prompt_info)' ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} " -ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}%1{✗%}" ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})" From 7e3fdf33ec53821e574b8d6df43bec7264c507ee Mon Sep 17 00:00:00 2001 From: Bernard Grymonpon Date: Mon, 27 Nov 2023 11:07:51 +0100 Subject: [PATCH 415/441] fix(misc): only set PAGER if `less` or `more` are available (#12060) --- lib/misc.zsh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/misc.zsh b/lib/misc.zsh index 132f33551..ff2017713 100644 --- a/lib/misc.zsh +++ b/lib/misc.zsh @@ -19,8 +19,13 @@ setopt multios # enable redirect to multiple streams: echo >file1 > setopt long_list_jobs # show long list format job notifications setopt interactivecomments # recognize comments -env_default 'PAGER' 'less' -env_default 'LESS' '-R' +# define pager dependant on what is available (less or more) +if (( ${+commands[less]} )); then + env_default 'PAGER' 'less' + env_default 'LESS' '-R' +elif (( ${+commands[more]} )); then + env_default 'PAGER' 'more' +fi ## super user alias alias _='sudo ' From 418046e9583f635b0303e4b8cf31c356b175cec3 Mon Sep 17 00:00:00 2001 From: cohml <62400541+cohml@users.noreply.github.com> Date: Wed, 29 Nov 2023 04:15:32 -0500 Subject: [PATCH 416/441] feat(per-directory-history): add option to reduce verbosity (#12069) Co-authored-by: Chris Hamill --- plugins/per-directory-history/README.md | 2 ++ .../per-directory-history/per-directory-history.zsh | 11 +++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/plugins/per-directory-history/README.md b/plugins/per-directory-history/README.md index 69854aa38..11150b059 100644 --- a/plugins/per-directory-history/README.md +++ b/plugins/per-directory-history/README.md @@ -34,6 +34,8 @@ toggle set the `PER_DIRECTORY_HISTORY_TOGGLE` environment variable. and global histories. * `PER_DIRECTORY_HISTORY_TOGGLE` is the key binding used to run the toggle-history function above (default `^G`) +* `PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE` is a variable which toggles whether + the current mode is printed to the screen following a mode change (default `true`) ## History diff --git a/plugins/per-directory-history/per-directory-history.zsh b/plugins/per-directory-history/per-directory-history.zsh index cfc4535d3..b33e0b5dd 100644 --- a/plugins/per-directory-history/per-directory-history.zsh +++ b/plugins/per-directory-history/per-directory-history.zsh @@ -59,6 +59,7 @@ [[ -z $HISTORY_BASE ]] && HISTORY_BASE="$HOME/.directory_history" [[ -z $HISTORY_START_WITH_GLOBAL ]] && HISTORY_START_WITH_GLOBAL=false [[ -z $PER_DIRECTORY_HISTORY_TOGGLE ]] && PER_DIRECTORY_HISTORY_TOGGLE='^G' +[[ -z $PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE ]] && PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE=true #------------------------------------------------------------------------------- # toggle global/directory history used for searching - ctrl-G by default @@ -68,13 +69,15 @@ function per-directory-history-toggle-history() { if [[ $_per_directory_history_is_global == true ]]; then _per-directory-history-set-directory-history _per_directory_history_is_global=false - zle -I - echo "using local history" + if [[ $PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE == true ]]; then + zle -M "using local history" + fi else _per-directory-history-set-global-history _per_directory_history_is_global=true - zle -I - echo "using global history" + if [[ $PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE == true ]]; then + zle -M "using global history" + fi fi } From 7a30bcae40dfd19153ad6fc4abd52dfa805dbd03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 30 Nov 2023 14:15:21 +0100 Subject: [PATCH 417/441] ci(installer): fix token passing and only run on main repo --- .github/workflows/installer.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/installer.yml b/.github/workflows/installer.yml index a70c483d1..cad5d445b 100644 --- a/.github/workflows/installer.yml +++ b/.github/workflows/installer.yml @@ -17,6 +17,7 @@ permissions: jobs: test: name: Test installer + if: github.repository == 'ohmyzsh/ohmyzsh' runs-on: ${{ matrix.os }} strategy: matrix: @@ -48,7 +49,8 @@ jobs: env: VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} + VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} run: | cp tools/install.sh .github/workflows/installer/install.sh cd .github/workflows/installer - vc deploy --prod -t ${{ secrets.VERCEL_TOKEN }} + vc deploy --prod -t "$VERCEL_TOKEN" From f9993d0c687c0fb50490aa530adee57ea4c70c12 Mon Sep 17 00:00:00 2001 From: "Olivia (Zoe)" Date: Fri, 1 Dec 2023 16:06:50 +0100 Subject: [PATCH 418/441] docs: document the off-GitHub installation URL (#12079) --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index 499986879..98743432d 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,14 @@ Oh My Zsh is installed by running one of the following commands in your terminal | **wget** | `sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"` | | **fetch** | `sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"` | +Alternatively, the installer is also mirrored outside GitHub. Using this URL instead may be required if you're in a country like India or China, that blocks `raw.githubusercontent.com`: + +| Method | Command | +| :-------- | :------------------------------------------------------------------------------------------------ | +| **curl** | `sh -c "$(curl -fsSL https://install.ohmyz.sh/)"` | +| **wget** | `sh -c "$(wget -O- https://install.ohmyz.sh/)"` | +| **fetch** | `sh -c "$(fetch -o - https://install.ohmyz.sh/)"` | + _Note that any previous `.zshrc` will be renamed to `.zshrc.pre-oh-my-zsh`. After installation, you can move the configuration you want to preserve into the new `.zshrc`._ #### Manual Inspection @@ -101,6 +109,8 @@ wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh sh install.sh ``` +If the above URL times out or otherwise fails, you may have to substitute the URL for `https://install.ohmyz.sh` to be able to get the script. + ## Using Oh My Zsh ### Plugins @@ -220,6 +230,8 @@ the default shell, and it also won't run `zsh` when the installation has finishe sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended ``` +If you're in China, India, or another country that blocks `raw.githubusercontent.com`, you may have to substitute the URL for `https://install.ohmyz.sh` for it to install. + #### Installing From A Forked Repository The install script also accepts these variables to allow installation of a different repository: From 9b5b389c22396552086480474c108380817a44a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Sj=C3=B6blom?= Date: Sat, 25 Nov 2023 11:27:59 +0100 Subject: [PATCH 419/441] refactor(bgnotify): get Sway AppId with `awk` as fallback (#12062) Closes #12062 --- plugins/bgnotify/bgnotify.plugin.zsh | 58 ++++++++++++++++++++++------ 1 file changed, 47 insertions(+), 11 deletions(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index a4a7b621b..4499d816c 100644 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -63,9 +63,9 @@ function bgnotify_appid { if (( ${+commands[osascript]} )); then # output is "app ID, window ID" (com.googlecode.iterm2, 116) osascript -e 'tell application (path to frontmost application as text) to get the {id, id of front window}' 2>/dev/null - elif [[ -n $WAYLAND_DISPLAY ]] && (( ${+commands[swaymsg]} )) && (( ${+commands[jq]} )); then # wayland+sway - # output is "app_id, container id" (Alacritty, 1694) - swaymsg -t get_tree | jq '.. | select(.type?) | select(.focused==true) | {app_id, id} | join(", ")' + elif [[ -n $WAYLAND_DISPLAY ]] && (( ${+commands[swaymsg]} )); then # wayland+sway + local app_id=$(find_sway_appid) + [[ -n "$app_id" ]] && echo "$app_id" || echo $EPOCHSECONDS elif [[ -z $WAYLAND_DISPLAY ]] && [[ -n $DISPLAY ]] && (( ${+commands[xprop]} )); then xprop -root _NET_ACTIVE_WINDOW 2>/dev/null | cut -d' ' -f5 else @@ -73,19 +73,55 @@ function bgnotify_appid { fi } + +function find_sway_appid { + # output is "app_id,container_id", for example "Alacritty,1694" + # see example swaymsg output: https://github.com/ohmyzsh/ohmyzsh/files/13463939/output.json + if (( ${+commands[jq]} )); then + swaymsg -t get_tree | jq '.. | select(.type?) | select(.focused==true) | {app_id, id} | join(",")' + else + swaymsg -t get_tree | awk ' + BEGIN { Id = ""; Appid = ""; FocusNesting = -1; Nesting = 0 } + { + # Enter a block + if ($0 ~ /.*{$/) Nesting++ + + # Exit a block. If Nesting is now less than FocusNesting, we have the data we are looking for + if ($0 ~ /^[[:blank:]]*}.*/) { Nesting--; if (FocusNesting > 0 && Nesting < FocusNesting) exit 0 } + + # Save the Id, it is potentially what we are looking for + if ($0 ~ /^[[:blank:]]*"id": [0-9]*,?$/) { sub(/^[[:blank:]]*"id": /, ""); sub(/,$/, ""); Id = $0 } + + # Save the Appid, it is potentially what we are looking for + if ($0 ~ /^[[:blank:]]*"app_id": ".*",?$/) { sub(/^[[:blank:]]*"app_id": "/, ""); sub(/",$/, ""); Appid = $0 } + + # Window is focused, this nesting block contains the Id and Appid we want! + if ($0 ~ /^[[:blank:]]*"focused": true,?$/) { FocusNesting = Nesting } + } + END { + if (Appid != "" && Id != "" && FocusNesting != -1) print Appid "," Id + else print "" + }' + fi +} + +function find_term_id { + local term_id="${bgnotify_termid%%,*}" # remove window id + 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 + echo "$term_id" +} + function bgnotify { local title="$1" local message="$2" local icon="$3" if (( ${+commands[terminal-notifier]} )); then # macOS - local term_id="${bgnotify_termid%%,*}" # remove window id - 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 - + local term_id=$(find_term_id) terminal-notifier -message "$message" -title "$title" ${=icon:+-appIcon "$icon"} ${=term_id:+-activate "$term_id" -sender "$term_id"} &>/dev/null elif (( ${+commands[growlnotify]} )); then # macOS growl growlnotify -m "$title" "$message" From b6afbbea3a6f41e4016e967da57b33872aff9944 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Fri, 1 Dec 2023 17:03:15 +0100 Subject: [PATCH 420/441] fix(installer): fix path logic and improve clarity on ZDOTDIR use --- tools/install.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/install.sh b/tools/install.sh index fcfbcf778..508fc2f77 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -63,7 +63,9 @@ zdot="${ZDOTDIR:-$HOME}" # Default value for $ZSH # a) if $ZDOTDIR is supplied and not $HOME: $ZDOTDIR/ohmyzsh # b) otherwise, $HOME/.oh-my-zsh -[ "$ZDOTDIR" = "$HOME" ] || ZSH="${ZSH:-${ZDOTDIR:+$ZDOTDIR/ohmyzsh}}" +if [ -n "$ZDOTDIR" ] && [ "$ZDOTDIR" != "$HOME" ]; then + ZSH="${ZSH:-$ZDOTDIR/ohmyzsh}" +fi ZSH="${ZSH:-$HOME/.oh-my-zsh}" # Default settings From 0a9d82780e20e24b6fafc5b2aaefedb0957986c9 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Fri, 1 Dec 2023 17:09:48 +0100 Subject: [PATCH 421/441] feat(bgnotify): add option to disable terminal bell (#12077) --- plugins/bgnotify/README.md | 2 ++ plugins/bgnotify/bgnotify.plugin.zsh | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/bgnotify/README.md b/plugins/bgnotify/README.md index 6bbe3b302..33d529f15 100644 --- a/plugins/bgnotify/README.md +++ b/plugins/bgnotify/README.md @@ -35,12 +35,14 @@ Just add bgnotify to your plugins list in your `.zshrc` One can configure a few things: +- `bgnotify_bell` enabled or disables the terminal bell (default true) - `bgnotify_threshold` sets the notification threshold time (default 6 seconds) - `function bgnotify_formatted` lets you change the notification. You can for instance customize the message and pass in an icon. Use these by adding a function definition before the your call to source. Example: ```sh +bgnotify_bell=false ## disable terminal bell bgnotify_threshold=4 ## set your own notification threshold function bgnotify_formatted { diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index 4499d816c..3c0766191 100644 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -27,7 +27,7 @@ function bgnotify_end { # check if Terminal app is not active [[ $(bgnotify_appid) != "$bgnotify_termid" ]] || return - printf '\a' # beep sound + [[ $bgnotify_bell = true ]] && printf '\a' # beep sound bgnotify_formatted "$exit_status" "$bgnotify_lastcmd" "$elapsed" } always { bgnotify_timestamp=0 @@ -136,6 +136,9 @@ function bgnotify { ## Defaults +# enable terminal bell on notify by default +bgnotify_bell=${bgnotify_bell:-true} + # notify if command took longer than 5s by default bgnotify_threshold=${bgnotify_threshold:-5} From 1ae0515a80686d33406c9a2c58c0c9666ca47c77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 6 Dec 2023 08:09:45 +0100 Subject: [PATCH 422/441] fix(lib): patch `omz_urlencode` to not encode UTF-8 chars in Termux (#12076) Fixes #12061 --- lib/functions.zsh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/functions.zsh b/lib/functions.zsh index a252d0a33..f5c671f9c 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -182,6 +182,8 @@ function omz_urlencode() { fi # Use LC_CTYPE=C to process text byte-by-byte + # Note that this doesn't work in Termux, as it only has UTF-8 locale. + # Characters will be processed as UTF-8, which is fine for URLs. local i byte ord LC_ALL=C export LC_ALL local reserved=';/?:@&=+$,' @@ -206,6 +208,9 @@ function omz_urlencode() { else if [[ "$byte" == " " && -n $spaces_as_plus ]]; then url_str+="+" + elif [[ "$PREFIX" = *com.termux* ]]; then + # Termux does not have non-UTF8 locales, so just send the UTF-8 character directly + url_str+="$byte" else ord=$(( [##16] #byte )) url_str+="%$ord" From c37df3ebd48df98b0987d891acc7ea30044bb113 Mon Sep 17 00:00:00 2001 From: Josh Hubbard Date: Wed, 6 Dec 2023 09:13:19 +0100 Subject: [PATCH 423/441] feat(frontend-search): add nextjs --- plugins/frontend-search/README.md | 1 + plugins/frontend-search/frontend-search.plugin.zsh | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/frontend-search/README.md b/plugins/frontend-search/README.md index 050058931..619d31e7f 100644 --- a/plugins/frontend-search/README.md +++ b/plugins/frontend-search/README.md @@ -60,6 +60,7 @@ Available search contexts are: | typescript | `https://google.com/search?as_sitesearch=www.typescriptlang.org/docs&as_q=` | | unheap | `http://www.unheap.com/?s=` | | vuejs | `https://www.google.com/search?as_sitesearch=vuejs.org&as_q=` | +| nextjs | `https://www.google.com/search?as_sitesearch=nextjs.org&as_q=` | If you want to have another context, open an Issue and tell us! diff --git a/plugins/frontend-search/frontend-search.plugin.zsh b/plugins/frontend-search/frontend-search.plugin.zsh index b9e2fe95d..541b23701 100644 --- a/plugins/frontend-search/frontend-search.plugin.zsh +++ b/plugins/frontend-search/frontend-search.plugin.zsh @@ -27,6 +27,7 @@ alias stackoverflow='frontend stackoverflow' alias typescript='frontend typescript' alias unheap='frontend unheap' alias vuejs='frontend vuejs' +alias nextjs='frontend nextjs' function _frontend_fallback() { case "$FRONTEND_SEARCH_FALLBACK" in @@ -70,6 +71,7 @@ function frontend() { typescript $(_frontend_fallback 'www.typescriptlang.org/docs') unheap 'http://www.unheap.com/?s=' vuejs $(_frontend_fallback 'vuejs.org') + nextjs $(_frontend_fallback 'nextjs.org') ) # show help for command list @@ -81,7 +83,7 @@ function frontend() { print -P "" print -P " angular, angularjs, bem, bootsnipp, caniuse, codepen, compassdoc, cssflow, packagephobia" print -P " dartlang, emberjs, fontello, flowtype, github, html5please, jestjs, jquery, lodash," - print -P " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia" + print -P " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia, nextjs" print -P "" print -P "For example: frontend npmjs mocha (or just: npmjs mocha)." print -P "" @@ -96,7 +98,7 @@ function frontend() { echo "" echo " angular, angularjs, bem, bootsnipp, caniuse, codepen, compassdoc, cssflow, packagephobia" echo " dartlang, emberjs, fontello, github, html5please, jest, jquery, lodash," - echo " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia" + echo " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia, nextjs" echo "" return 1 fi From 346bd1cd53e1bd3bd881f94552efadeebab430e4 Mon Sep 17 00:00:00 2001 From: Josh Hubbard Date: Wed, 6 Dec 2023 09:15:53 +0100 Subject: [PATCH 424/441] feat(frontend-search): add `I am lucky` option --- plugins/frontend-search/README.md | 11 ++++++++++- plugins/frontend-search/frontend-search.plugin.zsh | 14 ++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/plugins/frontend-search/README.md b/plugins/frontend-search/README.md index 619d31e7f..920795060 100644 --- a/plugins/frontend-search/README.md +++ b/plugins/frontend-search/README.md @@ -66,7 +66,16 @@ If you want to have another context, open an Issue and tell us! ## Fallback search behaviour -The plugin will use Google as a fallback if the docs site for a search context does not have a search function. You can set the fallback search engine to DuckDuckGo by setting `FRONTEND_SEARCH_FALLBACK='duckduckgo'` in your `~/.zshrc` file before Oh My Zsh is sourced. +The plugin will use Google as a fallback if the docs site for a search context does not have a search +function. You can set the fallback search engine to DuckDuckGo by setting +`FRONTEND_SEARCH_FALLBACK='duckduckgo'` in your `~/.zshrc` file before Oh My Zsh is sourced. + +## DuckDuckGo Lucky Search + +Enable DuckDuckGo's "ducky" (lucky) search feature to automatically access the top search result. This feature +is optimized for DuckDuckGo, as Google redirects to an intermediate page. The FRONTEND_SEARCH_FALLBACK_LUCKY +environment variable triggers the use of DuckDuckGo's lucky search, rendering the FRONTEND_SEARCH_FALLBACK +setting unnecessary in this context. ## Author diff --git a/plugins/frontend-search/frontend-search.plugin.zsh b/plugins/frontend-search/frontend-search.plugin.zsh index 541b23701..c96596eb9 100644 --- a/plugins/frontend-search/frontend-search.plugin.zsh +++ b/plugins/frontend-search/frontend-search.plugin.zsh @@ -30,10 +30,16 @@ alias vuejs='frontend vuejs' alias nextjs='frontend nextjs' function _frontend_fallback() { - case "$FRONTEND_SEARCH_FALLBACK" in - duckduckgo) echo "https://duckduckgo.com/?sites=$1&q=" ;; - *) echo "https://google.com/search?as_sitesearch=$1&as_q=" ;; - esac + if [[ "$FRONTEND_SEARCH_FALLBACK_LUCKY" == "true" ]]; then + case true in + *) echo "https://duckduckgo.com/?q=!ducky+site%3A$1+" ;; + esac + else + case "$FRONTEND_SEARCH_FALLBACK" in + duckduckgo) echo "https://duckduckgo.com/?sites=$1&q=" ;; + *) echo "https://google.com/search?as_sitesearch=$1&as_q=" ;; + esac + fi } function frontend() { From 48ccc7b36de8efb2bd7beb9bd6e0a6f6fe03b95d Mon Sep 17 00:00:00 2001 From: Jasmin Date: Wed, 6 Dec 2023 08:22:06 +0000 Subject: [PATCH 425/441] feat(dotnet): update completion script (#12028) --- plugins/dotnet/dotnet.plugin.zsh | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/plugins/dotnet/dotnet.plugin.zsh b/plugins/dotnet/dotnet.plugin.zsh index 89d464670..40ee7efae 100644 --- a/plugins/dotnet/dotnet.plugin.zsh +++ b/plugins/dotnet/dotnet.plugin.zsh @@ -1,22 +1,14 @@ # This scripts is copied from (MIT License): -# https://github.com/dotnet/toolset/blob/master/scripts/register-completions.zsh +# https://raw.githubusercontent.com/dotnet/sdk/main/scripts/register-completions.zsh -_dotnet_zsh_complete() -{ - local completions=("$(dotnet complete "$words")") - - # If the completion list is empty, just continue with filename selection - if [ -z "$completions" ] - then - _arguments '*::arguments: _normal' - return - fi - - # This is not a variable assignment, don't remove spaces! - _values = "${(ps:\n:)completions}" +#compdef dotnet +_dotnet_completion() { + local -a completions=("${(@f)$(dotnet complete "${words}")}") + compadd -a completions + _files } -compdef _dotnet_zsh_complete dotnet +compdef _dotnet_completion dotnet # Aliases bellow are here for backwards compatibility # added by Shaun Tabone (https://github.com/xontab) From dd3be612e3df1450de40a74fadc6df3c2885e9b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 20 Dec 2023 10:21:31 +0100 Subject: [PATCH 426/441] ci(dependencies): add automation for updating external dependencies (#12109) --- .github/dependencies.yml | 20 + .github/workflows/dependencies.yml | 26 ++ .github/workflows/dependencies/updater.py | 450 ++++++++++++++++++++++ 3 files changed, 496 insertions(+) create mode 100644 .github/dependencies.yml create mode 100644 .github/workflows/dependencies.yml create mode 100644 .github/workflows/dependencies/updater.py diff --git a/.github/dependencies.yml b/.github/dependencies.yml new file mode 100644 index 000000000..8c46395d7 --- /dev/null +++ b/.github/dependencies.yml @@ -0,0 +1,20 @@ +dependencies: + plugins/gitfast: + repo: felipec/git-completion + branch: master + version: tag:v1.3.7 + postcopy: | + set -e + rm -rf git-completion.plugin.zsh Makefile README.adoc t tools + test -e git-completion.zsh && mv -f git-completion.zsh _git + plugins/z: + branch: master + repo: agkozak/zsh-z + version: 6bfe418332866d15373392164df11b4fbec2083f + precopy: | + set -e + test -e README.md && mv -f README.md MANUAL.md + postcopy: | + set -e + test -e _zshz && mv -f _zshz _z + test -e zsh-z.plugin.zsh && mv -f zsh-z.plugin.zsh z.plugin.zsh diff --git a/.github/workflows/dependencies.yml b/.github/workflows/dependencies.yml new file mode 100644 index 000000000..c27ad7998 --- /dev/null +++ b/.github/workflows/dependencies.yml @@ -0,0 +1,26 @@ +name: Update dependencies +on: + workflow_dispatch: {} + # schedule: + # - cron: '34 3 * * */8' + +jobs: + check: + name: Check for updates + runs-on: ubuntu-latest + steps: + - name: Checkout + if: github.repository == 'ohmyzsh/ohmyzsh' + uses: actions/checkout@v4 + - name: Authenticate as @ohmyzsh + uses: ohmyzsh/github-app-token@v2 + with: + app-id: ${{ secrets.OHMYZSH_APP_ID }} + private-key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }} + - name: Process dependencies + env: + GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} + TMP_DIR: ${{ env.RUNNER_TEMP }} + run: | + gh auth login --with-token <<< "${GITHUB_TOKEN}" + python3 .github/workflows/dependencies/updater.py diff --git a/.github/workflows/dependencies/updater.py b/.github/workflows/dependencies/updater.py new file mode 100644 index 000000000..5af19d14c --- /dev/null +++ b/.github/workflows/dependencies/updater.py @@ -0,0 +1,450 @@ +import os +import subprocess +import sys +import requests +import shutil +import yaml +from copy import deepcopy +from typing import Optional, TypedDict + +# Get TMP_DIR variable from environment +TMP_DIR = os.path.join(os.environ.get("TMP_DIR", "/tmp"), "ohmyzsh") +# Relative path to dependencies.yml file +DEPS_YAML_FILE = ".github/dependencies.yml" +# Dry run flag +DRY_RUN = os.environ.get("DRY_RUN", "0") == "1" + +import timeit +class CodeTimer: + def __init__(self, name=None): + self.name = " '" + name + "'" if name else '' + + def __enter__(self): + self.start = timeit.default_timer() + + def __exit__(self, exc_type, exc_value, traceback): + self.took = (timeit.default_timer() - self.start) * 1000.0 + print('Code block' + self.name + ' took: ' + str(self.took) + ' ms') + + +### YAML representation +def str_presenter(dumper, data): + """ + Configures yaml for dumping multiline strings + Ref: https://stackoverflow.com/a/33300001 + """ + if len(data.splitlines()) > 1: # check for multiline string + return dumper.represent_scalar('tag:yaml.org,2002:str', data, style='|') + return dumper.represent_scalar('tag:yaml.org,2002:str', data) + +yaml.add_representer(str, str_presenter) +yaml.representer.SafeRepresenter.add_representer(str, str_presenter) + + +# Types +class DependencyDict(TypedDict): + repo: str + branch: str + version: str + precopy: Optional[str] + postcopy: Optional[str] + +class DependencyYAML(TypedDict): + dependencies: dict[str, DependencyDict] + +class UpdateStatus(TypedDict): + has_updates: bool + version: Optional[str] + compare_url: Optional[str] + head_ref: Optional[str] + head_url: Optional[str] + + +class CommandRunner: + class Exception(Exception): + def __init__(self, message, returncode, stage, stdout, stderr): + super().__init__(message) + self.returncode = returncode + self.stage = stage + self.stdout = stdout + self.stderr = stderr + + @staticmethod + def run_or_fail(command: list[str], stage: str, *args, **kwargs): + if DRY_RUN and command[0] == "gh": + command.insert(0, "echo") + + result = subprocess.run(command, *args, capture_output=True, **kwargs) + + if result.returncode != 0: + raise CommandRunner.Exception( + f"{stage} command failed with exit code {result.returncode}", returncode=result.returncode, + stage=stage, + stdout=result.stdout.decode("utf-8"), + stderr=result.stderr.decode("utf-8") + ) + + return result + + +class DependencyStore: + store: DependencyYAML = { + "dependencies": {} + } + + @staticmethod + def set(data: DependencyYAML): + DependencyStore.store = data + + @staticmethod + def update_dependency_version(path: str, version: str) -> DependencyYAML: + with CodeTimer(f"store deepcopy: {path}"): + store_copy = deepcopy(DependencyStore.store) + + dependency = store_copy["dependencies"].get(path, {}) + dependency["version"] = version + store_copy["dependencies"][path] = dependency + + return store_copy + + @staticmethod + def write_store(file: str, data: DependencyYAML): + with open(file, "w") as yaml_file: + yaml.safe_dump(data, yaml_file, sort_keys=False) + + +class Dependency: + def __init__(self, path: str, values: DependencyDict): + self.path = path + self.values = values + + self.name: str = "" + self.desc: str = "" + self.kind: str = "" + + match path.split("/"): + case ["plugins", name]: + self.name = name + self.kind = "plugin" + self.desc = f"{name} plugin" + case ["themes", name]: + self.name = name.replace(".zsh-theme", "") + self.kind = "theme" + self.desc = f"{self.name} theme" + case _: + self.name = self.desc = path + + def __str__(self): + output: str = "" + for key in DependencyDict.__dict__['__annotations__'].keys(): + if key not in self.values: + output += f"{key}: None\n" + continue + + value = self.values[key] + if "\n" not in value: + output += f"{key}: {value}\n" + else: + output += f"{key}:\n " + output += value.replace("\n", "\n ", value.count("\n") - 1) + return output + + def update_or_notify(self): + # Print dependency settings + print(f"Processing {self.desc}...", file=sys.stderr) + print(self, file=sys.stderr) + + # Check for updates + repo = self.values["repo"] + remote_branch = self.values["branch"] + version = self.values["version"] + is_tag = version.startswith("tag:") + + try: + with CodeTimer(f"update check: {repo}"): + if is_tag: + status = GitHub.check_newer_tag(repo, version.replace("tag:", "")) + else: + status = GitHub.check_updates(repo, remote_branch, version) + + if status["has_updates"]: + short_sha = status["head_ref"][:8] + new_version = status["version"] if is_tag else short_sha + + try: + # Create new branch + branch = Git.create_branch(self.path, new_version) + + # Update dependencies.yml file + self.__update_yaml(f"tag:{new_version}" if is_tag else status["version"]) + + # Update dependency files + self.__apply_upstream_changes() + + # Add all changes and commit + Git.add_and_commit(self.name, short_sha) + + # Push changes to remote + Git.push(branch) + + # Create GitHub PR + GitHub.create_pr( + branch, + f"feat({self.name}): update to version {new_version}", + f"""## Description + +Update for **{self.desc}**: update to version [{new_version}]({status['head_url']}). +Check out the [list of changes]({status['compare_url']}). +""" + ) + + # Clean up repository + Git.clean_repo() + except (CommandRunner.Exception, shutil.Error) as e: + # Handle exception on automatic update + match type(e): + case CommandRunner.Exception: + # Print error message + print(f"Error running {e.stage} command: {e.returncode}", file=sys.stderr) + print(e.stderr, file=sys.stderr) + case shutil.Error: + print(f"Error copying files: {e}", file=sys.stderr) + + try: + Git.clean_repo() + except CommandRunner.Exception as e: + print(f"Error reverting repository to clean state: {e}", file=sys.stderr) + sys.exit(1) + + # Create a GitHub issue to notify maintainer + title = f"{self.path}: update to {new_version}" + body = ( + f"""## Description + +There is a new version of `{self.name}` {self.kind} available. + +New version: [{new_version}]({status['head_url']}) +Check out the [list of changes]({status['compare_url']}). +""" + ) + + print(f"Creating GitHub issue", file=sys.stderr) + print(f"{title}\n\n{body}", file=sys.stderr) + GitHub.create_issue(title, body) + except Exception as e: + print(e, file=sys.stderr) + + def __update_yaml(self, new_version: str) -> None: + dep_yaml = DependencyStore.update_dependency_version(self.path, new_version) + DependencyStore.write_store(DEPS_YAML_FILE, dep_yaml) + + def __apply_upstream_changes(self) -> None: + # Patterns to ignore in copying files from upstream repo + GLOBAL_IGNORE = [ + ".git", + ".github", + ".gitignore" + ] + + path = os.path.abspath(self.path) + precopy = self.values.get("precopy") + postcopy = self.values.get("postcopy") + + repo = self.values["repo"] + branch = self.values["branch"] + remote_url = f"https://github.com/{repo}.git" + repo_dir = os.path.join(TMP_DIR, repo) + + # Clone repository + Git.clone(remote_url, branch, repo_dir, reclone=True) + + # Run precopy on tmp repo + if precopy is not None: + print("Running precopy script:", end="\n ", file=sys.stderr) + print(precopy.replace("\n", "\n ", precopy.count("\n") - 1), file=sys.stderr) + CommandRunner.run_or_fail(["bash", "-c", precopy], cwd=repo_dir, stage="Precopy") + + # Copy files from upstream repo + print(f"Copying files from {repo_dir} to {path}", file=sys.stderr) + shutil.copytree(repo_dir, path, dirs_exist_ok=True, ignore=shutil.ignore_patterns(*GLOBAL_IGNORE)) + + # Run postcopy on our repository + if postcopy is not None: + print("Running postcopy script:", end="\n ", file=sys.stderr) + print(postcopy.replace("\n", "\n ", postcopy.count("\n") - 1), file=sys.stderr) + CommandRunner.run_or_fail(["bash", "-c", postcopy], cwd=path, stage="Postcopy") + + +class Git: + default_branch = "master" + + @staticmethod + def clone(remote_url: str, branch: str, repo_dir: str, reclone=False): + # If repo needs to be fresh + if reclone and os.path.exists(repo_dir): + shutil.rmtree(repo_dir) + + # Clone repo in tmp directory and checkout branch + if not os.path.exists(repo_dir): + print(f"Cloning {remote_url} to {repo_dir} and checking out {branch}", file=sys.stderr) + CommandRunner.run_or_fail(["git", "clone", "--depth=1", "-b", branch, remote_url, repo_dir], stage="Clone") + + @staticmethod + def create_branch(path: str, version: str): + # Get current branch name + result = CommandRunner.run_or_fail(["git", "rev-parse", "--abbrev-ref", "HEAD"], stage="GetDefaultBranch") + Git.default_branch = result.stdout.decode("utf-8").strip() + + # Create new branch and return created branch name + branch_name = f"update/{path}/{version}" + CommandRunner.run_or_fail(["git", "checkout", "-b", branch_name], stage="CreateBranch") + return branch_name + + @staticmethod + def add_and_commit(scope: str, version: str): + user_name = "ohmyzsh" + user_email = "bot@ohmyz.sh" + + # Add all files to git staging + CommandRunner.run_or_fail(["git", "add", "-A", "-v"], stage="AddFiles") + + # Reset environment and git config + clean_env = os.environ.copy() + clean_env["LANG"]="C.UTF-8" + clean_env["GIT_CONFIG_GLOBAL"]="/dev/null" + clean_env["GIT_CONFIG_NOSYSTEM"]="1" + + # Commit with settings above + CommandRunner.run_or_fail([ + "git", + "-c", f"user.name={user_name}", + "-c", f"user.email={user_email}", + "commit", + "-m", f"feat({scope}): update to {version}" + ], stage="CreateCommit", env=clean_env) + + @staticmethod + def push(branch: str): + CommandRunner.run_or_fail(["git", "push", "-u", "origin", branch], stage="PushBranch") + + @staticmethod + def clean_repo(): + CommandRunner.run_or_fail(["git", "reset", "--hard", "HEAD"], stage="ResetRepository") + CommandRunner.run_or_fail(["git", "checkout", Git.default_branch], stage="CheckoutDefaultBranch") + + +class GitHub: + @staticmethod + def check_newer_tag(repo, current_tag) -> UpdateStatus: + # GET /repos/:owner/:repo/git/refs/tags + url = f"https://api.github.com/repos/{repo}/git/refs/tags" + + # Send a GET request to the GitHub API + response = requests.get(url) + + # If the request was successful + if response.status_code == 200: + # Parse the JSON response + data = response.json() + + if len(data) == 0: + return { + "has_updates": False, + } + + latest_ref = data[-1] + latest_tag = latest_ref["ref"].replace("refs/tags/", "") + + if latest_tag == current_tag: + return { + "has_updates": False, + } + + return { + "has_updates": True, + "version": latest_tag, + "compare_url": f"https://github.com/{repo}/compare/{current_tag}...{latest_tag}", + "head_ref": latest_ref["object"]["sha"], + "head_url": f"https://github.com/{repo}/releases/tag/{latest_tag}", + } + else: + # If the request was not successful, raise an exception + raise Exception(f"GitHub API request failed with status code {response.status_code}: {response.json()}") + + @staticmethod + def check_updates(repo, branch, version) -> UpdateStatus: + # TODO: add support for semver updating (based on tags) + # Check if upstream github repo has a new version + # GitHub API URL for comparing two commits + url = f"https://api.github.com/repos/{repo}/compare/{version}...{branch}" + + # Send a GET request to the GitHub API + response = requests.get(url) + + # If the request was successful + if response.status_code == 200: + # Parse the JSON response + data = response.json() + + # If the base is behind the head, there is a newer version + has_updates = data["status"] != "identical" + + if not has_updates: + return { + "has_updates": False, + } + + return { + "has_updates": data["status"] != "identical", + "version": data["commits"][-1]["sha"], + "compare_url": data["permalink_url"], + "head_ref": data["commits"][-1]["sha"], + "head_url": data["commits"][-1]["html_url"] + } + else: + # If the request was not successful, raise an exception + raise Exception(f"GitHub API request failed with status code {response.status_code}: {response.json()}") + + @staticmethod + def create_issue(title: str, body: str) -> None: + cmd = [ + "gh", + "issue", + "create", + "-t", title, + "-b", body + ] + CommandRunner.run_or_fail(cmd, stage="CreateIssue") + + @staticmethod + def create_pr(branch: str, title: str, body: str) -> None: + cmd = [ + "gh", + "pr", + "create", + "-B", Git.default_branch, + "-H", branch, + "-t", title, + "-b", body + ] + CommandRunner.run_or_fail(cmd, stage="CreatePullRequest") + + +def main(): + # Load the YAML file + with open(DEPS_YAML_FILE, "r") as yaml_file: + data: DependencyYAML = yaml.safe_load(yaml_file) + + if "dependencies" not in data: + raise Exception(f"dependencies.yml not properly formatted") + + # Cache YAML version + DependencyStore.set(data) + + dependencies = data["dependencies"] + for path in dependencies: + dependency = Dependency(path, dependencies[path]) + dependency.update_or_notify() + +if __name__ == "__main__": + main() From 0bb00eddbbc25564b5329899fcdfcd28153da720 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 20 Dec 2023 19:38:25 +0100 Subject: [PATCH 427/441] ci(dependencies): fix typo --- .github/workflows/dependencies.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dependencies.yml b/.github/workflows/dependencies.yml index c27ad7998..aab740126 100644 --- a/.github/workflows/dependencies.yml +++ b/.github/workflows/dependencies.yml @@ -15,8 +15,8 @@ jobs: - name: Authenticate as @ohmyzsh uses: ohmyzsh/github-app-token@v2 with: - app-id: ${{ secrets.OHMYZSH_APP_ID }} - private-key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }} + app_id: ${{ secrets.OHMYZSH_APP_ID }} + private_key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }} - name: Process dependencies env: GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} From 2a1574165691495d21b3f243f50e1b655b361d9b Mon Sep 17 00:00:00 2001 From: Oleg Grigoriev Date: Wed, 20 Dec 2023 22:52:27 +0300 Subject: [PATCH 428/441] fix(rake-fast): make `.rake_tasks` write atomic (#12108) --- plugins/rake-fast/rake-fast.plugin.zsh | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/plugins/rake-fast/rake-fast.plugin.zsh b/plugins/rake-fast/rake-fast.plugin.zsh index 86e5ed586..082f02f29 100644 --- a/plugins/rake-fast/rake-fast.plugin.zsh +++ b/plugins/rake-fast/rake-fast.plugin.zsh @@ -43,14 +43,17 @@ _tasks_changed () { } _rake_generate () { - echo "version:$_rake_tasks_version" > .rake_tasks - - rake --silent --tasks --all \ + local rake_tasks_content="version:$_rake_tasks_version\n" + rake_tasks_content+=$(rake --silent --tasks --all \ | sed "s/^rake //" | sed "s/\:/\\\:/g" \ | sed "s/\[[^]]*\]//g" \ | sed "s/ *# /\:/" \ - | sed "s/\:$//" \ - >> .rake_tasks + | sed "s/\:$//") + + local rake_tasks_file="$(mktemp -t .rake_tasks.XXXXXX)" + echo $rake_tasks_content > $rake_tasks_file + + mv $rake_tasks_file .rake_tasks } _rake () { From 17e96bf91ee0bc3dc27fa65b0ea7b10d3b971f9d Mon Sep 17 00:00:00 2001 From: Gautam krishna R Date: Thu, 21 Dec 2023 01:40:32 +0530 Subject: [PATCH 429/441] fix(changelog): use longer hashes for commits (#12096) --- tools/changelog.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tools/changelog.sh b/tools/changelog.sh index 6d768963e..3ad8fe786 100755 --- a/tools/changelog.sh +++ b/tools/changelog.sh @@ -292,16 +292,17 @@ function display-release { function fmt:hash { #* Uses $hash from outer scope local hash="${1:-$hash}" + local short_hash="${hash:0:7}" # 7 characters sha, top level sha is 12 characters case "$output" in - raw) printf '%s' "$hash" ;; + raw) printf '%s' "$short_hash" ;; text) - local text="\e[33m$hash\e[0m"; # red + local text="\e[33m$short_hash\e[0m"; # red if supports_hyperlinks; then printf "\e]8;;%s\a%s\e]8;;\a" "https://github.com/ohmyzsh/ohmyzsh/commit/$hash" $text; else echo $text; fi ;; - md) printf '[`%s`](https://github.com/ohmyzsh/ohmyzsh/commit/%s)' "$hash" "$hash" ;; + md) printf '[`%s`](https://github.com/ohmyzsh/ohmyzsh/commit/%s)' "$short_hash" "$hash" ;; esac } @@ -512,13 +513,13 @@ function main { # Git log options # -z: commits are delimited by null bytes # --format: [7-char hash][ref names][subject][body] - # --abbrev=7: force commit hashes to be 7 characters long + # --abbrev=7: force commit hashes to be 12 characters long # --no-merges: merge commits are omitted # --first-parent: commits from merged branches are omitted local SEP="0mZmAgIcSeP" local -a raw_commits raw_commits=(${(0)"$(command git -c log.showSignature=false log -z \ - --format="%h${SEP}%D${SEP}%s${SEP}%b" --abbrev=7 \ + --format="%h${SEP}%D${SEP}%s${SEP}%b" --abbrev=12 \ --no-merges --first-parent $range)"}) local raw_commit From 9004c177bac951f46ab1ec5b74a8bcfb8e3c686b Mon Sep 17 00:00:00 2001 From: Gautam krishna R Date: Fri, 22 Dec 2023 14:27:23 +0530 Subject: [PATCH 430/441] fix(bgnotify): make it work with `set -e` (#12111) Co-authored-by: ipChrisLee --- plugins/bgnotify/bgnotify.plugin.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index 3c0766191..c28a29e19 100644 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -21,11 +21,11 @@ function bgnotify_end { local elapsed=$(( EPOCHSECONDS - bgnotify_timestamp )) # check time elapsed - [[ $bgnotify_timestamp -gt 0 ]] || return - [[ $elapsed -ge $bgnotify_threshold ]] || return + [[ $bgnotify_timestamp -gt 0 ]] || return 0 + [[ $elapsed -ge $bgnotify_threshold ]] || return 0 # check if Terminal app is not active - [[ $(bgnotify_appid) != "$bgnotify_termid" ]] || return + [[ $(bgnotify_appid) != "$bgnotify_termid" ]] || return 0 [[ $bgnotify_bell = true ]] && printf '\a' # beep sound bgnotify_formatted "$exit_status" "$bgnotify_lastcmd" "$elapsed" From f74add6cb215b55722f9e64273be82d7bae5014e Mon Sep 17 00:00:00 2001 From: Nidelson Gimenez Date: Sun, 24 Dec 2023 05:40:51 -0300 Subject: [PATCH 431/441] feat(react-native): add aliases for iPhone 15 (#12114) --- plugins/react-native/README.md | 4 ++++ plugins/react-native/react-native.plugin.zsh | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/plugins/react-native/README.md b/plugins/react-native/README.md index 807c063a5..39eed6c68 100644 --- a/plugins/react-native/README.md +++ b/plugins/react-native/README.md @@ -54,6 +54,10 @@ plugins=(... react-native) | **rnios14pl** | `react-native run-ios --simulator "iPhone 14 Plus"` | | **rnios14p** | `react-native run-ios --simulator "iPhone 14 Pro"` | | **rnios14pm** | `react-native run-ios --simulator "iPhone 14 Pro Max"` | +| **rnios15** | `react-native run-ios --simulator "iPhone 15"` | +| **rnios15pl** | `react-native run-ios --simulator "iPhone 15 Plus"` | +| **rnios15p** | `react-native run-ios --simulator "iPhone 15 Pro"` | +| **rnios15pm** | `react-native run-ios --simulator "iPhone 15 Pro Max"` | | _iPad_ | | | **rnipad2** | `react-native run-ios --simulator "iPad 2"` | | **rnipad5** | `react-native run-ios --simulator "iPad (5th generation)"` | diff --git a/plugins/react-native/react-native.plugin.zsh b/plugins/react-native/react-native.plugin.zsh index afeaab4fd..9ee081248 100644 --- a/plugins/react-native/react-native.plugin.zsh +++ b/plugins/react-native/react-native.plugin.zsh @@ -39,6 +39,10 @@ alias rnios14='react-native run-ios --simulator "iPhone 14"' alias rnios14pl='react-native run-ios --simulator "iPhone 14 Plus"' alias rnios14p='react-native run-ios --simulator "iPhone 14 Pro"' alias rnios14pm='react-native run-ios --simulator "iPhone 14 Pro Max"' +alias rnios15='react-native run-ios --simulator "iPhone 15"' +alias rnios15pl='react-native run-ios --simulator "iPhone 15 Plus"' +alias rnios15p='react-native run-ios --simulator "iPhone 15 Pro"' +alias rnios15pm='react-native run-ios --simulator "iPhone 15 Pro Max"' # iPad alias rnipad2='react-native run-ios --simulator "iPad 2"' From 8a8a04f43a23f9d3f25b941293d0e9be1d3e301c Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 27 Dec 2023 10:52:23 +0100 Subject: [PATCH 432/441] fix(nvm): prevent duplicates in lazy_cmd Closes #11344 --- plugins/nvm/nvm.plugin.zsh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index 1badbeab5..94b666175 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -24,9 +24,14 @@ if zstyle -t ':omz:plugins:nvm' lazy && \ ! zstyle -t ':omz:plugins:nvm' autoload; then # Call nvm when first using nvm, node, npm, pnpm, yarn or other commands in lazy-cmd zstyle -a ':omz:plugins:nvm' lazy-cmd nvm_lazy_cmd + nvm_lazy_cmd=(nvm node npm npx pnpm yarn $nvm_lazy_cmd) # default values eval " - function nvm node npm npx pnpm yarn $nvm_lazy_cmd { - unfunction nvm node npm npx pnpm yarn $nvm_lazy_cmd + function $nvm_lazy_cmd { + for func in $nvm_lazy_cmd; do + if (( \$+functions[\$func] )); then + unfunction \$func + fi + done # Load nvm if it exists in \$NVM_DIR [[ -f \"\$NVM_DIR/nvm.sh\" ]] && source \"\$NVM_DIR/nvm.sh\" \"\$0\" \"\$@\" From 64d881b479cec5e62384176773f1b4d0a057ba47 Mon Sep 17 00:00:00 2001 From: Brian Hartvigsen Date: Wed, 27 Dec 2023 02:57:53 -0700 Subject: [PATCH 433/441] fix(bgnotify): don't require accessibility perms in macos (#11433) --- plugins/bgnotify/bgnotify.plugin.zsh | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index c28a29e19..0e3f2c640 100644 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -27,7 +27,6 @@ function bgnotify_end { # check if Terminal app is not active [[ $(bgnotify_appid) != "$bgnotify_termid" ]] || return 0 - [[ $bgnotify_bell = true ]] && printf '\a' # beep sound bgnotify_formatted "$exit_status" "$bgnotify_lastcmd" "$elapsed" } always { bgnotify_timestamp=0 @@ -52,6 +51,7 @@ function bgnotify_formatted { (( $3 < 60 )) || elapsed="$((( $3 % 3600) / 60 ))m $elapsed" (( $3 < 3600 )) || elapsed="$(( $3 / 3600 ))h $elapsed" + [[ $bgnotify_bell = true ]] && printf '\a' # beep sound if [[ $exit_status -eq 0 ]]; then bgnotify "#win (took $elapsed)" "$cmd" else @@ -61,10 +61,9 @@ function bgnotify_formatted { function bgnotify_appid { if (( ${+commands[osascript]} )); then - # output is "app ID, window ID" (com.googlecode.iterm2, 116) - osascript -e 'tell application (path to frontmost application as text) to get the {id, id of front window}' 2>/dev/null + osascript -e "tell application id \"$(bgnotify_programid)\" to get the {id, frontmost, id of front window, visible of front window}" 2>/dev/null elif [[ -n $WAYLAND_DISPLAY ]] && (( ${+commands[swaymsg]} )); then # wayland+sway - local app_id=$(find_sway_appid) + local app_id=$(bgnotify_find_sway_appid) [[ -n "$app_id" ]] && echo "$app_id" || echo $EPOCHSECONDS elif [[ -z $WAYLAND_DISPLAY ]] && [[ -n $DISPLAY ]] && (( ${+commands[xprop]} )); then xprop -root _NET_ACTIVE_WINDOW 2>/dev/null | cut -d' ' -f5 @@ -74,7 +73,7 @@ function bgnotify_appid { } -function find_sway_appid { +function bgnotify_find_sway_appid { # output is "app_id,container_id", for example "Alacritty,1694" # see example swaymsg output: https://github.com/ohmyzsh/ohmyzsh/files/13463939/output.json if (( ${+commands[jq]} )); then @@ -105,15 +104,11 @@ function find_sway_appid { fi } -function find_term_id { - local term_id="${bgnotify_termid%%,*}" # remove window id - 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 - echo "$term_id" +function bgnotify_programid { + case "$TERM_PROGRAM" in + iTerm.app) echo 'com.googlecode.iterm2' ;; + Apple_Terminal) echo 'com.apple.terminal' ;; + esac } function bgnotify { @@ -121,7 +116,7 @@ function bgnotify { local message="$2" local icon="$3" if (( ${+commands[terminal-notifier]} )); then # macOS - local term_id=$(find_term_id) + local term_id=$(bgnotify_programid) terminal-notifier -message "$message" -title "$title" ${=icon:+-appIcon "$icon"} ${=term_id:+-activate "$term_id" -sender "$term_id"} &>/dev/null elif (( ${+commands[growlnotify]} )); then # macOS growl growlnotify -m "$title" "$message" From 94a0481f182b4a2cc87e76af8761e00c07de79dc Mon Sep 17 00:00:00 2001 From: Basti <107778224+krakenbite@users.noreply.github.com> Date: Wed, 27 Dec 2023 10:59:05 +0100 Subject: [PATCH 434/441] feat(aws): add sso logout capabilities (#12113) --- plugins/aws/README.md | 1 + plugins/aws/aws.plugin.zsh | 2 ++ 2 files changed, 3 insertions(+) diff --git a/plugins/aws/README.md b/plugins/aws/README.md index 9e1e055b8..4850e223e 100644 --- a/plugins/aws/README.md +++ b/plugins/aws/README.md @@ -16,6 +16,7 @@ plugins=(... aws) It also sets `$AWS_EB_PROFILE` to `` for the Elastic Beanstalk CLI. It sets `$AWS_PROFILE_REGION` for display in `aws_prompt_info`. 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. +* `asp [] logout`: If AWS SSO has been configured in your aws profile, it will run the `aws sso logout` command following profile selection. * `asr []`: sets `$AWS_REGION` and `$AWS_DEFAULT_REGION` (legacy) to ``. Run `asr` without arguments to clear the profile. diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index c946515be..0d7040f92 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -30,6 +30,8 @@ function asp() { if [[ "$2" == "login" ]]; then aws sso login + elif [[ "$2" == "logout" ]]; then + aws sso logout fi } From 3e92d251ba7a950d050234d8780ce75085b1b1d4 Mon Sep 17 00:00:00 2001 From: "B. Hamonangan" <70834922+hamonangann@users.noreply.github.com> Date: Wed, 27 Dec 2023 17:09:23 +0700 Subject: [PATCH 435/441] feat(aws): add support for sso sessions login (#12090) Co-authored-by: Carlo Sala --- plugins/aws/README.md | 1 + plugins/aws/aws.plugin.zsh | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/aws/README.md b/plugins/aws/README.md index 4850e223e..dbf8dcfeb 100644 --- a/plugins/aws/README.md +++ b/plugins/aws/README.md @@ -16,6 +16,7 @@ plugins=(... aws) It also sets `$AWS_EB_PROFILE` to `` for the Elastic Beanstalk CLI. It sets `$AWS_PROFILE_REGION` for display in `aws_prompt_info`. 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. +* `asp [] login []`: In addition to `asp [] login`, if SSO session has been configured in your aws profile, it will run the `aws sso login --sso-session ` command following profile selection. * `asp [] logout`: If AWS SSO has been configured in your aws profile, it will run the `aws sso logout` command following profile selection. * `asr []`: sets `$AWS_REGION` and `$AWS_DEFAULT_REGION` (legacy) to ``. diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index 0d7040f92..fd00714e7 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -29,7 +29,11 @@ function asp() { export AWS_PROFILE_REGION=$(aws configure get region) if [[ "$2" == "login" ]]; then - aws sso login + if [[ -n "$3" ]]; then + aws sso login --sso-session $3 + else + aws sso login + fi elif [[ "$2" == "logout" ]]; then aws sso logout fi From ec74eb91bda8ee0cb42f4b9697d13154e31a93d6 Mon Sep 17 00:00:00 2001 From: "B. Hamonangan" <70834922+hamonangann@users.noreply.github.com> Date: Wed, 27 Dec 2023 19:47:58 +0700 Subject: [PATCH 436/441] feat(git): add `gcB` alias (#12116) --- 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 93dc8ccea..b7b9a6635 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -51,6 +51,7 @@ plugins=(... git) | `gco` | `git checkout` | | `gcor` | `git checkout --recurse-submodules` | | `gcb` | `git checkout -b` | +| `gcB` | `git checkout -B` | | `gcd` | `git checkout $(git_develop_branch)` | | `gcm` | `git checkout $(git_main_branch)` | | `gcp` | `git cherry-pick` | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 2a824444b..bee9eb67d 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -157,6 +157,7 @@ alias gbg='LANG=C git branch -vv | grep ": gone\]"' alias gco='git checkout' alias gcor='git checkout --recurse-submodules' alias gcb='git checkout -b' +alias gcB='git checkout -B' alias gcd='git checkout $(git_develop_branch)' alias gcm='git checkout $(git_main_branch)' alias gcp='git cherry-pick' From 46b24d409909cdc00ac441448c0aa31cc35d12c9 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Thu, 28 Dec 2023 21:20:28 +0100 Subject: [PATCH 437/441] ci(dependencies): fix some envs and add requirements --- .github/workflows/dependencies.yml | 11 +++++++---- .github/workflows/dependencies/requirements.txt | 2 ++ .github/workflows/dependencies/updater.py | 4 ++-- 3 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/dependencies/requirements.txt diff --git a/.github/workflows/dependencies.yml b/.github/workflows/dependencies.yml index aab740126..2e2217e1c 100644 --- a/.github/workflows/dependencies.yml +++ b/.github/workflows/dependencies.yml @@ -8,19 +8,22 @@ jobs: check: name: Check for updates runs-on: ubuntu-latest + if: github.repository == 'ohmyzsh/ohmyzsh' steps: - name: Checkout - if: github.repository == 'ohmyzsh/ohmyzsh' uses: actions/checkout@v4 - name: Authenticate as @ohmyzsh + id: generate_token uses: ohmyzsh/github-app-token@v2 with: app_id: ${{ secrets.OHMYZSH_APP_ID }} private_key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }} - name: Process dependencies env: - GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} - TMP_DIR: ${{ env.RUNNER_TEMP }} + GH_TOKEN: ${{ steps.generate_token.outputs.token }} + GIT_APP_NAME: ohmyzsh[bot] + GIT_APP_EMAIL: 54982679+ohmyzsh[bot]@users.noreply.github.com + TMP_DIR: ${{ runner.temp }} run: | - gh auth login --with-token <<< "${GITHUB_TOKEN}" + pip install -r .github/workflows/dependencies/requirements.txt python3 .github/workflows/dependencies/updater.py diff --git a/.github/workflows/dependencies/requirements.txt b/.github/workflows/dependencies/requirements.txt new file mode 100644 index 000000000..3c4c149ea --- /dev/null +++ b/.github/workflows/dependencies/requirements.txt @@ -0,0 +1,2 @@ +PyYAML~=6.0.1 +requests~=2.31.0 diff --git a/.github/workflows/dependencies/updater.py b/.github/workflows/dependencies/updater.py index 5af19d14c..f54d316f9 100644 --- a/.github/workflows/dependencies/updater.py +++ b/.github/workflows/dependencies/updater.py @@ -302,8 +302,8 @@ class Git: @staticmethod def add_and_commit(scope: str, version: str): - user_name = "ohmyzsh" - user_email = "bot@ohmyz.sh" + user_name = os.environ.get("GIT_APP_NAME") + user_email = os.environ.get("GIT_APP_EMAIL") # Add all files to git staging CommandRunner.run_or_fail(["git", "add", "-A", "-v"], stage="AddFiles") From 544eb17e33454dbfb758683cc37bc3ab50661f98 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Thu, 28 Dec 2023 21:21:09 +0100 Subject: [PATCH 438/441] ci(project): use ohmyzsh's bot credentials --- .github/workflows/project.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/project.yml b/.github/workflows/project.yml index 1d961d8c0..2c2a1cdaa 100644 --- a/.github/workflows/project.yml +++ b/.github/workflows/project.yml @@ -15,9 +15,15 @@ jobs: name: Add to project runs-on: ubuntu-latest if: github.repository == 'ohmyzsh/ohmyzsh' - env: - GITHUB_TOKEN: ${{ secrets.PROJECT_TOKEN }} steps: + - name: Authenticate as @ohmyzsh + id: generate_token + uses: ohmyzsh/github-app-token@v2 + with: + app_id: ${{ secrets.OHMYZSH_APP_ID }} + private_key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }} + - name: Store app token + run: echo "GH_TOKEN=${{ steps.generate_token.outputs.token }}" >> "$GITHUB_ENV" - name: Read project data env: ORGANIZATION: ohmyzsh From f43ee85d8f154fbc95229772cac93dec83b09188 Mon Sep 17 00:00:00 2001 From: "ohmyzsh[bot]" <54982679+ohmyzsh[bot]@users.noreply.github.com> Date: Thu, 28 Dec 2023 22:05:07 +0100 Subject: [PATCH 439/441] feat(gitfast): update to version v2.0 (#12135) Co-authored-by: ohmyzsh[bot] <54982679+ohmyzsh[bot]@users.noreply.github.com> --- .github/dependencies.yml | 2 +- plugins/gitfast/git-completion.bash | 221 +++++++--------------------- plugins/gitfast/git-prompt.sh | 31 ++-- 3 files changed, 71 insertions(+), 183 deletions(-) diff --git a/.github/dependencies.yml b/.github/dependencies.yml index 8c46395d7..4d5a8fa80 100644 --- a/.github/dependencies.yml +++ b/.github/dependencies.yml @@ -2,7 +2,7 @@ dependencies: plugins/gitfast: repo: felipec/git-completion branch: master - version: tag:v1.3.7 + version: tag:v2.0 postcopy: | set -e rm -rf git-completion.plugin.zsh Makefile README.adoc t tools diff --git a/plugins/gitfast/git-completion.bash b/plugins/gitfast/git-completion.bash index dd06b5048..9a2045f26 100644 --- a/plugins/gitfast/git-completion.bash +++ b/plugins/gitfast/git-completion.bash @@ -58,6 +58,12 @@ # # When set to "1" suggest all options, including options which are # typically hidden (e.g. '--allow-empty' for 'git commit'). +# +# GIT_COMPLETION_IGNORE_CASE +# +# When set, uses for-each-ref '--ignore-case' to find refs that match +# case insensitively, even on systems with case sensitive file systems +# (e.g., completing tag name "FOO" on "git checkout f"). # The following functions are meant to modify COMPREPLY, which should not be # modified directly. The purpose is to localize the modifications so it's @@ -320,116 +326,6 @@ else unset $(compgen -v __gitcomp_builtin_) fi -__gitcomp_builtin_add_default=" --dry-run --verbose --interactive --patch --edit --force --update --renormalize --intent-to-add --all --ignore-removal --refresh --ignore-errors --ignore-missing --sparse --chmod= --pathspec-from-file= --pathspec-file-nul --no-dry-run -- --no-verbose --no-interactive --no-patch --no-edit --no-force --no-update --no-renormalize --no-intent-to-add --no-all --no-ignore-removal --no-refresh --no-ignore-errors --no-ignore-missing --no-sparse --no-chmod --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_am_default=" --interactive --3way --quiet --signoff --utf8 --keep --keep-non-patch --message-id --keep-cr --no-keep-cr --scissors --quoted-cr= --whitespace= --ignore-space-change --ignore-whitespace --directory= --exclude= --include= --patch-format= --reject --resolvemsg= --continue --resolved --skip --abort --quit --show-current-patch --allow-empty --committer-date-is-author-date --ignore-date --rerere-autoupdate --gpg-sign --empty= -- --no-interactive --no-3way --no-quiet --no-signoff --no-utf8 --no-keep --no-keep-non-patch --no-message-id --no-scissors --no-whitespace --no-ignore-space-change --no-ignore-whitespace --no-directory --no-exclude --no-include --no-patch-format --no-reject --no-resolvemsg --no-committer-date-is-author-date --no-ignore-date --no-rerere-autoupdate --no-gpg-sign" -__gitcomp_builtin_apply_default=" --exclude= --include= --no-add --stat --numstat --summary --check --index --intent-to-add --cached --apply --3way --build-fake-ancestor= --whitespace= --ignore-space-change --ignore-whitespace --reverse --unidiff-zero --reject --allow-overlap --verbose --quiet --inaccurate-eof --recount --directory= --allow-empty --add -- --no-stat --no-numstat --no-summary --no-check --no-index --no-intent-to-add --no-cached --no-apply --no-3way --no-build-fake-ancestor --no-whitespace --no-ignore-space-change --no-ignore-whitespace --no-reverse --no-unidiff-zero --no-reject --no-allow-overlap --no-verbose --no-quiet --no-inaccurate-eof --no-recount --no-directory --no-allow-empty" -__gitcomp_builtin_archive_default=" --output= --remote= --exec= --no-output -- --no-remote --no-exec" -__gitcomp_builtin_bisect__helper_default=" --bisect-reset --bisect-next-check --bisect-terms --bisect-start --bisect-next --bisect-state --bisect-log --bisect-replay --bisect-skip --bisect-visualize --bisect-run --no-log --log" -__gitcomp_builtin_blame_default=" --incremental --root --show-stats --progress --score-debug --show-name --show-number --porcelain --line-porcelain --show-email --ignore-rev= --ignore-revs-file= --color-lines --color-by-age --minimal --contents= --abbrev --no-incremental -- --no-root --no-show-stats --no-progress --no-score-debug --no-show-name --no-show-number --no-porcelain --no-line-porcelain --no-show-email --no-ignore-rev --no-ignore-revs-file --no-color-lines --no-color-by-age --no-minimal --no-contents --no-abbrev" -__gitcomp_builtin_branch_default=" --verbose --quiet --track --set-upstream-to= --unset-upstream --color --remotes --contains --no-contains --abbrev --all --delete --move --copy --list --show-current --create-reflog --edit-description --merged --no-merged --column --sort= --points-at= --ignore-case --recurse-submodules --format= -- --no-verbose --no-quiet --no-track --no-set-upstream-to --no-unset-upstream --no-color --no-remotes --no-abbrev --no-all --no-delete --no-move --no-copy --no-list --no-show-current --no-create-reflog --no-edit-description --no-column --no-sort --no-points-at --no-ignore-case --no-recurse-submodules --no-format" -__gitcomp_builtin_bugreport_default=" --output-directory= --suffix= --no-output-directory -- --no-suffix" -__gitcomp_builtin_cat_file_default=" --allow-unknown-type --batch --batch-check --batch-command --batch-all-objects --buffer --follow-symlinks --unordered --textconv --filters --path= --no-allow-unknown-type -- --no-buffer --no-follow-symlinks --no-unordered --no-path" -__gitcomp_builtin_check_attr_default=" --all --cached --stdin --no-all -- --no-cached --no-stdin" -__gitcomp_builtin_check_ignore_default=" --quiet --verbose --stdin --non-matching --no-index --index -- --no-quiet --no-verbose --no-stdin --no-non-matching" -__gitcomp_builtin_check_mailmap_default=" --stdin --no-stdin" -__gitcomp_builtin_checkout_default=" --guess --overlay --quiet --recurse-submodules --progress --merge --conflict= --detach --track --orphan= --ignore-other-worktrees --ours --theirs --patch --ignore-skip-worktree-bits --pathspec-from-file= --pathspec-file-nul --no-guess -- --no-overlay --no-quiet --no-recurse-submodules --no-progress --no-merge --no-conflict --no-detach --no-track --no-orphan --no-ignore-other-worktrees --no-patch --no-ignore-skip-worktree-bits --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_checkout__worker_default=" --prefix= --no-prefix" -__gitcomp_builtin_checkout_index_default=" --all --ignore-skip-worktree-bits --force --quiet --no-create --index --stdin --temp --prefix= --stage= --create -- --no-all --no-ignore-skip-worktree-bits --no-force --no-quiet --no-index --no-stdin --no-temp --no-prefix" -__gitcomp_builtin_cherry_default=" --abbrev --verbose --no-abbrev -- --no-verbose" -__gitcomp_builtin_cherry_pick_default=" --quit --continue --abort --skip --cleanup= --no-commit --edit --signoff --mainline= --rerere-autoupdate --strategy= --strategy-option= --gpg-sign --ff --allow-empty --allow-empty-message --keep-redundant-commits --commit -- --no-cleanup --no-edit --no-signoff --no-mainline --no-rerere-autoupdate --no-strategy --no-strategy-option --no-gpg-sign --no-ff --no-allow-empty --no-allow-empty-message --no-keep-redundant-commits" -__gitcomp_builtin_clean_default=" --quiet --dry-run --interactive --exclude= --no-quiet -- --no-dry-run --no-interactive" -__gitcomp_builtin_clone_default=" --verbose --quiet --progress --reject-shallow --no-checkout --bare --mirror --local --no-hardlinks --shared --recurse-submodules --jobs= --template= --reference= --reference-if-able= --dissociate --origin= --branch= --upload-pack= --depth= --shallow-since= --shallow-exclude= --single-branch --no-tags --shallow-submodules --separate-git-dir= --config= --server-option= --ipv4 --ipv6 --filter= --also-filter-submodules --remote-submodules --sparse --checkout --hardlinks --tags -- --no-verbose --no-quiet --no-progress --no-reject-shallow --no-bare --no-mirror --no-local --no-shared --no-recurse-submodules --no-recursive --no-jobs --no-template --no-reference --no-reference-if-able --no-dissociate --no-origin --no-branch --no-upload-pack --no-depth --no-shallow-since --no-shallow-exclude --no-single-branch --no-shallow-submodules --no-separate-git-dir --no-config --no-server-option --no-ipv4 --no-ipv6 --no-filter --no-also-filter-submodules --no-remote-submodules --no-sparse" -__gitcomp_builtin_column_default=" --command= --mode --raw-mode= --width= --indent= --nl= --padding= --no-command -- --no-mode --no-raw-mode --no-width --no-indent --no-nl --no-padding" -__gitcomp_builtin_commit_default=" --quiet --verbose --file= --author= --date= --message= --reedit-message= --reuse-message= --fixup= --squash= --reset-author --trailer= --signoff --template= --edit --cleanup= --status --gpg-sign --all --include --interactive --patch --only --no-verify --dry-run --short --branch --ahead-behind --porcelain --long --null --amend --no-post-rewrite --untracked-files --pathspec-from-file= --pathspec-file-nul --verify --post-rewrite -- --no-quiet --no-verbose --no-file --no-author --no-date --no-message --no-reedit-message --no-reuse-message --no-fixup --no-squash --no-reset-author --no-signoff --no-template --no-edit --no-cleanup --no-status --no-gpg-sign --no-all --no-include --no-interactive --no-patch --no-only --no-dry-run --no-short --no-branch --no-ahead-behind --no-porcelain --no-long --no-null --no-amend --no-untracked-files --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_commit_graph_default=" --object-dir= --no-object-dir" -__gitcomp_builtin_config_default=" --global --system --local --worktree --file= --blob= --get --get-all --get-regexp --get-urlmatch --replace-all --add --unset --unset-all --rename-section --remove-section --list --fixed-value --edit --get-color --get-colorbool --type= --bool --int --bool-or-int --bool-or-str --path --expiry-date --null --name-only --includes --show-origin --show-scope --default= --no-global -- --no-system --no-local --no-worktree --no-file --no-blob --no-get --no-get-all --no-get-regexp --no-get-urlmatch --no-replace-all --no-add --no-unset --no-unset-all --no-rename-section --no-remove-section --no-list --no-fixed-value --no-edit --no-get-color --no-get-colorbool --no-type --no-null --no-name-only --no-includes --no-show-origin --no-show-scope --no-default" -__gitcomp_builtin_count_objects_default=" --verbose --human-readable --no-verbose -- --no-human-readable" -__gitcomp_builtin_credential_cache_default=" --timeout= --socket= --no-timeout -- --no-socket" -__gitcomp_builtin_credential_cache__daemon_default=" --debug --no-debug" -__gitcomp_builtin_credential_store_default=" --file= --no-file" -__gitcomp_builtin_describe_default=" --contains --debug --all --tags --long --first-parent --abbrev --exact-match --candidates= --match= --exclude= --always --dirty --broken --no-contains -- --no-debug --no-all --no-tags --no-long --no-first-parent --no-abbrev --no-exact-match --no-candidates --no-match --no-exclude --no-always --no-dirty --no-broken" -__gitcomp_builtin_difftool_default=" --gui --dir-diff --no-prompt --symlinks --tool= --tool-help --trust-exit-code --extcmd= --no-index --index -- --no-gui --no-dir-diff --no-symlinks --no-tool --no-tool-help --no-trust-exit-code --no-extcmd" -__gitcomp_builtin_env__helper_default=" --type= --default= --exit-code --no-default -- --no-exit-code" -__gitcomp_builtin_fast_export_default=" --progress= --signed-tags= --tag-of-filtered-object= --reencode= --export-marks= --import-marks= --import-marks-if-exists= --fake-missing-tagger --full-tree --use-done-feature --no-data --refspec= --anonymize --anonymize-map= --reference-excluded-parents --show-original-ids --mark-tags --data -- --no-progress --no-signed-tags --no-tag-of-filtered-object --no-reencode --no-export-marks --no-import-marks --no-import-marks-if-exists --no-fake-missing-tagger --no-full-tree --no-use-done-feature --no-refspec --no-anonymize --no-reference-excluded-parents --no-show-original-ids --no-mark-tags" -__gitcomp_builtin_fetch_default=" --verbose --quiet --all --set-upstream --append --atomic --upload-pack= --force --multiple --tags --jobs= --prefetch --prune --prune-tags --recurse-submodules --dry-run --write-fetch-head --keep --update-head-ok --progress --depth= --shallow-since= --shallow-exclude= --deepen= --unshallow --refetch --update-shallow --refmap= --server-option= --ipv4 --ipv6 --negotiation-tip= --negotiate-only --filter= --auto-maintenance --auto-gc --show-forced-updates --write-commit-graph --stdin --no-verbose -- --no-quiet --no-all --no-set-upstream --no-append --no-atomic --no-upload-pack --no-force --no-multiple --no-tags --no-jobs --no-prefetch --no-prune --no-prune-tags --no-recurse-submodules --no-dry-run --no-write-fetch-head --no-keep --no-update-head-ok --no-progress --no-depth --no-shallow-since --no-shallow-exclude --no-deepen --no-update-shallow --no-server-option --no-ipv4 --no-ipv6 --no-negotiation-tip --no-negotiate-only --no-filter --no-auto-maintenance --no-auto-gc --no-show-forced-updates --no-write-commit-graph --no-stdin" -__gitcomp_builtin_fmt_merge_msg_default=" --log --message= --into-name= --file= --no-log -- --no-message --no-into-name --no-file" -__gitcomp_builtin_for_each_ref_default=" --shell --perl --python --tcl --count= --format= --color --sort= --points-at= --merged --no-merged --contains --no-contains --ignore-case -- --no-shell --no-perl --no-python --no-tcl --no-count --no-format --no-color --no-sort --no-points-at --no-ignore-case" -__gitcomp_builtin_for_each_repo_default=" --config= --no-config" -__gitcomp_builtin_format_patch_default=" --numbered --no-numbered --signoff --stdout --cover-letter --numbered-files --suffix= --start-number= --reroll-count= --filename-max-length= --rfc --cover-from-description= --subject-prefix= --output-directory= --keep-subject --no-binary --zero-commit --ignore-if-in-upstream --no-stat --add-header= --to= --cc= --from --in-reply-to= --attach --inline --thread --signature= --base= --signature-file= --quiet --progress --interdiff= --range-diff= --creation-factor= --binary -- --no-numbered --no-signoff --no-stdout --no-cover-letter --no-numbered-files --no-suffix --no-start-number --no-reroll-count --no-filename-max-length --no-cover-from-description --no-zero-commit --no-ignore-if-in-upstream --no-add-header --no-to --no-cc --no-from --no-in-reply-to --no-attach --no-thread --no-signature --no-base --no-signature-file --no-quiet --no-progress --no-interdiff --no-range-diff --no-creation-factor" -__gitcomp_builtin_fsck_default=" --verbose --unreachable --dangling --tags --root --cache --reflogs --full --connectivity-only --strict --lost-found --progress --name-objects --no-verbose -- --no-unreachable --no-dangling --no-tags --no-root --no-cache --no-reflogs --no-full --no-connectivity-only --no-strict --no-lost-found --no-progress --no-name-objects" -__gitcomp_builtin_fsck_objects_default=" --verbose --unreachable --dangling --tags --root --cache --reflogs --full --connectivity-only --strict --lost-found --progress --name-objects --no-verbose -- --no-unreachable --no-dangling --no-tags --no-root --no-cache --no-reflogs --no-full --no-connectivity-only --no-strict --no-lost-found --no-progress --no-name-objects" -__gitcomp_builtin_fsmonitor__daemon_default="" -__gitcomp_builtin_gc_default=" --quiet --prune --aggressive --keep-largest-pack --no-quiet -- --no-prune --no-aggressive --no-keep-largest-pack" -__gitcomp_builtin_grep_default=" --cached --no-index --untracked --exclude-standard --recurse-submodules --invert-match --ignore-case --word-regexp --text --textconv --recursive --max-depth= --extended-regexp --basic-regexp --fixed-strings --perl-regexp --line-number --column --full-name --files-with-matches --name-only --files-without-match --only-matching --count --color --break --heading --context= --before-context= --after-context= --threads= --show-function --function-context --and --or --not --quiet --all-match --index -- --no-cached --no-untracked --no-exclude-standard --no-recurse-submodules --no-invert-match --no-ignore-case --no-word-regexp --no-text --no-textconv --no-recursive --no-extended-regexp --no-basic-regexp --no-fixed-strings --no-perl-regexp --no-line-number --no-column --no-full-name --no-files-with-matches --no-name-only --no-files-without-match --no-only-matching --no-count --no-color --no-break --no-heading --no-context --no-before-context --no-after-context --no-threads --no-show-function --no-function-context --no-or --no-quiet --no-all-match" -__gitcomp_builtin_hash_object_default=" --stdin --stdin-paths --no-filters --literally --path= --filters -- --no-stdin --no-stdin-paths --no-literally --no-path" -__gitcomp_builtin_help_default=" --all --external-commands --aliases --man --web --info --verbose --guides --config --no-external-commands -- --no-aliases --no-man --no-web --no-info --no-verbose" -__gitcomp_builtin_hook_default="" -__gitcomp_builtin_init_default=" --template= --bare --shared --quiet --separate-git-dir= --initial-branch= --object-format= --no-template -- --no-bare --no-quiet --no-separate-git-dir --no-initial-branch --no-object-format" -__gitcomp_builtin_init_db_default=" --template= --bare --shared --quiet --separate-git-dir= --initial-branch= --object-format= --no-template -- --no-bare --no-quiet --no-separate-git-dir --no-initial-branch --no-object-format" -__gitcomp_builtin_interpret_trailers_default=" --in-place --trim-empty --where= --if-exists= --if-missing= --only-trailers --only-input --unfold --parse --no-divider --trailer= --divider -- --no-in-place --no-trim-empty --no-where --no-if-exists --no-if-missing --no-only-trailers --no-only-input --no-unfold --no-trailer" -__gitcomp_builtin_log_default=" --quiet --source --use-mailmap --decorate-refs= --decorate-refs-exclude= --decorate --no-quiet -- --no-source --no-use-mailmap --no-mailmap --no-decorate-refs --no-decorate-refs-exclude --no-decorate" -__gitcomp_builtin_ls_files_default=" --cached --deleted --modified --others --ignored --stage --killed --directory --eol --empty-directory --unmerged --resolve-undo --exclude= --exclude-from= --exclude-per-directory= --exclude-standard --full-name --recurse-submodules --error-unmatch --with-tree= --abbrev --debug --deduplicate --sparse --no-cached -- --no-deleted --no-modified --no-others --no-ignored --no-stage --no-killed --no-directory --no-eol --no-empty-directory --no-unmerged --no-resolve-undo --no-exclude-per-directory --no-recurse-submodules --no-error-unmatch --no-with-tree --no-abbrev --no-debug --no-deduplicate --no-sparse" -__gitcomp_builtin_ls_remote_default=" --quiet --upload-pack= --tags --heads --refs --get-url --sort= --symref --server-option= --no-quiet -- --no-upload-pack --no-tags --no-heads --no-refs --no-get-url --no-sort --no-symref --no-server-option" -__gitcomp_builtin_ls_tree_default=" --long --name-only --name-status --object-only --full-name --full-tree --format= --abbrev --no-full-name -- --no-full-tree --no-abbrev" -__gitcomp_builtin_merge_default=" --stat --summary --log --squash --commit --edit --cleanup= --ff --ff-only --rerere-autoupdate --verify-signatures --strategy= --strategy-option= --message= --file --into-name= --verbose --quiet --abort --quit --continue --allow-unrelated-histories --progress --gpg-sign --autostash --overwrite-ignore --signoff --no-verify --verify -- --no-stat --no-summary --no-log --no-squash --no-commit --no-edit --no-cleanup --no-ff --no-rerere-autoupdate --no-verify-signatures --no-strategy --no-strategy-option --no-message --no-into-name --no-verbose --no-quiet --no-abort --no-quit --no-continue --no-allow-unrelated-histories --no-progress --no-gpg-sign --no-autostash --no-overwrite-ignore --no-signoff" -__gitcomp_builtin_merge_base_default=" --all --octopus --independent --is-ancestor --fork-point --no-all" -__gitcomp_builtin_merge_file_default=" --stdout --diff3 --zdiff3 --ours --theirs --union --marker-size= --quiet --no-stdout -- --no-diff3 --no-zdiff3 --no-ours --no-theirs --no-union --no-marker-size --no-quiet" -__gitcomp_builtin_mktree_default=" --missing --batch --no-missing -- --no-batch" -__gitcomp_builtin_multi_pack_index_default=" --object-dir= --no-object-dir" -__gitcomp_builtin_mv_default=" --verbose --dry-run --sparse --no-verbose -- --no-dry-run --no-sparse" -__gitcomp_builtin_name_rev_default=" --name-only --tags --refs= --exclude= --all --stdin --annotate-stdin --undefined --always --no-name-only -- --no-tags --no-refs --no-exclude --no-all --no-stdin --no-annotate-stdin --no-undefined --no-always" -__gitcomp_builtin_notes_default=" --ref= --no-ref" -__gitcomp_builtin_pack_objects_default=" --quiet --progress --all-progress --all-progress-implied --index-version= --max-pack-size= --local --incremental --window= --window-memory= --depth= --reuse-delta --reuse-object --delta-base-offset --threads= --non-empty --revs --unpacked --all --reflog --indexed-objects --stdin-packs --stdout --include-tag --keep-unreachable --pack-loose-unreachable --unpack-unreachable --sparse --thin --shallow --honor-pack-keep --keep-pack= --compression= --keep-true-parents --use-bitmap-index --write-bitmap-index --filter= --missing= --exclude-promisor-objects --delta-islands --uri-protocol= --no-quiet -- --no-progress --no-all-progress --no-all-progress-implied --no-local --no-incremental --no-window --no-depth --no-reuse-delta --no-reuse-object --no-delta-base-offset --no-threads --no-non-empty --no-revs --no-stdin-packs --no-stdout --no-include-tag --no-keep-unreachable --no-pack-loose-unreachable --no-unpack-unreachable --no-sparse --no-thin --no-shallow --no-honor-pack-keep --no-keep-pack --no-compression --no-keep-true-parents --no-use-bitmap-index --no-write-bitmap-index --no-filter --no-exclude-promisor-objects --no-delta-islands --no-uri-protocol" -__gitcomp_builtin_pack_refs_default=" --all --prune --no-all -- --no-prune" -__gitcomp_builtin_pickaxe_default=" --incremental --root --show-stats --progress --score-debug --show-name --show-number --porcelain --line-porcelain --show-email --ignore-rev= --ignore-revs-file= --color-lines --color-by-age --minimal --contents= --abbrev --no-incremental -- --no-root --no-show-stats --no-progress --no-score-debug --no-show-name --no-show-number --no-porcelain --no-line-porcelain --no-show-email --no-ignore-rev --no-ignore-revs-file --no-color-lines --no-color-by-age --no-minimal --no-contents --no-abbrev" -__gitcomp_builtin_prune_default=" --dry-run --verbose --progress --expire= --exclude-promisor-objects --no-dry-run -- --no-verbose --no-progress --no-expire --no-exclude-promisor-objects" -__gitcomp_builtin_prune_packed_default=" --dry-run --quiet --no-dry-run -- --no-quiet" -__gitcomp_builtin_pull_default=" --verbose --quiet --progress --recurse-submodules --rebase --stat --log --signoff --squash --commit --edit --cleanup= --ff --ff-only --verify --verify-signatures --autostash --strategy= --strategy-option= --gpg-sign --allow-unrelated-histories --all --append --upload-pack= --force --tags --prune --jobs --dry-run --keep --depth= --shallow-since= --shallow-exclude= --deepen= --unshallow --update-shallow --refmap= --server-option= --ipv4 --ipv6 --negotiation-tip= --show-forced-updates --set-upstream --no-verbose -- --no-quiet --no-progress --no-recurse-submodules --no-rebase --no-stat --no-log --no-signoff --no-squash --no-commit --no-edit --no-cleanup --no-ff --no-verify --no-verify-signatures --no-autostash --no-strategy --no-strategy-option --no-gpg-sign --no-allow-unrelated-histories --no-all --no-append --no-upload-pack --no-force --no-tags --no-prune --no-jobs --no-dry-run --no-keep --no-depth --no-shallow-since --no-shallow-exclude --no-deepen --no-update-shallow --no-server-option --no-ipv4 --no-ipv6 --no-negotiation-tip --no-show-forced-updates --no-set-upstream" -__gitcomp_builtin_push_default=" --verbose --quiet --repo= --all --mirror --delete --tags --dry-run --porcelain --force --force-with-lease --force-if-includes --recurse-submodules= --receive-pack= --exec= --set-upstream --progress --prune --no-verify --follow-tags --signed --atomic --push-option= --ipv4 --ipv6 --verify -- --no-verbose --no-quiet --no-repo --no-all --no-mirror --no-delete --no-tags --no-dry-run --no-porcelain --no-force --no-force-with-lease --no-force-if-includes --no-recurse-submodules --no-receive-pack --no-exec --no-set-upstream --no-progress --no-prune --no-follow-tags --no-signed --no-atomic --no-push-option --no-ipv4 --no-ipv6" -__gitcomp_builtin_range_diff_default=" --creation-factor= --no-dual-color --notes --left-only --right-only --patch --no-patch --unified --function-context --raw --patch-with-raw --patch-with-stat --numstat --shortstat --dirstat --cumulative --dirstat-by-file --check --summary --name-only --name-status --stat --stat-width= --stat-name-width= --stat-graph-width= --stat-count= --compact-summary --binary --full-index --color --ws-error-highlight= --abbrev --src-prefix= --dst-prefix= --line-prefix= --no-prefix --inter-hunk-context= --output-indicator-new= --output-indicator-old= --output-indicator-context= --break-rewrites --find-renames --irreversible-delete --find-copies --find-copies-harder --no-renames --rename-empty --follow --minimal --ignore-all-space --ignore-space-change --ignore-space-at-eol --ignore-cr-at-eol --ignore-blank-lines --ignore-matching-lines= --indent-heuristic --patience --histogram --diff-algorithm= --anchored= --word-diff --word-diff-regex= --color-words --color-moved --color-moved-ws= --relative --text --exit-code --quiet --ext-diff --textconv --ignore-submodules --submodule --ita-invisible-in-index --ita-visible-in-index --pickaxe-all --pickaxe-regex --rotate-to= --skip-to= --find-object= --diff-filter= --output= --dual-color -- --no-creation-factor --no-notes --no-left-only --no-right-only --no-function-context --no-compact-summary --no-full-index --no-color --no-abbrev --no-find-copies-harder --no-rename-empty --no-follow --no-minimal --no-ignore-matching-lines --no-indent-heuristic --no-color-moved --no-color-moved-ws --no-relative --no-text --no-exit-code --no-quiet --no-ext-diff --no-textconv" -__gitcomp_builtin_read_tree_default=" --index-output= --empty --verbose --trivial --aggressive --reset --prefix= --exclude-per-directory= --dry-run --no-sparse-checkout --debug-unpack --recurse-submodules --quiet --sparse-checkout -- --no-empty --no-verbose --no-trivial --no-aggressive --no-reset --no-dry-run --no-debug-unpack --no-recurse-submodules --no-quiet" -__gitcomp_builtin_rebase_default=" --onto= --keep-base --no-verify --quiet --verbose --no-stat --signoff --committer-date-is-author-date --reset-author-date --ignore-whitespace --whitespace= --force-rebase --no-ff --continue --skip --abort --quit --edit-todo --show-current-patch --apply --merge --interactive --rerere-autoupdate --empty= --autosquash --gpg-sign --autostash --exec= --rebase-merges --fork-point --strategy= --strategy-option= --root --reschedule-failed-exec --reapply-cherry-picks --verify --stat --ff -- --no-onto --no-keep-base --no-quiet --no-verbose --no-signoff --no-committer-date-is-author-date --no-reset-author-date --no-ignore-whitespace --no-whitespace --no-force-rebase --no-rerere-autoupdate --no-autosquash --no-gpg-sign --no-autostash --no-exec --no-rebase-merges --no-fork-point --no-strategy --no-strategy-option --no-root --no-reschedule-failed-exec --no-reapply-cherry-picks" -__gitcomp_builtin_receive_pack_default=" --quiet --no-quiet" -__gitcomp_builtin_reflog_default="" -__gitcomp_builtin_remote_default=" --verbose --no-verbose" -__gitcomp_builtin_repack_default=" --quiet --local --write-bitmap-index --delta-islands --unpack-unreachable= --keep-unreachable --window= --window-memory= --depth= --threads= --max-pack-size= --pack-kept-objects --keep-pack= --geometric= --write-midx --no-quiet -- --no-local --no-write-bitmap-index --no-delta-islands --no-unpack-unreachable --no-keep-unreachable --no-window --no-window-memory --no-depth --no-threads --no-max-pack-size --no-pack-kept-objects --no-keep-pack --no-geometric --no-write-midx" -__gitcomp_builtin_replace_default=" --list --delete --edit --graft --convert-graft-file --raw --format= --no-raw -- --no-format" -__gitcomp_builtin_rerere_default=" --rerere-autoupdate --no-rerere-autoupdate" -__gitcomp_builtin_reset_default=" --quiet --no-refresh --mixed --soft --hard --merge --keep --recurse-submodules --patch --intent-to-add --pathspec-from-file= --pathspec-file-nul --refresh -- --no-quiet --no-mixed --no-soft --no-hard --no-merge --no-keep --no-recurse-submodules --no-patch --no-intent-to-add --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_restore_default=" --source= --staged --worktree --ignore-unmerged --overlay --quiet --recurse-submodules --progress --merge --conflict= --ours --theirs --patch --ignore-skip-worktree-bits --pathspec-from-file= --pathspec-file-nul --no-source -- --no-staged --no-worktree --no-ignore-unmerged --no-overlay --no-quiet --no-recurse-submodules --no-progress --no-merge --no-conflict --no-patch --no-ignore-skip-worktree-bits --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_revert_default=" --quit --continue --abort --skip --cleanup= --no-commit --edit --signoff --mainline= --rerere-autoupdate --strategy= --strategy-option= --gpg-sign --commit -- --no-cleanup --no-edit --no-signoff --no-mainline --no-rerere-autoupdate --no-strategy --no-strategy-option --no-gpg-sign" -__gitcomp_builtin_rm_default=" --dry-run --quiet --cached --ignore-unmatch --sparse --pathspec-from-file= --pathspec-file-nul --no-dry-run -- --no-quiet --no-cached --no-ignore-unmatch --no-sparse --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_send_pack_default=" --verbose --quiet --receive-pack= --exec= --remote= --all --dry-run --mirror --force --signed --push-option= --progress --thin --atomic --stateless-rpc --stdin --helper-status --force-with-lease --force-if-includes --no-verbose -- --no-quiet --no-receive-pack --no-exec --no-remote --no-all --no-dry-run --no-mirror --no-force --no-signed --no-push-option --no-progress --no-thin --no-atomic --no-stateless-rpc --no-stdin --no-helper-status --no-force-with-lease --no-force-if-includes" -__gitcomp_builtin_shortlog_default=" --committer --numbered --summary --email --group= --no-committer -- --no-numbered --no-summary --no-email --no-group" -__gitcomp_builtin_show_default=" --quiet --source --use-mailmap --decorate-refs= --decorate-refs-exclude= --decorate --no-quiet -- --no-source --no-use-mailmap --no-mailmap --no-decorate-refs --no-decorate-refs-exclude --no-decorate" -__gitcomp_builtin_show_branch_default=" --all --remotes --color --more --list --no-name --current --sha1-name --merge-base --independent --topo-order --topics --sparse --date-order --reflog --name -- --no-all --no-remotes --no-color --no-more --no-list --no-current --no-sha1-name --no-merge-base --no-independent --no-topo-order --no-topics --no-sparse --no-date-order" -__gitcomp_builtin_show_index_default=" --object-format= --no-object-format" -__gitcomp_builtin_show_ref_default=" --tags --heads --verify --head --dereference --hash --abbrev --quiet --exclude-existing --no-tags -- --no-heads --no-verify --no-head --no-dereference --no-hash --no-abbrev --no-quiet" -__gitcomp_builtin_sparse_checkout_default="" -__gitcomp_builtin_stage_default=" --dry-run --verbose --interactive --patch --edit --force --update --renormalize --intent-to-add --all --ignore-removal --refresh --ignore-errors --ignore-missing --sparse --chmod= --pathspec-from-file= --pathspec-file-nul --no-dry-run -- --no-verbose --no-interactive --no-patch --no-edit --no-force --no-update --no-renormalize --no-intent-to-add --no-all --no-ignore-removal --no-refresh --no-ignore-errors --no-ignore-missing --no-sparse --no-chmod --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_stash_default="" -__gitcomp_builtin_status_default=" --verbose --short --branch --show-stash --ahead-behind --porcelain --long --null --untracked-files --ignored --ignore-submodules --column --no-renames --find-renames --renames -- --no-verbose --no-short --no-branch --no-show-stash --no-ahead-behind --no-porcelain --no-long --no-null --no-untracked-files --no-ignored --no-ignore-submodules --no-column" -__gitcomp_builtin_stripspace_default=" --strip-comments --comment-lines" -__gitcomp_builtin_switch_default=" --create= --force-create= --guess --discard-changes --quiet --recurse-submodules --progress --merge --conflict= --detach --track --orphan= --ignore-other-worktrees --no-create -- --no-force-create --no-guess --no-discard-changes --no-quiet --no-recurse-submodules --no-progress --no-merge --no-conflict --no-detach --no-track --no-orphan --no-ignore-other-worktrees" -__gitcomp_builtin_symbolic_ref_default=" --quiet --delete --short --no-quiet -- --no-delete --no-short" -__gitcomp_builtin_tag_default=" --list --delete --verify --annotate --message= --file= --edit --sign --cleanup= --local-user= --force --create-reflog --column --contains --no-contains --merged --no-merged --sort= --points-at --format= --color --ignore-case -- --no-annotate --no-file --no-edit --no-sign --no-cleanup --no-local-user --no-force --no-create-reflog --no-column --no-sort --no-points-at --no-format --no-color --no-ignore-case" -__gitcomp_builtin_update_index_default=" --ignore-submodules --add --replace --remove --unmerged --refresh --really-refresh --cacheinfo --chmod= --assume-unchanged --no-assume-unchanged --skip-worktree --no-skip-worktree --ignore-skip-worktree-entries --info-only --force-remove --stdin --index-info --unresolve --again --ignore-missing --verbose --clear-resolve-undo --index-version= --split-index --untracked-cache --test-untracked-cache --force-untracked-cache --force-write-index --fsmonitor --fsmonitor-valid --no-fsmonitor-valid -- --no-ignore-submodules --no-add --no-replace --no-remove --no-unmerged --no-ignore-skip-worktree-entries --no-info-only --no-force-remove --no-ignore-missing --no-verbose --no-index-version --no-split-index --no-untracked-cache --no-test-untracked-cache --no-force-untracked-cache --no-force-write-index --no-fsmonitor" -__gitcomp_builtin_update_ref_default=" --no-deref --stdin --create-reflog --deref -- --no-stdin --no-create-reflog" -__gitcomp_builtin_update_server_info_default=" --force --no-force" -__gitcomp_builtin_upload_pack_default=" --stateless-rpc --strict --timeout= --no-stateless-rpc -- --no-strict --no-timeout" -__gitcomp_builtin_verify_commit_default=" --verbose --raw --no-verbose -- --no-raw" -__gitcomp_builtin_verify_pack_default=" --verbose --stat-only --object-format= --no-verbose -- --no-stat-only --no-object-format" -__gitcomp_builtin_verify_tag_default=" --verbose --raw --format= --no-verbose -- --no-raw --no-format" -__gitcomp_builtin_version_default=" --build-options --no-build-options" -__gitcomp_builtin_whatchanged_default=" --quiet --source --use-mailmap --decorate-refs= --decorate-refs-exclude= --decorate --no-quiet -- --no-source --no-use-mailmap --no-mailmap --no-decorate-refs --no-decorate-refs-exclude --no-decorate" -__gitcomp_builtin_write_tree_default=" --missing-ok --prefix= --no-missing-ok -- --no-prefix" -__gitcomp_builtin_send_email_default="--sender= --from= --smtp-auth= --8bit-encoding= --no-format-patch --no-bcc --no-suppress-from --no-annotate --relogin-delay= --no-cc --no-signed-off-cc --no-signed-off-by-cc --no-chain-reply-to --smtp-debug= --smtp-domain= --chain-reply-to --dry-run --compose --bcc= --smtp-user= --thread --cc-cover --identity= --to= --reply-to= --no-cc-cover --suppress-cc= --to-cmd= --smtp-server= --smtp-ssl-cert-path= --no-thread --smtp-server-option= --quiet --batch-size= --envelope-sender= --smtp-ssl --no-to --validate --format-patch --suppress-from --cc= --compose-encoding= --to-cover --in-reply-to= --annotate --smtp-encryption= --cc-cmd= --smtp-server-port= --smtp-pass= --signed-off-cc --signed-off-by-cc --no-xmailer --subject= --no-to-cover --confirm= --transfer-encoding= --no-smtp-auth --sendmail-cmd= --no-validate --no-identity --dump-aliases --xmailer --force --numbered --no-numbered --signoff --stdout --cover-letter --numbered-files --suffix= --start-number= --reroll-count= --filename-max-length= --rfc --cover-from-description= --subject-prefix= --output-directory= --keep-subject --no-binary --zero-commit --ignore-if-in-upstream --no-stat --add-header= --from --attach --inline --signature= --base= --signature-file= --progress --interdiff= --range-diff= --creation-factor= --binary -- --no-signoff --no-stdout --no-cover-letter --no-numbered-files --no-suffix --no-start-number --no-reroll-count --no-filename-max-length --no-cover-from-description --no-zero-commit --no-ignore-if-in-upstream --no-add-header --no-from --no-in-reply-to --no-attach --no-signature --no-base --no-signature-file --no-quiet --no-progress --no-interdiff --no-range-diff --no-creation-factor" - -__gitcomp_builtin_get_default () -{ - eval "test -n \"\$${1}_default\" && echo \"\$${1}_default\"" -} - # This function is equivalent to # # __gitcomp_opts "$(git xxx --git-completion-helper) ..." @@ -457,11 +353,9 @@ __gitcomp_builtin () else completion_helper="--git-completion-helper" fi - completion="$(__git ${cmd/_/ } $completion_helper || - __gitcomp_builtin_get_default $var)" || return # leading and trailing spaces are significant to make # option removal work correctly. - options=" $incl $completion " + options=" $incl $(__git ${cmd/_/ } $completion_helper) " || return for i in $excl; do options="${options/ $i / }" @@ -604,6 +498,7 @@ __git_heads () local pfx="${1-}" cur_="${2-}" sfx="${3-}" __git for-each-ref --format="${pfx//\%/%%}%(refname:strip=2)$sfx" \ + ${GIT_COMPLETION_IGNORE_CASE+--ignore-case} \ "refs/heads/$cur_*" "refs/heads/$cur_*/**" } @@ -617,6 +512,7 @@ __git_remote_heads () local pfx="${1-}" cur_="${2-}" sfx="${3-}" __git for-each-ref --format="${pfx//\%/%%}%(refname:strip=2)$sfx" \ + ${GIT_COMPLETION_IGNORE_CASE+--ignore-case} \ "refs/remotes/$cur_*" "refs/remotes/$cur_*/**" } @@ -627,6 +523,7 @@ __git_tags () local pfx="${1-}" cur_="${2-}" sfx="${3-}" __git for-each-ref --format="${pfx//\%/%%}%(refname:strip=2)$sfx" \ + ${GIT_COMPLETION_IGNORE_CASE+--ignore-case} \ "refs/tags/$cur_*" "refs/tags/$cur_*/**" } @@ -646,6 +543,7 @@ __git_dwim_remote_heads () # but only output if the branch name is unique __git for-each-ref --format="$fer_pfx%(refname:strip=3)$sfx" \ --sort="refname:strip=3" \ + ${GIT_COMPLETION_IGNORE_CASE+--ignore-case} \ "refs/remotes/*/$cur_*" "refs/remotes/*/$cur_*/**" | \ uniq -u } @@ -670,6 +568,7 @@ __git_refs () local format refs local pfx="${3-}" cur_="${4-$cur}" sfx="${5-}" local match="${4-}" + local umatch="${4-}" local fer_pfx="${pfx//\%/%%}" # "escape" for-each-ref format specifiers __git_find_repo_path @@ -693,12 +592,19 @@ __git_refs () fi fi + if test "${GIT_COMPLETION_IGNORE_CASE:+1}" = "1" + then + # uppercase with tr instead of ${match,^^} for bash 3.2 compatibility + umatch=$(echo "$match" | tr a-z A-Z 2>/dev/null || echo "$match") + fi + if [ "$list_refs_from" = path ]; then if [[ "$cur_" == ^* ]]; then pfx="$pfx^" fer_pfx="$fer_pfx^" cur_=${cur_#^} match=${match#^} + umatch=${umatch#^} fi case "$cur_" in refs|refs/*) @@ -709,7 +615,7 @@ __git_refs () *) for i in HEAD FETCH_HEAD ORIG_HEAD MERGE_HEAD REBASE_HEAD CHERRY_PICK_HEAD; do case "$i" in - $match*) + $match*|$umatch*) if [ -e "$dir/$i" ]; then echo "$pfx$i$sfx" fi @@ -723,6 +629,7 @@ __git_refs () ;; esac __git_dir="$dir" __git for-each-ref --format="$fer_pfx%($format)$sfx" \ + ${GIT_COMPLETION_IGNORE_CASE+--ignore-case} \ "${refs[@]}" if [ -n "$track" ]; then __git_dwim_remote_heads "$pfx" "$match" "$sfx" @@ -742,15 +649,16 @@ __git_refs () *) if [ "$list_refs_from" = remote ]; then case "HEAD" in - $match*) echo "${pfx}HEAD$sfx" ;; + $match*|$umatch*) echo "${pfx}HEAD$sfx" ;; esac __git for-each-ref --format="$fer_pfx%(refname:strip=3)$sfx" \ + ${GIT_COMPLETION_IGNORE_CASE+--ignore-case} \ "refs/remotes/$remote/$match*" \ "refs/remotes/$remote/$match*/**" else local query_symref case "HEAD" in - $match*) query_symref="HEAD" ;; + $match*|$umatch*) query_symref="HEAD" ;; esac __git ls-remote "$remote" $query_symref \ "refs/tags/$match*" "refs/heads/$match*" \ @@ -888,7 +796,6 @@ __git_list_merge_strategies () }' } -__git_merge_strategies_default='octopus ours recursive resolve subtree' __git_merge_strategies= # 'git merge -s help' (and thus detection of the merge strategy # list) fails, unfortunately, if run outside of any git working @@ -898,8 +805,7 @@ __git_merge_strategies= __git_compute_merge_strategies () { test -n "$__git_merge_strategies" || - { __git_merge_strategies=$(__git_list_merge_strategies); - __git_merge_strategies="${__git_merge_strategies:-__git_merge_strategies_default}"; } + __git_merge_strategies=$(__git_list_merge_strategies) } __git_merge_strategy_options="ours theirs subtree subtree= patience @@ -2281,7 +2187,7 @@ _git_reflog () fi } -__git_send_email_options="--no-cc-cover --cc= --no-bcc --force --relogin-delay= --to= --suppress-cc= --no-annotate --no-chain-reply-to --sendmail-cmd= --no-identity --transfer-encoding= --validate --no-smtp-auth --confirm= --no-format-patch --reply-to= --smtp-pass= --smtp-server= --annotate --envelope-sender= --no-validate --dry-run --no-thread --smtp-debug= --no-to --thread --no-xmailer --identity= --no-signed-off-cc --no-signed-off-by-cc --smtp-domain= --to-cover --8bit-encoding= --bcc= --smtp-ssl-cert-path= --smtp-user= --cc-cmd= --to-cmd= --no-cc --smtp-server-option= --in-reply-to= --subject= --batch-size= --smtp-auth= --compose --smtp-server-port= --xmailer --no-to-cover --chain-reply-to --smtp-encryption= --dump-aliases --quiet --smtp-ssl --signed-off-cc --signed-off-by-cc --suppress-from --compose-encoding= --no-suppress-from --sender= --from= --format-patch --cc-cover --numbered --no-numbered --signoff --stdout --cover-letter --numbered-files --suffix= --start-number= --reroll-count= --filename-max-length= --rfc --cover-from-description= --subject-prefix= --output-directory= --keep-subject --no-binary --zero-commit --ignore-if-in-upstream --no-stat --add-header= --from --attach --inline --signature= --base= --signature-file= --progress --interdiff= --range-diff= --creation-factor= --binary -- --no-signoff --no-stdout --no-cover-letter --no-numbered-files --no-suffix --no-start-number --no-reroll-count --no-filename-max-length --no-cover-from-description --no-zero-commit --no-ignore-if-in-upstream --no-add-header --no-from --no-in-reply-to --no-attach --no-signature --no-base --no-signature-file --no-quiet --no-progress --no-interdiff --no-range-diff --no-creation-factor" +__gitcomp_builtin_send_email_default="--8bit-encoding= --add-header= --annotate --attach --base= --batch-size= --bcc= --binary --cc-cmd= --cc-cover --cc= --chain-reply-to --compose --compose-encoding= --confirm= --cover-from-description= --cover-letter --creation-factor= --dry-run --dump-aliases --envelope-sender= --filename-max-length= --force --force-in-body-from --format-patch --from --from= --identity= --ignore-if-in-upstream --in-reply-to= --inline --interdiff= --keep-subject --numbered --numbered-files --output-directory= --progress --quiet --range-diff= --relogin-delay= --reply-to= --reroll-count= --rfc --sender= --sendmail-cmd= --signature-file= --signature= --signed-off-by-cc --signed-off-cc --signoff --smtp-auth= --smtp-debug= --smtp-domain= --smtp-encryption= --smtp-pass= --smtp-server-option= --smtp-server-port= --smtp-server= --smtp-ssl --smtp-ssl-cert-path= --smtp-user= --start-number= --stdout --subject-prefix= --subject= --suffix= --suppress-cc= --suppress-from --thread --to-cmd= --to-cover --to= --transfer-encoding= --v= --validate --xmailer --zero-commit -- --no-add-header --no-annotate --no-attach --no-base --no-bcc --no-binary --no-cc --no-cc-cover --no-chain-reply-to --no-cover-from-description --no-cover-letter --no-creation-factor --no-filename-max-length --no-force-in-body-from --no-format-patch --no-from --no-identity --no-ignore-if-in-upstream --no-in-reply-to --no-interdiff --no-numbered --no-numbered-files --no-progress --no-quiet --no-range-diff --no-reroll-count --no-signature --no-signature-file --no-signed-off-by-cc --no-signed-off-cc --no-signoff --no-smtp-auth --no-start-number --no-stat --no-stdout --no-suffix --no-suppress-from --no-thread --no-to --no-to-cover --no-validate --no-xmailer --no-zero-commit" __git_send_email_confirm_options="always never auto cc compose" __git_send_email_suppresscc_options="author self cc bodycc sob cccmd body all" @@ -2321,7 +2227,11 @@ _git_send_email () return ;; --*) - __gitcomp_builtin send-email "$__git_send_email_options $__git_format_patch_extra_options" + # Older versions of git send-email don't have all the options + git send-email --git-completion-helper | grep -q annotate || + __gitcomp_builtin_send_email=$__gitcomp_builtin_send_email_default + + __gitcomp_builtin send-email "$__git_format_patch_extra_options" return ;; esac @@ -2456,7 +2366,25 @@ __git_config_vars= __git_compute_config_vars () { test -n "$__git_config_vars" || - __git_config_vars="$(git help --config-for-completion | sort -u)" + __git_config_vars="$(git help --config-for-completion)" +} + +__git_compute_config_sections_old () +{ + __git_compute_config_vars + echo "$__git_config_vars" | + awk -F . '{ dict[$1] = 1 } END { for (e in dict) print e }' +} + +__git_config_sections= +__git_compute_config_sections () +{ + test -n "$__git_config_sections" || + __git_config_sections="$( + git help --config-sections-for-completion > /dev/null 2>&1 && + git help --config-sections-for-completion || + __git_compute_config_sections_old + )" } # Completes possible values of various configuration variables. @@ -2670,16 +2598,8 @@ __git_complete_config_variable_name () __gitcomp "$__git_config_vars" "" "$cur_" "$sfx" ;; *) - __git_compute_config_vars - __gitcomp_nl "$(echo "$__git_config_vars" | - awk -F . '{ - sections[$1] = 1 - } - END { - for (s in sections) - print s "." - } - ')" "" "$cur_" "" + __git_compute_config_sections + __gitcomp_nl "$__git_config_sections" "" "$cur_" "." ;; esac } @@ -3628,43 +3548,6 @@ __git_complete () ___git_complete $1 $func } -if ! git --list-cmds=main >/dev/null 2>&1; then - - declare -A __git_cmds - __git_cmds[list-complete]="apply blame cherry config difftool fsck help instaweb mergetool prune reflog remote repack replace request-pull send-email show-branch stage whatchanged" - __git_cmds[list-guide]="attributes cli core-tutorial credentials cvs-migration diffcore everyday faq glossary hooks ignore mailmap modules namespaces remote-helpers repository-layout revisions submodules tutorial tutorial-2 workflows" - __git_cmds[list-mainporcelain]="add am archive bisect branch bundle checkout cherry-pick citool clean clone commit describe diff fetch format-patch gc grep gui init log maintenance merge mv notes pull push range-diff rebase reset restore revert rm shortlog show sparse-checkout stash status submodule switch tag worktree gitk" - __git_cmds[main]="add add--interactive am annotate apply archimport archive bisect bisect--helper blame branch bugreport bundle cat-file check-attr check-ignore check-mailmap check-ref-format checkout checkout--worker checkout-index cherry cherry-pick citool clean clone column commit commit-graph commit-tree config count-objects credential credential-cache credential-cache--daemon credential-store cvsexportcommit cvsimport cvsserver daemon describe diff diff-files diff-index diff-tree difftool difftool--helper env--helper fast-export fast-import fetch fetch-pack filter-branch fmt-merge-msg for-each-ref for-each-repo format-patch fsck fsck-objects fsmonitor--daemon gc get-tar-commit-id grep gui gui--askpass hash-object help hook http-backend http-fetch http-push imap-send index-pack init init-db instaweb interpret-trailers legacy-rebase legacy-stash log ls-files ls-remote ls-tree mailinfo mailsplit maintenance merge merge-base merge-file merge-index merge-octopus merge-one-file merge-ours merge-recursive merge-recursive-ours merge-recursive-theirs merge-resolve merge-subtree merge-tree mergetool mktag mktree multi-pack-index mv name-rev notes p4 pack-objects pack-redundant pack-refs patch-id pickaxe prune prune-packed pull push quiltimport range-diff read-tree rebase rebase--helper receive-pack reflog relink remote remote-ext remote-fd remote-ftp remote-ftps remote-http remote-https remote-testsvn repack replace request-pull rerere reset restore rev-list rev-parse revert rm send-email send-pack serve sh-i18n--envsubst shell shortlog show show-branch show-index show-ref sparse-checkout stage stash status stripspace submodule submodule--helper svn switch symbolic-ref tag unpack-file unpack-objects update-index update-ref update-server-info upload-archive upload-archive--writer upload-pack var verify-commit verify-pack verify-tag version web--browse whatchanged worktree write-tree" - __git_cmds[others]="" - __git_cmds[parseopt]="add am apply archive bisect--helper blame branch bugreport cat-file check-attr check-ignore check-mailmap checkout checkout--worker checkout-index cherry cherry-pick clean clone column commit commit-graph config count-objects credential-cache credential-cache--daemon credential-store describe difftool env--helper fast-export fetch fmt-merge-msg for-each-ref for-each-repo format-patch fsck fsck-objects fsmonitor--daemon gc grep hash-object help hook init init-db interpret-trailers log ls-files ls-remote ls-tree merge merge-base merge-file mktree multi-pack-index mv name-rev notes pack-objects pack-refs pickaxe prune prune-packed pull push range-diff read-tree rebase receive-pack reflog remote repack replace rerere reset restore revert rm send-pack shortlog show show-branch show-index show-ref sparse-checkout stage stash status stripspace switch symbolic-ref tag update-index update-ref update-server-info upload-pack verify-commit verify-pack verify-tag version whatchanged write-tree " - - # Override __git - __git () - { - case "$1" in - --list-cmds=*) - while read -r -d ',' x; do - case "$x" in - nohelpers) - ;; - alias) - ;; - config) - ;; - *) - echo ${__git_cmds[$x]} - ;; - esac - done <<< "${1##--list-cmds=}," - return - ;; - esac - git ${__git_C_args:+"${__git_C_args[@]}"} \ - ${__git_dir:+--git-dir="$__git_dir"} "$@" 2>/dev/null - } - -fi - ___git_complete git __git_main ___git_complete gitk __gitk_main diff --git a/plugins/gitfast/git-prompt.sh b/plugins/gitfast/git-prompt.sh index 1435548e0..76ee4ab1e 100644 --- a/plugins/gitfast/git-prompt.sh +++ b/plugins/gitfast/git-prompt.sh @@ -84,6 +84,10 @@ # single '?' character by setting GIT_PS1_COMPRESSSPARSESTATE, or omitted # by setting GIT_PS1_OMITSPARSESTATE. # +# If you would like to see a notification on the prompt when there are +# unresolved conflicts, set GIT_PS1_SHOWCONFLICTSTATE to "yes". The +# prompt will include "|CONFLICT". +# # If you would like to see more information about the identity of # commits checked out as a detached HEAD, set GIT_PS1_DESCRIBE_STYLE # to one of these values: @@ -96,9 +100,7 @@ # # If you would like a colored hint about the current dirty state, set # GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on -# the colored output of "git status -sb" and are available only when -# using __git_ps1 for PROMPT_COMMAND or precmd in Bash, -# but always available in Zsh. +# the colored output of "git status -sb". # # If you would like __git_ps1 to do nothing in the case when the current # directory is set up to be ignored by git, then set @@ -255,12 +257,12 @@ __git_ps1_colorize_gitstring () local c_lblue='%F{blue}' local c_clear='%f' else - # Using \[ and \] around colors is necessary to prevent + # Using \001 and \002 around colors is necessary to prevent # issues with command line editing/browsing/completion! - local c_red='\[\e[31m\]' - local c_green='\[\e[32m\]' - local c_lblue='\[\e[1;34m\]' - local c_clear='\[\e[0m\]' + local c_red=$'\001\e[31m\002' + local c_green=$'\001\e[32m\002' + local c_lblue=$'\001\e[1;34m\002' + local c_clear=$'\001\e[0m\002' fi local bad_color=$c_red local ok_color=$c_green @@ -508,6 +510,12 @@ __git_ps1 () r="$r $step/$total" fi + local conflict="" # state indicator for unresolved conflicts + if [[ "${GIT_PS1_SHOWCONFLICTSTATE}" == "yes" ]] && + [[ $(git ls-files --unmerged 2>/dev/null) ]]; then + conflict="|CONFLICT" + fi + local w="" local i="" local s="" @@ -564,15 +572,12 @@ __git_ps1 () b="\${__git_ps1_branch_name}" fi - # NO color option unless in PROMPT_COMMAND mode or it's Zsh if [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then - if [ $pcmode = yes ] || [ -n "${ZSH_VERSION-}" ]; then - __git_ps1_colorize_gitstring - fi + __git_ps1_colorize_gitstring fi local f="$h$w$i$s$u$p" - local gitstring="$c$b${f:+$z$f}${sparse}$r${upstream}" + local gitstring="$c$b${f:+$z$f}${sparse}$r${upstream}${conflict}" if [ $pcmode = yes ]; then if [ "${__git_printf_supports_v-}" != yes ]; then From 667fdbf7746acc90aa29b316ef711180e7917aa2 Mon Sep 17 00:00:00 2001 From: "ohmyzsh[bot]" <54982679+ohmyzsh[bot]@users.noreply.github.com> Date: Thu, 28 Dec 2023 22:05:37 +0100 Subject: [PATCH 440/441] feat(z): update to version afaf2965 (#12136) Co-authored-by: ohmyzsh[bot] <54982679+ohmyzsh[bot]@users.noreply.github.com> --- .github/dependencies.yml | 2 +- plugins/z/MANUAL.md | 18 ++++++++++---- plugins/z/img/demo.gif | Bin 0 -> 1271520 bytes plugins/z/z.plugin.zsh | 52 +++++++++++++++++++++++++-------------- 4 files changed, 47 insertions(+), 25 deletions(-) create mode 100644 plugins/z/img/demo.gif diff --git a/.github/dependencies.yml b/.github/dependencies.yml index 4d5a8fa80..6d138736c 100644 --- a/.github/dependencies.yml +++ b/.github/dependencies.yml @@ -10,7 +10,7 @@ dependencies: plugins/z: branch: master repo: agkozak/zsh-z - version: 6bfe418332866d15373392164df11b4fbec2083f + version: afaf2965b41fdc6ca66066e09382726aa0b6aa04 precopy: | set -e test -e README.md && mv -f README.md MANUAL.md diff --git a/plugins/z/MANUAL.md b/plugins/z/MANUAL.md index d367c3026..67a207dbb 100644 --- a/plugins/z/MANUAL.md +++ b/plugins/z/MANUAL.md @@ -4,6 +4,8 @@ ![Zsh version 4.3.11 and higher](img/zsh_4.3.11_plus.svg) [![GitHub stars](https://img.shields.io/github/stars/agkozak/zsh-z.svg)](https://github.com/agkozak/zsh-z/stargazers) +![Zsh-z demo](img/demo.gif) + Zsh-z is a command line tool that allows you to jump quickly to directories that you have visited frequently in the past, or recently -- but most often a combination of the two (a concept known as ["frecency"](https://en.wikipedia.org/wiki/Frecency)). It works by keeping track of when you go to directories and how much time you spend in them. It is then in the position to guess where you want to go when you type a partial string, e.g., `z src` might take you to `~/src/zsh`. `z zsh` might also get you there, and `z c/z` might prove to be even more specific -- it all depends on your habits and how much time you have been using Zsh-z to build up a database. After using Zsh-z for a little while, you will get to where you want to be by typing considerably less than you would need if you were using `cd`. Zsh-z is a native Zsh port of [rupa/z](https://github.com/rupa/z), a tool written for `bash` and Zsh that uses embedded `awk` scripts to do the heavy lifting. It was quite possibly my most used command line tool for a couple of years. I decided to translate it, `awk` parts and all, into pure Zsh script, to see if by eliminating calls to external tools (`awk`, `sort`, `date`, `sed`, `mv`, `rm`, and `chown`) and reducing forking through subshells I could make it faster. The performance increase is impressive, particularly on systems where forking is slow, such as Cygwin, MSYS2, and WSL. I have found that, in those environments, switching directories using Zsh-z can be over 100% faster than it is using `rupa/z`. @@ -32,6 +34,12 @@ Zsh-z is a drop-in replacement for `rupa/z` and will, by default, use the same d
Here are the latest features and updates. +- August 24, 2023 + + Zsh-z will now run when `setopt NO_UNSET` has been enabled (props @ntninja). +- August 23, 2023 + + Better logic for loading `zsh/files` (props @z0rc) +- August 2, 2023 + + Zsh-z still uses the `zsh/files` module when possible, but will fall back on the standard `chown`, `mv`, and `rm` commands in its absence. - April 27, 2023 + Zsh-z now allows the user to specify the directory-changing command using the `ZSHZ_CD` environment variable (default: `builtin cd`; props @basnijholt). - January 27, 2023 @@ -64,7 +72,7 @@ Zsh-z is a drop-in replacement for `rupa/z` and will, by default, use the same d + Temporarily disabling use of `print -v`, which seems to be mangling CJK multibyte strings. - July 27, 2021 + Internal escaping of path names now works with older versions of ZSH. - + Zsh-z now detects and discards any incomplete or incorrectly formattted database entries. + + Zsh-z now detects and discards any incomplete or incorrectly formatted database entries. - July 10, 2021 + Setting `ZSHZ_TRAILING_SLASH=1` makes it so that a search pattern ending in `/` can match the end of a path; e.g. `z foo/` can match `/path/to/foo`. - June 25, 2021 @@ -85,7 +93,7 @@ Zsh-z is a drop-in replacement for `rupa/z` and will, by default, use the same d - January 11, 2021 + Major refactoring of the code. + `z -lr` and `z -lt` work as expected. - + `EXTENDED_GLOB` has been disabled within the plugin to accomodate old-fashioned Windows directories with names such as `Progra~1`. + + `EXTENDED_GLOB` has been disabled within the plugin to accommodate old-fashioned Windows directories with names such as `Progra~1`. + Removed `zshelldoc` documentation. - January 6, 2021 + I have corrected the frecency routine so that it matches `rupa/z`'s math, but for the present, Zsh-z will continue to display ranks as 1/10000th of what they are in `rupa/z` -- [they had to multiply theirs by 10000](https://github.com/rupa/z/commit/f1f113d9bae9effaef6b1e15853b5eeb445e0712) to work around `bash`'s inadequacies at dealing with decimal fractions. @@ -102,13 +110,13 @@ Zsh-z is a drop-in replacement for `rupa/z` and will, by default, use the same d ### General observations -This script can be installed simply by downloading it and sourcing it from your `.zshrc`: +This plugin can be installed simply by putting the various files in a directory together and by sourcing `zsh-z.plugin.zsh` in your `.zshrc`: source /path/to/zsh-z.plugin.zsh -For tab completion to work, you will want to have loaded `compinit`. The frameworks handle this themselves. If you are not using a framework, put +For tab completion to work, `_zshz` *must* be in the same directory as `zsh-z.plugin.zsh`, and you will want to have loaded `compinit`. The frameworks handle this themselves. If you are not using a framework, put - autoload -U compinit && compinit + autoload -U compinit; compinit in your .zshrc somewhere below where you source `zsh-z.plugin.zsh`. diff --git a/plugins/z/img/demo.gif b/plugins/z/img/demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..247f52f4d2667211f897fdbe2fb10d7b696b3e0a GIT binary patch literal 1271520 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
|TGYDAg2dH%C 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ⅈo9kvJU*Q@4^a!V+5U^5fQd;3Z* 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%0D}OhwQQ|7Fp>o9i(;qw=G$0 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

N>8qw=JlQ&+Rs zZ8Z(&RTE*l`eluqrgTe*^XV4ZZ5~1@B03CS(Jo&cQk6@}oZ_QZOPzeURUSK>oi$~f zQ(^S~x8M6J7ngj#sK|P6qCNXU>#gqD!Yw--yY#P^N0v@EadfIa{P+8_m|t^5P=n6B!A_rN57=pmtAv?>n%OR;Gw`+mLJ<9<)!%M-lgNYt9d8A3}j?J@XBWC zKdY;o%=fEa6Lro4ac;UPL_HdwF!H$l-@rPKAj zx9A?n^lm=Em!HMIm^nRlpSpH8`|HlXd$#RkGUBLYI1%ZlwOwp^Ew{>&VucMN*Y~e8 zC{W@EQE*}7XiyBe(4cT;;-NV~0=Fd9>b^B8xCCSfh=fhh+U2Nl+2NxQ-!6j|i92|4~Gj~*7G z-WH#wIZlRN6XqOfnSaYmBkt>@NUrCBTVy!2Lr{N&$DivS!TBV~}9}X?CiIa{mS={)-*`Z2c%C1dzdZxZUwMLhF zuS{__7xnX7y*c>kiYdyru0a|JmV(VuDf2}#C4&NuLfSN@YPhv}1}6($y`?i%k-<35 zd0th>VV_XNn7tkmnV+w=^n6teO+DdX8x+=@^3_;;?llR)qN~$+-l-I&c*L?k+S%kY zQDNef6LHB!*Y}HvDVn%=@N(P=Z&&%I&>j24?bEA?$M&Ucm?p~M5;I3dXgLeA$BKtxQ^+3w0)};}Bf*pD$&taO1pdYD`vlgqEZVe4NR0Y1y$x zg-85beLM0wmF`p@^j0{(l|zR$%I;SJq6CQ=J>^^YR zqe?yLc9X*T?Yf!ooX&9DCMLP`-cR+Y7Tpxvqf@T%>8MA8a8ewD%yq@1XY@>xod@@YJK9dzFCrehXE}Z72FojZ&1H zd#f(1KqaSK^QN8Jmv2@G-7KR@N({6@EPC5{Ij)&9O z+sOJ^{})NM0JfW+cWeX`CWWZF?c1zjekrX_;Fn@%TxYi^Z-Zs@l8dFw3_O^81#G+3 zLi}fNlt+5r#^me^VU-MnFj<8^{RYJ>; zoOsOUu=6IE|dpzlV)3c=dZuHM@t}kNWci)NDms#eqBX{##-^okPxH~HD zm@X93a(|Z&U%Px**{R6IAvG%E`6mwST=bzkCFXH$=Z+%YfAgE_U6$DX|H6^GyQ!$( zV)uQiok~+`=YDFoc%V9U@>{9qO@+s1Z0S0C%;W6;PsQzf{wO)SpFG9;NbjkK*b%32 zAMK5gzqHNxb5Z1E=O*q?&zlcaDww?Mx+Z_=tJx!!TcSUAIefGJ*4v@CIYhtnmT;RT zgUnr}J-c>0AF7+M?RM)VSr&(@zK_a#O(wmr)!d^gE;O@mitJgohrbp@m?qL*CM0}-d+Ii!-&ZT7FShU)mZvwi&YUE$VPlJ@Vr5)nw7*2Fy<@Urgh1?y zM5~3Z(}UVL9b37@gmWZ>!d?i6JQFH?5m2>5H^3sRT0(Yex>%z|K(mEh>yP%186DAy zHC;D4uKrg{?UU%7WYIY#qH|hB=ZqPhvvzdOxzRcAN9O{Gu0x;BWZW)tlA|l# zLa=Re4SS-~`BJar94e$N$USocEkiiW9EMDLe{y$08XUj0z9 zeJ=F=g%D4RLBb6|p2>DEPAK2H5%#A&Ecjr5#lwR1tAbm02s6JF6fKU|Do)b7tp8(1 zzty8C$1+i&l>)wLg8j$EBv*#B6i#G5*kN^jV#q{)MNdJg5*vmI&3r2brYbwiGn(E^ z7P!JO(K;wmZfB3n|I{ey#K}B{i7~}O`<5msC{E!BOb`x?jchKn6;Ay1HJbn7WZRAL z%w_Ftj#Fd|16czt)2}t=eV<_RQ|Vn%s`aye{?t_YOu?9!6LkV7h$IGN{S=VDCMYS^ zFMV(-)5hSClL9$A1utJ0+@wA^?&nn9OMOQsr5ZZUkiIE=eY$AuF@fZ3%@?N4kV#E* zZ?xh`oFaYEs`R)`6X&$N#Ys1R%w#dl-Nq)Uo*}lpQ{b}GtOcEdYdAABJ_|RRPM-Tx zspV(NLP_Df<>I?n3YTbR8a`xYV6c^XnA#F7G|z4J){{!xC4+XZ6sUe_r~XCoVy1v% z*xbpI!jHZS{BIVhU1{F9bIytX8Wk*#kqgr2F0`yrwG_C2Q|S3i@wbrz7s4#hMhNXc zDg1Gz6>H%nIb%nrMz2Sl@>7-z%qy)FWo(~SCLm{8{xzasRdHrWU?WeJAloYeVXaoy zz=aWl&XJJ<|F;X7eQ{^hQnF|5KEE@A)v!kVVRhBPMN*7DT2b{jPXt&qB!na8|J3w+ zSUE>oO8&39fV`Ce^9^BpE(XV60xz};{A3q$-c|L#Q}DcaEyIMx$`_ZYOkDExyKqH{ zK-H32wJdH8TNamIS!_3J3TI=B%EHMUjxAh;jqND{$7W8_Y+UBJaFXOlqdYI6Gt-uH zZ)_F_Y*Lsw%iyDD#j+)_Cuh!bS@v(@^bP+PiS)b@n~ry z*9!G)oV0OWP>(_5Tn)vIGLDo>6d!2$<%H1XMRQUF zGkkW7#&?S(uHLNVxHLy}<-4r{;a^q=Z}gA3t+1qOf;Qs>R>ke{j@$h_+csK=s;w5_ z+$os;b<91#49~V^LX&hTB5c*pnv;r(V~v8}>08?`HbA`@ru#ET^WJM+;n;y`ATO z;BG#~siGJ6@HWO@<7PPCEs&$VukP4h7RP-{r|#qQ@Gz|2!WTHV>9;^ywqSkdX1@^8 zvPf%>+X8u+BHm#KF1@7ynNTIj~?gPe`>e>$DZRlAdC zrwb>}oT`Zo5KYV%k>z#!ODf%z4#CIm>o)Hy-v>oN2sANaD|= zlPq#(YrYW4@c?^a>rZUX$b6j&p(%m!G?AF>&@W zg^P2;R2-82a~(Hh6}tUXSjWVn%|>MM9pM`{J^J4W&Fm4>k9Irw+I#Y!d0NK>B}JAA zJaqJbC1h+Z6r>}in|{>m<0)Ci6&BxR|K4`pAGDZn;X(t!oooje?(`OLKed~`(3$YJ$Slfy5MsOp$$*YoJp;4EnLX^@nmh|S!u&#uQqG=_K2C!I$`ti*!JaO zdQw%3uOIMOSY7q-oUPzu<%#EbKkkoEJTJSjis6@en3V8eAHlDa+*iL?8n3m8Kk=O7 z!n%kq5pSo+%(RSM>bW^LLz1 z>pCu9JjbFnYsG~x1f>wOkmGa9d##j54+y}Zz7TMlf5_@Y|?X4AaZ>`#U zYt7wT>;B%_AbWe0?d>hGx3|^a-ZA&~uD!SS+`YZ;@9hJ!cMjR!ITCy4SnZt?bMKtm zd*{sEJLmr1xgdM@60fSLx0rK}Os%a*hV9*p8&7rozcJ^|TeYgQxjf~0J$IrW{*~Vz zBQ;ef``KAhHMV;%_lk0qhpv%0S2bH;O~)po?CqM3+nFEU_YuABxY7UDZh?~(cR%Nb zI|`na+_+1eao3_$fyLfJH)}=r?GX^z7sVSmkz?b-CA%NkI_`U2EudN_xMTG`=M@6# zeS)7(3+TpeKgqrS^zS5rz40>3_V6wfwD>1@*>(S~lhNAuCVO)Bx~T5ASt+0&C-_76 zQShV#y*xsdC(qsJ5Yqnk&_VEiTIZs3F9a0cJ<<4>p6S}H#xu9-WrdXBT+g}JytvbB zY7R4hyu`Hq@Y$zC+B$4YER;>pD%?U z%DrzC*wDu&^G3Miju2O$kgWSF&yTZjZaew&b{2bJ8o$|*1Mgm?W=p)5J=O|W2`;@{@^t5f6LO+=_6Q$XBXrkK>*br}!z~YYEH4da;KW*&08Iy%!Am zzgFBhKSx&Zs#M_>-i^Kn+QBaypMSAp z{Hkf#D!1`2vthgbQ{gz>uXbTyz2v_o{a1Kw`z@{hTgLovS^K}`-2ayM|676l_agi6 zCGp?O>c5{VdC1@Rb!(s4&b-g63%_st_`QtRN6ugF(_aOl*6(eMyL9J>cIFGD`ioBP zZ%_7=*&q2+_Ts&>Rmb}KMJL*;%=!N_%kbB!U!Uz5ThrEw-MVotU3X;zL)ThpY?#~lc&Hp%|KKqAtqJJCnS3NsjoTmKmh_|5iKS6K3J%QWm-$kdMb5Anl+vjQ% z^LeVkQ~#O^-20_%1Q;fAA8=@5<&|@pvBAZujaOFeOTvVS2X*)vIkwCYxH!Lu-Q1Dwau8bEb;dhUEdu%XOC^w zx~3G_QugJ z;@?Yteog=4ulaAnqW9|=CQ4mc_3>Zw21j=JKX267Hd=YCUezG!vEb8`UELd7RIcc6 zd#}U7aO8K)X)dQ`A)hXnZl5pbj&2BHX>gH{PWq_HqtBG!ELG29L}yE&yL{^uO@o!6HZ4|R zXDU(Hz>}2k_^v8Q-@k2v42P>n@a4SAivyOfy8PRz^ukq-)U6#?muU5xgvXZ48tFDm z)V}a&&#HJ8#GuCLaM8n6r*{EoMeiyZ2Bl^*#mtqwpKe{BH`OPay>qQuOyO}|54X49 zLM}$^In%p}`U@_~6um4>&U9;({@ej?0 z$6HrDJpI8mD{+=e8An35j@tI*e*0yCP6bo5mMB;(ZT7kwUU0WBi6PF&<8D*Zq$JIR ziA;`0dNX$YTrfwvNHT44S>A{AJt@mhz4%^b=aspwqb|#8!vE#VqFmi&c%HHxG2(sy z>iUjP7Z)C%^OSY>$q>~Oua|F`#`AXNjl2tQd#<=~ygBv6EvISIY*(MWT{D}iHP@|H z+f#6u-`%G0sCfFG!sGJoe>8%Xm+vV$tvmlu(OL87dy3E7v)h(jbXVV7a@pVAw)ARv z`rgv(@$I%{H`ABzExVn6+_wB~`SZQy_v_j1Djv40@2hy+?`~K5bb9)}%IEXj?W$fb zU%s#E_4?y>)o-^y-&g&9Kf8U+$K&ez|6KBSu&@0x@zL+i-)?fv`S|^2)TG+D*X1Jh zpTCRGf4a)^X*>g~g~Pp{>#f^oaWOn@I&j}aqgeYAAM@Hz2TpqkXo{$GuyXEj{C`(+ zg0+-QcdCQLRKdLEE&i5?vx06+5iPpVy8d%Qh*RTs0ml_Nd>7|GN;@GPcjml;^$~A= zRpuk&VuEGcZuR|NU?vdH$=S&t>7lXY>O^&~W2UZ>9)}n<%vh=;$l&{jJN&}d)u|FL z3Vy{WBxVO4YnpS>I?E(UMtk~X6{%Epj?ARF516O=KE0?^(())egUMs*g#yh036HZj zM+LUu{ismaa?1DEvB~a1OBA_Wx)f(KE%j7mnN)vJT8(wGi0`S3Q?egDDo>g*QO3#D z`?*%6T`C~?!x-1Tw{6&Ytyxe^DrYN>Fyj=L^!KW$5-^i?+Wh^@V?Q`QrYrHtc zZ%)u^`mdsRdW+ZG8y-F@O(uH^SD#w|^?Zh3f%C-p z7J3DS8Q3rxyHs6M@Q;6yE1qr8W(Koh?<$C9Z@UFaQR4gc%}07i4m>qqgdZm?$(r)RR?iyE$GiaoqQN@&2c)b~9|a9q$)#>T^-~9`8*3 zvZvPZzph>1_x)&o-Phgm|Gr({|DUy>LD!vWWo+94Cbxnn(LD)l<~I)Vw-vOg+9Yy? z-#8?Gtf0+wPayjd8Rh?d_*nPkF0dxx!KiBOU{O^N9+pX}_YSO`L!O~4n zS3U4QYa(_yDO-9{??7H zpFb~UZ<70(A*fiP`fb*-?1?GHM$O+#%o=AIy^WT;ef#;HiEYz@-ke%e7XC&kq-Oum z+_K5}S0C$%mRyeSh*#wDn=J(tV=qtV2aD zlru^_^8ZKawnwu(;%VYOBx&@qwfs+^=<-upyqofyEVd~-$z4y9bo$iRaYsoloooB7 zMMW)BlCR4h|M_yk*;hI8ON0Yvv{dn&Q@?#|=@yfpl@}NdO73_(eZe-f;eXe>;#J}6 z<~pA4;P-Z$P^WxdNx@v8ysLY{TK<*?96K!;_MDr&(ON}~aedXD{pJ?^d#77h8P5)W zqgTG~``!2T)4xt+w68cMe(yuOd(9)!{T0W|?|tlVuX&+4kipEsnZW<7a!c4FcB|Fhn5*e%>Y zzqT!V|ABfj`NhG(pWZdEzxq)7U0d`-SwUN6mv)c)T37yef8GE2&r{}YKihXFISQ4% zTFCgzF{$O6nK4VlHu)oG-2?6WZ_QUzX`8QL``*rIKfjmz)1T`kGncG9y{2)4Nvd*( zlW~W~W8NUm1NucK|Ex9lu2z{^!O?qq|GZoFs{;0I+qwNrh2EKprTcF_xFawCMn%c zE*!3NgqJjFm}F{oGHI#wbRXwZZ`*LBVG@s{%n@EImrcLyEp0lwojLkW^Sn*c-X3JV z#K3jd0&Rwdt!)`cS1@clKf{$_#nI*+uFD@B@e7fi_Pfvj3V(tLN0JR!a^udJPMxLz z^HYmKf0fqvA@>mxR{RqG0XK|4t0M$)sdFN z)i#Hx-DY;vk`w>Cww&lba-!$TiQXq3HP#0Aew^qNIXO|~a)I zlha#H&X{s?=8}`Mww#=O*?-J|UBhLO6xp3OjWAz4;UD6j=LNBnMwYi^sfxYzt z$J7g)OD}M3y}*6+0?*Y8yiYIieZ9cXdQm|1qM+(UA=8V(t`|i@1220Y`kQ%C^z0UK zU3tmYi&C++(nkZ2tXQ7gyvF)5Zk-K{}_eWeR8w%tc^AJ4g)V%O;SruH^lTv}%o?{@8dpzx_;0hg8o2ht^3@Ys3a$!Pa`aYO z<>YWgr-nYU@oT?vb;k?;Z5h_pDjbPtuRb|4n`y23Ux#a37IFsaUQ2JimNE5O=F)3f zTd!pwy_R$JTJFvFr7c(D0=nJkLM$iaUAvZHKp%;Hm#B z!ryjWH<=kOvv`(|%E_x*j9c!=uCM78-XYjj%iACtk?nfpXyJubJFlNvaOFSWlrtuo zH=1gBHD=#XXx!BP*O_URaJuit-m5N076}IJj3~MoaZxc+;>iN8#fy#+%&EOY51E)Zf4tQT;$UO6#ht%xI;1kz$GB|XUt#}X&UMALTx)B) zc5KqDG#caWEqXun7N^RsuI3b(%g!*@U@rs=}cO9o4R zhfe%l+v~X5XWNJSqDyWBdLQJE>N*)>>;01BpQs+YOjJ9^gJlH?=Ob<=yzc(K!Q|+I z&ag!xd~PnsCp<`R7JK`(N8KP%Xj$irf;;Q7xT?4>1g2bGm9ebL`7G!Ipr#$rFnIh?nS?7fSlCQ1CN-)@Km9%5=*E zmVZ4?dsSxLNI9wS^yH3&l^c%vtm_KNi)>e#obkIm*o|ZJR@oV*9S&Q1Y;&R}?vnB6 zyRxDqcg$+kY1MZsQ>Sr+`hvt5$Ozy zb9%V>XJ$Q1-V@U-&{;DrQEknv|EhX|?>=ZHKD%=2h2PfJZ9Q%GnhSXQrX{cJ(BGKU zk=4i5w@y3Y%IVaz9o_4Cru^fd9yT#{O2*`6g0p}3FO0t0B#_pABeUJ(>f#4?R#p0| zeC(N@*Rjy9V}Tvlva)AQ8S=}`xR%s$c*!Ll&FNTF$FVeQO=cq3N;@w5Jb_jF_&06i zTDOjC^E2MHava+_BNRJ#HGkXL(s7ml$-Sj!?q@!nz3J2w!q%{xt$)$$%oQD>Z8x%y z%n-lm#TAp=acJMwZ)^RJ-aFV=@Mf9DGx?QoyxclYn{}O8)^*s9oa^uDZ1eTtCO5xsL0$T*v=|X8vINmJlsd<(+>q0KW)p^Rb*`JQ`>^XdU zSwiMwjrV?6`@S9H+3o!Pt;B<+E8^y{_AZ@~ufCP5^~uz|(P96O-92+7pUEwAfbJ_l{`scP4blVu2EGS_0e$U7LQ9%5op!!E4^N+&rA4S4H zil%=QEB`3o{!wCj;p`Ckv%jC7X~=Kh@$tirkN+Gd^Iz|m`Oc@fori6HVPuwEE9<<= z+jyFvK4uU6r22gi&vQOCbq=lT4%)Z)l-gxDH+^FLBdC}E{0L{{|J8qrgb(TIw;xjP zmuYy`TWe-G`|AviBe&OY?OCMDVSS%(E|uc90~&dlYKU-YGU!iznzU3*)T&%gM>yzGI4S4>+$$>|9tik_vH z8Sl!^jh;RGV^D$R>@qw>xGvYq0 zaXjqp^i$ZMww~wd+T`f@uXFU{PcHbjYR7w%#?P9s3*&6G0{yrZwsQ#ZC9aTop#L|X zbBTP=@|9h--!&y0k)!q0DCJQIHXr7(TMvNeyER6MeH*C8bqz4$?*spPW% z3U0lt&F&~|+o9Z-uvnm?NuqS+5>Fepl%kD~r>*WctmjqU&*OKl$JQ*l|GuhanwbS( zWrsq_`;N-Ch9^Hie4A+>e0<}pB{szYavc(ng7;tRtM2Dor2exuXtKxVr|Q{r3ivnn z@K2vVy(`CW$D0Q^$D}5&i114(^JD(j*Rt=M@x))#(q&e-8*Z6j{7bgOcYnXj%2|zU z42#R3tCw)h-1K}~d-|;O-=RJnlaF&-eQ!OaE|Z1T-aNWH&uaLuh(-$d)05u?|QL*`&G}} zYQMJ$}^U zeMu*L7x&3mb5E5o6rNM@`@ay2_B4Y>N4ms~^WOY0d~#xvdhoiOpGIlz_E{Q ziXDnw7LO`~7NjSIZ_;g3>eSu!V^M|9H1)@MCWk7N`z&{znBL0vF(a~H=Wj=ZMww@7 zSD&ZW&L^3&8$>QSc(IxXPT;oGys0f0nwk3FDS%7mX^OCcrP|C?w^S8|1gzb()<$cUVQCkz&y@_nE`BEe=R30P-#uOu%v2M zrRK7kRw;{}B&4pmrnbCu6<8r#IZI%9PiK@?z{;>z52v~eEA6$@cijq2&|-Qj?6N1U zG&^SBv?;4y4@fN$^lapGX>y2Wdf>nIqF49gjk2LfZf(^FeI3Xbo*I2=o8L(*-JMUL zN#watt0{Sr@~SC&)^3Ik+=9Ez8I>o@ZkIgLzw_@e@5H^r2cKQsGm+OP=s=%r%!g(F zt^RyC%o(o!F>_tkjVs#)viBG^dGvYT6kvF9Vdn9@Q*$o1h|KPN z>=`PU8hU+7YEAHspvs?x~;+tH_G;mv!uiUr%eb5C z`>bBC-Tlw%&BoJq)^E4ouCso(^L5@b_3%RH3uX?zmoJ)@Tx=5KJojdw&F3AGk41zT zj$EFoRT5j=Ys9eSlFj$K@$I|}i@${KjoY7bKlJ0h)%)!VE;2v(=knxo>c9Wr-rVNj zV)pRN;{Xevx1a4&l@tyz@?B6U<~-tjM~EY9N=pNui;wX+C4rxUOC$w#ID{X#PvFry z(!{+`-sM=KO>@DAI<+fPtp1q`u<^A>2phILZE~EDc;m2%sE3D@5R=_Sp7)B2Bsf?# zcdThl$ybyTQDT@8Dj=}vNjqENHO|E^79}z~mAK!~!5#Uy>&l;iPS%~R4tb2cO#v4= z8D<=FuyYV7^EuL!A<`kmdB~;t4zrSWT8~cTw*cd`MCjPZ`k!P}ObAEP_ zUyI41jlYmR<%`*b2aN6=`64GwFBl4}n<2=+EO3IAv&fSn<&r|Nil_QzCNKLT2 zt8|#LOyX}mAi%J-hQpSx@@PwnAj1Tf1J-kxxEXRbiuhb?b&hy3K~|4-X2{CLPRDi} z;pAG<&T1L=ODM^X;fNr^H5CrC<&pcdw_Q}&-f+Nq#>G>mYA;y+DzsU#1obo>nXIxg zq{CE5>0~$)!vxvR1}C9|B6Un53M&qw*;Wi#LL!U~)AB|;2>N0Ob4PPvtBn&QymbHe+%=cG8hmWjLnbe^BLeabyfmxWai zGo8L}y3{fue}(WzC9CT0r>%6yi;~GA(GT{q`Ic$2hM^2}}y}1vb76@@wFn zzle!px5ml;3<6vXt~yU-*a|a(ubc{7Z4tUsP?SS@Ze#b}Po|66CZ;)kx)r`}me3N} zLah*4remv&w%Hq*E^!E15!yfD!8{|=j_^of#qVxW)$yk&nXrMPu^|6R5gWIkN zliG|F4`%4(d_C;ZbVYz+GOL4ae%GY9f0I_T3Z}%j{S?^Y=ei@da6X&8hwqdZf?CR7 z6dC3@PPlYz+b%{Yw=drgp16JK(;&_~y ze_82kfto*0>W`@MNS$~%#`z*%vNhc)LuP$zt;`!wK-86Z2{J+ihA13zt z^0+Mfd!yfPT`9@r(NVvycQz8HuKAjWJcD9@1E=IeHnQBIm&VNyu5H_Ax~_Qb>)6k`uJ8M2x}jP3O``Db8^`RnHSQA= zZhzCG>fvOzWi2ODO-xvV+S1 zEEfMsVGt{4WJvm;-C1mtp?tcBHR?f|B*W2srpAin!F4+(EM#FTt2it(Cu!^C)q9@J zh-M4EQozoz<)NmhG{>o2y%Gu4g+bwlRh~~ad|1a)`@&EBBIk-_)B7V?9!qUMb#mUi zQeV|~S|QR+SLB60nNIklW_jD{*4eK)(=M~V6l-jDd~{&a%B6eXZT6ZS{;#2+|G~n$ zDw?zJGS}~K@=lfV2v;?nQ? z!t0|)7RYrdO%!+WxZ!?dzT+KnN1po* zZ{%D&W;qxrFi0r;^G(P+aMkwgB;AXbTmm9~e++8jY{_?JRaJHQz#8hLvA{X!qQe1s z)@=!CJA`dc3foR~nJDU#CV0e-x5fT$i$7z7aUpZ{+Nll&Vq9V_{JZ`u2u(Wn|7eJ3 zPW%MUmKmmQf?6!xY70e!j)m6F&t1q8e)oY>gJ|-J>mq6{qHzl)?T#h$wxmpTNj;h1 zRH2wuFwLna(SPnj*|=lB7#(u&hUGnE$!|<>dJ`Y={A~ zT;OmeA#=eZt$RuFZzK#VA35s;ra*qgpbZ;Gl}tc#7mq3UuV*73yL zkPEV)vu*B`w%(iSa{r`C2*bU!X=&~(42c3uGwU9^tXr1t#QJ#evYc~jx!0EE-c!qa zwk+?RTK>0X`Tx`k*p?UYsTYbZFO*X+T9o`+u}vp|$v@L6o?+^TH*TL))EDzACvh|z z+;Mq(H!jJgf9gwCy^@)wQqn9+ZR#HB?iUnmQi3auA~?0$Ui-3CzdG8qS3O5o{{Iht z217O@DFFr@0l$ffEO*4U1TNTfPWZwZ;B+S4QR9N(KbOyEZ|b`UEER3h>S3;&7GRJP zz$w|nE;;e{pF6KdSdO^ec z%*}waH#H(%f+qfF5i*?VkP|GlVw%Q;=bfv3<)*o?Td{OU9kr}G(kI38_pi$|yCc(t zTnzPG#VcE;{yZef$dgxH86V#Ild8K;&Tz4_uR=sfx+Ry0xdS~Uo%(TJ)*JmxxK0>RcS}^SQ!wBZHe_rlw>!e2=dwuDh0`s=sUq3wkGkWVS2BJq z%1jQTzh1aITz1|PwoJ3d)bzFcfk=yqS}bcat)^-nIgnr*nPgkbqRYo3!{ornb%f8) zMKmo-HfW*Kp9Fz(qMQ8wvuxP(x{6bgLExd&hgG|xj<#MBbc~o8@7U}<@ravm%lt$U z1_$kJey4?YJ#-Jz{Nb1w!RxZ_o9lEtmJL-dwd)d+W%%7so}ZI@!QsjD$$Bh@#HP7V z$vJe%ODs)PoXcg06pO^8D-ohDk!Rz=d4i8x9XV>%BH?#rs?pIYk}St31x|`z~|Zz(simWeLXead#dZ0#>61i#7I>%>z1Xm!Yil}nS<@$??3Cej`ZaBGZ9( zQ?^^{a<6$TDs#4=ZhtT~%YzU~0X_bl|z!0}VbG&3Q_R9dCacduX)xztdBjwVzlTAs?<=&;7m<6ksYpru$@ouu{5f4^f zP0k}4hPiSp-#RRjm_2KTlgYZx*YZxkNa~;1qJQqfgxb|13C~?h^kxVx{`0j-`JK+k zUvCV{SSP8md~%YUGgFr#L+A@v%U>s#3rYD2GpBr;#ck}@V!VmPWL2AqUCaGNE=-$Q z9vU4z9_7Nqf8>Kn{2bo`24OxkCn<)U#Tg~ZY|0BQ!t~N+EUw;@mz@yBvHgtII)mIp z$_yeKxX&B#Uf;lb-+=G=2EO+O{NFe5|2Gg|-zdQU-%wEeW2e!Rdy+?-r@44a6&j^I z35}R7?5yhHx6$2fqx&2cFSP@{ADTL&KI$G@;&^6>`?K zGYeTnYFwnOH$DGp=(i>H{6>}-y(5=asHq*7j;&%%En|u6`}FdwYT_SNmjKn+gpFG6 zcM`)~lge0*jMsla9Zr zYpJShF*&x}Ac~c3y<6!qD#S7!=6rEs&1FperZ>zSHzj*GXAs=86pZsRcthe)KOSb4}+_dzY z?_{xxSuw-$hzY})FHR4>xL+wzHp&S6{N;hx3ofaxcC0J>A8rZYc3G6@+!yqa*|BA@ z(b1Ny$*oo{ZCWhtRV!GVFP)es(CH=Mb=kFR+3VF#E!|m(Jx0fVK3(H*|+hj3tydnY<0Y08mHglRL-)=Y(ofl3(KT0zvUL!EObc}W{Ll=aWbgDiRZs&sLV@~ zT-M2bIZ?r`QzjjmqStab=qR)Ok(j5ZUM%ZVmY6x_Ja@Qaob#9^iMhd0!GT4r#rWZo zobGk58_Fz?zIVPdW9GiVH(W<%ZOgRhW|?y;&qI<$zSb=G&dc(z^Pj}!&EL1enI$Xu zMtqpLlH`izg-4egtk~wNvFha_7nYXtke=_^tIhuQ=D8SeaC{LmqtEGupG%Ff8H3KM zrD|-;&5kagrNhv(%E6%Vzt{JmIa&-$R^@S@in5ug!W{O z{cu(hx31Xc^udBbrDD~8OYb#r95y_5E_vu8vMc6{j^h;_KO3{XMw5T^{OoyM>V87h zw%tXvv?1smvFmcCh4e)J;WwKRX1f4hFU*yJk2 zmb?4ta_-m3F8RN!>saD$X4b{#)ywpcEZFwb_rT75O7Cu{y>)++AH1Q;(PRCNdY9X? zs^#w;X*sWZMXQbR(_3ec-}#@{xSH7bEoeGg&T{1VHYbKWPXpnYn~!QG#bY9C>auH` z7{0sD*>d5PwW+RNGQ*z(=B!VG7C8p2bAO`A&=>wJ@6j{8Hp80jjyCd(|FhI?oPPh` zo&`~F9B!=9h|0Qb-J+pq;B`Z3hP8{K-QJg7Nv}55eA@Ib=)}%MOO`Y87B`REc->j& zP++e2@|{D>jV`_;lhoZ-bXzV~R+?5{v3T>5#kcofjdnQ}ezZ+^{gu^~o)2tK*|)UY z9$CSErSyxTCLW?GyMpoe;d=nqYwODzI|qMxcbd0f%$^@(QoeBeqV}N|GUg} z{GXh&!E6#6hqk!#ml%U*3};;rqlC&&le6%R+WeO7)(upLlGF<>WNq*|KMKEh^rm zoo}1h@>7H>BqMOK`$VFEfiu~ zbKwxTq0TFIhH0NY_!;69G?(yr>Rdb`9GbYeq1#1dVC{q*p0+a-D@|JC;EonOr4o~?PmJI-mqJlE7xATmA&z7 z*zMe%Z?E0XKgb(?r|_ii^*hBEeZ%iAx)gc+Zh7JA1x)QGm7K!*v*^O_Op4$g4+vT2~V1*xJOpXJ?Yij>(LRVEczLxNpeQ+3v+m+ zj?G&tW1b=1RpmHab)s?562;$)8QT~Bn7CXZHf2d2d!aOgS^ETrtd{zJ$s7#&K?kNP z@G?A?Xm!xIA;`JyNFtx0tK$N8+r}Oa2J2{!yDl6ILQ*Z&Qa=@(=BV$BXME9Pe2U@kVrfRQPjAoI#JHVTB>f zWTt~`PKzpBx(wDR6dZo?MYNa$_hc&f#8gd2 zfitadf)w^{Il*sSDUd1`ATehNhq0sNp2Zy(`j{AJJN)^4?1k)-*$h9PIezF6EM!Ws zW0)~d!MSzYY6b;)ra*aycQ*y9bUw9lo>XMe;A|*gvSgaK&rRoqNCCqjwVauwHopzf+utAO*;a3okCicY*x6Re8P&cfSbdhMe@Uy%bdR) zc}h8!NU-13a(gyYAp6Zb1zqJ7*I63gZ9ajE7z#K6;X^F9@_ zI{Mce^p!?!x+pQjY{*ErFTSmaJPAed5omlaqGLTe6Dl<}4eA z3z3aW4k_-i;K*?0X1Ju)vXZGY`RKeZfoER@6_?Fj9D4nTM~lIx)e=9`ofU5SPioMc zE~V(~$j8y3VwJL)W2Ux~)@hOKPofNMz9)(#n{KrFly5Y8s8<$xiMvlIG=?!}4aqq;>WUEtUiU((Wnx&9A;X9+k>3Gp~ZvP|$nBttt{kTtQijfLsGj>m@Cyf5d9s4Nh>`Miy_=u`6_ z<24>TH?9!Al-)H&O8HUW$@a*~_sv&!HL-V^Iu*Q|yx_3RRFTMpc`JXUGq6l}ZuH+n z#__el4W<+IS}}rSO?b2|kU_*k_c}1qg;<|OFFZlnLJ>CE7yw0QVv|P2W7hNyVQZMQ zn_q|9iQHe66@MfP84AYnEm1WKR2E8clw05^$D%xKp@{cI zWwwn9W~#!G8>7vZ@EJdHc3PtHEI=V^qtdhmqNRq>Ax~7Ew5X({h_@O>mK@QpIO6W5 z#A22rF;g(^znrS_q!iCtg;LIbUOr7;YgoKj6iTmr>Yb$&WYpx7Hc|SdVAQQAzK@o; z)-0NPYNPDVCH`4X0ZdDkIF1H*BuU;ilovl5Si>ZvnH0pgD9AubTy7D!K%l%}k%!w; zH7`}=fTKeCN}}S2!g-V=gg+@68Y!CwnHQug+ir@{_@wMwq~f_r#rKm+ppj~5k!s{7 z)!0v}iAHLvMQWLw)N((m6&k6R7O7WmQm_4_-gwC^n?tT!qE`#*9Tp|2v*fvRST}qAH+}t@y!6Kewqe$z%T(_8K9k>P_xHB2HvW9jX?( ztarCa;$%82MP&PIJyCcEwXCb#513+{&gJTW^I4J}0N?I6i%GoWayx{fcQRj|IPz&elGklN(NPF`YI_Iz8pe>3dA) zJ(@&KN`sF(=}0fSVE4#f)YtO(%8N2zc`}0))Ye{NIrL*%h=Pf(;cWFb;%mR(3)pvuGx_9(9~w+QZJd5iY2w*) zUa4xEM%^@(J69F&^s97jQ-0w8uVd@Kcl~LGf&YK_d;VW&2eorVio-uGb6wlX#{qD2Xjs%bVyt-pxQNDp~-@-?M1@jO^y0W40eT%Qb!mP8tTl$6+|8|nM5?FGu9__u>KEmU|DsLE$0E# z5=9=C9Smy@a2#S_U$=lk&ap9dhGv{#)y5}n><;`q4_Mg_G--w_W-Vk$JE&k~A)Kb( z8oofm#(^ayp)&nPXYeBNPVsj31FSp>Y<3IUd&SFzlUTSEI(d_LxE2UWB$am`Q0Q5} za7n!DW`shQpcWHDdw(I@h9m9L;))^;tV)VCMhhAE4zPJ;mJ7~ch%GJ2MZWQsun(eFq>PP zA!i}O1_x%1U5gyuIhQ>Uo^+7SErE+Gf#uK4>5NeeW|k}FE>e`2;D2OZ_k8=**WwIo z9O}PLZz(vi_;WZ>C+oOf6saIW}G{BqNSy7`;JYA5AS{d{$*Hr;I(TPHf>s)ni~J+ z%`XokX(UT_kHZ}QlcKTu9_#LE717l2;ze~| ze~_b-ZDdriw~yP68zn85FDF*UJNnu>yXvN;C;G&ChDTVWq}g1!P_S)#ibt4BSayg@ zkfX1kM|4r-zJ2MClRJY$d?AN-2B!tIu4z4TBs;vm=H#i|+~rH>%#C>ezRttlIzGWV ztudu!TJe-AA)7WQrMIaYSsATf6Q8|wad<>vNT}JOMNy97!6h>^fB$aD%65#7vGn#a zPD--fwJSBZJ3BDh&(cL{@-gkaiR!6o33u+6H8xdy#i@ih*5xc;W@fHgvsANdr&il$ zt@$@}=FFX*n-$^cV49v1Tvu1gf$dn(Xa~Z_f@)d?%viWUpj8>$v7oV81<#yRd{B=C z)ec>5x3dE2SkP^6T{h%d>vel?Uw0RBEU38N{rwHh+;TpkV?pKr>V0t%VodJ&%(F>R zQ|y3Pqme-Ny)!#EKR>^qT;fQ|({k;w6=LuFdVq8g=nD;{;}Y&#L%rFTr@agWKhjK{qe&ybD>W(p7q+GQgMR>GZ&s&NvoLmq}7uuU1$k&baH?)pgY|mHDRGghkUb z{+GORo^RCp!e!31B`aLN@6-}lvxH6ijsMw=t1hgQD=e6>QRM2bkgl1sBDvl>nHq97 zA5N2gGMj7dH39ziH#;X3sBBGmxAR#T%N#?#*yst{MKq%Yc1u{U4r%BxFnPO3zO#G6 zZh@Pt-yU$dRxlyyw%`=~y_}X@39gMLQ2`4?PreQ~!oz8k>C7O$WxdzFeXleRs;I9# z;ya6PNsGIbb;zmH`s#&(1^ipMCmm(J8j~OTymiin7ExX+cvW<*&xPy!#!oahvp}avqPlV^!u3( z<_1FsJNNS(v)eIiD{Yq}&QGkJ4shq!*4#Pf^3Js?y~XD3sqihe1^27$C+7YX`eGQO z=UX4}_4@Jix1VsDy0<-NIaw1Z7FV2Nag(cYw!^>lwNE5n8WipP639y!W=BDlk7g5y5yg~y};Q?Rj~QM zgpBRUv-lVzCQe|~4gaU*vGqTLfYY^;1-bG*Nu@qN1iY7QXpm04;iS-U;IJ-BdFMAJE!hB7Hya+a&e=2xeNC-g-Py4 z+dlR;q@0k87dhb+^{#T-##0LAn?0PZK24m^vqVMR^Q2eQr%5x;EKxH*dD5@y)8qv_ zOEug*PX*2TG-ZX)Qmyclr^0r9n!2H9sZP4*>8NSxrfDr_rGIYnUi-jEdB0B=Q?BNe zgm)=3j=V{EG0Ad9s@L(dO^s=ROEiVDR-Kro$zMOOY|lXfan{3&KPaeU%M=B5 z+tXg^N`aG2gp_68o)HjVbaC#42@2+GJ^cA6IW~n%RCYE!!5j1Gvi;JOl}?$fJXjCy zYfibS;A-m;%3E}GQHrRlXKaG=o6d>r*RiZp;#}=~#Y$ka+|*_}$JgFBx&&7Kd**qJ z`_#z}i;0(YSr&*?Hb}8fYE^!6Nu^2kgkSltiKkN3*K4@U^bq?kbUck$v6^?GlZo{t z0VXl!`MRC)v6F5rj1Xg(aQBL%#P5lh(vEBu(R`DrSaj>k|G1V-HjTQjM%fcBZ-go= z%ngtdF!HF%I?6cz?^@R$?>i5~TIx^7o|v6wCHPE^WtZN}bpi5=?zCN)s#xaz+-aBg ztS4H$N>@ZXO4oM_J;^(=msxSW^OMsTTGo8uY1gRl9dY$^*PU|nIld<{n5CzFVSBn? z;Aftrz!@RdX!e6_*F1fSrG?mq+YT!C^0qBjmbs>va+u?%bccJB55t77hjlnVIA7CF z5~+4MYM=Sh%}YnL_)>(1x!j2Y*6&dh4p?ZZ+I@5?x+B2$ze3aK+R2VY;d@zmZf)Lj z9`5EssZ9~(r@{-nB4c-?wx+B*elb#i+F7FrgXEMm+gBE4&yty>>K^f5DHC&*)VD7odl+reUQhPmQ9&05YXY<%|IE-AWQVwOhNH;#$2O%JX}efKqq zGjWoeJIQVTXXQCzUMswt&T^WiT;ja=CEn|;KuEI7)w%aN3lnq2_kY>0)ba1c#K_IB z`+ig^?0x33LGsh<`5LFLid$~;Z_AyxZrKdQ*}IeS%4FZRJa}v9=*qpBw|QIdlV9r? z3a)sIPReb(lYen@skHZo(-VutkK7EKb7JRbb&uWyyVXC-dF+xu^lrwTEtY@PJf?>W zeV8aRr}*2oQwP;I6?7-Oz2|juyTiA)6RaY4Xm0A9(ABzULjLOGE%V|$gud0bteUb% zN$vlh^TL`&MJ;n|j*0yDIPLzasJTE!Q`0@sD@#w{msrbl)|o#Yi}rn*FCeRAZoinT zv`=v1ewG&omR6^x$CY$g)M^B{p9&M5^tJPNjbiM1Z@c}m0-J=NJaV$;+$64aRNeUK z8)-`=quX}L&1+&6{8Ucd6?OW)=*wP(4400Z|LrDCm|3OM((dudHL0R!&s6oJawpmj z`A*pTdRc$u!5Z%;1sq?#JTa8HXp`fze%4frDW-G2{|S^S{qgHk>la5x+pv8-f;YI2 z?$qCCtCN{8cJKD3?^hW2Ias|JxNLLo>Z7L0kL%r>GJF>`bQ~2w`aD}%*yuo0gUz7^@1#bR#zvKi;fmry zSA){DT^enT616_2oevjyyiG`jLr9y0L6gHrz%W=|F~dQz*&$VvgHiA7b*DX(1$LAR zIdt&z%zcG`V@M0f#Twp&Ep886cm-`4HW-LDn#=wWT&UdQY@xKTRA{-Y zQ2Y<4Nui=!O@-1sgeDw~mREDO?}$vDA+qjk8|%b2rohtYmj!y+%I5}K#{N+JlbXik z*eoL0vBNC>=oFzVPm6gc=KlIW)!5@;JHrCMehwhRqy-;MHmJ$20 zQ~skFkD|G9p!v0L0-7RCb1jsXSO|Ky2~H~)+nOODTPCpiMZC<$ZhgV-I7Q19MGfn3 zC?8lMc*tGx_={A5jXjcrU8^Ts9f|0%e$>NW*!j4zS1(NPR)x^D3PFMPsJ+I$S0a?Q zlnLBl(e7H9cZbU~kN|D{SI^)Grp8tKvAp zz0poCSRi`2&>Rav{S*DC6APsd)(bdJY-qRtRc64eSX=UNBLBivCPzIXc82)t9b$o# z)K5CsJQDpB;TSuu<+zccY>Tdtr9AI{O@YL4fpBqQ%gzoS#Zsk>lN}VN>|kP0C>OGQ zS!8gqLv80IUdJig51rWi*E z^!%JLA=0Cxq<>>>V>_@7g(g&&}EUe$GB1Ip>h&oFkEQj#bV%F>}tTopa9I zoOAByoC}h3FImpL5;^x;<=h)H=ib^m_s-3^_kPZOAUW^Rf6IAKBIiA;ocChpyjMHt zy}3E>-OqU+Bt`ztJQXbSi2ha)sqoO}6?0tX^LEFFOY8$z$};w{GOpr&mcD7K(5}|#X|p^YSqLoi zih6fwmE2WwHrxc&lTr0^>S1#pREzgeIL3@Z((j;;7KGUjl;5 z(?i`_79k)=k`~@vxiUa1(oBcih5F3!W@5-6py( zOJLpq89CRwM9!{?W7{n*osuqjTFAP3qq^XhK*gF|PU);l%e%+AqZkV>a|u;gb=j^K zx0jaqT_q&I?K)@UR>_x+pr1TBJlPXS-~?C7|Ig!euG&`m<2*Zi(Q~37UdCYMx5=tnPRJxI?B{EpfK4w^V)% zV}rp@fzDGK=j?V1o~YDZqWz-Fk)>Q#U9eAGahJxzU4{!M$($5in!PQWakuQnQ1fb& z#O+hG6{p&|>|jfr%9NTGe%0_URz_ek$`WGwZI+%8P z&$9QVd2Zxr+%JA{zxKo}!p^o2md{XGctB{EuyeQc%IgO-6ssi{9>`8SSm}5$`bwox z%t03^(Y{JG{xxFCe-5hEs7og;pKjs(aY4YD~J5_2@H=4iy6qfvW~#@sm? z_vdJW%&{b!V<|Dm(rS)n%sG~|=UC32V|jm$704VfvN>K7bG)qPc*UIKReO%t+&NzN z=eX6UrJXzWJi2(WVUB8U^@*Isjog9EIcGg)7gV5jZ!;Z09Y3%YU}N3QgPHCA7hHbx`4I zX~VND3(xGhwd0_7{F9zDk)Jy5t`@lO)xJ49b^4mMrAJRlC3XlimcLzd&gNs5t8e=P_}wX!{c*2f*1K7UR=BF zLZ#xlIfChGA1_=rJst1IgacN|yTnKfH5Zf|6a z;I*jO-BOl?Nm~VuuMucZ56kYIlAgQJWM|%rXd#Q*rK`IIKhC*!Px^ZNa*1u-0uq)2 zjlB!FH(pPjD|W#~?3%a0eeG@)agkfE1UIOa6G`Y zM`r0$-2(DUFI# zl5K@Nfk9mN1T9;IJfe203NB+1SeDKe#&hq1;J*iU2OkP`-naUAMdsj@!?X7Y)t#^Y z7@HR=q{9>5u<@FPoxp-WJ0lbyzx94BaPZNy?PtHe5qNM$;NBm>muCvvw(1=3y1M;q z^z}V4x9&Vy)unTIu9*8fK^MCJ7P4wy7l;UW?x%-65qwmk}TdexJe$iP`4PL>jzP_tn zLdSeX*ZK+hUJ%$SCp^F6_45|d@aQdbU%bu@6Mb0PdBx>T`NB7|FTPIw_+ri4SH^Qr zuwL9>ke=zT_{6bJRBN4}*#e=v?*vU&y|r&lcw)E2@2}v(eRFiJdZYwjACXoS-6uR_ zo%mNjk?(QSj(0k|meZ6GjBE9cS$avZIrs5G#o8tvp@7TJoDY6DJm<95!w)~F?>blM z?9TXJ(d~r7!kDFg0<(Pudwp-ry=wpW zn)~1D{(o*9#t>zpiBC3I>L+5{iGX?Eh|5@{D1_(}e#L z&r}*exomv$C++F6SE~Z}TqEB-d1f!d;B$&EaOKY8n_xcJDeS;Df8WoKaWiC#I+c_A4> zPrat;#_ns841VS_%QW}ik(t5I{pN~R91HmwtZ{IGj4~I`iJdmT=WYEN zzC7VTE3drUoQRJ}$G9(B)$mL!csxbVSR+&-^7$NT7Tt++YK%=%CoImMr8YO}Yu2^3 zvEtWi49fn8Us;(gyeFsN$Sj-WfBp8l>2RWy`n;H*MbFO8KEF=##g5OXbc@4T z`mSd4F?h0QG42i8b@-fWVPAZV=--4_Z}0AJm#;T0IqdoLc6z0(>c5p73}+NQI;Q@( z-R1C8%;>`^7XB2_v7m3XxR1OrKGQf=CFi6)!>Ry|!_#%nyjL({h&XTE?(pW+jA;Q+ zx?DLpiwsvw#4p+CCY|q+>B3;ez+kgcW6evBT|O$F?sBy*oSdyaZze8P>EQ9SS6^u3 zbE0*g%So^1Pro?4XK&fUac1=%8;>*7&Zu?<8QXM&?ev`~S9CD$xr9ZgQA zpp85B+?u?`{=W1TU+4e)t|o!k_cV0wzV2~gVj!FB)n0Wk&0SNL`4ry@3G}yTH4O=L zSKS&C?C)wC8XBIuHFU!^1CDDeQ&c;`!t;-shR2pa-5MTW&uSKt*si)QBDvqyEHZU^ z>bA)A`K@MAnah`Mi^^Vq)GRu8`_paF`TJSTV+xO}ZjUKG?`j@fdOdY}Z2A3G^SH|A zOSi{WzdvdoU;F*(_W1h$tQHBgqdfAIv=milC^Z*)?YPm(+Gg=6>-6LuN!|L#DzxO> zB{Gh&O}s7sq{m&&GGXFp+np&>!{ah%UbkU;pwX3Lm$`j?jNL@_IpR%Os95UieG2!q$r$x=uI#(A!;jyqwEw zr^D2Frw(5-`lVIGup=%|<817sn1y~%tM-&!4s@+iUu*9*bH|mPzvisHoWA^T@QOFj zR;=4E_C$B5lmD){DtGt)id}Xs+ug2mg9!`wyy<<{%l2G68@#XTwQaBMhS1IV{J&oB zXaB#!%8u*LibwkG`85lf)K9*ek>>E^=ZELZ|L;8?^=h-yz1h3#eb?1LJMr(8xdT(v zl6v`%vm6{+wk{4#aZxSeI36>};c!HrDz}ISv;3z6|4mw1a&$L7a0+V|;u5>iqORg0 z!LVa%7lViU8|Cg+r|ERmJ|h6OAjZpOB32%Qj|n@dbpWgn%LixqM~Z)=@oWq z()1%KYNk6q{mL#)p3jo1@i=v%=)8A{>WRuVex8d%x-Ly+tGuh7YU!PR)JXl_X5QHa zC#_;PwNKl>q(irGllLis&4$O`$oBPg`Xm?y&1iR;C?$Jn?}jP=H>s)CoValAP_wg% zp-S9kHOCzQ(ESv zEMcE{C+uI+`KfcZsOqTR)pcDop(1R_5_#SfkMu`DvrgzN6n(hTXVYhqGZm^US|io` z>$-w%UR|m9BstId!=_n#S&pyRJLRSKu@fOqR-zh{v{yOqIx)#&Q;YFD!<7XatbFDz znX8%x@xLgs-9P?ePBz*j2)-mt2KvmBn2|vXbhO5_5aAj zzD|o-XC|z9uJCR#ho0_iiIq8K%d8S}68@Ju91yvt>Yd7&DY__XQp+@@6}H{=Z^D-U ztzq5vVdq=VqTLY}nJ#S+p0nD~Lc^sip;+x$?Fqa6KSiHxTfS4Fa-DK6g%%qh`OUllJnsu0!N?v?a^a=?{w+3@Vj-}y`Qf=!55fyw>vRVq3i6_TE>R> zzmK*nO+K6*F-2qY+J7#)qcsa=Pgy;I`SSIHZzo<^;TC>P6@QlPI>tD zQs$=a5c!~cYcISxzlCkvnttbrI=jl&|4WOe+@A6DZ&l^#)H>yoNlTvD?CD$+~Bi}>rBJ!KtRBlk{Pk=LnI(Es~Z;jOZ?tJ0TEUrxTy9`vC}AnyIdC%-qb^zWMx zVEmyyyztTMQlsNeamQ}e$vo4wf1=j>`m(~$KSj<=@7~=}`SQ5Vd&->rmSx@Dc{5;uS_hqSl z?W^$nzpfvz`?hs|?Yr{(zwfix|2S%2_i6h5KhNFke_h>Q_ig+9o@;mFUb?E5A1J9R z`%>QbcluT@j*|yBU$ip*)wuaM=RWh|{SHos2PW98{xpqc4p&N)!_|%h%e!Wrnk~Oa zx|=g(3!9wzbbV z_(+N)^U}=r1jjxF^|{&{iZUEZCLQuAJm$X-O6@u5l{tYyhC}5~r;HAVR?nfX2B#Sn zj@=s$@i2Ak9hq1m%*}1nQ6uc!Ua`H|WBY%jFIJYPxx#OAEbZpBSTk$(g2SyAhgT+8 zO)}VJ_GVW9i^J1yIL}+Ld8WjXCJq-F%OmX*oUIpgSj8MU)Zo&U;UfN|!>aqplOG4x zDI8vNVNd%4tGt}LI6ad0v|pH$_ocf-isSF%bt^7%`aSNr{Mh*z$HA^2GNp64ib6Q* zt{i{!(7N7a&5Q@fn`f-^zcckm;#!6z0p*fD>p5NiBGyVWj{iMfINP7BUb9Pd!a4LeFUlp0gZI>{+~frVVd;3+E)4 zlPg!8JRa5a=%?qxKb^B5*ocvh{MSbb;P zGlP@&7R*cfJk9S8$Lf|jPbPS=JDzTga7YX0Xn*4|)5H1sjME!aR)dOE@kqwry58!yM^+ z_`tarm(DFLRuFo*V2+^P7Ztr$jqObj{LDi%rYCr{SDfci>U7mPubOzi;54W3nhv$w z=MPH+$g*_4-y<-C;X*ryKgY|3&r3QF+%&qaeWtx&{g1A_YMwpZce(iPUidFHY4U=A z)fu*Z3w$e%T#&sO;P9tIShPzpwQ~_mr%)}Y)ZKGDw)-Yb2%OPy@%t@K{#bv}vw>Y1 z<_e)A>@wWkGW!}2_%ZyLtGbkfqx4Kp=B3FELDM+)$?w|UaA@_T!;`1qIIO$1OS_e) zYsI>MPM!a~?r<8}c53;q(`@22o2#6ChV#eb4wES5^%eUjF9<&JBKYco;BpbJpd22j z)J})ixpO(r9lLQkkXgf2=*rxTD-(WP?myrw8y%vg)yVd=!zWhQ^pvyxrz^}VSEVL4 zS8Ip5cbyAKy&6_}HN5p|#MG;iORq+4y&8S=YRuKEu}`nYeZ3mb8W#CsS^{r#F5ilwcGl$l))6Ic?{0$PliuPaMBauun0LQSJF|Jx+t?sbNY_c zPddUGeuTG1M1*Bt|L^Q|Bxk0J+ZN}U4gtD3odKd#pYdI#$M*hspEhLx{fTMa@^ojBV3Vb#o3j%hBan;g{1EZ`(aQNIC#dodXQRvs{*O0rSG!Ac-flK4*q&L@ z2MTWQ`E^GzBw|y+#eK3}*HgL7j;Q>VmL#gZVQA?oH;9x%Nf>c}54I`0Lu~SQCG$@%+Cj`0dDw1ium zYF%bGhp%?rZLtu>J3P z&{}fi?bH`<@5gnVFY73Nz;bUHM})xJxulX$->^inqSaf@V?Q2y)huKb;A4p3)z3xiGOoz zZ9l*^Tcb@#zp$x*ZDT}kV*zXHhxfB93i~+Tem3jispmMO$Kho0uCbutVHk%@etvsG zK_f@*KCup7aSp#3tPCFtn+;g`kBeW*>oi=@Au^xSouR?4B6nfO$A5X9+~ozW2Jag= zTK{)hurn}xnr!jeM81QIone1mQIo}oA7&g;1sw0i*fsj6i{`&;e(^a;f+J}Gho*f; zqD6;jI%oeyrbZ1GR@n|m28OqK9cPzG`EK~)ZQrT4y+hHy!>0XxV@Gk50Q(m)4h4gv z2@+o$4Zc47*I~)d@WHNBZFxuTh2jsK4Fdd}F7mCu1|4GmJ6@dovhc!}-WBhgD?YU@ zC~aNA))Z03Xx@=x-;rw0VSfBWyThm6hHp{&lFs5>F6ku<4JEUGw6#i<&D1FGifAy@ z=ZLZ|YcKfP^&tC*Sx0$2N0vXE^z{!D4wUC^pCPJH()yr`VL{Qg0){vDKJ`Ylw1odi zNax%;?fd`cA0>?(r3?$$x-E)J%{#iDb7ZkMBu)SPo~xS^S?uhy|O8yQ8oY5!u`{|4LTNW@2pqv_0^cQGM#f9 zduQr*mMZa%_#I^o8tm5U9g_LwO$(}utNC`0 zDE{hW_S0h(rn+r^{eSI;(m6Zc8?Wyuxbbl+!@tP_@8dcCtz&N}@L->_ytZ-XpQeQN zRKuK^7PU`T{BFI_#wzji*?RF9|GtxQ9KI2gJLCIa+jpFQ{;$%pHT{S3XaD+o$A;7A zm9tKK{=WVH@8kdfT>t;~`Tu|4|Nm#_fF28~aHxe#+$iV82gM^DLh3ya`q zdh_C=@`(vb?vr#fKdGFWq7}X==jA8WGc%0RFRjV^tafgWRr#kkFF&haSm4wyq?`3c zG&kw>~A`^wq(U;#df6V9%3(eerav?cfEUis)DyI zJ*m3l&fX^W|H67XKMazV)xQ7a0Xr7-+zyNNb56}NFMjvt=jI!yx%YOsINW+<)12e5 zIq&T+(>FIr`pmNhH4jr=%&evHeu=6wc zSWrJa@tLovQz* z$5#DRosrlDIu>+RrP{2_RXf#Y=kEHcHmC5ErTW~`Tb1hbDqrnXpI`gyr}~0ME-Q_N ztx{Y;4DDLGG!{3f8VPC^9Jr{lbZS(U=CYYtT$6NWSN+nQxYEV+gbUvct5XikoZPuq ztlhOr)|f4kDR2?T&!7v2>Xw`r*RB8cYxR`9ZXyTF*)th+Hl57d*5t54r={29sE4+$ zX>U>f0a@U z8In6f`u{u4s@Y?7y5(urd*=&gQ}TSf9hP)B^a>m)JZ<|sM)a(9qR)j3JU4459J~K- zkI7}L*rb39N}V+#JA9*Sw|f7S`?BGh$X%}srptIb06_oJnA(5YH*~>`kzH$kF%ZS(>$J zZcgd;*ZVXpVgySbJ0|$1-g$S_*y~|*%FgM54acn4tDTqs>pHnY-1NWAw^TQMQFev{ zhbNTW?Dl{DE&H#z-LG7$N-2+Ju}dC0tX^tw|Np(kO}0P2yG%=L|Nae*+~?NuT;$)+ z^$q^FLVuJo?Vt2SPmir;!BmD76JMFOHVEulFrjaY&4dH$T4F~OILfEY7n-}op26aN zpq<1a(S00_TwY$y5gN|&o(0MhOb2+yH#tlyIH71dM^WJ7XXm~N0qW|96d6LM2#B$6 z>{OCca?3d~S;lf>muu4^(ajt>I$0aL*FIV#epus};iQc{X*SAImscD!-L$bcuSQws zvBq)BOB?&j_9)AJUUA&^)5iX~Kg!PMRA+iFU6QZB*&Z6UfX~5bQjVdagR7G3iOw2E zm5&XaR(_9o8B#V)oTuWWx|FGV(g!An6F*e6L^tVeX))4T{NKh?J-Bk$>BOVC9F>jQ zAKWIoT-8lrHN1L}ZQ&~Am0Y1rfuT-pVH3ib7^d&CNpbYboDg8bBEsO|uEYJPv+aYD z?DYZ;Q_)Xek*m(dvCO>c%n~VZkW(ec=%u%|u$e%rQ%dgp7!Mmxr}Moz$&3sfZ63#V z3S^75MDi-SSaCJ67a55#Y)MRWyyZG2Ns=W-K()g~(TRgW;)=qB8_%3G966g6gcz<& z;8151>g(l7o_#6egc7S#z$CLNC2UjgIHs^o$_&g_2z<@4&FGewt4Pu$(Zbe1_D9~6 z3c54AgipBYPCDB><5DsaqN>W1_`pP7cpdKh+8$G#Z6f0cEgDX;Ud0Z zr4~`1i);-0PKBLkJu`>(;PibzrV30FOj-HPiDTQVunDz%OQycjym63C$-gy(QL$c^ zBWJSOgqvwcwn{L*bW)3+kW+L>W=5-PisEd6!je*j^sOh7&ADCL1CLB!ykU9p+iR0< z*Rfc&t@ZE`{>06Y@lA<)MytV*$_X#zmPm;wt}p3zzcqQrw!AyC9v9za3EuU3vXATG zdVb+gv0VrVopYr_p+pNNE$GN{7;*B zkgsL8k{)M=V$%t4ttSVhHXc_K7P>h(PNMdmN=N$qrvf|AsT}3Byyc+rO5nc|%L!h~ znArZvh^aenD5%H2cGz@FK-2ojK~p>B{^~Om{xCJ17JjHVeQ!)k%ZqD^cUUlj%+qDXj?>eHxA0>Bj++43^SnPGBMu1CPLeVgfqnrCvcdt~7nApM( zbF8m#Z7Mjc^oFIu`ZLd@O|nOhryGYkS~1G~uai>DJp4|d(cy`$^^(PpRP~)M@H9jk z9GTy@Olt{$QYwQ;l~VuTv?ZqI<{MXtDVJw=Ow=rT)BU11-(FMG=}FJTf&j}KM|W>= z;BXiDe|T@&_27d#$!m43=IF8Z6fZ1QI+|-$w0ielqf1+MKh}L;d3pD}Z~M&meO~*% z_Ve!h|NfaDVAlK4D7@zZo4v)M=Qnn*t5JQ(C(rXqPOtFfjA*6Hvn`HI4f?p~!vle> zXDv=BZz^0^QlQYmz#!_pu4tQMORapNd{&6DpsL*xuFMF_6Yg>ofB#IeS3UmoaOpV# z#(zs#>K9sGXqKDE@+zg>vwoLb%Q*oqHr1yA?mO7-2TxIsyZcc2Nx!rIjjtPbA8FO= zRJ?gPPiUq2lQzqcj>~~cHe1=}yye$a@{ejM-}U+SJMM`|0Rjig8-MRrx0Kj(io5^E z(f=p(q-9P#mLza2=-#*ot5luiT&6eja&1|@$m7cT&dX~jK54g1I&WB*ls{ zq=+(@i90IXaL}3I_+){DfqbZ{gp-4$gkRgTzy*#4Go0omx?Y&-=pyg5Cy_zsoV1rq zeB=@BycX>~1?L}%3Q9iSM;19NOxrH$vO{-~^8s<^1SJNaX=;2esk$s_fsfS1+|m_U zGB}Uy(`ku5JKbT0qN{*=mLy9y?~&u2N7Mw89M2@Vv?x0-cx#Znx)Xp1L{q21!zfa@+1;XJeEJI;w2-BBat1TBdv4$&iwb-7T;`C&e+lOQ?z3yeX5vLKYDr+3L@+ofeO344#6 z>HF%k@@br#-w|iNmb}VT$2U)>^Dal03Cu4)U z-6Q9a|IyBWlw#XDG|#n|{fdllI$|!tlf}dnpxdG=s2FO;GC_2Hs8E{og=g85TGq(6 zq;j>m8?jj3S+L00#i4Fl_La!3Gg$WgZAsE%NnOU0J8iLUoNAV&Z)A~6ang}IE|!I= zM;02oycayONYcgf&Mg-M)k3jjO9Wk(hPJQ@xfJ<5arU|Iup(^!Np5gw^1z3qOFx;*bI<}#; zH9^effPtE;inL41i((s>f4yn$6EeJO6die%y9V5D(_`Pp*szV4b$j6viygi}zDN7G zT>8D*(w$n(bpAUSoO_YHAv#Fo-V_&&Py>xgR%}`}&Qp{$nf9nh^)OFf*D@_^<@7qu z8Eq?P^l8qVwsPh?%~{J<&RVBAd)vy{`!weq(>#*PdRX30bSINj~UA)R7m60W_ zIKlr&tgFefdyQI>ky=+5uG*U#>+wfs^`qO@7q)ONoZ!piw5Ds~&8;lAp03&vsnsQL z6Ld)KnnyVhy%-nM%8zW>^Lj;-EvPJ8dQ)qC%0?|Zg-S(j2U%S!hPj0`_k z|JZur*4LJ9H|fa>kGy&L+Fj?l^MiYyH5#54YkVDaYPwpERJk0pYB`#8r2O3xkuH}H zhB;9k$Bx}=KUp^2aZXNLOOA(*{K>QnySnW5BuR!9@BYdzI$+mwjAKI< z7mE+mfj>+iUfk2arQ#CLDkkTo{!)vDrM^Y!+Pg=3E=EiYiUBvhIrAKA3>SmMX&alyu zK|<)Ti?F=p^>w;B^YR=c)(OS8=xenE=q0QPoaU;a?DXbch2_f@QI=m!43$zY#!ZPP zhjbH?ilA9VzmFU!%K=`i7x`Lu*nGA>bRE*5^1 zp3PHb&?$2M(yFL^MDg%KrRB<3suWrS*1P=J=&JJ6p(gY_7mMWN=_*W(kMzQ|wDq`@ zS(fBpDL!c6xM0b8DV2YV5}cx3&K0!?xEuKVP+=%Y`O4R#tlnZ!yu?$b*j41SR^BEb zj(i^N7G35BPp+0~$4t}sV#fsqpXM4mhkTy7PQ`P}lW%vA=(~S(X1GyW_J3wc(kFxJ zBZl_IHrk(^wix>u8M|5-J3dGeJ?#>pbR_xYhXsxUM<%`d>cWyhrxNK2< zFV-?SYGL5Hbq)`8m59(@cU4 zOhcLH!%Q zVn-_YuA6Azl6?Oyh>MwBd8t`J@oO#@ULzML_QWc_BUM$r>vpJHFIw2tH2;=~OShHS>sf6hv`7Q*ZqXB z@2BFnyFSr#iFo1o;E)qXg;UKN2a8P2W&?&Prl#o`US%3#Z**R3x@3KyaqC}k>;1Jk zk0-gs>_|7i%w+6xH|IyKHp{9Ci>&l_#~Ocl=v+xsZt00T(i7Zb`j;tvSDwWZX7S0H zz4ulGJo&#Ok;Ag<@{#mpmWk~@p7Xh=-%;xSbtJ-=)k5B7BH!0aEzKaC_kI^nOq}mB z{rbkbewXDb<^FSwLVPM6TVGCzJ2`#2%k0TVW`F0HHT&h%OMS{EPLnrpaVp6y4rn$O z(_g^8YXQI2Lh)S-<*gQ}?^>j9wb*>uV(Thyo2nN&cix-KSzeu5E?PaH0-g6vT zZ_Kig=>XpgtEUC8d~38Acy@1G-?ze#-95yC*>v}-6f5$18~u)K;a{`6*>9)SYR@?`&M(gIEk3vP zk-t|-m2I_}d%}-*YtH=2-fkWBE46%l90ww>iLfp|Gxw?A;aE$M0zO5TFv*o^#%Y&pN*R)$M&S!pPcFoDA zCv}zr*KdWwE!@r(P6At=3bXN=x9}>rMBP_ph%rf8#qwgevRjIwQ_a?- z>W|{e|2fSyB#oa+F5f6+o$>aytF-hH6D9{4^&>LUF8|6pWIq?L+H0Eq^O{pe)6eoM+?Vsi@Q5q9(;M6XjS?^TKCWc1}+BpKssDCTcY$ zBXF@nyKHUZ27v}g`~8|zB1-UNFAZ^c!0159nhDVBTtR|`)N>P(uRMPn^BO2{k z(C-hrLii^0$sC@(v^kt(wO!1X8HHz#7#wa4U2*oonx-pi^Oze<71O4r3WnKOh%ua6 z&vIE1`B+f1Gs&DYmmV>@C>ih0GJ9W*%;)b19t1TP$w_c6G?~7f*J}DtZY8guYbf4Yj$uYIDspq74bDpw>)Ae~;8k3t0-e{hhVl&Ir zs%eTg$Mp7fG8*2^hrCW0HEGNiWO$`;%Hx3i&78|;%^&szZ;O3Wvtni56CsTizn)cV z$oOUbGFA&X$8tsC{~^!zomP^$S1!6M_L{6v=1+3JG~ey!O79PLB_6X`gLa2p3G~#x zdWEI^&%3@RlgeVBk5-{8P6cPKy?QOW@GSS#^rE+4mqye=js^Xu$}-I)EHdjzAi-ln zSMoaCExj2V-cbIqS3Iud<=X4_sz07xcenQH)c@D-mw)Dsc+kkH7ok!2{qOboX34x8 z58D;xI3AXXPBVYhZFnx?ah`hG_D2=we34HkdY;>wTyD>{yql>VG8r1o%`F)j zEQkEwnWr*FIX!qfzmYHM!3ayZ_G@eRwH)noJ)t){M`W7c%9rbI=G}f9ykE{BC!1}>?RUEtdhC{O{?Ym9?S4l7m`gik zKOItM;hCN}ula_C#v9>~PMc45uj-U?o4$#~d_HTLKl#H>uN#Zf<{Z*H@a6Jii3R;k zdf`VGES2hFY1nGL{_eNi@xSk^)vMF``-O=?f}z7BV!0>(or(Vc<0^NTgm<)G6|+B4 ze%W6_fxXUWzYGIMg1<)l(}Vo+f40raKg~XWS^c3#206>v-|ZRpiGO~+TwlNJ6Ys4< z%Y&Le)lL#+W9Yme%g4byG1lo(x;?Ajghq~o@!Zb>rf?kd;j{c0`zq<m=8_XUJf9o|&rN9CemFkb%VUC!lS&m=<(#h@mLFUy z`(EMCg9OJX;m)dhh6Uy|-YkI?o5~+1GE_Aj5ZxHjxkXZtVWzW!&`b$8!=kgDZkC5$ z=*)0pWcZL*cKWtMO!@?iV*)+NTOP~Shq=|RG)%4d@>u@a+>2uJ%dsevrd<>gp;J5~6qS-g@}(zCC-l zy?psNIVHBMtHsmH<>t-Hkn?slwNxHHywlU$e(}<2_+dK+MmkwpDdrYNZEX!j#W@=` zuAVTlyP~q#+Qw|gjL9)k-U}AYGBVLwy?R+nVqjWwP+?wlK~7X|W<-39FXW`1ty|a6 zo;~&W@k55@y2$74I5=7zJhZ!`v$?da0Djnxv$I)qOKm`acT{w!xrMHYgH>)`#?hnu zn=f8m3Oj5kupD&K&Y3gE^z=0|7cFpbvA-B zfFl@{vdVAiyv$-&2_5Pa&+!bP*|jvsf8k48RtC#yX( zEjuzGd;w(TjtejcTzZnNi1Ted7FB*=9i?4%vYF*~hmS~1Vqft;=rmK_ot zdQq7o9Vt(?suC+&Fp7`P?JN9KpeltfKD zq8%G+m6h!XIdvy*qI!OTGvt_^_AOeFlXm9c(5YFfSyxwCUtfjwTpei#BF@#Z3*cZ} z)H%bV_|=`0o0p%T@6gO8>$PRY#l;?zrRG=~&bhQaV6oR+udS=Du8!E8b+>DZrjvkf za{=nPI_vWupPCChSLZ87`TG0tb9K6E#dj&pOf+<>VS7G7gnL1cgLJzw^jsZn;nyjN zGgt68IytP41D~tY=(^v8dH1%rw|5l3Zqv1XD6n`!Ik&vuo*f?_TUGBi37R1M={fjZ z9oxm9nwGjY$yzin_&m+}Q2YP&e*5hIStAD^D@zyDw4k8htr=j!~A z|Kra3{C)$ASjK}!CdL;*)f{Fo9yANQTE4)`$0g%ot3+DIofaw3xjG7`jwg1gOv`xG zxxKgJQJ2oP7mvCPj!}B9PS(;z(aTe(9CXXBD_iE|YQYjdn_1N@-7$aK%IEV!o@xfL zv-bvG@pbdP!Qy7hYjVhqM~LNxSIZ~OmrE=dXUuhM2oiHCXTE55VKL9$4HuSX{QMcP zSkiK-zzVU-U+POY9Q*%ka?upsBd=15d^>JB?%vj-#jyR9md@l%ttnB?&IUryo%T<> za$xfXyY3lo2l+~LGCq_Z3|QY-w?)V4DxY@V6kC}oH-uPA53USZ##X)D`*l=n{0`>A z)st4ww-b54<4@4e70x0pEQby-I~NA--Wl7T@AOS>$_mdf-?TUO@lO{qV0gMKuWFUV|jSnVAXxGFR$Hpe_vNyd60X`ZpVc0 zJtA+|jagpZl3!f1FRDt}q=O+&nnFVa-Cl2yeeP~wTS;*n;aY$&^hZYT=gau+*&&ZO1%)|3oMs*z@Ismem;#f&cwV)-wN6IxIC830m*is>-yi z)6YkNdGU(rnn8t4XLcqfY_gEx``WLOcG=^rP?NkPV?qyep^VGE8-m7*CaNdua7gR2 z9q(T;QAIWSmMrh5V-t4>DpvbUaQNjh(P7rpehJ4Vjy#-#ZkJpq3Un^^l&P5WTDN6_ z#ZOsBjYvVCu$CIRk139I4}^TLajJ?as0R3Go@iT;ud-gGM?>9+Q7_JQs?y9<=aQcS z0c@<(^&dWUjNoMOi{q%;qvidBrOC(Gk45JuvqSlz11++XSZ1+oT%v03H1pD(bt<=N zJk9luMbp)cR8LP?=Cwg`O5rRYm4`Z<)`mv@9X^|9i5EUM*A@EjKj+G1)e41W4rgvI zu#jP4KIX&yNG`#zabLC+)bn=rZa6O)3ko)cx1l56gF+iHKoifU8k_wldk_SYun~= zP}e8xy1>nSZQFBHyK~=O7M~aNWQ+c-b14fK#jGhwVA^+8wj}!0O!gz6G|$@lmkB?b z(Ne^@v$k-F(;jR4#yzF#=2tt)Ig9Qt_Fb}v!6M(#^wPb#2g3JpdA|47SSj*#(( z#tqemLGepDekig} z_@s{J#MnOsTll?TY6%&fSxeRp))Eci#R7;f3b;Wrjz65zZsIk z`pNzOmD2vLa(u+oka{fgEN`cg|E~5l^X(CeKbZ6iKgeYC{FtPkTy|nEd&$PF222dc zayygRw%qJHQ)t@XXA;0N_tGz)TUzzL-Y#2jObVEO^op6w){+q326z7%S2px*U6byc zeV`#SY5KaaJwj_<$Nm0w{Q%##4eh>flB9p%IN`T#)AX}%(yV{qywJC8%W~hhx|z4^ zuB&kiUEGvAgJH!*o{LZCD8)?Juf=}ns$cmU3*L!cFJ~%V_ujJWx$m}c`;;x~4s+~# z;`_c%zB5ni+llo*-sama{H-wY>{lhg}JpkA3Nfspkdu9gLWI@&A^-othu4OPPLM zIKJxLlSW$)zhimV?wsr5nmNaL)AGvezgO(Gv6Pv4Pge9UbAy?Te{P8TrK+@_^Q`#8 z*844rpTH(PL2*x+_cv*wxWh4Ha3&`IaToj-E|jHa%jRgyk(e)XvF7#j@;gf`MIKgqm)giP z+O8F~Xq_e~B9SJ%vBJ>N{C#oUXXb`SpBq$|N;M8v@-1xA&=83E-W2~R%P6AR?1Vmd zNwfNwBC8wCc0ZaOBwCy-T3jMp+$vf;X0&+iXz{tx;`gH^K%zCsqBSI z8|`&J+8ZP~nk+h6B0AbCIyz=_bnWQqxzW-0|3}9JiOxwDol_z@r&V;$n9(_FN9UXy zo%4QlE{Jeeyqqf{*lgqIxyK}Lc1YfWV9_NUBFk1peq1UU^SvuIvAe0U``oq~=8M%? zfz``g(_{<_7FM(h88SXC7vp&$uy|_5@35YQ?PZ09Mlae0S3GLC(9xtmxyMGZg7smc zf}_Wc88T5H3*@#6q?&j%q!hlA5We$6K>WMlQ}uF*#J=fA1ePr-lrb#)lHqu}Tud;y zH>A9YXJN78p=OrCj3g7mT}wrsu1+wVSR}P@f~#OLvthB=MR%c{j%lVo%ufY_*aa0| z3I@0cge|v=e%NGhILRPb;KJfbY#U1=*ch&eRDPL~&;0+Q|K20!Kfh0O`si^wYPT;`!58O~cYcbCUl|0oMx?^FQnDJ0bWtBG^E2!cphSoQGxF zg=MxAgD-U$RXl3?pCM4>K24IbTqsm1)>Bwr)N@mWP|;5Tud8y$)J^YBAt%)p3{@Yf(94lf1$Wp#;_xr=lsWjI-D;&Wu)^ zCEhYK{bHl-!x;_-o18XIuA3QhCAD7rvJTr%@$Kb;^*gmh4$f9!?3u+lF*k8m@_)s7x`}ht8RvN= z&MRP^oSRs4B7M?~VxjY%0tb!@AH1n>d#mvGn}R<(MSok$e$&wF@~lffn0fWb{FjHt zgg2Q~UYaJZ+OM&&N`2!3!KnI2<+aie7o>iyl~!EH9MbTyb(T9DgTg5R_6o~upHsOx zgg#3OsYRqRX)IzfY~WFxD;K!P(M+(tH1$in$XoHn>TZi18yBk>mNlj>mT_DXnP_nO zhgo-P>;zRns^e=P7?&np`Rvqa~8Gt6Eq>`0M0l zF3LhXR<>;XAyoKFYUVcK`QKD4t%S;F^_Ds|Ck8D~S6opSwIX0rbK5TANi$dU{J*uL z@7Ib6QY$A}t(+3Ia$42O8M9W-+O=}dt(EhBtz00rYLV5dB~h!ERjpbvYt^bK(II@7lF`&#l$_eyu(rwdRo3nj=wbj#aHWF>B4KU2D$V zT66B#nhR2EFIla<61DbP)!G}g*52B+_Rg)fmY@1;7j}O(Tz+qt%Du>SFJ`SXS~2fc zR?Ad1ukB_FYDDrDUKQLtr7wL;pN(LDk>G-YNdj%0GpBMg{JXVIcH>07#HAdK8}v4= zSXC)_sAXR3!3{d?3uUerv8@*M;k47M6jap|kd78mJY6oEE%3%uz$kN(NvFR?pugi! z5to&M%G|<^(>F%{Z5eVc6A&%cQpnhGfS%F>iHxIGa6nnK0wFy(fiJyoEYT!v zOYU)_K+$ey){k3cX9-ty3-g_rWBG8qzu<>TE%oS;Eh)gywUL*qjbmd${np~c>LEEjh%JJvE^ z-1Q@H*IaE;^;2SASpt`KM%ZXAvHQ4t_iF)@T>>7vlA^l>KbG$nn4F$JT`2I_&freL zR5Ov3S;E)51#fZ-xoxvPaU}od|HHG+%oeWg5_sw@^gLVOS*~nBh5Fgo|BJea)gDHw6AfZ4mi* zi1pz5ABi5iJO+V|hgA-)XD~Qyqv*w;bmaG~zJ2P4vM=t?d^J%lJEQX92Gxx#b}l@^ z%D6sH@u-U6##d=mLIpQ}FBkBgC2)JSzIJwKLXVKC_9oTp!=e*6aX&n&+dcVnw1An9 zXr@hl`We9jn;DmH3smL^8o!<_a`AY|p5w)5wDkXbw>56vvQ1kcf>SvErl14&veHWd zmb*RQR2s^%PM;>)Ftg@lz_QJzZPVQvH-Gay#rg3>wa3xcjoWouPKQ4{wZZMs9L7-b zF2QX!5@FJ!!ZD)V+fVC!Jnek(bmWQ+O2H!Y)-2QhA(T7&%&cmWpa}xX$@`-=PCc<_ zuGPmgiW9d*&p4ZR(0D56xr~e3qZoJiJDzKsIA@l`u8oHU^W1i79X!JCc)su<%f-a= zF$>S9IG)M7F+b5re_I#0oLP~bxM%k1Wv_E(6?d;KOnAVxP~zYzyT*&F zBSfU`dM#gFUeFzUtXPm)wnt)P{U^~&qSXS2Y=jQ~-X*Yco9!&YfB)4}oKMRh@OEbo z+;i-=VA$nLvW0uN4qlf1c*)?efc33JOWuyxi}P6?p6gJWmUc$iZtI!Fa|HgyEK^q8 zXA^i#EAi?L?@JN6d;NawJF@XGZ{jr_!9rj0{gb{aW$`j>vJuHUD^&P)#`UhJJVx-%%wwv$LeJ)|H21wLw=mFpVbDiifvGV9-+hH9o)P-e zD^jd0%4m0E?ON%KxgvWvv22`sE74RWkNJw%#H&n-4>=o8^Ti4Z{1a?C`Jj5?r8C>p zG9EtUQ+y=Jcx@X~fc=GgGIlZn$>)wU2A$*7FIqdru<=~qR#CIKovd~;b!z7oC+<-` zcwXC2%vw)IZJuzp(J|+FVzPJlR8AI@(!I!X@yXuUN9>HdCE7(rd;9(ucFobc@~PKU z%PBq{qJ5@>?f3${zBaGq4>iWOLxAAtG?d9MSR*lG3I?w=G=R!-?T!P@zp%L zS4-kvEvtLAV&1D&`(CZN_iEk0R~zJBZ?bzm?Zi#@CpXIjyLZIhyu^5Gi=Sw{@{|2> z1@*$3(RObRPn&x}uep9@+TOwk>~Xhwj|g+iy=8cxm}?ibgMzt6_>$#lJx`Ff#%-bE~e(Q`h2mQ$Q? zXq|wa!g_0aFTzZTj5S`zra}LCdYwi)S+Ap|) zzm6eZWLNKPv5SAQ3*C?U?>IbP{I<$F5yv}KtM9!0uk=#%N zjmT5pNq_xBzH?4~Q!Dyd_PAN}zv_$kbInDM*Ngn#|JRR4kU^0B0O(vDIhPp$51rb0 zW$jud0w1|_iR#83nGyKdtxwjrjzu!)iARfr$2^yn7u>z3$>a*e7%h3~13y=1o^9v8h=7V;`&62Wx zx`wAkc^p;BPg{FTjZJ?!e}2`oByxY7Z1lJPIn(B42A9~1zjNMJk@sJ2w)BsJM@M_p zx7B`XjJuva%`9e~vDJl_)~lnJZ1}$G#9N`m4kC3ie=0sbDZhWtPk<|H;&b6$$9oO` z9{9@py6a8i<)MCB{;#2@6;(vkH`+OL48Y;nqJ=U~0@I z^mh9Zk6RNK@Nsh$E)Y}}dbgp&?v18p&$>k&NBgyWJdVvwkU8Zxv4p4d7*9Qmk%waY zl2fco;#zM!RHvtG@>HMSV&tW{e90y+?e#~DPA@-Y(cwLNj}C{A?s1jPKE~%=jD1b7 zr)>5$zu#i)XZd`|WPxo-dFvlF3HCLAx+NI>Tpjke>z1;GwVH-SdVkFgi_Sl4dc95MGU!~Lt6Reo+EusR z&^#`&qGS0K*GsGa1v!Z^r0G{(i^yJox8&A3FBy&f%~5kTIOd0}_K40o?;0L1zz|Tl z?Z}~oroBx^SPyt#RylO|c1w$HM|{_{TydqUx1lRI8ZWt8Bs!e0R)|{o;IgJ?*9+DM zp&k2XcO7bVd!iKO=JQnN?fvd|#bcV;GwXtb?DsYD5AnO(6dn~% z-&1&8zTKwir26tbMW^+T+Z3NQf4-;qygj>Z$whbdy(O3Z-EB*+hNtf>y&m6gTXr*j z`QEbI`NwU`@0LH`TYkU(dWc$Y%lXb1Q##n~em;r(=Xt+rpIk>}%aZVYRS)j>ZeP^M zUNlSX&CN0ahKhsR_tjjVyPu=Btw-GZZ&QuU&6=Ojm+!CpE!%WUfl2<i^;nLmo$D;?06`o{+htj#xZdrPxy|*6W90#o3to6HB?OGxTxCUl+y8= zXOWAX*+-S~YDp34O9yA~SfLPBk|gH(%zRHlpkmyWB#EOIZlH5@(p{3JuI_L%+jg-x zza?1)@3}g@TOy}&eYWTR>aQavJySWA`J|QZrwLw-Ss; zQB?2k@R|Q4XhvGdlAb9YUV=(j+CPY>Sm}1S%R60ZujyBHI{MO4tZF7J+tTF>35%Tg zjs1rvPS&oE0405p&J5vCOvqW<#k7D;-;*YwPH!nVxx<~nm&lG z7CgDk|Ie!MX+K02OV0+2OC6S9#ZqSWU!ZkT@Qk z+H4j7KN(Ijof6?Xt6DgU4?eo1?B%&jdd{iRXs5eVcJS_8wM(l@!N_-7!Zxk@Q`1t! z7Twu6qkQH$9KFwUU#W5Z8>_fS+eOtb4db|T;JrYyPO^wbDA%{@b`to z2W#p5XNwE8)cVr$i$aemwH&>7kV7DrTcslG>G6GA{(JOWDy6iQw4W6AndUf8=UThQ zP36SZ=@Xrkp0@c^s+b+)n8AN2b^QcOrKD}0Gka$W=_(&NT067QYuESligHVw__;Pk zh`9*8y~WE=ZN@$C`s`bZ@=MNHYCiJ$QuSg-S?fiqn`>vwPs*4O@Jq3O9tV@MtdNiQ zkxTN7B`#LJ0&mr#F8E5RdY8|cVE4aFS)$z2dtK9d$0+*&XFY?{41{JQk7cI9v5o-lsc4OM4fWYk$4FQ})g6eyeZg2mZ6#6*P$xI9I1T zVv>d2ah?d4Udq$|c+-O=8|zI4U8#+J!yKI{#AbL}PySdlPnEmTj-R_&ng%yk(oK&#ho_T;*~|R(!Uc$_Ez7 zKTb1V2`ryv(#Y&t<2=D`@=@bxmHPK59_9x9SSj&WVUD>+h~lE3o?q`4%W7MD&GVgb zRXAmxisT!Ap4SuBY>QLcJl!M8b<_W_y?g4Ew!QCoFTE%&_~ZBTmD71Yu|EB|Q)9ko zcKN=u!9gz^Uxw+ZzxPacuM>KuzU22k|I6Q()(gFBT3cYQ`QLMowfOdzH5v!Ld#o0p zRJVS|eWNe^Q(j7n*E(&qQB0iA%g|!KIKb}tWBWb^hrJdKS{L`9ylBrinVVw`2WQI^ z#y6atSN5~zILy&7=wEQ4=Y<@X%Qn@U4u(?OS}hJ*dOD_`o-CST_FH;YJo6+e<~|`8 z8GUYUlij;N3(uaTVAp=Zv46uR1)J`kQt0`oNll+DGRkm`8gaZAq}}E9^MI%pG~ABWz74Ys;pO zmyho0*xudX_-MoSSdn9iDsDa1yOUgwrGy+yO*xiUaxA^&SjLoNnM;mkZ8?^G-Nn)c$9tWBrZ9Md&A^Q~e!ENeJ?S95Mn;n?z~!%*dL#|kYI9S#c@hN9MzSw?p%bC+h&YZb&=IoO* z=f0dd&vN#H$k~f3XD^wYz3g)KO32x(DQB=VwtoO7rJXL=ZXIl0$zxCC&-X>g=CbQE0( z;6JP0$q>jO5ZLL`!Did>;|<5nDHnEds(Bf3tPGJ`InvjL9`9`G>bTr|;_8bx=hfG8CdP7zhjuu*a^&3LDC*@1XJxo; z!{Ige+UdmL_5~NaDuU-FT(Vlrk)PU8#mZpK8#e1gP?JZ1&e4vBqa5E$I^=T0k2o?+ z5NK`5xY2PUY~6wD|9fXdO#2c3#ii50_EO8-*#Qg0ZgE^~TydjEBC_A$MpFeFUvI}` z)s87!ISTi3ls&z%VrF=kM(EB5p-mF4O&T}5Uqto`L^L^E>*ToAC=u1Mq1`$6eEW_o zy>lZMI5tG*a;}`pU3a#pqJw>%#)aq|*IFi=?XHbFa?s!U=2n3Y&LPt~hh6U+3B7YP_0F-< znB<>Q-;_=tzv^R{>~-qznf07AXMS)$^ViLux2NVyOcV3ni@d(l(LOyV8m^>r)L3*_ zzUY{3dN)ifwm+e9W^(7$Id>aY-~HcHu=B2}yMgfC*#)tE89opGF21*PX48i?b2+@8 zm@cV26x(|vhGD|QXRY^gTIR8J?C$@-`}AyFEX(~5Q_pP`&Em*BLH1n!G6p~ZEVe&A2&h3dOZW>QMx2f0a zWk`pu??bby@Y+4+|D`S;dD+yL!(6s=-CGW+Fpk(2;Ry;IxqBb|cj}7h_DDYVic8z>@z2PIT@jDx zUkI14OLkZl*7YH&X~tvgXFH_RIx3cS%$m#PA;F=ps&0R7(eAGu?Y125bscukIs*4{ z)Yc}sK2z+so#cJ&iKx<(4L=^VK1g}Z(lFucQn7bWWV@nfbv*9daI5vl&8S<~L;MzR zoXd5?BqhphM`lKHY~GHrZ%=d2+)hw?mSpxU+3i_M*t68MXK7{6(%YV8Ona6YxA5`O zXSX}=bj*m^`QvW3p8V;fJukne{knK(){8sSR-7#SCu@GM`(bGMjl}2WdKOn?JFgz) z_@c^jBbQTi+Vjhu&)asyuDo!!u550-TSuPS3tOSMRR_|iYv3l?8|sDIpF@}xVcmAO<$?uyrU%ZY~#zO z1Mx>zWM0|%a_+mu^S))a^1WK9_G*#YtHo}wmV~`pn)Yg0*{kJkuU1TZwQ^b3{U^^K zNj%)iaQ#%k^;K+P!>%ZKUV?%7<4mLiA zc^peNKW)6=KYs?_zc1(8UOa3xNNv%0+u@P>B7x(g8ppwV9I0D5GF$_iCR}TY2sm?Y z>i>5Y*_Wdo#OS$D7XDC==J&g%}e^Yid%*|d$r z`@*|f36B~J9v$4)xk$I;xf{p6zZ_4~I8L|aaWlT2oDk&l>}H3+wQX%3F>V~Y)Hr@m zyZn>wR>)e;uW=k-^4=dfk#ts$L$B@fKQ|7gx>Q@=4!cwiLpcs3ISyks2JU)}zj7R0 z=RX*|tIqR!*k)t4!*Ao^25)FLMNlUbWxL$@iY4fHSXsfv@QLj%RTk zH=l7Rq<_3I;k9^rXRK*<&x+*E4If(~iWJ_2_gP#MVrLLdf8Va~an6pnit_z7^E&ph zF^H>o-n&-tzdhrVbZ%h#jlw>QwoZd^z2!nI{v5BSb@=b=lxgoU-ro^3?fr_+@25q4 zZmuYvq!3{tF68!(!$Xh5HJ`)qe@B;YPWOdkhK`c14JjYzbvn3rtkb*ExueM0p3iq4 zug(2}SqyozE_`XVh-%LG+-*=ebuEWH``5i2KJOFAwyW(3H0$toYhC}aAlAO)wawe- zj11E1Uza{DYz~O(o>2NJ?rTTJt;p})q4PSGu7`G|c5aUAV;ArCpI&DC^39F|sY#Z% z^ZR+@u5mB;*1g^IyZ6R#WycpMwtcT${=I7Z_v+){Yp#Eh%i{U})_mF0_nnFfEi+nvOrKaWH-f48MbrL0Kjths2RsyXJ^>o#3fX zTKQ{p_}new)$`2y0*!ucoBn&}^546*|K5H4_nzy&_dfr<@B8ol?0?pWN&S1q_4ysQ z-}SfO&viy0@3^{;^Z0qrO?@Bw8Xg{aFLGi%=Na*?d+TaW-xoe~p5yF%&Wr3^=f3~p zuKYgD;cuf7|Bp=BrzPuzbgzzBlb2{_P*i7;Y3zpH|%QAV*fMqEq1Y*1rjt)H@RY zb9}Dv_$beD>^R4DIgT589h>$(3HM-$vu#m-&hdqxQ*k=SEjEry1~wz#NqaHBsA(-ezs`aQ5QZTKV*a@T1c$Z+TvADiK)j+p?s@Y)i`Wxw|1EL(`G3^579BacXu5I!yFZp+UR=_Q+rX+2<@|=> z$gDjd4D}Cf?i89gD&b+&rtN`iYrUs z6QyRuQx?j-rnhF?wBX-nB3GrwDm2@N=i&B=?LwlQ2PR1UC_PHWP4hsl=h9m z!PiAott9fl+pomX3%$^DbzTOFNLEf4Xo>2b9yfvQppihUQ`eVej@4&59p=iL?z}iz zV>AZAdgXq?ok^S?cN|(5-m721~ zWqyFj3g<S5bBc(4q`cfNj=pEwJ-eZt4^Vkn{=Qh^JN#;f1b0~>~`*M z+t@4lzjt*XD7sy1ey=ir*_L~?zyF#)Xyl$3xq*4-eN}k+xdE*_4~cQ|5<-H$Zc=)@u+mY&8L&v^Q#^Sgrpq$bkW=1_CvR^2;bM6 z+52nXbv7%63f$?oxBFQeZNH3PaN2&m-*4;7{>@C-X>b4k@7HS9{|Y&o3&G7dEvMX)k++9KZ+m4t~Us6ThgM%q9imq zc*i`jKS%F#egrm@=32iniO2R8oxEgJm*jJ;XqO5t+ zGicMKX?s-Ej8~rYE!s4B-X9eWXU$WAlQvCRW}~VVJoAK=QipBIf9Fm)h7Vp_w!G^X z-1yX!@9NZDD_LSzJyFn}$-J?5&LO_dKAe}sjC{_Ce4bI~vsFH(?Or$YY+=!p?8^_;JkMxqmO2%yzIZd$;^aw>eTlAND$ER5**-PYdgaXj za`XA-KQqM}nM9P{&pF}9p5)K)Ls*x!_e8}fPKJi0H4Aw^rrXO~ZS2&!vPj_Qb9cc< zfwg@hOQdX1I4WmdVo&+f5!S_VL7`~ojI5Mpf}P8qD{cy`He~Vn6cV@8NXVz9}EJn4w_h%QN2MZzIx@?`#pOS*yBsKjQ)I4O4IR zZV6Le^YpTF+HZk8uJ*YM450~2u1sit_03zvk&i*FTVR$I%TD%#I_@)WM}FhIs<><> zS5`={pg`(Y#ah#;?mJ%I{yyPJs_aia=QFRhdj5zizxtZDRpQd!_6KP@#2nwdm#GE! zUb(6~#lkGU;cS%bxm! z=jVO;ziGxNi@R5B^yS4$L9O{M?h9TTIsI*#&~;VqjH+U>^MxKk zr_IMMNM~+#K9hBSb;Qbaj?Ut+1*;jXZc8ec9Q*v^Qi~u5bHjO^$c(o5-4EB;B=~Ed z+|(x9lrd$?uOo7imt3daoFG%*vYGQ^p;OLQ!9;(RllxpwOmaNCZ-GJ`keba`;^8;8Gd(Pp*jvn$@5l0M-6WTI&Gl3QXow|i;m zOHfb9 z*Cg=Y)vph#;;;F<-(J4^{T#Lr`~UwrZqMM=|BqFHQ7?$;tH0+5es`aVjw}Lh4Gb(! z3L+UUKNuW%I|CWh6h2Qm%2e3;S>g!0m&-4P27!zPoOuhvVgkZb1Q>cAaPE8Xt|ow^ z)rEZn1JAt$?|2@#ZkWI~)s^jmg1{j@-nmD3d0qG<{~zIFT__|qL7?=am&8ROH$|40 z3wnMW;P6lsE8`R0#KK(F!dn#}*0xY4wN3b+i@1jif5$?pv~yxnEYg9ltWhl7>l9_} z{G_ib${8ify-Sq2t0@0ZQGsod0-uti*dj$aB_*{*N_tAlW{Z^VlvLansrV_WhAmQ! zQ&LM?q?Y$cGcxja&ds#Mwi64FY%E;#qjJ%VD|0;_#5JkR)ZF(dZN(!Gi90XBQrExv_EOsrh=nGR?u zu{=(lrvFZEb1aLN-8~1HsZ9cI$B*97o9A*$)g}5XH-pGc=Pmyi&oOP8yEfVU-eXS_ zWset&oi)OpL}sKowgnfsqa^Fk%3nCT%Y;!Z9p?Mu2s7N|JCnC_gj*u`eC+aGa;Ik65-EDoO}Jp86N z)joE}Xg^)+@@S{aHXfEGwl3WZAJ=SP@s>N%r|QzL*y77{V4~nnmyoBakuIBRRTvU( z`Av)79qAIm*W&SsZQ4bb;4GIYz7y^hsbOX;%Qrp^KPG3;^|bFxw7Y@#wYf_?kDQLW zc5|vhOLSE0vZJZ)0Z(G|=C6olS=swE?8>aNzenPK-EzF498|-y@vO4*l>dv8Rn@-# zOmVhJab-#M6jFBk^R!A*)n!4NYmGF+jwh}iv)xjXopP3>o88;ldSsXEkvzASAak^Elltk-#g8{A9cr0Z$Cb1< z@Z{nHaSi*DV&zseed~RH^x{WdjTW~REq)rUVJlkok{D7}wB@a6<7#NH)97e=(b|`> zyI@6UT1LmR7wwZYy62tloVB8BRYv!@73=qCv>(gpy0oJ2RabAGMqk^DJ~quIUozVN z{eRKL^|EK3ysN|cVgb!Asg>XMrW@DJ*wsOj*jK6sQ<5<(ATtzlwhyu!eG zV^w?8A%>E}>+G}_|I2DQrI7CP%0*!H!bb;Kt}Ix{mSxD}z;@w~vd!xCUawm=y>kAb zAasdk+pYt=J^vY`WwI88H7dzu$(1mPUC3Oec0`!LL1o73BEE&ZvPT5@T!dD!Y;l#bJv z*Zb3Qk``&F9mwL7$=+nOrhQWO?7B6gE~_0ktU0}JjYz3WTiyYd1q|FhIw$uzh}vk2 zDy%vs*K+>foA5(xT&5@+>|%*o)ekm8!EHJgLLkCpS8R<(;cFO+-b{UY1hMfbMWlG|mjGp4;!OE@U(bMVrqxA$MAKPWo- z!0F{9qjfWdR?cu+_cZI+V=3*IPxID=r@ZSg(tDBB`utJGi)rgZd-8f_t$S6a^EB<{ zt9^Rj3)b}|R%2S+O}FIPKzOAk+Hdk4#e#F&;!EHLqAzBTFTFA7yn7MQt6mlF~dKeI-pDMQauUg^QOiU%7hi`i+~nZr{0k@BV{_j~+jH`t13Om#<#G zdHe4DhmW5=fBE|D`;VW$e*gLV?>_@GmyE}T1qYisgtcN$Y*=`>T|n83@c!B4Q*%5w zFFQLM+x}Ut*i&0pUS5u}fA-YY)z{Z29PX0!-nQoE=8Vg$Voz^ddwYAqf20kxce&57 zAvVw+?hw|FJF{cs;}Q)y?|D8mxu2e%0oy>kz`0w_ch{DemsbR@hHRkSkbHWcFLVR# zy|cTwzrTN=8M=Y?#ANOGb9;7vhHRkSyX))g8=JH5pWD0p`}+rnyXF1C`)4n&jz7O| z@9*y)!24(S{r&v|ynlB8|NjhZ8V?}*XF1eXJZRzp@1J$kc-SHm2Hror;$fQ%c>iph z#v{o7S&d~Yh~7W@f0B>c%O{fq+%%s~2?@)5IyE9~<Tv)Kj5G@s8Yxt95SZpE{e&*#;Ad-;5R1Dn>11ubG(FBW#Ft$MMj$L!UM z#S`4LUM`sumi2P!jI>oRm(3}A^>X=wHmz4HmQ2ffwQ|L>Rj*d9+4kzy>J7)VUa#45 zE$j8#9nV(1UbpAltJmufuxY>9a6~No&BhaItKV!oWA^&Z<_m7xZ?{|t%YM7{M%wDP z+wPRTe!KlaoA$dMPo`zR+xcSI>UX=|YP3k7ujj@B8!Z_51yo zq8L9MU^#uw^&p4(nh%F~%-?)CEa0y5@rX!x&d2{pCDPY?JSJ2A=HqdNcAZZrRHo;A zI;pXI&8Jg3+uwXTZE#%Y^BI%tIiJs3JYVzqoXz()pU*q6>wdZ5BA)x@qKEq0FPD7G z-+s9q;I8}iN=SI_*Q*ifYrkHLDS!L*dP2MIw;L(bbHClpSibh#t(@&|zuhi4uKWE? z$@SdtcPpN+{eG|J``hpL8`$-JJZKTm`|+?tecg{oJ?8IzJf7gL_w&h=@VuW-XQZ$D z`D{-4yPwY&wCnwPv1EGQua_&9ulx0C&GvV{UT-+A_xsJ3>v_N5?s&fL_q#pc-~E1n zfL;I3ha=+oe?Fd2U;pRR8T0plK3{Ox|NG@ic>dq7H`3St{dTAP{on5o+V%ha|M6sc z{=c6umaqT!>&^D}|9*csuK)kfm+Sfe|NeNs{{O!}-{1fL&%m>Qf!*T(lhlU>4xa@~ z;wKKUS$${}Aa4V$#hHbC?aa6DBV|N12Vu|A($Bbru?8)$1EOq_FF|%DCdkcCN%RKiuZguNp zU&Wcla^FuJxBK<6zkz3o0=wr4C#g>pI((KWiJv^-X7y>}gq|fT>YgXPqCQQUab}5{ z`N@-hRiFM(Ucj?d!`<^#(5z2WR`@K{3O{)&Y}co$8+w-Nq+_r!KFh7HpFCH#>+{?XJ+^gD-W3k) zUKg6AzAWJIUEw5t>Oz~64|bzRlh)d{?-BaVAr+cfLznhf97QP)ph z+qUcL+JfHIG0(lO@4EGMUB%heao?JHfq^+>`mXCo-{tRoefNEoIm3;!dit^6ai8az?`4|tlwaiFy?1;GOq>l4 z49leBp7l*<5Iw=b$aaT;bC3Dn899xLSra;CIFwi!R;)k9Y}3%lZ_~gaW3i#4bSJCh zmFbMXWgA!>HZU-M`MzUrOq0f|*$uC<8W;pEHWpZ}eBkSnCh&EsL#eq#1NVs?+qd~N zN*r=vak_Gyp=riDMvjICdH(6sTm@JJxC)=V!#n7`IFTpWah4jvQ4?hnJm63 zih}WBMw5@;iSd5-KqOPnVaC=y55MMJ-;=c?NBi>7L4yw#e1cDw19 zh1|K%o!?6y?Na+PO?vMO&-a%uc7(lOYIydAul26WCOnX)6&oW1gAN0O2!l6E1#>&3 zY4z>f2Q_uYwrkh^{cC&l=x%9get&;wa!Tx?#dCJ-*ko&Garf?ZKY!2j=T9aj$A10# z-qg(C)2BBrEp-l#*7N7j3=0o@_wGePLUcuCv4^MghYzo`b=2C{wVgb9WY6Ah&!0bf z_Uz$?4XbwV-nx17+S|9U=o@I&)>YiRdHL|+y>0D{Z{I#Ycxd;w?HjwgS|&{Fj*W|0 zwrqi?m&?6-H!fd38xrcbX6^C?3uj%we$m{*$i%_Axuw?0*>2^^#gGGCo<6-_UtcwQ z_SE8%+=hm#nKP&S`0=T_rp(^KvbV2e-MST%r}UjVb+ojsp!woO10$UmFCKMtHfJqf zc=YIgEp64P=#Zdb-!o^9ZQQhG>C*XEuAJMtb$wz|Ead2y<0lS1etgf`#;l+q%gx=< zJ3BoiGug-2J*c8IFvuq$z}r8-tLEqt-~61I*zoM^REMxY9X$>I0F%|Lm+jlP6x#oF3*%hu$y z^u)9|vtGWev9vO-K6Eg7+LVP0qY8_%bC)lTXlnTRvpJ@#ec7^@x)aAEqk{kZX}xpj zs=0;c$y2%R$q5Z-PM7c68Bko1m}qnUd_mK>b3Qql*RK~hHhJgdrk8HtmcMRoWNVX+ zue+6}Q_JPc_wJP$nCTU7-c-47Z+1>v_R__zZN9&Mx4e5-*V`NL@L|RN{pmJ-o<+qj zD_6$lKpD8D3wrZhb;sy_ci2-ltCu;Sqr$)fF`hszbxft-M{19n1FiF+OxS zD=yx8&YTGMw4|(T$LMIw!ifbow&qJ8>IMayX0)cexam1Yh6bhj-?~-m5$+mW61{s* z`lZW-&M^`84%&@P)lDm!!s@ES8*1|=YUCFV#t5v|#X(3r%wAEtEi;EjG*trBW7UcFc3O$zU`7N;2rQ5h-k8kvZ zn<=q~kx?kkEUxEsVall>PU*OnGao&f-M~8k3A2Yoi-zKy zgnPecE|6NR%Q7RvcXrY1#`T^@=Ed&*epG5Hu&cPtAj9;bwWPpTBq_GI^M+vQ zt(WaL%OyUlFKFdBq%on!=;VrpjwbhJ%zc_SWE-hlb8w|#YF{Dl)9NVu54t8 z+Hg|MQKo948&l7m3yNNzM+!Pkgicus&SmlxXqMLh$788Ab(vM_62m5|DP9?lrXz=iE>hO(`pDQ+Ckom&+HG-jYqrXTqdeS|(Ru9Uk9O%g&THbD zxOk3N*2H<-90i{1E^~cZ<@+XyJ5V${=D>Qdw`r%>I_&usC9v^_(3K}Uxi3~-T6HFD z_4{Sa(zl=OoBPZA;);FNXC9PBCk-(VcyN zQcuxgwS#+#_kLfO{nRxgYo!E(CDR551_6!`X7=JOt*%TmGtAf=B{&KknR7W0wE7m$ zvX~&Bxcu%kK4#tp$CGmt8Jef7Eo3OWA;WXA*hNF={}GoGri6lq{;(x`XF9T(F}QLj zCQmr%kj)@gCRQoo(#@IqedDp4SajxP{f4U-r5L<0Un_EWtzHbiw zxel&3qK{ZkxSRQWZ~2=|^?egxtr34>^`d}V!MyJ+Z%F(L05YSl_D>7P+m; z`q7Y)n~_PN^465{Ew$h8x5ro9Xcrf$x}jv^bm3R-R(*jFbGh{|{Fog6&ip~szpdzH{4@egzkXzE52R%^V?}nP-JheC9f2&;BdljcJ4IyApPWKP!Ff zeWD^AJFZ(X?(tK8AAIixU&Jn!MdwsFZ03Fv)7Zzx^`MbuXUwzzX6%;oOoA;+OXN6x zUsy_6btveV%;TOcbolAT3ng4{PJF%f$a*qEyWnyTX-++3fnTD>6nuE3x%7jMO1|SU}a2Mn$I-TgGr!) zL7anud&-iOMQ0QmIDb53;9xi>uy2W=IEy2jlfofxgXheyjzSDx0uCHg9<&I$IIuJ( zimMhDxUo&`Yr%v$Zef@}wDOQWnWwZdVI%;F@u|%fYAfzgOs{Neb`p zEVD5^bgpz&u)>@#DjKel6PCR+RQ|F>-A>k1pl(^wRHlrl4%;@jG$|-9X0}W-ntt<4 zU%{2d3bG!oWj9YZ-B4hXF=$fn_|Pm8;4q!z!P37B0v9T>CMhU|su{CBIMaBfXxi32 zsd}bPj9$+i7|c&BIm9+;M-kuV8BCm7o}FG3+)9MlomNC;);aFxvGQfOa9Yc#HR{r) zYoF)+Jff!h@T6~=?HL7DRgXC1NdW~$A*s9@URf6YIGqr8bw>8xtUz|Avm73iXI(XTg|v2%A!*voZfv+>K9yx8mH%5xW$O7949oSfml#mkpLapz>NO(nZsN_n~O zH!<;Un^u%_ zjUkTZ4O14gu{yLgGA!H^tI(l#DM3KGvs}Sg<9#LXmizy>p6q90l-|jUe#7G*DaPC?J?s)ExNkXKdwT8W@f5j&DTXVW6z1PJ`at!r@L}x+ zUhb4*vXusvr9M|3j{Q8Oa)zT-pLdxh_m4Hrb_Fa#HWOI+RW2;3OJ3+*lhLH}a$QfE z34_90Vb8}AhqP92m}5QZQRA8&MVtN1PF-*hF>v@|!{?dav|&5vKXa6e&U`r&k&&47u~Ls4y&vzN-*XX5H#CMtMF z7;mc0eBPwOaC)i0fy*pOEQ~jfD;YU$-^F?9U3vJf`>dTy1^do0@}%e}D~dJjVP%@Z z9inoN*KE6+ieF*(eCxZc|1*E|{l7Euc#aH%?Ef9d7HTl0hTLMf!Ls9k^&+d;+(#TN z?w30@gxGXHF@JLE+|IvDb_La!8SnqHAubFunKiw)<0r9IJ}|MT4UYE8xZL<52E+pQ0|3mn~El=>`L{G-J0aQ(m2YffLU zVfs+R@E}yrKtRMHis@qQeepUggSw~71*J|j%4t+Zs0r9Kc=!cyx@~VtWD`{2sC(pI z$E#4wVhtkjC&K zODjZxC8I%es^IJEb;p+1nq3xTQ)*##Y%z~$G7wi0S=bhQqD>;DHDX0;FFQl5h5-8u z;lvdU@7&uA9@dLWG|X0K5K|LioX+f|-k^T5z32bec2>rg)$K8Bm&YWwtDa@GHEm#2 zPiK!*V*Y;B^w1*)RS(&#hRtk^3|rY5W~^Xmy1=A1kzt33ht2_}ix(>|JdfL~#^4kn z5K$0+L%ms3q=b!8r9gz0d1EY3nV`|4E{g|t>sJ^Z*&(2kpwGm}#&m!~b7EoA_m&#- zZqKxCriShnGlZ_5uw`iIy`>>=j-z)&MA+RI4Pp;lGF7`{Lb|tm2!sl-$~>^&?-9?G z*t4m*M`~mLUk!o(9D+B^H5CNRObnR3g?kdz1k98s%yph1d##)0WB2uNuW%1R2X;ZR zm1ZoG-se38dM>x5eGO2aX~rU1rn9_ElrfvFuq>S9H)L1OJ#yFFP`rMuGw)IDe2K1ujsi<6TIxP}osFoT!NG8M~U6HoqU6P#{2cV^_= z-bjH7Hz!IioHjLVCTrllXOVLkue8#V?3YoS`zYt*dH!@`?q&SBUv=is-gOad&)kqc8_ z&Sp+ru=4xF>`oI|A=XZF0r^Ah%|g<%G^W3J*2%!om9wq7sx+W>qehyt^6Tj)3>zAx zE;gxK3h=I+@kLF^c|&v1k$DUTGi7%PuzqI}YwS&!UUy)6L%&6v9p`-RLMWA7Ry)y7vFl^Yace}0`qbf#pR!i^EWPGVcEFUDA2#2g#h+>CtwHv>vfEsIiF#SaS>G{9W0Wh_LwY=$sod z-JYv(qYCpiN2N4lws;SL7ikP7$^xqnFO>=`=;LHi4`9D)m9H|X`}W5Y=0L{4_V_~* zYhzUzR)1>?Xchd?RsZYPWE1ucyS)Uny%S5=XR|Yth~K3Q*zy-C;{#S)_hBba-)?K zkJQOktG`{fxa8*IvY!n1C$TSWZ2jD}L3%dRwCH4y531<_aSj&*b#JT{yC4=YYeStP zqr`+XriBbK)w_g$ZWsSA=4NtjgIPkt#g9cb3=@ve-owCP=6ZdP;DA3KH3`P%0xzZa>8?43Sv2jI#qKa?>v+Dz99R`Nozt`=P zUeDIR>U4nFf2qIotJvk+W=AD3iaqcZT)-g3z-(mYC9BAGVhSsJ1BQ z%Cg|pN*jSWTTZS0bILqNaHArF?HZwmFK1WS_}gipwhuYIea>m_i{~E1w7s|^_FCuM zvV*7A&1qu#$QB=ZQs;t)V9zEIt@B%QPVbO8&?;lbeEUov%h^jlXVnYYg!b+@*>mPt zO|pstlTiaxasxx60>cEK4YIlni4)G;!+)C1YL0Rj zGMdPqHM13PQE)zGz#?35DZ%~1MIZ)Yj}I%)tI+e85pjKemqvV zMld<{9Mj$H8V4_Y`Ey}`x8Q+927U#WcNaVkMxHr-=8~Rm+A^KXO@Gg~{EgP_IKSo(tlZj`E5MhqD$$rx_dy{`B3r}%BX(g?jJwX> zW?EpsU)O3$@-ptgD~<{$Bo*)NzI*%7&w!({W+&F(d1QF+(_O(gXZJmqy~DjQHTU2x z{;$i|pPGAYZr(}Wi|3~<<1W0Lx%lp#T%npL4_FoN7A)BsRB$OVn7yX^;U?$1J7w=b zjTI1>clWlh0LOznIt+JBdIaOTuQ3!n%2j;Ga*+9)EF;H-#CWX-I(Ki?Sv|fH`&iTO z>fxIQf5kpxd&pwRVDVtXJ=ItDL_gj)nsSe0)x8SKCv!udJoY{Qm$zP-ao$gK{v19fkMU^m&NoxI5IFinydUM&F@i$ z-O~gAW1k8<+`3+yEo=gVnSdSJM3&eC9D18ivtBe!N@A9rkm1eo_OI`43Sb?!c)1$wWv7j_A6ms*+^6WsV(H1PG}zWk|mFU>c;HoEv~ zeV?T012)bHY)9&ZPt>uRHNRRFCw(!`xbgz)^bb#L;smDTy%Z~ayZYhlEpo38o)dq> zC%Dn>HTT4KQykx|on-oAh0p;%(PMJL;RoK$2z=kUMrdET(vljF^Y`Af*bB>kP;8I* zaJcCM*ZmKC^9AqL#jw|}<$tdtJpTjRLpGkG`f_fh4(pwI>8P-iBY z`cInipY-m35X@KA`LEBQ_5Ty6(Pz{5I~L@Awz>aN`Tl2zc-F*ZhI3&bobHRc@PF}= z&o!K{;@QQ&!;fcgQB-hj8U?z(UP>vA;yf45)l z1OI=9K-L2XEDG7=SOk_cA8g{4)pEgpG|MDa-+3-GgPwX#Q(|rrC}4WXFiS4|Lr37n z1_n-D{zFq<3MVowa#g+LV)dYzf!(>=j@LloRmh^Cm0`9Xrb?G)TQVxx?g(}YTBx?% z?@d&(_9b2hxfP|WL>r`pRH8Tx3D zLQeU57X|YZpR7)pKbZ4lBj>GG9zyKD=fRI=Sv%*P=`Wk635$NVd^)#-bM@-?+MgaN z1uQaDjtV|#a`&{}!NzCOA5NL^U+Uj)#J?(dkNH}qHx5eQtGXQa|G%?@W2N5fl=n(* zGbcMWNV70B9`<6lN(>UKlJekY+_r*6QN^fXqe+XOcdn^m(St_|#MK&n-5D}oFH*Xz zB+ziBv1dvL6QkZMV=+_GTWt&Xx^S#2yv zi&q5n?@8X){(;Rysm*&yXZ|8np%+PQF4`v)m<_LK>9CnEV0ggHaO(H!^&M9{6rwt} z$R3C;`0paZpub|P*zKItbNnB6z1S+QlFPVb0XKuXS9xrv;Hw22xP)$eSLk4zQ1SS{ zrnd{YHof4El*;6FDLB1Z%4Uk1{=HuFMeVEiiaoPsTrh3fg<)~fTe*f5*81{8>C(+I5I?LZvA?lBSz!X z_PBaivx0-{>U#lYHRq%HUmRdtps~=1$78Nc^(n>0 zbqv~B)d{E92d(cdZDcwtxsYq?=JhWa%O*^`>$t#t&Z9tnhF8h+f0vZ*KV{&ibZxOy zs#W@||Mz6i3nz3qd@x$n$#H>!VX~34%O0_bG8_kFnHT!}yCAkW_^d~$u>gZ0g996* z#lpODVTZLEi=<^HC@@vun0jC7(dzZG=Q{mcl0=qTxSAeR;fZi)6v%RzWwf+_sm_9d zDZ!|vS%ra-qo9#tL%}iQtdk53FPw!n6j+7-tnzuzd3T{elB-VE#5VRqM}ZUt7NtE3 z`gR(Vd6f<@Dpxdd*n2Rt3M4TL_Bt?YoKTSXp)yB6;~=MUM+3*d)@9~19U0BN!M23>Z286qq@lk>(RpV31G|wD5kSDq6ZL zc;2@w%g@d9lNV!R&{(0@${aYCjnAl=)8#-+W8;N0JfDxvW>Vl34)9&P#p~2XPKOoD znyVQ4tOTV0`DvTnmdZ8M9a!C99qt} z&gARLtG|22Gm5Tq6lhKRzbH7Qj4OEgT!!?GzE4FMo^=WAel+0@zBL4*EpTk>|*CPyU)y>BQaIv)uE;SdToZaEUb4{d|5X4 zHF{1ftOW&>TTU{sT+z?(bgwf{g-@cx;rlOzhMg{p6+X>y5@+}-<>h*5 z8zTb;Q^xALZ`RsuyF5JnqF(4T6eP45d_1`QSn0ab+8r+)$`z)bW9;!VSfKQ$NNvm1 zSM9ac6Q;cKa*}E6T+i6>I6)ac&?i<^sbHhAOxQ_P&}P9bek+IX3Vv&?7+SV0<6t}z z|KI7r#VHBiN97owePa;YZ53VO_s%%=e{J`aI{qbh$}GxvUH3h6m`Q;-Ym3>ot!Hx? zD|YWp$Sw?7dpK=-P7TBLbKkZ#zs;SqakIgz!sRb20&EL^ciL_F`ngf5pvgf#<$`$3 zHwUhJd9&P9Y94Goq1sY8L7w9P$Fyx{*^ix#=bSEWq$yF#>#gNwVP#&vdKs^r&BoGo z#t*JCtT@8b<@~z&M%DFn_v%|$`R2Y%DQjm~U?q6;@$5$qrS^LBwaRDkGH{&PZ7bQ> zdAri%YxT0LJ9QEq->ckV6bNZ!Q`UIPsV%(sluM$*N*{oZAc$wB`;md0fZKfD%L7gn0^dkV_aeVbkgKK#k;2%?M=Vk!C}K8x9C8l2NTbX22qD~hdwZhbaQC` zVAOh{uymIV;|V6N0|#Z6H2gYj{K2~8kKm^I?vC@TJGs|bACcO7C}Z#CW}OF@g&SXU zHa*@awZ~ER$iZKaH{F!(xRtzJ*yrF5sSYt8!>>R0np8WPukJL{7XGgvaBP&jHO<05RtTrQcGy?EX+p=gD3Jy!3yy-rjf|OlL>{mG#NFKdVV!t|7=yy% za_bKL2Yaj;8>)7jCvRS-!qT8xvu0kQ)1K(Pj1h-2bUM#v>}bDj!{BhNBf{<85>_n^|IM^jHdqGCa{TXh57c?8KY*5hN*r9Psx6*LwAGf;M9)*S{ z7!$l)f^6SSaJua6efpKNuyw~d1*Q!Ge3CELz29uMN#<~sjrhJCuV`M^ckR1!xNQqZN6b-S9l(C>FAPDo0zj` zH;2&w#zUf&mK;-MIwS-dvaC7$SFW7l(lJxyK%I`6)r9>lcTP60oHhT*xi?qNC0BCp zlw7rF*QREU`I5{H%b1uBt=J$kVP>3-w%x}A`z09s1sei1Pnb1!O8q$ZVWMb(^tN9c z7*0&sa5rkzr>=EJEm?M~V0br)foDc{^M$^iD{cpc7;G1J8XNduJnVfrTVk(E*OwT7 z&2Fb_vrlLlTwwIPaB)t@xr&CbXP6yMOwAW&sJ8C-uXFm@qr)e^1pNBYefo_2k`Ata zA>IGKoLQ2gs4A?$Av|}JmavS{9=@wb`0ol|UBhur#I_~k5Z?{Xg9{kUqu)fjbeB%k`jT?_Pu3+g@5`AXF@!aMpqfLj+i=LM`M_;*g z{7Am=R^^J5X~=Jm##faLiUsYu3=PUG48dIttN~i5cf0)h&~*F+qwWRf z!e7xO)36lRz|I#u%mrg ztXOb8V(!(buVj|7_(s|MO-|QfN%+=7iuUDU}>dfc8UbA&ygKPvNM|0ECgZW!7 z<>s=)Ffz)lXf()J_;E6aOr}of4JCi&%gqhF_gk8rMHuZTG%5aI>X7c3{-!H07)Q|GE4E03^S%zdW> zthG<`@=0)reP}T@Jkuc&{l@V228Ph4$zJ<~oi;e!Ht1+*TrjUV=8$gB{uhyVN_#ur z2g;t%VEp9idaI#lzwZ7MSFSG%=stf`l<@-N|NRmyr#ACit>Dt05X-ROuGCU~bq=!= z6L`8r=N@$BIQ(?;tP8OhzutHy#d3RrjjM5F+U;xFx0M)wG#FYII0zY-q46)nhHNmNT$<{;7F^N7Uag(wee7AzwP(4{p5=Xeme2OQ zKXSu$9vCDi|y1J6PfyL z9F2CIO~<_UmTaimm(m($-DsAvFd^grp~h6r$`|T4pTAh~;@OVLJ${cG*j^lZ_~PW# z1h;=L8v8Oj&z+il?^Z3}OZMUy{dt*vGhS%S%GBu0?Dcy&=^x+RZJ7=GUQXnjGk@Ns z8Q0tvioN`8kmdaB`C_}r9KKoet6nZGo2Oa#DsknjDLY;rJMpUNS!VaQm+Q`Tto7sD z_-y6!a~YeKy_n>dZ5@`q!OePM-0PKXS=-(C%`0^l9OJOD%2>&l-SUp(;iPNMWnGo0 zmG^zi&O7^Zz1o{yd~^3dOWFM|YnoWjf332+g>tmU&h#^UAT;bN+Q)O3S(B_UdTd+k%@J|DV^sJ*pqYL zcHiV%w{%|4je8xJ!tyNsZRgC~cRcT17lY%ur`fN*z1{cE`qH)6Z=OAQ_3YXqyY5|k z^Dd|95?UVpilr+DS`8?%=O;wGGQ%lRz!-s0Qam)G9@dzTl%S70mU zt}a)=;GTDG+Dogj_YVKwee28rS66Uj-;3rjPLAdIZ`NhwB zIPD$J|M#5XnXliyVSAo;VPS!2e!m2JPhrdlX7dli;)UGLwWRvJm-Kxw-&QE5|9*!` z;Yqg)w(>&R`yVd8E7;laUb6n3CVvsz&kuLEy;m|9*`HS+a9>i&KA(lZSUx=V|4unh zgYcKK_un%;&k-pv(hL8ru2dN0Wx0PxzVLSro%9*|&b{5U@AKJnZ=5CH$(6r1y1zTQ7oqD#>fT@OtSdR7^upKt%jMTE0>baUxL3^nyuh9R znDzh3md{JP%1eLdWv@&t4L+Vb&yfFkUCG0rpRZi|>bkzvxIZ`Ey))K)N_2dl_x>*j zlJaJ#z4P>c(;`;pBKd{4w=C*;;j(RI_U>hY?InC+rMb_)DgS>TH2q6p|5yL*WrdQT zLh9dV?JvtJ|Dvf zUzEas*5`leJ6>MwUUrc0Wq$ghp8k?R`%g0c-*u0_pLxCb=nYrua-`)TzUO_cY2lP^slPdf6kS!O5o>gaj(qvFD_^Q)?5Bde*Wuq?mI1e ze$6$nT7Cb!-unC|{%>ycKNPk9Smz$NrN1)$_y<|B%KZLsm&MA~$=4h)`;+mVt}i>czkI{;ij(TEEaWTm!mH2M z|D6Bp$2Rt#^Ve5xHUIhlS6y|%@xLed{u+L-IrO}mdw=Eq>ss33A2!&(+pE9v==t(F z{4?gof3&jyYtH^wg#S zfAv|t^1{Bq=j&^)tp9i4t$u=DjbqvGuk0KQjBHFA86Om!nwgnZL_9t`IMgO2Yt-_i zVA0VoF8#DA5*r^L?^HDGyR%~BgAOYenV{XwiRzhrtWQj5)MeP#Oi%G98GBU7oZZ_ca=yLgS~ zl-b)`8`92Sx@#4l6S%W%_B7wBt1E7AEoc8PtY>4MAHL65bh&TMkE{pBEx#U0)%;-; zx32zmQQDiE%To^<>=sJ(lHBt6RLc8FYS~iH!w*^9d=>gqeC?%6t@+JrFRSt&pPjG# z{hMr5(eukkjitk1&#`#6V|KrCzV@AE?_SMsEKjrD_P+G+qvP4fstipoe381Sy_}=& z@5?t0o43jQoxbbvQn8QwuAiU#Kl;Yi?X$A{9-2$!%n5XluecVfazCh}SM_#doZt=F zh(gz+;x)WR;<0VNE6Ze>WtG_GMCU&ZTiBp>Y}wsN^&$<@l&Yo$0VQMYb_r2TF-lYKi__y@#D#qAI-Ag=JQ$W|2AJh zN3(pr8eMPu?Pm6V+wXU)>#Jo7c?{~DWRElk2&qIo_;!yWM6k~J;oUik-{^mXJYgi5E{}JLiz##QO;m_@OCgmRorq6uJ6usktm_x$kFKhEN z!*?=rE(kC`JTsL;<%Oe@Ma8mjYbT^WbQI-q&6x0!cY%TlO9NMa#M<7DrIEF}XK;n5 zJBcjvubuImm2<*}y$?Da7>qC6cU+{g=c5f{%Po zw_fD)W|5O%nZTeS#=^zaae#?Cs8LPCC_8*}lK9k$2?lKoSap9eaPO;ZXr8m6Kk&n0 zt`8en8Dbvw7S2hQeXrq`DzSt;>5no4)68ZygDnd=3{u2RGbgy32{HI(WC$}wviCen zm{gwVpq6WNu1M+`15-eQhICR8>kJ{q-8q8Vv7DzTo-4A^&P|+`qpB6V?304|A5~s= zt}{t(ZEfbhX}r@<`h;HmGSkS_BY34ILw4NdaytPAt{t2Wk}Xqm!zVW}hN>fTR{WC=`XMEeV)Man3O^i>M&K2b_u(odC^F6Xc zee1$7%?{g)wso^Yzsg3`JM5D#JGhbI1w(;#0PFcrJUdutIx?N%IL%n$$jg~y9g6i^wk~X+=r!ZxOo^ks57k&YG6WtJ{W!#1 zs8^!O6eFd+;HdSn5A~}J9CSa1OjZ8Yq<_5p;X|R#(|P?ES_B`l%7yDT&E>ANiTYG&}XM&irmMFNdnE@9?oYtBAKTt+f3wDQ8+HVvasv8je~`G%2Btv zkBrUI=bHCe?i7CL%+{kLXEZzV65B-Mxo_vZcx)xr6D;~AH#fa)L*ILb;)a7i_&#Pb zL@exPt#ruAZ#%^s;MfzrqQU=b!>OhO1~#EjQ`M9lni=mfFr;OyENirE08MG!+`DMg z>FT(KN1+T#53~f?9N7LdS|sjktS#8WTjT+r)9_eRpU9oSz_DY`#H?^fJ{>`Ah67hO zJbT7ak}HsHen_FNV5BmbNE#!< zE0YfKeF_c6C#EgmvaOVL(y2m5k3WxB&t15VRkNv1{0P6kxC%oOU&D&)yRVyxJ1{Q@ zU^0BSM+L~3 zBK9ZNWZRavOFwy3dF4ki4s$pvG`2X-GYa{(kW*wr6K73!4uj7D zes%{34h933+@DuCMb{}RPPDzY&}$+GYvI9=#k@x|Z<{WtlszCO7I2u;N3cvI53#rui7>7)Qz{hcgJ3sRPG#d;Qd2~50%q+T^QIU7#Rc(@-Javm2hGDBljcm z;QPP#I0fb`bWvdNNnllCC=;Cj(bLg!La5^n2b|qLJy-}ZS<2g7E ze33nJ)|5fKz(LHQk?BH%)mc$7g%*h_5r5J9A64f!ES$#hEP>H3mXpbWsfvl&N`b{o zfgwOaM5;x^O8!fvqEp8`v9gEaZ3`KC9y+ERP`u|V{VKt^Awf!Oe&h}ZffEe^0tdNO z=JU%OVLX>8YxlrWAdy8vQAkTseO?0Bx&==cDt^+uuY7O;&!vPXri%>b2AyhMAfCR&kAC%@xOaOH$`vnas6`CJow@UPFAH%TP@J*Q@}08PJ;AK20R{)7j51qH*B%Hss}lZd zNss7}aJk75ax5NGRV5`{qNG@&<&H!jQ%$s4>i8waQN__}-PFh%{|_wkbP%2!?YKk5 zN2*0lrX|#kAxx|#OwJ`h?np>j+P}nQR$?qcZVgg8sp5@sjseRK&0U}r(Ii5WT% zr?0s<-Eqq$R*@sD90$bb9N}PS;BfMjNpN795+l#yp!s33JKsTp2M%Ue51Q?rFD&80 z8pF^e$MSRO^q-Np85jOcU6U9!IbSPExvY2Rbnnj)~YjHxqn>LMU&$I)1B6@7ahG-8w-E^7s;1u z?K>6G|4*ZkiNTY1S@uE^%Wcoa6^?Ll9H`-9@eqBQaO;AyBqOgQBYQ#vPb8<;0wJfH z8VqaH11wdyyj|)jA}!PrpRnmlLeR>d*vx562c`w3I@PRn?9iMkc5LFJmyRozPnr`u zYn_Ih$n(i+E|cVrOgfY{i-}=T)D(sb2OR}6gP9x_UR$x0i=i)R)iNm;yRuc@UtY#& zta=*yYAKV0DX&xAK8Lbfd>kAOtN{{|ERFm;4$KJ+yDGD~xb7caAXLJ{5IAcd!<2?} zQAUO%&-Z1x*f%o%{L{dokx&-gt4_wTCSpL z_rCwH&t|^(^YAf?$0UzmAsuS%vmSVP>4nFYY4US4Fj_EfS9)S_R=6i@niuCX-FJ)z ze>IX?SId5Ayn=^T^OV%T%AerC`Vwrru}gPw(&w zDsB;LIg>TZ@r@%(OQYk9HHkH^HmYeS&S{W5(7>wEz+`Y+Lc-+$pH7Uai}u1dE*&{X zUmZBwB%4$BHnDZtU&WT=ua<2HyLWe2+PznA|5~c8N^-gC*K%Xh+MA2kK7FX0bnw-t zJV%GCS#Ni!D4+P>z>$-{S8KpxfGDTSeofupmHl#OBS9u%Yc%p$pgOPXZ ztsQCF5;q!nXE-XaWSGLM;-u0bC=&fvO{Ge-rE2c{nqMyrLYK5IdzMi4WHT3ouUHw_1tQ;dR!^1DkYm&R$pT@i#L(6zAaiQc3&w zy{CCXx;dFG-@5{Tv?b5g%XPnZK}pqMzMg@bMS-JB!S!oOX_?Pn^0_gYOk^lv;NEcH zS?%lmyIJD322LzN4BkinIsKpX|5HlZ%ykS~^#3Xy`Kxwh`Jn= za;8B1rU9S#il>f+zrEg>7c#K_So?I>Ir}On-ai=P_ata|4t z5W=L~<;J1R-NB&XeqSUtdpECx=$DHIwe!Cywn*~o3u&k{i%Ea-a$s9+1HU_I~C)y+QwJTvms3-!Hv`bGaRh~~^=*s<7uYW}JP`YtUq9RI8k;&u=VXwZ9a z#A@+6rX%z((`DwGHxq9iiGF6J|9X@D{&)fB%$0&0)TB2!YA`b$*SXOuozp87@0h`t za-)2XrtEDaw*PP0z6WWoFA{Hj%CK3)vhTma&w$OG-SfONj2Q|xSJ-TP(6%v9g^|tY z0N0c>$C#;n;zukuZ?aOK!eCPDBvWjpZJg6o=*VE~#IyPSqhj6L8-I&EaS7k(a-!Jz z!)AMC69$ei;?IrkuWgWI$>EE5E4jW;$;gqVBca+(r0kHP*v#~^Aq70!b2i&)m)ErL zaxk!6VF(m16+WA;H1WYKE(eh*b2!Wxm6;EG5ONeyI`Xbm;?pmY&vp@~maTJq;vh2P zN_*X=uVNkUk}MW8R(Sne&Bysx_F$gG1bs&BH9baeblN|&GCLIRWAHnFRN#$n4yWut zvCZCZN~bHaaF?xMSpO!$PS?pJH@HL2OntJr!~qtb|A*fFT&n5nHu&?C_IqtGY*7B7UPuu30GC9e+B{8|h z@Ak)d@jOS4ZNlfjInOrP!Nnk_;37~^;#^VU^uWyNjaja8p+x({s~e+@x0SpJX<#t8 zU024y{^s)bdlNL>&oqjZ|K7HoagNLRi?6N$0lh2h-<x(jsH^^`~lw1_((O+A0dd6hs zXQrnM9Rqew-LAWkX{Vs`ml%=d0vCd1D?YkZh?ljlp6J~&VRxCu?T>x(ES2S}T#L=+ z&zXe>e!rfY<8;Gv-s_!*F7A916sqb|eoL)I%4Jr?Y`>tSJ6y(h3sy;c_pLi@z*=Ly z?EK72k_j>b3r@HP=;{6liE?+y{PwuFKDu8v$u1JrD+Iwk^3q%Z0@AN%Wz4!I`y|bS^Tl$jW1LOY76Lwdt z-jY1B+TCG|wab*(0=$wTHY?+!jZe(HmAXf}28Hj(h$b-PS!D(~K%)8~K0 z-{$H%OSgnQpH7)Q2-{UW+x5V%9LER;@s|cW<)?3zv{|8LlYD7+ij>B_^}l4_?sn90 zm>4#3j`838g+Yx<8y8R4SfYI7oP5jq;9ql|?=g9%;czP1aYaKwebvh=3=AfWysqVG za}V&Jv5h(ZmtUsj_zIS*_mf#P8rTjr{E1q;TcE{pW%3rmlt#7Lf4LkQoDUjwH^_S& z6bR8&+V;Pa_jkh+?qpZp-J5btnMFziKVO%XXL%D;?P!yrSZ%zm{NlFg?hP|U*c%+g zQVvF)w7tviAaTPsf{lT*qk(6^0SSc$gH!ALD;dR~Hi$(uux89!c45LtW`vX|(F+cc}1GRA?9D7V~2W$Z&IDVU68{t%6TA|9nPTWUL|__YudTFwx%0I6c|_g%t}7mm8ht2no&hp z%|@U=;l+hT?vu+zFBNbK@s=%Ga<_u9nL)s2jz*y1!`7&6(s%QwC@F9;@kXk32t05| zyeV&0`6z_vz=2!aj5nHfJ&DMJW z1~v(YjX|Cc3p4~6cxL$ga%2$iE9N=KDAC2l)w*Cqg4INefCF}|6#~4@_Dd!?FbK-Y zG_WuV1$3}6+(_nc&=qm|@4z6lA;?)p^oW)K%M7zk84VMDtvI=efnDa3wtCSF2bF>= z+5RfuSsMHmH4hc6?-SqgYekdbp&7mmvU{|OlxJ*v6QpP$x{7}pD}w2r+1`ea+#w=GmHJ9}f1U_l%dsbc@XxE`)g4fBW>#1{+#3|bp^P15#PwH03N9eHMp_S#J{+E)U% z7k>?Pdadnet(}qZzMG{)Dlcrwjom>y#!{j$FRpu#V;K0zpgC9B#`V@_e~(^Xk;v8_yC*V0&93-5r^}@a})^)hV~{a#%h!d!-O(vtY8`zE;V+8xPwR`yw70 z1TNk2s6G5wUay{B2lKk0cIP5=7>`OR^l=MqIGDU~RRA-So7xoqC!H%_H!w5mUF?1G z_Sx*6tGVuYDD?7WtULF7N0P?_u9Z8IPjhKZ>x$@EGW{BFhn~?2hqNgvcQYRM9h`iT zW3H>(r;N7^VzV;d?~A)>y|G(NpLc1gcXh_H79o~NI-qxtWNAA3GuWYxI)M zR_wQ%nd|SCowwW{TmE5&fI{p@~_1wHf1Di z)A=Osz{oeDfz@O|>5+1W4_n_SmPt4X{#fAf+Crd7C`MkSBY|C9hkA4B z6IxVF9&!fGa1vcNp;fo!A$OvLv*fu6ZKhiu@)pi;mVGy&-S*2v{zeHGMZSq0t|pHJ zC(dwD)tlJqTk=SFp@gfZ-^8xaEssPu&T!Suo7f%u<&pS72{*&Oi9M+%k0me8a5G&u zu{XEmvGhX;cgu4V`%1Swmi;)x-S*wY{@O2(^#F$uq-=GksF^CeJ)u^2~Ulq;IC*FJ7^6a}`o|zw%^egO}Jm;y&bIXe}{YuwOp8K}sx%ERy|H^Zd=Y8Gs-1g&4 ze;2h6NiP@o+3z%F5jw%I$E2!pxMGPwa}}!^_tlW_uIv6GbGbqfYMplwzdBK6!T~0O zmr@mMDO*?`HW6t*un zTK&@ffK>CMrC)=meZ2B$(y6WM+rC;W3OL+9p%pT#DP+Bh?Q72BTi54uZCie@TFYMW z_x1Nju4?!2`ggKT2w4&px-M<;OP7USflHH?uA0EbFmsjx`#Q5T^VtO&n2vE-9ZhO4 zmNi_<)b;Jwwq>57+H)n6FRMqtzahGQm8(MH&F#0YP7Q5p6xI9L@%zllsirHA-|b7b ze7(GN?^Ml6OZ9?Pxu(pGy%xgha>30i+UT~?nk~zpt}gzsX?K0r^t4?|^$tk2-=6qt zoAn;s^^YdKKKkdslK74bF?wnLPdn@^(&IGT(PC0{Tafd}0p5V*H%-zqkuQ%OR}m;P zNYy^`fHU#?Vq0U+M*fV-o>Z6d)AJr5EZB~QD(^P1y2XDP#t>uh#ur{?nZB((7z z;Li4N5PxTyVe;G}W#Q#DNB?E1Oq3Mco4w4W^Yg7cSEbJ9m`>gDBkWVKA2;V^fxG%E z^|N37pH{Wr4~ZhsEQw{Ce+6Z^4$jUH12+k$Fki660IEDbE{-#q7uS!~MisW(?+ zu0Ox7=C}GSlk**St_ae-$soF6FYDgQvv=P%e&42h_GK#jZvW(6-`vV#TbE|U+<&w3 z%GR60#Z#^yS=VF1TJ7;ch~Z(>^*!%Gj(*i`aw}PN_xCdIJ)wK=t|;?8!1sMsVPy8} zDg9P^L+dNnu6!H1TKfIP5WaOcwx7G>KE3wMqW^3^R(5h`zpa~fIhcL-`4|BfNsdMi z{RP|kH!NadXmQ~5lW=5l`J8r8SdO9HzveL80v1MrdmjV?IF=~c|2$+Jw<~e|Nrq4R zzVG{A`+VnVo2Rn!c?=;8j2sIBcOG3Ns#l=E?GwPjE5gSheI}Jf%7Iao=gL$ilP7HL z7aCY!ZJ5QPz`&q)BIb4Ud6P-t;nRj#%_gCnm+yVs!S29jbY1jA_PV!{(RNI8`dMEn zJN#l=u~XlZ#qU!9|HnTpU%vFc z|KrC{lc4!R|IdQ{OsDgVp65f}Xz^@dU~N%|TcMDpSMcS(!iWD14a_|UggYLv2Q@JL z>;KMT@Z%ldfqi{%SLkfE>e+BX@9nSdw>cNs_rGJ)R$I00-J30a9GjUr>kT-b=FOgU z;q#eQ7j<%#a~52WaWeVlp!h?<|4M>#!2(-_RBpxv+@g=TL;Y>G88Dp?V8}S)f2n|X z|Ax<-UVmOCpr*pW&0COu?}Eyi4`(+htxh6|VFCEa1)7~oLq#TyarttAN+eQI%CPCwiaT}62Ssn=JxE*J6*tX0|*t|)Y@xk#` zhgBjz?qzXc-Q%!W;i8?$#o&}CjvcvY&64;}2dLaz!)N=5k5z%&ev#P!%`B3lJpATL z|9&OpE^tuxa8g_)pgm=xB%_06Sb`6egYcqd;lTZXT# zd?l_H$_4VuF|LtS=Y4(6@Tv@-e0_GB-CDV~f(qZeUawkt%PE&{@dw37UTpzASB3+e zi&U~EG4O~U;$&mhHu}VKxLNrngPPGLf0rU3FC*F3kDL9N9Mz2Yji0I5`zY^a5;*J2 zAazk&$bo?=P|?eg;f9N1j{}1XxA5*qLVF)Eu{_}3mBzA#UE6?(q3DvfN`8(;3$uYj zTF55tYuwvrBx$~S!o4erB~8^jWX9DMp7VHU`US4(3e440#L;MfuzA1?fL6(pC&Iy6d-*!$?lE_tmf0 z@|Twz%Wk@=wc6-^p|*aoaih1Q`{lQn&dts^dr`=ni(iPr?*LE20VWX##)4!Xkwbhe z3~a}^1T?%Y6BcMU80#N)wh&|y_~T+BzSJVwSkXGkEc>%rv9OwBo2Bhh%j}@lXLOmW zxEVeuSpINeKT#~u&=9=Bi{W0v9y2D*-At@33s~-D{Wwviyy%lPV*RQ{Tahy*>7HOJZ6rUxSowqk&z>vZOP9Lu z`r>`~0YiW)qfHBQL<8%T6bqj~j$>ZM3QrAM7id4(lK4Wzal-+BK4XXXTdvsf_!_48 z-Zqgq+T>^d)PMIOwPb$=opaiG4?=G!bD1rQywqSTddPO8lUo6U;}-{pC$c1dpGwf(9s65_D;l34sBnWL&fb5#N~LOIf(`92QW#qyPf^J=_H ziNj_V-$)nV|2MBhh#p!O*Q9(R!NtrefVCm=_Lc;P2HT7TmLpl3C0{+GmV}?~4_$i2 zqm}zwik7iz@RA87>{GwQUN-blp5!?@IFI!<8>$t}x} zY~p5`rl4l*5G%?sV|{RFC*>-KDc&iQ`XAb=xy+P9#3@hpTBP+MuDS-U1-{JFlyZ(&6j<7f`He{yu$4w#rO5t<;4@!uY2(uas1w@C@NkgdEKKT!EIMkbbB&~ ziHP zyc+x6Th3hE%y>sp{g&6yz8e2GzaIDUYV6``agM>UJ5R>HerKvKoYFQaC3Q1j&($q% zMao(YYCoF-!ur+3)!H{cYSYwiU(D9AJeQC8LF>jxEGaiq8Osc;CnDU#)TAJ4dYVdg;rjTw==(;m(2 zp23#wG-JB6$_$J0B{O;04`}xaGc5ZNzUs!JRS%vAd~DA>AUHKecX|{5wE{yH1=ckM z%0+7p85x8c6EfSkv9l!THGO(>#9Q<0Pq*w>JPcJ~qEXLszB=AtG}pgyjh4c^RulQ- zma|!1-5v|8br`v}Y2ZtBs|CEjYx!k-;{_RHjSmSAhlB?{mFQ4>lh5PrCsok?{O;=go zkgHv+_fAQFPHDB(V`C@fJ7;G7ba?zxAj|mNuC?yW4*wtAGQJh{^_t$A#^yDLe_mu; zup@2xGN-f@vPIgaLWvc4&Dt$6z+dRqDi6UVnjmfu&{md{$WjxMAA1pWJUi;;_9Xx;3;{+?i8P=O}?>2MPX#W4bbiMpKWuZGU zht5W9;0q`NXgwh|R&C>s`5Hwf4T%+HI-x7w4tf+Z|uc}wnmU;ET++6RonXm+dH>?e z=d-sibIbf-obdUWHPeH82cG4!9MDo0t8J)yFt2Wv}F(zEWSQ)ABcYokI5i zj=N`$9m?Cnqg^3u|NrZh&MkZG)#G%{FLhffsIph?&bp<$cfx~nB>~3;E^A!SJ#pu_ z#-06hr(C&PG%vmKn#Qd{uDiQEreC+6zUOc8tK)&G8+&{z@4cMc?eYB{r<}HiM$@Cc zcYkW%U-{w!_rHgVc8^r+9%=4-r2FrYq1|KCy2qCL9^3wV>}dDIweE@Mz9+u_o&?%G z4Xt|`d9Qfg0>L#4u0DLkv~9t&?Fatza4dDQEsE1xwr25Cn@NjBG8XGNRIoX6dNr_k zG$@I?J>Sgn;(OSOXt@bO4wk1=t2a6GPO($D7E^v>mGy(}qBq*s3$mFjE*0&oOFFYJ zEwi0}iZRn71(yF7LDrY{X&<`R_R7viCj0HhdFz(Nb*^#njB(%+d64!_!rEZb>-_e8 z+aAADOn&V9xy!b56eaLYCr<%oZ=uC+ho80>A;Nc4b zz1BZ`{_K8qL_+&?!=8j|%TAWnea-8+cwzr>hDGcRjV#tB7Ze=29h+ICS9umuWmbPk#O1Z3gvO5$RSsLAQ%OolcA0O!oH1$)lDtdK!zGJ+c&yIrZ%WXnQ9)A@M9CT}z z4G%h+u~qTfEYIm#Mo6nSyMhSWuZjH+c^Hyl(yPver40<&2Fg4-^y*Ni=Cl zrHCC!^tjzv*Jpj*@ZzVBXO{)8PV0@}KYvC^%Jj+0$q7CjEY2JWC0fRvA6RDk9O!w- z5Ve(MtxWxbOQp;jsz%8t0)(PwrcP{kzw|%VO}6-)EW51Zt)J}9*-US)%hxb4CB&!w zSh=OGVTPc^#pXMe)?Zg$hb#3Td3@ZUj3& z_FW=h|1XxqVWKG4hxi67v543#v!vw;JxnJord5A9IX$fQ``RT>Ci?Mlq&nMX9g}3x zKh&|bQ)80IvQ~x@Zns^wJ-ik)QTPCZO=$>l$GMJn#RO*$3Res z=}AJAyl;TQ(NqNw4rx!x2D6LH7d};Ekd<1}aEDvpWdp0D9*bhLfXkkOnf$z}4Gc_r z4b!sM)$qEkSlFQz^>XPd$h&&Dt*xQpO&;r^TeND+#48}-8A}M;&*Y zjSQmEHu-l#x}~&M^yrXm;7j+L ziU+uaGo5lT`!grR$wxaT&XHvPc+in0OW@19TfDgs%;ubsbYOD~O=!>Rz9!@-@Nv5E zl%MYpu1>jg$vEWPl*S!x%x{Y2r%sq;*MG#{gK5EihXv}kXJnVvv;2%_VY)FPR#DUN zfUunBBzLRJrYVh|jeGv~q)WYyJ)OjobKl`!_|~sG1sDui7&zI5gxQ%qE6)_iv5PX> zeH2_$^TjfrN%e{oGvAXozwCs+TIKs2pR8B3SK(x3Pjcj0q}Qo`%)?X%sU?^<{3zPhHsKNi1hXE_TQ_ zOQn@mtX5`PAi@;E;HXqN#og=)6Vs1FE^Z18nmaCamP}MVl;Y_f&BrpiG>AvP_NG7r z*JWj?lpej6uAU4LpJuG}S(aF^Qs{$$K(wLCvR`K;Pv>2m)K@0LASb(X|B)G!_*R50 zb-!@^RN|pY3Y-qltk{{(O^qp5IR7WrK)21WkaIyl^Uq|3n;aKAyh;{{m~utkGYB+4 z^nasb(VT|Nn)J22i~RcKZh}re6ljq#GMACyP-bapZv5fEu!i{n=NSfOZVd-UV`)Ac z+ZPkNvxJt+5qTL{p}@dwu~6vYofP4dne!x>8m3KQV)zo|BH%EiU*X3Y|AJF)0yZ26 z_-ZaRMzS-ua0kCBR`;N_NI`fMy7@Zx@Ye` z^YUesxN5-cI**~_mW#^Et!vVKvzd7gUt6|n!W^bQuWrBcnsoBh)%DX$byAX(t{gLa zx=Q%sD=onp=Ovo1DKA?4CVs0XLyy$bjjdB(bLg1eo;1&7DN{tIYk&8hCtBr3DICqk zbGc7-UT|Ref4n>6xf;_hkv`*oQ^iIfHm0`E63f^m6kbHID>av@I>eqxWaPdl9ILe} zbk~)uPty1=GYX`%u_<>ncFn1>{cO_9!z6IfAx6EWGa+&HhOes_Lz+CbTk{kyug&w7 z>SmbH=E0y_@U*%2QfR-6gqtv%L*4h=_YbF7EaSb%-0m54_UMYRIoFh)cZi2PS{8C+ z-|epjzA>K@1*1I~RF@g5TUrZTm18}~l~&MkRs2ckog0>__de!5_nsh{zvHl7TxYpH zW86o*@-r!Vn`hcGwTP^UJUj10$5iE48bM|*L7}Np{mC9d{T4mk3?A8Yi-Y4BK3pnh z@K_%;siBc`O+%H@-~UVgHF(8yS06dy@7p6<=g|6{BO$YFU18-MuLlY`!3>;vCzvI8 z8q|gTRM(wmVvXa?<`QXC$lqr$jeXJ6HjT$e4Rvx2lW)I@I9zp&cW22m!^1BZKbfVl z`A-O+X&+YtQong`6aqzs%y?CE1vR%7VW0u!GZ){L5 zoiyiw!VH1EhbLU$(_&`AFyT~E(+l%`EP=U)D&M?3>Y=b#L$xFK$At-E71pbciaGGI z8L==Xlqzg1{JuN6+p5w$#YErW)XD$1SG{li@@>QZzu(t;I+Yw=6T_e@fBF*VrKf=m0X zHVC}_QV=EcSkPw2L;n6B#$BR8LZt@|&nkOW6#T1-*|L%0Rf0%Qa08pLM9v!~+l((| znI^BdWy;FfPBat=SMAQPUMkHzC;qI@D#sZ+8RiIhF|HA0IIviK_nXM_^{Z+XdIcIj zMf_i}Y{k7DEDuwsJXc}ZwpjK^h3>zP$Ax|$vZzDYdS7*l-{p^t&C~aDdEW1y%<@m$vflTF{eQvR+dVFB&oW(DIp=w0=kf;b z6AcYcmP`|TYYgntuCO;fHa}s=acgQ3uc7hHCxW&L41X5+JZ7zW9-0x`6w+oYAl4wM zk{+kIz}laskyo)%>P1=WL~C9{X4Y#0e-&#v601!&*dDv+A=JR=WFpYll(p)a*I{?( zmx^w0l9-Jo8ijXwGch!WP4Q$dWSh#&;#(o&^TR2iLNwUIeAnh?wls-j7ky$S7~^L| z#F&finbLa4E!Y2tRceOQ`@mL~hs{Sy%YLcXXa%ySXo#m}u6zE(DF{L zt?{}*>x}kxk5-e6R(*+P=7Vi458DbnI^`vr{$FWW-qE#^~+9)$Va?jd5q-~R^u69;B*!^P$<{({?8}s9;)eUEB>G2@^X@cWXIJTlVvg`{z$O? z>u%?xC}_uXNpAe(?d!n+d584sCKo3alGHqA4TXEEe( zepY>Xxe(t1rsIZ;x*z=Nif4UzR4l46Ye}VQT9Wh!#quT#!NZxVM=b?TtekVkQ(#@C z%*L4#TMFj-Oq#onsjgdb?&8Q<-I9F_4D)7goO3o(qOnqbHH+Ncr^FcOTn+5lHW6D{r)M)9W|Gwah`zE0(Zli zQ-4lZ?^>k6#S%M#k-f!DSCGASQX1%j<7VmralkVqMXiwW7Ui1+T^m zCWjTBuU7PPt(>ULXnR0fMPTLhu9Y)at?V&gId#{{`CO|Oc1eUzkYronv8e0+s+Fr& z&GuR~BXQMguGJf7tt>NOab+mp)U|r&s@3(LtGDf1y`O8%L9I21z1AGfT64T>&B;}3 zPM=zH_SKs6Tx&0Ct-b8E_G;GJ>s@Pau3CHh)Y`kR*52n@_fTuyW3P2jv(`QDTK96* zy4R=Hy?wRrJ=gk=TI)Z1t^b;}{(IN@pR3mYKDGX?6vO{0;r~($KSbH9qBayJ%w$pA zz*5MpqTs>Iu(A8{27c*{avL{v8ZxOYSU%HgV_)G$w}~t&35?wrH?lBpWZqyQe_LJA zdeh1ioBncb{=90F825%-(XxZ}@c$NO!>tFG3;FF9vW?!@7PvJ+WJ^%=<~pO!o~Eryv+Gl(H)l$(i{)m> z@fNx~mDyKedvP}dqx80@?oD$amih*75q`K$d*YS}2e)~Z#RTr&ocMZs$8I6f3oKUM zd5_aKMMq0CYv+cn-eG-f$3*8HlMe3a`(2jBz3bkoZS~&qu?3qdvqfyYw@lKOtiCN! zD=pdhTVl%Wl2fTWR06jy=`M-fy=#T_>6mTeEk%&+eMdt#M3x*GcYG#f`g}y!Ui+ zZ!mtnCzpGVsbTE0>Rl>~8%r-TN1qmEFko;fWQ{wpi}|8Z`l~(Xxh3K!3O6#UJkZ|v zKT#77FtQZoV9Cly^ZeX@dyE z92Ua@&PxlnxEnIu`5kYkxbN)jeWuw0cF|j!0|jIl53t|a=kROqLurvu)`D>xIye&&qW}kcEUJdTu%!Ulp7#TR6bXOD}W7;6~`L$Zn^P?;q)wq?E zO@#D9hD8qQ=jo`L33W}SQ@{1%Sn`S+>Nr?zL`krTH$!1gc=KU{MpE(_K z{#(xGW#0QgTQgKR>zrU_h+C|=@3*;L@$~wh^9&8f+>f=b4KExEx}dt))YbX?&oc*Z z9nxheD0X6IC`~qrTd+axvCai0-OAe+7G5;xl0I&puC?M2fCWdJ4jo%d0)o+I; zuZdbE>$K)==j<>?IZ=lPfg7(gZ#>Amo9D~{AqJTa3#l)j0@I(`Fa7)fw&WYL4c2#0 zD?9BrzR%a5^>dlkvtHL9#7IC-x^I!{_Ix8I?) zSEraT$SY)=z3$DnwOdqf&kk!(HSb4fH6Q-930=10!j5b?6?NMpwTJs&`|?;zKfQfE z^vk{A-?~q-Jp^WZm>%?)EFDmL`%(5&ziW551luyCFfcP1G5ooqWcT~-8tHrfeEanC z;x3p7?p|@PQoG(sZ>LuE#?My-rZ$}Y^3mtKw(sx1#YX4+0{;2s`3V%nJ=mtUhgH;< zy;XvzZ;wFVi`vNO+SEwL+KrdEZ$`)L)t-2z;sNLMzLz`>TW7XDkE)GgXi%wRXNY|M z|3%mATQ(nGPBIOfa`eSRwVPZrq06JW7y?4O{i1jUBfOXHeJktl%(rJ3<3{~fW@ z-ojwZt--dYJLkN6a!xiV$WAa&fJuOxS>KEyra=1dnfpF(pH6-K(uwJnm%Eg)O?FiI zvmVYn2aOL$o_QCxwAi>N@=IWZtM{v0eg21Xqj*Xb*IX4irg%&9lbjdJYTSq8*IFW{m2Zb*Kc#*@^-%dcjIke zg0YO$myJnr=d+jZW(@0p-}%GD=b8ZbxA!Uwqh$FR%Voq|1g=C;YRj1vHtwBd)rjbfBbVSXHVM?ZKRdR6*C~c?m({-A`1H$C{&#H5<{2R@(cSVn`hV4L=ltILwwV9VVzpmk z|DV^W@2QFZ*BbYs(f-HR^$nHF|3B*H|JZx}zq{hk3H$=gEPMsJM}e-G3uD6LBT5VoVt$U;{wn?d=H}M?=lAaJ{^rIMvS9754NFdbT6pn# z=zSXoUdGrPQoIfB2Y8p83+~>+S-dce+2T~wvI}<1YZn-@d|+Juch0Bv3qBm%t*QIX z=R6NXigpGYV}Le?1LNK=KBuPEEIDCj%r=|joW%UaLh4rPQXll6e~8Jv z@LsC)OQ47H)RG`C?X6#ee7ILV5@F8Q3)cki)ye0lh%FamztE-4u!qTeai@*|gZs0%-qJABDxWpm6gp!$ zdN_F&Tx4XFnxW7q#6Dru+W$SSW|0hewFV8b)w(aj8CrB#v@Bw|^dQcN)v5dr=Vg_v zOZXHHeK_7!b-F?+!Pf3`qRCg5O$(;6R#cvMm}_0Re5Uz2Nh?=NDXZXRv&(*Eu2?*+ zDr;5wE(T^shX)5aRYN)+tp9vSFZ9iq6MpM0CO*hsz_#rs+X2?eYywUV|2d{PI5Ar< zy0GAQ*ZG6>yWcB;Te`Vs?Yj=K=x@gk>>SP0Z zOF=p}W7LliSqw(+f4%PX5O8D@Ip(0i!#L$ffP%h6xlGZ?_NOac88)?q$1xm9aBR@w zb6C{MDR-dUa_7r!()oM;KFvShaMk-gI|Iv$g$fQVKMt%At~01#X>jI$Vt!vqz0If2 zoUhi`8E=TpDLCBz;{z|F+JS`}@*5gTRHYr>NqygUZ>3I-U#81<)&*3ai|n%ZR8mh-x_AEoNzu zZsy6TC?%&xjVwsl>rZdPt}^qps6+jl?B&9D6({eUfe$6?jH!rtnb zCu-q4Pp9S;&;1?q!YzE)<)wM0YpY}5q=oOk{WPz9@9)?TZQ*+!tL9gpt&aP$EPU_l z)coqZzvF%!3*Yy7X@0GEHM5X|Vn=9)bA97Uk3N+~7BPnvfm4ecbyX_3Js+)V;Cv(d z=f(G>3mi8zv{f|>c+9iXv)=70A{=a}pN5-GQd&Z6BvkokrmUP9E$KlgrD;}AbArH>p zmn`ZN@_Mdfo_pHw9q*Loi_X+GXvXF`%c^7bUL z6(4+kswj_d!P}UZuEA^1$Am3j$r_v4C$Ou1blRp&CRYC?pwXq_;0q?≶A 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 z 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

o|I;? zu<%)9$Fq(o*K0bT1Vv?DP7H}GQP7;?z#Lc2ZX)?Zkfk75f?b7!)s{`o zYn;&8@T~3%+&9JPQ78yRXa^{T)v($iDOMljM2#FtEq(4i=cF>*h1kl4n$T}xf>UKKPdQaI2$Ien#$&L$U~N`W2U z`B_=#+Wwf{@pW#1#XN~qMR6Gda}Or)9-J}txwU6wB6Ekn@-o5OGo}_UjbF5KKKmrC zA5RnB9PyoBm|`+STTR9>->XrOaISOzN$H6TjkP8 zT%}jjs*DfjXs55VUA}Vit(Eh%gx*fmyL5cz{HRsSX0_Cs)-JIsUauszwrbS|snwgb zX2yxDSXiyzF>CcMtFnpAi*^sTldgVmRFK}JWW7lxdXrl9CXLyfw03XOxxGp6_a+1B z%|_OnO`>$0x$$E=R^cJ`3EgrMCc-B2o%lIohjIc2+3}rfz%EcrVjqc1pF#qh95g!q=y4&tEN3 zy?f4uZvOup>n_X|d~sdynsz;p<6a)ceTmU^-^zunrtg06d-dfB zLUj@@)xR6m4=v^3oOu1|^aIQ-PB)A-y#!WR?~J<{r+KqK(an+bjNmk*w7ubaqCpeq zZ<}YeN20 z1Ra635fKW4-Re4XwraF5jPz?hGL!#h>fxiijFRn3Z^tk1NQ$g!ED4>ooqLzG=qV+s zolK5qL4}H2NUH4esC}GjUarUUU(evQ* zuht~IxzqFS%-J_w?l+CJb2~*>%J@q)%G}J%IIOdaC2?|KjbQklU9C3a?#>+yo!-xP z2+H~<{R$Df-M)8=)42$rfDf1VXh+#s1x}Dt6;+fqj{NW3)${6fXqKQL+hvF5%au0k zv>Tab$sE_5o31A%nvykT@iUo!*VQ+Q_TCfH6hC|V=2y47mIv)xluBovPU4YJUvWrM zH(Z|4qv7#t-iwp%SDv$UzNQpAlgsU5#^2C(lR1ljF420nfBhXr5#Q^wix~A5On#Ro znA&j3WpDX**VPLw1#4HT%{v(q^!992jYUc2mC_Y*MqM{zV>PyW+3zWte5P}DK!?EO zwGm0WvdKAFOG@11EyHHtT~=!Ax$f_+r8)wfa~G&JPx<`Hw(x_d#KbdGVz0F8YD5Yy zW&9Bo`$uri%`?4oC(JOpy4t#ivFobR&2w8k?w)yRp`m*E|FcQ^xUSm$cNNe~ox9vO zRIc`_VQyfn)Lq?Q=gV%IT86E7o8>%T=H`Ui^X+2=u5&V^%Cy&6CX0W$!SgY^@u*;x z>1{T~8_R0~T6<3y&hb37=I#&Mdt#4g3VGdfyd$u(>iEXq$@_D5&8xk>_NdpH(EY3D zoXh%qZ$inw$G5hx;kjd4IB(j_d;DC2qJ9_dTeu&2elnA;T2kV?t2tTQ*Gr$z`Hr*HBOb%6X>y`A+kEo)jHGq8 zN&YvyqH{{1$Mdu#kM>jPl^cw1?UFX+xOUUtO-MZW#f{zbg>9@8e*xD^Id%N>k%9^linWr1s6yFMmiDqgY zeE3c~&-+#Bqgh`Q-+jIDR>9{UyWa9N$}Fi*blj4BcS_z$Myt1eo7;9CAsZ2xA-eQQMJYvRlAuoT>pt^X9Y@$EOa zw{Kpk&+h$Xpf9rS|B3?R^`(2IK3mNHY_!GKU&HFZM$G>jwf}3({jYKVzb43kOS1o#68|l&{#(ZUZ&~}l z<=p?4_y1dg{P!aJ?Q1s|9j2-?{)vbH^~2Jvj5Q%|D&z`N5}jhUHgCZ z-2c({|HlORpOfr=PKp0Ht^VhX`9Ejv|2gOW&w272zS~SYqqlO-s+Cv2{|uA*wNiWc z<-nS`-3R{tlbzW2>-CCX8}xUUSm#ds@ym7YbyK6?Tk6Y=mh5A5{A2X7^QixadFupE z+~0flqM%x?*hP7vbF26AEquh6_{Uz$KJ~w$)AI8I2jur2lrOdGxj*Zqztg#JxtPY+ z{o<}7N|J_$Ee-|fy_nq4b%^KVYu3a=$9|?r?GRunWIEu`#L6qBGNB;BiHV(CtAwK= z(WQ&+u}4kDhC>JW_!YhWSQI>VVUQKn55^RKt`ZJ zuOqJnr=MD6J*ESbCn_+yv4si*L>I0;n92VA z6w8HgxiOu!f26McoStxhVb^n^D~8jQ?kZVaQ>yVy_CMx$!4jj+_h_e-sp zz1Da5?ZkK!OYP5 z>)vC1b&=4TwTc`vS&w#eb3Zww$Hh2fqMA_DmI-R2RlCk9yk%Quc${-;%o+uW=8_k# zA2=Ku_0^+&guH~eKiTB1zn{g}XNl0QT-Wana}0JJkJ;U)IxSDf-;rr!u>gbH1(gCH z8TOz9TiWipTs}7WRLUefr~mm&0(_rFOlVs2K%^?z$5VajmLP9^*Dg+9)1?`~e!M~& z9yX!Urpp2zrW6=)y<6>R;`o_oeaNc_-yDC2Uo{z5=f|-=xMJh_x%8|hH&HPR&i;xyZ`YhfncP&Q{6c%~??IgE0rW)20dRsVi1-E{ok zubVrT_x9e(i5L6x^1Qo!?bqw+_a84inQveB^ZD}qb-&-o3)TPq{(OJ^|Nryny=Jg* zU=q8~!0w{Z**3+2&Fn%We@g<3s)Zw0*o7wXBMEG#I~@P>m0f6-XG!F6wQv%ecA-Vx zC6Oz1hm+X03$6Msi9D$m&QjMdw3#1CA*ze)9Ci<0D>d|?EM|gvB79{VGa5bu1sW_1{?!YtVbsrNA)80rf z?ko||&vE6iD~t({{OU1#?-Z{7tG6WO@BXm(`e&j`iOP~E?>OY0-(8&8uY7=szo}oP zu1DkKMLA!#pNk!s8YXQ}JfOhM)Hn6x8TAt%IMoB2P1+X(nVp$A(=TM@0{>%2rpE13 zbCrB|^2 zQ~K$y?>=?E_yQ~?mw&X`bbjNU$qVltNo$puw7aeD$joUvX^iigc7OZB${+H`H-*DX z{)o+zB`nRH?%YmNA-pMzEreFi<6`n-Xh_qaepC8ML#F6Ko+oLOEPWm0W*u!@up;Sz zWY5VnqE{A5gf6$v74?~)HEY*{lod?EG6_{&;yZJ`E)U`L_c4qTo|CpLVduwHTUL2Z zSiNnn=Zd86=$c&*@z|Gf72 zzqM#}ywvR=4%@P_9Az!h^IWQ@xt`9~pZUhgsao#Tv};NJ!K*TOgN!dZm962B%*}fL zYroqw!MKfAGK&RP%G}*I&2QOVoeSSy>0Md&&3>ASL;F0bJ0-H;dslkrY5u%*>Fy== z?T4RUIJ96&=meDxJC+Z6a~4@of4y&8-pvxeiixXZz8D1Wd1d-Ohc_bnkk)2}xqEdS zJ3J>l2fBOhyDC;^7_D*GZi$yWub$h68LGeeDzZ=3^k`f?`ru{A^tJE4_OI3PPF$fj z!|Kk|zj}`L*u+ zNV<7A_f&eF;hvP|Z)O}bnm2vE6 zlMSO&BJcj%xh(DD@vhuAO=qgEvgd4-`mg%ph@gXj;m2=&S-CRV`qECWYUjd2uDmYn zUbVw1Y|Bc2Tf?;1w-qkG`M%-*-Z|M1oMtI}7R#TpoF&_;o@Z}Y+>V2Rz3&R@XJ_rO z6<#D!Cm@>mM|JPvle?s=-XGsENkPthi{B!#CGuY^};{41{GmiXuc-qbXqPO4t`Q=r53fq75e3h1;k)mgm z!luihvEZfl@w}BMt-jqqiC z1PpfneK(=oZ2M$Cfr{t3&PlN2-mBx6;Jl&x?g^;{ongkdyaRFRyFCr?Y!TQ}_1}-D{aavD|F8Iy-QVx~>;8P-&+x{YQRTqN$o))b6wf;!V4Wkyn&Qws zc?tWJ11CBUaBexkedGYol>@v_4)A?Bz|V3}K;)pH%0VHMgTgKcMM4gWrW_P2IVj$8 zP-4nK$t4G+wj7i`a!}@qqf(aCyxRxmSq_CNbG9k8`eygu;#&H=a`VBWY0N3S>O6;p zub2i&I^3RMu&CkCuT`71t{mz)c}Srr;?mTqxrI3M%+5cZbhjst#F%UTr z^J>MfMN4*Ac1Z|Nv)ZEizk$K}&f!F-89tX(W`0`Y6~(pe@L?MfCVLeQw>zCKXE+_- za4ysCh_&KKnQ&xIgUe!vBW5j!MT;E%yjHueEp^$`?y{tD^z1#2+{P~?WZy{JX9o3T zHF0>A9A)M_I+e3`+Qj81$>u!=t!AEfZDL?N!@J@HXC9Asp0T8P)Sj6F z?hFN5Ox`w8imlsja4i?INZfgR;|upnAA<%Jp;^0+?bh1()xqg}(e9@m(?8DO`~T*l&Dta*T)3FTST<{moWercc;)$IJ7R zmEnw>qtkVEWLaCc_UJQd=$~b3j^;XPws_z5*LJ&ZuX!!u#iD(()gpY_!z$thU-+t=O)kWEZQgzE z@tqTQQzVO8PQSe4rhC!5Z_jC6Vc$1Be&O6U&uWyOyI8&O@jsg)@v3Fpn?Kt>u}q!+ z#BV{3xk4hN_>1OxiQbyuzDMS8w#@dQd*b-amL1o3Z~T~j_RbXDA0_8`H(gk|##5=f zbJc3m=oA~SwH?!&ch7iX`I{l|EsNITo1FLG_{?HBZ*-m|jY zGaozMj&ZD*Y2>;)=avZ}T0b-t_58i@laHH7vtZAkeorYwoq2tJiX$Ud#J>EuZyz zf#~%@)$2v3*Na`RmxNv~O}$=LdcC~$dd1Z1l}oQzZN07#bSb})<3`SsNLN2Mt0gx+ zT(ACny5{TTges@l+-Z$R&nv6kXg9r)Kc)A-e$JtW)QRn?H`YcR`Bu^0#Nb(Gb4gbA z$dVgJW^+W&-*6=ClmDU}PPQc-@vDNHCme3Hh-}gAm~`|;>DlXnC9X|QMjthfKG~ts zeBn}<<6H;HV|qoV5jGuJO;U4T+|X>Dd~2mP$Iayj&O}zUb~Y~QT@mXUB{}I)3CFaq zWrsD+*86g$#A=oJ7|h_fJwHM7@s8termHg&S2g}<->-3%>+G$nyOC!2_?>)xyQ=oomk&`ImpSJs#Z0~9Aurm+Tgq{i z)$Dxjoim~r?*!dxd|E-tdaWcYU+ZyuKjKbfe>v(&Q_J#uIJtEOR)M5p(DD*?T4v z&&VG=)cNDGUQ1l%)O*)g+-3CX*zJ9YRn{O(*YiLs*O8KIYP;`Ec)We)uEqc6&b^;= zzoIt&`ifYa#pm1?uY2INeY0rn;tgS~oBb~>@wq*#^E#_nn{9%W&x30#?l#zXb8+gQ zXk=hIapuVzGo7mmAD(uK#3k;xNZil$z&kc_|8JQOTki1Zg}?9V113`p(Eo6Bkp74y%R9)}qP9 zs>wf8JC(NZXNzcv=3R+j({V9)mi%JbMJu8gi{4*cF!hz?%yYGu*N>(SnBVUx(q4u{O6v=yUCkPk&kD4mejW(uumq*>{)8r z021$4rajAC_AG1Lv+QHfa;`ngefBKx+p~PO=LKTV3)P+%nLRIddtMUuyfp4w z{ypw>@x>DTmSE7J7^ zGor%w|8FwO;Bm^B#gY7X(_F_ci>b;TK0U$rQV&hpd*s#v7mpUsiE^D|~?#NE}om2v%)$Kkh+Omj~-sB!d{a7^eqzl+7R z!cPD1*SKF-+?q~!|8KwGaXwCd*E6Txd=`~*5_4 z*{oMLFGBolH=khi{V=Bs^AaAd>$v;WXP(39R#*xF`K4pgQuVl}8 zc`?WC|+sZbj(Ba!)L~K-{!>MQk%9}>#f}5^Y+XJOPzO{ zth8x}n<&!59_fl>Fu+i7NU?Ov=`7X@`*;QIaH?W72m@B#y&l055TlX^MTK7KQHHD$X_ z13!`W1tncCzOcq$ToP$D^I}2p?u@36z-4=Oo>RGGdoobA_Yt4#?T!@>1k8fEb_6cv zh!0LI^xU6rqn2<>1=@4%D3poME9Rl!hcRR=So&>IFrUTy}feU@}DA2VP-$)B&`2A_rF3; zFYo;4KNpDqTB!bOk@>I1?!T6V|5}>4?g~D?edKF z7tG6abL_UrtW*De@TPWl`G+G9E}Lro-qwGj>Bp}t+j2igRR27XzWw{l9a0=6|1;uN z>CODsx68eEnyHKJ@!v&dubiSd7&w`kek@w6aerEZZinTE0;cNPU)>8^9~}|zG;8>=oW)}wVtatmb!OIoLGCK`TuVIza^m}i_1=& zRZLlN>AZYDXV;TYVVr9(wso%Wzkk<0{rM>ihJ2^xSjbkKeKW$ zF|hH4C`?dbU}7=ZQPB87@kob|deEATk4ndSq|A%ny!fbmVuF(UB%RDpDyODsg~Ly} zO0)5pyx6zH%-`jV=Y@3l`D}%+-u(Qm9MEFZZ71?-azl3}XMWJytgl+v)Q0lI3c3RC1Z-Q43GQbFw?c^bRfLD86R;`n&#v1F(~>lJ?i`yylxd zMf1cq=|;7wr>8x-yO&?oVcYB<#xE``a-Xc1`^zNjOqaS<-mY!Vt~IMZ>%EI?YfZa0 z$M)M&pUTg{dsem!>*xKk`1ItI{q<|ND)d<&vUJapTn6@K(7pUGU37(@80Rcw1&SezN?b z&?4w%q1Y-KcZ4ljEDLhdm12jY)UgE}s7Ew8E)9YVEshP+R~Z8w zBb#qsebKPY>GbXG4uJ;Km+y|6qPOEgS_oqwd*$m{yT7=F1#kZO>hxmYa*yv9gjlvL znCqgYV6q3rMbUEbn39Uf{{d-*e%Z$W)zs|KsG| z?>0K^bL&Zy)U1EmulFt&VtHT3b?MICH7sXePu~AXsO0$KS7m8J7u>e*F}bWLccjf> zZELy7RjZR~#;1&>*9L55Q5M;9E>xJItXy-Ux#^+miM10i`R@MvtpPglMBdOtXz_3XD@2Yhvm z8N-c(Owum9-QJP*abDeIr{cwZU*mqR>=WP)TI09-?bon<*6#}!?+tm}eRW#GqXqeX z;%QG__D=g`R?SjVe|Y_Eo7*f0x~6^Io4x;U<~Q9vpFci)eJ0j7{~%vO>JzK}inAV- zx_>_%U3}K||KG3j&us5Ks;@WsdBQyI`LfVbo?+` zWaS;c8izMA2TI&0FtxVWC9yDwpTA+I`)OIAgXiOzS7BC$$GinHFZ9W-U2)u2j@>!> zppwTQ2`NXvmI*aBDoT4@7P%O0n%K96OF>@qq^H-W?kRgz)Qmd?6*D(Yp7%#Z!&&oG z;G|7cmf5Ik1+P36x@ptYb^mKrb&^3RU2U4SZI7y6@ygS&pEgYgopjZ#c_vXvShM%j z)XPpk6lbTbHkkND{`E8u2_}!ts;iThdClt-%2nIk@%ktG@fAnTKJ1y?kbKe6()*IM z2bX~6RUYnL_jXS5S@>C%z2u~ocgxX|ZT{NX-k0)sX^Pb;@f!SG!u9f$hW~~KY(b%( z(`~KUCpUA2%uP|u5NJ<6wDHFitJ1(}-0Vy(GaF1)xTkVhBy11tn^L0Oz|3cbm_8kU9hfY)zgzJ z{oEgiG$oiSg*{#A)y_I;z1p^|yA4PN(w0y6&|zey!f^b6sLz)RT2V(kEg>zZ#!lQr-ON zP`9eB_KJBCpVX(E)d=1d5wX?j$fnuax?9rP1uil%w9V_5NoSlHec_YnHq)0%AK9YU zZ+Wq9%Oq9Z6w60ZAC7wGcP-5+PM#j~#AusUi>tUxQret)o26mlZ#=J;Oxt)c?W1B* zOvJw}t_>fXTvDVxo&7A@?%uRuX%H8F@9fv+&@$({-q)=&VlPM~eD{63pJ7LSeQWaM z0xn-`uEV#hESch4PE1#NH&^KZ3)}QI+ciq!Y>6$~|8p|%Is2$Htvk_jS~_6&2Jyqp zKR1Y9e*Gv=@y$U+o{er_UT@Vu#Z}9o*WLJjx3SFSGsoJldUUY|C2sw8W8X7HBZiWi zlqQuKnvQY>!G1a7DO$&Cgs$9jzNWU-_Kbv*cdW$46_>)Sy4o8{eT$nTXA78Tb1ho4 zaPz-oJ`Xg%v!9cS{A|0l!essfow~E0Qu#ZUo^iTfsod~y`ux*9_imdBuDf~X{Y9nR zz*}Ef&f9-9nRQ;w-u?a5^JR>tiyps8I;;33y)T>5ZM%_GpHfOmlY{IHz0=~B^**}) zL%y!K8MEsHTYpaL?e+N`v6%wzLT|3uJ-@E;udt}wZq5B}4>D78GXC>)&#Fy+e8NQI z)Rox44_mLBO;}N>bFpJn+pVK+tBfjr)+WmTynWei?%d?`SB#d@>%MI(;l6x&D`Vd* z3zi@3?(nrSEUqT>SneyP~E1{B4^1GE?2E zUYxo2F=~nCgx=@+S0{2)K4GEKK1L*sr~gm>U++|4ON$-vTOXZ*l*u0 z`p?3j9Nv9jF#pHPs^E`jmYN*>srl|-;J%!X!QW5)){0*8e)ogVsyj+P|10|VG1g{g zdu>+I+E>d1_?5EjjUMS`Prp~*vQb?9;oX_r-(A^0_jVQgpL?9&em^&#SYe@(;Meos z_pSLXg*(UZ39j!~$jN38W)Zf}Vztk>;2rp7lCteb!T=jgZ|<4}mMdlM`N*@D$-T(sy~P?Q zA{CIXa@S#p!}it|HWLw1w-!;m*xefxB>0ZpU7`@+z`%G%iiM9wnt@T^%2bha_a*Zd z$OtjW-b;|vJ0otIu)#6$>(Y3Bv-_L2K2+{v<9;b8sLCR@Z;sfa=@VA6Deqd?xS}zE z^R`MFOGxH1FF^-BXVkHqZ~StY|#3Ma6=ieAm?@3^p4 zKWU+M9E;wrHvU_&dRg7;RF2-A^C;xU!nmFOx|`-J%}Tmuvsm$2Vu38Hshf)t(_<0d zhb|tA)0aHbl1p@wQFhwlP&)HJ+w@Fvt7)Pxb0XqH!~+a&2>8l11^8d!WvRU3vTDZS z&%7=onjD)xC`(RC7S@w?UUgT$DZnvl@va+39L!i9+630!n7<K_v-_m))zRo-T zL9?pTltVTw_GL%KYTMuYrbHe|Za*uyyF|fp#=>=i*VQk1%Pf_3-5^-{QbDpeUel>N z;jEIBo0wVGQul(?8*}{PCoJ7t6DP5-Tl(!(rze8n=1lwjMAdc9Q}+`~_y4?h@2%=B z)gW6}TDqk|$+?OGC7U4OVXDl<0C)ni$vV1r#8 zOX8+uGZQCCeNYUSxD=}MwE9Sz?^ceeI+i>ocJ3JuGcGKv{_-r0W4WzffT8FyrL~ue ziZ}!W8m3JRD&96NS1ny~Z&0aJo64d~Nd}FjTx>~QK^1lCnLX;2Tx{xFgR15&FI=Nu zy-&U7*z%fl>b2LF*WOdFd$zppoqGMZ<@Nv68`xGf@M$!Pt!R|fXi{6zq?S>_$S{55 zIm6Bq;lDigDIN~MNW9#Fvi7q~CU1qi&nRBaUwwufRsFt}wNBl3g2Y6nc%6DX;)gynK zS8gh+76u)e&vvzxX>Lu3cZuG-#Ty>mGC4#)J*M$*T8yjsydWP_v&EiCnnA15)(9QR zQgji@W!YoXk{imxa8NU*>FKMZagv&1zh%R-Ll@_N3CmKto~E|?&C+LC)3_tfWyOf{ zK6i{RWEJ~nA?DYUmgjRXU2b*KxoNA8#cjy*-dVR=;^H(;Q;qm{|I@N|dau<}Ufs94 z&ZKt0_o^r@+ z{CT5s=G|Wx&jhbisc(2Q*-)qJXgIS~PMg&lhY2%W6?C&4XSy1$J(6;>S~6F_>8+U3 zTXU^P6T4bD#58vweBjU_SwBH?uTsm>zO|}$QrV5Od}O3nIWF_qkUOO;p#R*06^2qP zcWJ#n`u6&QCyHkGGFlhjnzy!xD=(Kb_2#wQ->s3&7vA#iQuy)WEd%SUWu@(lD*y97 zZPG2$N}ligLh4oukKYM~S?z0UU%X86UFVzP%;&QH>yfRA8V4sTePelZo9+Id)Yjc+ zQ(KD^_uP}8@$sE9-<<7|(iga5-Z9Nv|1;~P+Ij=6gf_0H?|wzUd9-ec-25A1>t2WE zAB~;&FlznIPA%a}@log44>4w!nq5D1mF@1vyAD1H=>>O>3LUvdf-s9;YW|bYuS|LDHm?art>i`-p#}i zt@Y-%Yyb8~|5@%VL88J$#8{J@x~U$4&-|LCvPaaQ~LWshEHs~f4QZ#H{e_(kNA>h0X9vWf5`R3SX37m+~)V%d#7ZYTNF~eN!w9N&4`| zWa76Y{`$wPjwd~D$h+J6+G3WNc9)Coy3H6y22RR4}<7pzPxMaw8fQ|Yj(!p*)nUp z;OzaCvu7-ybGxJZn&q84mh;|Q&i}r1{(s8_?7J55TP+mdwNTz_k@~Jh`c{k0cP+NJ zTH?NIiNDp-@LfyetG@3z6Ow=ZeA2Gv$IE|udAMAb3NLuSe7;qGdsR!%F9%1}Rr{-a ze#nH|zF3+ymE)q7fqqU?HR_3OI+GFI!2?Yo`WbCr_Ux*mB`%slhly8lU&|K2!VwbFOX zc1!0Yr~DGn>hYYB^LceP$M->Ui4eoO?%fB1w>)*bWUjQ1Rk3D!^jz)yg!~=47a}$r zH?yqa-E;JPk-ty=?U}oH)0bt7SnMxt-?-KE*krT4zB4~onK*v_e02LBg{Zkai%Y!1 z4Nm3USzUK_S^oCB*DjnpJ42M2;ZIS^n%y=RvkSbwYg?cH(`KH1MW@aB)R*kln^I~E zf2{fA+;MKQSnb9Bd;0fvKj=M3V)$$@-KI2s?hWa^SG7Ow$=-XQ*tVqqoy+Q9*Zpe> zFW=ko_?k(1%WP-c+rqnVU)~z^@rz-9(XWZ`-}%09UG(?XVt>o;dmk@-~lwo|p^DB>HKOeh1ec?9yeW$Izn|j*?+L^GH?GwNG?fH^#h0T9= zsXkfDwzN7vIOy2Um+yC`@EOk)pWCg?B_Mk%@u|O(R^-;nSwh>muQHdlE34IoxV(&J zIU#%```f;6(XCVU*{8+3em{RCY09f_)Bp2KtYn?F|JUol@^$-vTL*mDzyD8h|Ge}2 z|K7L%_k91q_xAt4@Bjbb-hn~DVnTvrGrOQ#$c_n#&h7k)Zc{8KCb@Qt8>U^^F)`V_ zU*54z#Bx%K=VbN3Wg$B!5p&X2X7FF-=rvA?gT^+tL?dq6$$}#KzY9%qo1s_$us$Dv>r$r>k zPf?b8(gg(;MJ+Z4d2{edS1lPf0^+|46d8o298@ZFZXH$lD<)N-tn0ogK(R#Ql8?d{ z4k05&WA>n81!eUv)`j0^t+{;8`Z>3sLgg-Fjy?bMJ~^Im6nntGIL4~#(}E`)pMn+! zEA(zrboIZ*#$a{dBtu$8@YeB#zLG`3iYDxbxEGat@Cm&d8u_|-fh3z$p@Qc7jguBJ za6DpGvMn~$QI26x`l9GA=rlz!fmO(C$qyALQ{{ANAydVpMX6VBWpDKLz1F&o)xoQK z!dJ6J52ifr@NPb0m|>H|Z}e?pacI-D1$i=`+7v7`H<_R9Tp|14<9ZGwUqr%bo~b+w z>shsSC^#-m64&%$Z7NnW@=Thh5X5R!`k>eHUBnsz`B&+?+pSuJQf5jyb_6}L^Qu($ zH*VUg*dlwVLW#}xT;%h)-BFbbCcDbbTsWEYl~}{1^i{5zOVc$o#JsWvPdx0JmS(l2 zPCbf6FFNJmPlV&{Mcv3G~eQ~oLhs~m+YdK!dnz1rtYU8pxjl4M>IUa@y2DfG} zDt)o#g2QIeNmo;D*hLjK?{oE#4`-VBvvYTWygr$F_DV{SFl1}QHU~}io zI`b@#^oe!KHM=%g$D_&*;{>fitK`J#XP->*0G@BjV&us{AE-jl8l zY%FbHV9;=u3@H#`@|nQk?Qnvb(Se~r19Z~W0%xlQ6WD}OS~zw#vuPVSE}ZhAS+`{2 z0jC)gEF@Z5SuG#3DKqs+F{QTae|gCNUgU85iVq6rM?ClootRXZCU*KBnIO=f;l%J@ zgVN;>p3I#y4ysyB?2ZlL6_Gr|)+%ABbU8zT`^XK!;+~Z5xRS@x_RMZ=Ium<@ZZ720 z*)iGd(8T`QoE{nNpyQo85*74zERz2(IP=7DhEEEK0vtv{N+(vm37j}}%aTY5&4aCX z61#*MogD2tnYcc*Oqy=;RCDK~lT88+?6X}Sx};eM@G>-r*lMb370&ctxgtoRcEJ)A z^-JswABxnrUwLXcu~Q^zn$V05G9KJtX82_KUDiBO<6*4Z)RYl5dDh)8%X}qfOki8| zpz*0rGiQ9|L_w}#^<9aIEc+z=E1QHn-3}!0k>(JjQ6hU z)tY@XbCHKi#??3Jdv9{2o_VV{ne}bvUXK2U3#M&dTlzM;^LglvbJMnM-TF4SaCY?F zchk1-{rWb)Q99-!-}D_vP2UwxoE`I2Z~D%&rSFOt?!GM~WVGvQ>U=(yRi3Z&%ByZJ zRV+XFdynv=X2l6E9YTj^$K88sJfHXA^XjY8_b=y8Y-LGkd9p`4{_lUjoK91lg=OER z6AmeEY-f4!M2mIKgH2yIaI&&(Xi~IE5IyvLx8OE|;~X|#-{WQ+W>PK?v6gw1U3)|E zr|8Gd=a=sb@e3c-T_;={ZX-~!YsRsPL+Z{u_k^(g$5BV-`|L~M)kiAAqt zVy(no)=W{*UC5yn){!wwsc7yO_YH!^JvV$5E_Icp+Vct?<7>IB>sji0VWN54hUWkI z+&2T81(qnxdCSdErTBFvuXkwK$rEcC8nj&*-fn4>*}X-eGO))%>2>=IDP@O8rW?L? zEluQY+042z+wn_`z!|G2w^=yN-Qs!$3_V?v**DJIW3wskvQ0|Kjeje5D@{t<=a#GT z``c>=AMfq6KP_IFFBub;A4&sH~iMJvY*ZWFtiA6!e=-Ep1gQEB6kJud^_mMz{< zRN8-MR^0ag)688&>;(45R@`~eQCU6rL-WJ<7R)#_fxCN z6dk8?JZ@Clz2<@6$En+EN}kHhd}{js)7=)I~ z`uFW+`IxG+{CpL=cD%x+^Z(9ox1S(b_5Zg%zrCZ$119Hb@xKqNH*l}T}+pjCA}`$P!ZLu+Ge2sL676$DvnSmPWPlcQja)n4{^#qemfzcVupa~x(#Xz zHgGkc`gqQ@h=(cS-y7w92Ff!0N?g6EY)Tgmls-!^@o*;b_#a|tUvyEdiErnG`cnom z8s{!?9pb&8s!-C*Z@uV_&Z4}E4Jtf_ihm|3Fc>ONIH#17R?wuvzkfN8veGjXCSlhk zLFGP0p@}Ls7Zpt=Dkq&)%*egwrh8qX<$BFoq4n*;{*6yET)6n1#I}EUqwwfG8y~u(#JUGF1f#>=URn~Ukn%*#ebI^wfeI@&Dqb^GS#!~BL(>DVM-S}y7#^KduvsS) z%qrLxsMwY3ZKV`5#Z^IENltQ+g5x4N)g*;tCJue44`z8v{|ucNK9y)R-d|>@(zQXE z*GNO5NI^kQQAJ3*C+}%Q-#fFSs;IYjT$I#$1w`ZzJ(K&W$;Gy=uXp(=A6TbwWS#ovOF3Q}H7-w7 zWP7W8agqX8u##7xrfl=u9eD~XE-3yARCtyrDc|&%X|tz6w%o<1I*bp@#S#qpo!+xO zGT>ZfthrYEagT|jQmkIn`xHG*A7M2ne?^Y9Bj`lk$uW3`rWGwe!)d_Iw>}E*oQP5Iwn(puXpSj1`HRFd%$i7=IoQ%J? zG&}+~T$Ni`PaI@2w@?JGXduuGaB9bo!i=k28~x{UM)7CVu`$dMlcg z_L``MrD?FM`Pn!5{bn-!@X2>}lJwJ%^j{__|E}mVTvk#G_E%&&SM*7N$yDXe8y%_A z_dZF1H5p$RSxK@u*0>ugTza4QA#9}1RC z3ULipd=j9ja`nC3qp+R4!S}mN?H8HHHU$Yf`R?5!xY zFLJL_F_H~a>?>64VTo9362+L1z6JUD*Z!Q|XgQ(%{5`ES~Rswu&-m0;H^cDS+mrm6j&ZQGFL6O+_l8_*OEZ1 zrJ+?zBX=#0{k1gFYFTR4vdmq}a(^u=v|3&`v-+gcB-P@=g-#`58H?7)zY5D41$tm8eG8e_1SFwHd zuH-JW-La^OGf^r(j0^uq7B#^{Li# zO0Gc{%2oe`JvLF@$hoLKz1m#Wsm7mm>uVOp&uC8;B#HE&$=?Oys|Pn zJ?d=FanrL+){4`@l$*B4y<4g@p*$dX`_4-BbtE#r8ic4%~Nz_CpEJ--QOm#fBi9~hzNz43PmOv2DUxQ2{-o5Oqn3~=+e5r zgW*b>c%3?bvN9A2E6tE#kg_xuwQ>Hhu;&p=rN$Ep#RnFBrcHgXcN|{NoGtw5aBb4z z)lb!r%u-Z~Ji7k*irhQxCn~h}oYG%;YVDp$b0lYNj#;>S&(Z@wPan1MzP@wT@t7t5UZ1gkwcu*aS<_u- zExXP>ytC*_})6`ny_}-qs|q(}+!4_x_jTtKDfIq_%J-ZBE>C>+GYObsLon1Vh-BHbft~DS0R@ z-|XYHl#NrR6;)&u)o$O}uXNQ%Z1aqQtC~rhIh*!~-i|pctLRd#D6~h>D_UX6-22m= zuKw>;O`5I1^u2&rX&GsZSB9z4VmV;|BLVcFM;w}A!T19=YM5=@HNr?TeAJv@5{gD z#;2y*e@~qM?d$Vzx$)mi=YRiv{Cl+gkK*_rAKQP#-v5y<|MRW;&+z#_XW#$%lKofV z|F4VeH57!+9c9bn5j!0ohv zfs5fcZxjEz1}>vhe;An>4m7fGOWAZ7EIic8BW+c~VYui>rwA(>M?-@HQxg}542Ob) zL!+L~f3_Ji8yvhFConmRWL#+UZk%c861u0;c=@@xHr2oWaGI>Ru+XJj%C^g7<)x)Q zv#n~mOjm`>d!`h3X2ydj4Sn*?+oS{>gjU5xD}0F1T=3Le*MCRK&c@U$S9X@XzO}d8 zeEq$>HNSuT<+j-H;2`_@tShHPmoWGCAs0{M<0gCj5~A;9&dSfcTe^2f4nw3K0G|4D0R+?;Xqh_SEb5+ z#mchW>55&^`}=Hne|vjpceQ)Pd*Zb#x*^Y!JF1-^8&3slR6BSup4&G-_H4qm{>2EYT%%CH3<3O`g zpGQ)s+PscO@!|^|93<3P6Byf+E`E#PVB`^SuGVXvk<@SZk0WJ*6I-PqD@#Rz5GTut z8(ut{DjS75oc%mgr-sFKF3lG|=x~5pbH#-wPKy&2N12RUE*+InEmcaLmbZ^HeNNH2 z%qyJ%9vKh_ra0RRA<4|dVSx-!{Yun z*Wwn>tK-UAvFKTO;L2sQq=HthT4$BDdfh&*>@`c~dcAgCeQ(yPHM`!O%3i#e-gx!Y}{qP4cIs`Ad;`D~uG z{Els1w>5XY+sB>1XY;DldAmQ|>(1X7!o~tVNLmPTkn|e{ZVB-qzl@VdLsouO9E-z12U!%gx0yB*-N_BPk@*FEGd_B_%F7 zC3fjUT@7uu#H3g)ZIz_tST9doEp6r4xCk8srR_U5MMsCm#D{KH=OKp8E9epLYgcx@ZCrus2m{@E3&;Zx?XnP0C ziLs2YL{uIG^tNGq`h%d(&o*{P0ckud$bqc*6rA)HSM%^LqpZvt2%xA zwWpuap1&aS&6{V}u3dQW@b-cQv%0!ku3R~{V&$TPhjwq?yp~}UkRAdY{}~uLWIQ%3 zIM~b~3_VDiWwXN^kBy6tc1sw84w7DcykEh&OU854l9Q7)f>*_y+_d!cbc5tmb38XM zJ3HH=_|=`0o0p%T@6gO8>$PRY#l;?zwPH_gS$TPRz+$htURzgPT^+GG>+Y$otFNz5 zINT-cy=~3S%^8`2GdnjwKfl1aTh4damY0`T1h0-eyKC#~>l>0!&-2~A z?d|Oy#jo$3-M#(&{R7S1@_u`Ee0+RjvUdErJv%=?zp&VQzTe(mUtizYoPGb?-re8d zKRDd|U*3P;o}ZszTwWc2e&62T-#P%-zQ4bJe13iZ{Qmv_|1+>@JZNAM%XrYp zp|;{d6OY-82h9R*8V_4U!ZIGVN~EoL*d|l<;$gc&o5rIKm1!A|IyIK9c+{n{?Zu;R zgJT+xdrYonJnpr4w&HQ0&9@hi`yJRcpGcyfSvsW(`PjJ(ExnxRM*2|?c(pJ4(HmB^>%jFB&v|g=P zGA--X$`#92y;`+q+pAZrHyrz~^?J>gYgwf-Od-wR=?ZzX4~s` zyFVP$e!u6-we0tMe>_|Le&3&Ouix)yVAuI@fJHp#!$A&pn`JIs=5Ib67I4@3ctj*T z=i^a{^fe!k$&|nOcwC`f=hF$5={cWHYAj##>6Fg)H=j-$9M}1L#^id==d%{i*L*%_ z^Zm`|^A7B~UoNwdiw5}y0@YDD_luh(MAd!KQ{wd;Pn zkup8^+s%ySYroyf+5Yz1?SkXF-|v)M&;5S4;`!R|_iDcXfBXG@1H0aj2QA`xKOT0d zulw<+$Nb%o#}nN3emW4Xb-!M%+5Ya= z>kY^Ce!tmrJ@5D19naVOez)iQyWj5*u;HT@WB&fn=L_!of4^J_ z&;R@NM*8}{-|m#Z|NH$xyZ*l)Pp0Sp`}tz|`daok0w(bj2iUAWGz#=AU{Uut$QAXWN#e``HuDn)`KmrN zEATAjaQ8SQH0wi)hR;H-@Dqo`c713y=vl~?aa6DBV|N12Vu|A($Bbru z?8)$1EOq_FF|%DCdkcCN%RKiuZguNpU&Wcla^FuJxBK<6zkz3o0=wr4C#g>pI((KW ziJv^-X7y>}gq|fT>YgXPqCQQUab}5{`N@-hRYf6hls*2)37u-(;;+u}CnaS?#gvd$ zpQi39Qq}1_bShGA`Lu0kmd-9%c{=V>=k$Gl`gKH&&Ll_$+Z?b_Gn#txOq$i_nHPGN znJo7_n-%qW){QgE%(kCAn^*OD_5+^f7RNo$70voQ=Y`L5tLrDvmF@aG_e0Neo9CYA zt8RUs_v6fRyYDCepRfD%c|HU03I}$n8NsuRW-f8baQ4y^XjW=jDAB0FpprE~H-x25 zB-GQ8^Vf{tqA!cJKWTWldtI7%X5kVI-<4jn8kd^3lq~%kl97?Zb$QmUFUu@qg?$%p zx;*FCm*oz;s{-1+t}K%Jy28VERnYWPSC(0QT^Z23DrC9W)m2enS4Es%6}J7<)pb>0 zS10hUjyUdhZPTo;YchOSzpdIOwJq+*+N`B2daAE3Y&{^#P@=)%^7@wGzP6V2i)}pI zOpR{rkovZP&9S*VuIt7zwnCopq&I&Qv_)(!zST}YtFuLAb!6GSt()zC>SVZk-?|j! zzGa#3+N|)?x32B_wsk}A+MIOn+qeGT`nGMy*|mA)r*Gf;^=ZTv|zV~UCxq7C>`l{=v z?|s|#eeZ|f^)=7E@Bg~>ecz9>>+8OszW?vn_x%if8yeVs9xzG&IKbhzp-KGA12*d) z2L<{zw5a<$7Md7`&m(Byh%|H5Oj}^$p z`8<}o{o|O$xsPX<4m_6oed9P2$EFGGI!_+_`*FfnZPTRYoD>!L%9CDsnUm$DyVOf#0gmGyUvlAcm7!;dI7 z)&>U-pN8Dr-I5pX@qNiX{r0u!mjxHCemIJ}(RrE7pTPL>p7Dw^&8(Za)~4`39dIe%Kq+_hs>V~rEPiTtXvGt<^DDg zRODAnSt;eZDcdl(SsdJ;{NTle{WkXu^K}=hGctHP9J*u9&%~thph^5n0u$?k#`Es; zqG$X6erD59wYaf>x$gL{=lA%mavTFDv>ac+Vkmt}ZJo&T(^hG%(P9 z_wL1_#dEf9UB7YDnv|5dgoNmr*zly}Sjhb_PoLg@_UvI|Qmm(!OGv0+Wn~GZbq;CP zM@NTRTbmYx+vpLIL4`%2W_oE^ftk6XrIm4Zc4~4;Y;0UadPb7Fhf`pX52X3-AK+#0 zUwqhYI`-6veqc!eHZ`4so2mAj9hNkA0*0%PJ&aUpB z-oE|`U5t~bOr63sW9F=x6X(vGzhL2_#Y>hhTfSoDs?}@Ou3NuhF z2yL2nawRkLN_)bZrpITxNWz+?H#06VuyC;P1WZUg+{CDE`Y8s|H2v(W<#6Bt69>zt zunQBWBwm3uP0Pe4I0mnd^Jr*nY-Ja`yX%`aq;2|gnQuWt(*;IekrS!Yw}acJ^*-JX zhwkrh-mD2}n?Ao}wctZUMoQugaND$G7efet$v2Xkhup_8^88)HGcv>mdPZnl6mx^D+Z9O?QN}F31EmO;;Ux zSfB`Mn)3JFkm=IdRuQ8B&T$hM85ndJ7(^JnSt^*Jo#F4_KdPxKwq3jS?_b-aM|Vp~ z^ZNTc7cHIxxi0Da`IC3=UQbGn{qp6VshPp&&u?2>>m3}ex9`|AfBsBJUJDBkY+Kj% z{{2f2Pv?&xUu)~A-M)RLuC6j6A-bZnSl>YFl4%*4TZ>a+=m5AO>M@>#ZQ!J4(pySiFxYRiB8_;m2l?n{@>goOHS+rDwu ztf>72RKA=e+xm@(Pa)!sWhz47dspo-F{ z=#VpKj)jGr`{w5yKYpmRtl-Fz{a3D>Gqf>ZvSi-Yt?Mm4ogY8G_vmqDVp42wUPjH4 zBL#)o&QW1?$B(ieI0^{xo-{cmCN_NP)c%JL@95}heEr(wL&QAa0l3X)$Lpys*V-vj#7f#vQX>Z-0l9QX(dgaQ4hqo;( zjS?qKs5-cR;iB2e)22i;H5@pQ;gge@yL@S4l1)rkd)clXX08rSE_OeEHvjq4nx2tl zX=UshADu9vFQB-<%tA9FGN`CHC%nGq{P}{G%a>oitci`YGBDFGEXs~-ZE9@t-n2Qn zyuxk8ir9+1ds1i5wDI-0cdyLX&tuZ$-pHunjLc*gSN+yD-@qW#Q>Sum{5EfCi&$@cAPoEkJH?9w>4_d`$w!Z7@7k66>{*pZNF=H*S=qrP=2fIG1eSnw9P7 zmKsNYZF52s*j(@nKdgsvo(Fys`y*CN_~8dt*o_o?@7;?HzzbR zC^apiX+={}v5RkI$X&we9pRJ$>^r*?Cv%Y__*w^pejTx=+5=5tZ?J!}`W!c3CCcJWs7=elC}@dsEik-AB8Q$?mbZ z^zc~X|9w7p-hX<+D>^@9htRU;dt;v$<=JlE^=ysnUU=x+RR1enyW!U3 zt*f?nTW8lyxgvc3eB8gCzqTBYEWKaNoaBC|fyM9poW|F0+2_|kmo1M@`0Tr5Udx(; z)8pEtf0^BB%#D1J*vc9ABHE85s$90IZ>mRJ?X#t9$<-H9H6lF3B|C(hga?Y$&+=ImsW`{aY3A~3&9{*&<|Xao%$WGs z^wo^!N!L1-cIfG?Tw2n-O>)W1i?u&97Tmh~Q@wZDEOxc(<$da_mM^^YUovfuz1jCg zt4mKsr7f*XTlsWtli5y<`Ni*M-kfc?uj|#EC1TtwmUYPeda`^mpLg!8m8+({-F!_f zO`~p$l(hDWIzB6{jdPT=*Dc*xH+yAMbZW?|)QYkbFFFF>os#ePbnNt+z0sevSq0R$-AgEAA8<@>sm31y?^)WgPVhLHZI_uz9u_O z*11M=-QRhvMkm$8eTq*7aAu?&i@6%Jg~4^X0J;N zUaiIV_U8QC=gi(`fB&huL4n;)=X28Hwbh;{>(^TDZ1>t*@G@7tajTi&4OR$CG|LfFtA9LJ-5CBZw3etu|geIC~fr7Ed=?pfmsVacgSJPrx`%eU4{dDwkJ-2K`=b*NLD=E{dS{k-sji1mV{(@*tr>WhDIy#KCLj*bt`O`_S;ib)Z(Dqwuu!DEKmRM zDtA2VQPh*=lF0t_gsY5IfyweeDOz(kZ*qJjSoKs}QM>epr|rIWpVfc*#b;_b#!Wh3 zcw9%|ze}aNyxzx>-B;!*e`hS!>YrY2-RKz{Be=FKVbW8X_m$=|VoPS{eY$sNk>usLSB23xtQI^dc;(v_ zIJN4fQ|!7c9L5TnTcbAg_)2ZnTv=KeRPo{Q0$%A-z5kY6v+n%T>TD4?cJb=x;?k+v z;agihT`RvPJWI+FT7O+@vDn%5xvViJ!KER)mz5@UUAG~2A$D+bLz*jC7mDra(a?)#cVxl%l9d-K_^A5i=O;5t2}wR zdDE2TK2Noxf1Zjsw`tn;Gf(xZf1Xa@+dSjA&oiUhKhI?NZJu@g%rmpyKmVUC=-WK! zxzBT}+dt1$oZCF_`r)^sfsYep?oapMBwG{p;d{zAa1CeP4P- z|GG5e9H-m|g9bn8CCn8X9728pj2C9S=a?OLVp;HC0l^7}gkvh2ma{jt^NFxrbr(3X zEZ0{cq&-SuLEP32#cN;33op60MQq!qiGPo^CnWG(kaOl#FnSfVxLnc5qLCvlQb=}= z13%l!Z50ncU2+vuxqVyCV>!FRgi>aQJMXrwbuoM$xu7HZ)IGNCD?Do-y3T1}o4L-2 zlSQF5Quqib(+vhkGX(~=8M96>cr-GwENEz2k?=^uy_vNuQ9v-jky+xogJ6@v1bz+& z9@hUi8yRLXFmU+9FuxS@5Lc^XZ2Z9R*g~8^o~5awb9IA4w!i^ymPIXdr0=r*D>)(K zSHL9Aae!GMamQh6A$FyZ#<^@Ot3+?)3NUjpFx^o*$-%Orp^3-g)#Gm+*II=)yxykH z5XZiIm#u6=>HNJ986viaUf%L<>+`wq?4mxnUC?{Far$0`mgygkt`sQHYIbB0H`w9e zqR_xD5Un7*;m|qz%hGNBHC$ri3|u)0&4L>id}3GV;7IFh@>p?zHJQP|)T{2(l=XX_ zO2i*__|ouk7W0E=_8Xc$wD&X2^Ot$W%=zmAqe92S=!ehh3-$?2;uB=GkyV;`-^QI! zp@Ah~ufiRFhX2>Og}yV@ANi1WzV4Q_&_71^tlpDa|L@$4{a%`W|6TRO>=si9Fv zp`0Orjmdz`Zb4o!1JjoFB9?_kI?sz#J}{>l2p9`68b7Z#U(UvRv6x?hK}$p6RJs7O z0;6PvpGacuiS5FFmd7%0YpPCkdS>Mg01XCJF{Rp^Mm#VjTT`Brn-VASw_aX0QOC0t@EyR|6MLPcU$k> z9Rib{GyF0WD3|Cxy+fcSql2fg{bdE?BaZ$v9&PRivUQls13G#GKD07#=&4*$UM$`t z?$E>fvFG@Vp3^_NzgBdxIQ9xJ==VR+&;7Aqv~dErWABX@f*t{^S2ysAc?uL=m~ixl zfOG=WyBh+pUi6Be%vRnh@ZkTB{w#~$@`_5+o9*>C1X>09q;CpJtem(gZIXuMBs0k= z3)>rHZnl|EV-b&NtJ%Oj*Nl~^p&`bgkm(=;Uxi5AcE+TJ!ej%+kR5Ds>H<<5n7^B9 z&Hun)W58gS&%cXvyfSk zW!4sr4W0rP?nO+7({v)5GFDDfPM9T}&e*;|aQgwqoJxi#5wn;ZXYJQ$EE1S=$a7BP z4h~NZh7N@u28P*jnsbDg&vtlGs{emGGh1LG!v_{^g*j3mnqP7jurRXrIutBEGCR$Z z@ryY_tmd3^C&gE3&J%WLTBj*6@xfdRc7_L>3|X2C%Wh74s>#6HFi&FpJf@9IJQ)HX zHCcr(PL(h(_4k0+CPh%~d zqrZF(vxb0_RiTWRz?aCy`)@YMd?;GOz{a1zEt*)%@3m0>d$Xd|BGp?9OF+T&i%D4P(eVJgTbPpN=$%BK44nH0zoeZ28{(Qi3yDS z1_kZr3>lpa>tD?g5nRh;u=c7J!*#D#=YUEh1J8rKqg?~TP=46fVP-u<=K zx@wut@5M$|8w+o3WiVi7`oL~2z*cjBF~eY+(7`1J-5a=8uW-rU;-SspwR&rY^cLoW zZO?yJ1l(Mzca5<~vqP$(px9wLQ$gup_0ohLB5~Vm-XCM+S7_p8U{E|zTG%jWwnOj> z6Nc`n<#q)#0t|MvdR6NLa4;1z*IL$1g)7 zDQkW0ik&C51w@ZCvN5pFD`VL&$)I#=Qss3PrVSgIn)Wd*+^1W<@l9EI!q4)WgB4m0 z^$)TS+%-SMHvK^D@dGT0wE{fs%#H_{3lFj^Jjfj__)B~7jMe*QM+;g!m@HsWFhf(| z_U*mQA36U^A7F7jz;baP%ftOl4-d|?KEhzIpFdzfQ{n#h?FF{KTO8NyRN`P%xW198 zkX2axSgAIHY0csNkw;hxk1$O*67I9gNvA1?gVDI0yQ4dq_X9&f0yk3vJC6lJ>i8HKzXO>Sby+0;Mna&AC~mM}Y`nny@PdGCMe>@h z_jLrO{MQj;&SjFxUB+|p*zX*HFEIk&bru`*GMMr*yxzmk^6}gcZiY`h3?jVem=w;r zoju1gahLaB0Zm&$bKT36Wv;IAX6;khZ7guYB8-X2fbj$eyITMY^92T}gtL7z( zkFK9>ODKQ&r@6_OwN-%Sz*~-p2Ma_t?v1d_{`m5kWbQVhi?{d7-Z^}C=K~&wQmcBM zIcGn%U1$Bct|s@w)c@Oa(=8Zgbh5EpGMxCao$Y9AiLJnH-9tz3lCe z*UoRBdzWd#ym!a$8vnV=o5;c6z{Xs7Pv+v4xc1`=30?Lcf=UxutOFQ1Cot69Wc&Q~ z)`qhJ$>Dc-9^N@1%W}x~PUV^hJnN1uj1oARE5Nbu9#h~WHN91qHCOo(YxyTkisX7I zuW^6d3p%&Iqrl z_E67f5@cpt!1DUq)CsXSlpB~WCa^evXJXY9*yt|sxq!9Q^4YfEE4I(s{U)tZWJ39& z-8YzW&YrTaWiYrBHCOZ{2CR^JcR^ zLV0D~Q-+4djh)4Q4uVpD7^^IcPsyH@VtlpGu5huPKzHncYrL1H$>q=EEn(X5^jH-w zt$%MTW#0X=6ZqpN@UO1r<~f0QKSaYmU1OI-dXsU7DspYU8f zyr<@EUg6(4L4EI;3_nhp`IKS7>qDvn#iyB61U^^)pHt%VKr4Luq+3M_40+SnuB_ENyZzqO5Qi6U!)_fcx%Gc;%k|y2Hiy;6B(Nt1EMfYv z^Loxp9}R(L-6Gd!yl2?({#GW*}O9Dh^4{cEg!A(zkVN8vlKyvw}y z@BXE`0$t~SFnwT_-S~*f{+)0miAwW*{YLA*-!M|d7-jj_|W^86>G0Ip7XX)V2~Ts!H7YDL%~o%se#d(B}U=|bHl6-W*I;>Vq2Nq58yBW9k z)tBZ5QR#M$4G)YPF0kd?JSWR=l!4t{IMm|r&SLF|jVWi%QdgN5o~(n`~FxMIi0F8FBe%Z*e8(6T>^~i{`;61YZCx+y8JJ`^m>GEzau=NV zH%Z5B?Y2$M4H9NTEDRlNEC-f#R8yg>O{d}qeq)K7H_lqrLklp zSF)DsUxtbt{uwD!4Qh(!r!pCec0730alxtBn}zY8MwhOTV{w*(h6RH|%cNTZ3I`WG zVBxx;^#9hOm-`t{C7lzV;g$1Ysjbo>frih|y!;*AlbcGEf22IvWa>OU>69z8*(L|w zlU3Qe+hkN9C^E@AD1Y%4m2}Nr@W`iYV=y1fhhk0V?Cg)O2ZELsDxCVX=jGLi+6sf< z|6a-d2OeJfrJyAEZ-(CL_-0lG-GJ^}SFE!bbNqw6SZDC>U6QwJt1ZK%3h{*&H}-C^ z3`;!}7M=H7S|g5;b4ikd{FCg*%Pjw_IPB6c-)522slIH6J}<+AVg&;h28Q+0$;&iG*Td6~&_kpu1KoL9Znc%L(#I=95> z7-ze(QWtYWk5`dl>&`|g%hh|n-}4NNVYE2J%otLZ#nk`u@vlZpfkUfeeO||I_;A=e z#70S{E_L@RC%O1n`8yah9u%}h)E!7&`>l2MT3?m~M+UA3?{>S*_jB!Ays4%r>pEl7 zl-aAQJv)3$JiOg&7_NkdU$aX~t+M@gS9Z#_CwKg}Oxq)e2Q(%@YBVS^g{?vYiacHw z2bm{bouk3Qz{3BQnvl;;mX*P%;CX!xHH`C))n^Ke@=SbU=?)A!TK4u2$MYuL-X$ zzVc@qK4DNxU^JN$!r(Z8(=6Gz;o`J1g%w-n)cl(Tq8%ozl-a;|QN)CSC8dXT&53iB z(_V#_@uqC9G4#w;Zi>FErpDQkqQ(3vb<(wIA`Ba3J3?p93Uzne>@r=mm7&MLeA|Y$ z)rMB*%+3onJQSK9Tip>TVr4zyywo$5tF^fw?JD0azLa0Q z;=mQ_7zHhc$?N0ot0zDI6}n4$<=Xg})}bYltGB=Tm0K|N)xG6K64la%jr^doOd=njf~)dsA0wVB4~DBJxKc#F2x~JZFqIlG@>m&MG1Fel zRVcQ(iRBQhAj1wPyB)?npJW7!Rxq-72+gisdgqC{yN0U$GwG?>Dygh{EzcF#2`t|E zXMwx)P7Q;O;xHZE=W9fMU2tVInI~J)VfA5WQU!;Y(!!?(0oq3{Z$DPLu5@oU_tlx# z_b&^OEn1c0#eDmQ#Fx?*tAbDqnd+v~Vh)?<+P>w|dcgR7VcE8=dvo)iTiv|N_T6QU z+Q$6m+jlbMe0NH+Fxq}_WKg#-Z@uw0uj2Uadxsx7i3q%9HWYnw?>}3`f&Z*}GaG0B z=DZ;qxsf|Bf1TYM4jRZ?EecOJ# z_Fd`z|JC=t-}}Cwz3xM+ea$2B`#+Am*L|A0zvh|w{h#OC>%J_tuYDDM|JU{7b>Ft` zuYFg3|Mz|N`X5K_>po4t|L3`T{jaP0>%MKj|Mz`+{hz1y^}nv)|M&fP{lBmK>;HYf z|NlSx0S1u+j4B71Ob#%+9AF7Kz?yP^t>gfE%YhTY7Au3cyC@rTUThSeV6ouD0p2we zF1~ayO6(S>nW?pTu5h8sRO7B*1;-%ACgBwfr*}B8S1RvY;jm!W!8m6@NsC6iYPqh= zgIt>$gm0Kg*;u*@?UeCx(hPRW%|7%wdvnyx1DbOjIRrN@+Hr`VWwnlq=;RYlTM{>` zuAcijsrMoy!$AxFqnm{PGbAubu9+ZprprR1N$bPrhZRmDdpIXgIIOi|hHcK&8@~>A zK6E;+#bsYJAx&zFsr4b@nhDk}+gw{LRf=8GXCL{v*~oCoA&u3C*d>qjzBt0cxSH|A zA>Az^DlU#Es#J_}c-K2P-%IS~+`wd4;4JL9ZC%3zuN>pa4m@2qT|GS4J4~73_+@Ks ziGWMbgreC;yw)hBidcBIxD+S5eb{{@-Nco=1d?lx`z~>1-1VmqTXGO>6jMZSB3M^B6x!`xdPvuq}Db9m02!65LVIa2r_uK^?b2M0Ok z27v_~d>1_zaBRLJ)i7&`-aH@eWp9jpqED!<_FSsNJo|{(p=o^hkP_d&I+fT5D7UrBhXk%WA58ajdP_MqJN0~XSmS7{J`nHOvi&OZtRAf_e-=N z>bNcrIL9G$ZgR}oWe0rEbS=1Ba`Ljs!RIFDp2=|N{aC%1gX?!iljse-d6S#pBxrF9 zbo55B98T17nZVrA(Q;hluDnJc zR4s=_z*)_=S6rutxbMAUwfC|^B3Fs5SrY5?`m-U8rt8z3n)Mbm@_$e?T)_3eh4+Td zTZspIn8FlTtUVZ&IyhuHu12oCD!(wuL^s%CX~C7op^J`aPHa3tii^)m&`+t zt|^Js+8z08N90V`NSig6zC~a5ntRTJ`Rqd1jt`C;90{t<5*a*lu!OF05 zX_Rnd)N#j-sTtGP9=+vh>UflEUVqN5npWoxsog8Tp6j^5V8+6=@Bst!1hYeqCN5F| zEgv|X96HWcGMFyt^53wvV}t9=9sKdE4Hgd?*agn~nsIxVEt8A(+@mZFY6h~xXAW1Y zh_+b7R6m@2EVu7)#__YdGsPR2COb48JuACsZ_nOPUmF&Nt+E{}r_R}Qm1CJG!*XAq zBNDRzZ_6^=F>R5UxlsCmiQta@WLb`-wOz|xJDPs>tm0_!U%++EwsUW5?EDixi+v9s z*E%>o$EoE`oa+~#w?{fZ`p(X>@tu73`iH&uvRoE^KYOrn%b8OtEpX7Gym&L~&RZM_TWVFf z!cMZd@$cBnxlo`XXa}e8f;o)`SQ#UjT0FQTLyjNn;pDo8=@Nl+Ah(|RO z?}dg{Iq_#U91mh_Q0wYAaUe13($R~ub2rRrKYfDluG2%ak}lD_#80ilOlAo!6CO;} zn#hpXtMp80nLzUYmKll-k_=3lO=~QY85pMS`FmK4jYmiB(VL^mUwChQ`5Wh@?aOHx zS#tZx)T@tgq}>1iHO}1X@{hF#?91-!_wH{yeQEL1C$B{tRcJ zTgJI2MgA6nr+qyFLF;%w3-B{&r0)9Q=M;9>``i=XcPV`9WP{jxg7zn*laIQV;wQ%7FBV&pCRVfUX>DJJWD|37 z)WZ@dj)rUL{?k_f=4_7C7W`js_DsPcEj7-=aoe%icON_C34C~)w%y|9bk+NY!H(`~ zDQ8?W?ViQEE;%$K_Q~HnkH0r7o1J~!+rVscAaf4ejP*NS&T(sIb`TU^pv{-SC^low zzYTZzKXj>E^_!iW){&4UT=?pi!lGqqXI9+v;SqbaOY7C*y4VE;udW?Uvil14x4A`%c)nUXZO+h+($*$tEkeJ_i zBa4ya?c!ygFB8P&HZWMFbRE~z+dnBs@9*pX+;y1~%u>#Md3-PJ<)mwuCeMEE@-NHf z+lybiQS)*$r>~2g(U-YU_3Q;5GaZk{H|O%gJape&dnc06y4Hb-w}V0Sz|2OCCMK`! zrF|SrE%*Z}vsw!Bg&XtFI4t_k*6>5F&|-A17nQYl%E}mybfbw!O|;*R#k&&6uGf#qGr`y`BSRLWj2X?6P}v z!8ZNqKi6Id1@`G5IF^5S+?LFkkpDAp`hT`0+DagMxeVF*B|!W=)M6 zMJ*0Riytsq3pB?IHV7neNv;3LdEV#sz5|o>K5RUC-=O@-|7Q}%r|5p3V_Uo+_g$V| zv4Q#Lr0CC1)84&|+duQ$r+;_fUO3VJLPH@yuRpNtY43wn?u$=%COq|*`{J-)B=X(o zzcc!tOzU(u?{W(NAei={<3-<^6Me1?uLVvP%-q3yX2G*xKMEFH;5qk!=RfNk#c&>m zA3GW~O2x0=IoJ15m|J`+!?6_RlHk1Qe>4RD2^7_*aV0G0O7#EKl*avmXN|i%N6K`y z*9l$kD!do-UcP(nTz>Nti~mIrpM9HR79a0zHaV}@=zE#Pc4y1{&*uN%{yhBo+Lh0< z_a%?6*`dJMeRE-ZFy?JWLOnzh8Ji|F~4kgUJb+)3f@&PrR0t|No3( z`!5su;Lm513+z;CyyQId)6?Eoze~Fxb zRI>0~Vb|xI9s753K8aj+3l?K&C# zo7>WRr!#3ZDy@*#=ICYW5Eb-bh+ue-Ai|&_z#!n^)Nrs_2z0BG;DH7WCb6~x4nu}R zy&P72Iu?cur>1D~vwb+|bfAmbB&Q%j;Q@mOgI4*oGa8dr4t6lO?9h;6W|*}|kHt4c zVZp(M6{3b20s&1P5~})gXJ-6xJkYFW;uKIQtPHXu zbDey(r!L}UWGea}n{rZk?JW_eJBOxLPk6_?+d6>bg5iP>M^|Kv@9#Z*seyr`PLrcR zVWL*U>d5V7re}noy7bD}x|MJStNG4m7syY0BiZm4v`ur4$4!Q2e&=Hx8x##K@*eHx zpQj+$>?X~U!J@IVXX2{RHBmd~)y$pzD7*97`Q69X)Ghtp^*V8T{dv28e?GsyI9vbz ze!GUxJHO5M`@$HZ(D+gIMSRl-)(nNF@0KeRT1BHO6x$@TptmZu^L1$`)LZ{7f8-eR zL16|%d5nN_AvUmmk#d&rEa}L z9hV#06HStPnSQKL{?E|2L4$!I{@ukZ!S$gjr@7;c5}4UUR2R-jU@%aa5-%LlaEzIq zwegx#xyO=&e4-zpPM;|>RjEPHJz?6sp1_-(>NBdnt~{S_&GKMwYu~+}4ol`UDnvzz zFeJ=!$yjw#ZL+Ul%aTdLj*`#28GNq4SUiVIL6bqN?dGFyLpc{owj9oBhZWbY)0i=3 zpW8;+?)ozy!b39rwxrGeHZwzTaj4Ud2d=B4X3VeE2=hp4xwmZB+d6i?8G1WjEtH_g z9%L`pC~SWg_QY9~&EH4RGONMh;Quzp6O0UO6$Kp)4B%ie*=Ee699=Dc&aHm;+XGTrv8fkh;@^I~{_9eB z*{P)Ry=J#_cmFlJQ+V3e{BH5$*zK*dcN7_9Dt`a{el3gn-nR42(se)XwrlURc-(9K z&*I6%cHPQEffonc8Po&zRUWurbZ`Ch`Q85%Yg+s3tX{2Lz0c}36Sv+^K^>_D?ytAD z&)xC%M%z5=_a8p}v;J_9+ur75PO#%qfmV_H-7il^zqWb(#mV0G>(%Ib+iy3s_uGEI zTm9em$HQ)WyPr>I*W3Mixq83d@3*`E+x_`?+TQ;E->uSmJe<-mBpU9JIy@7#&V!xSK-BOChx~m zis2lZb_}c<38z|bRR|hv^Y3>wN_Ks4;+US@#t95hoLE>UG;63Va9g``Lhu%joy;5x zjPX3Z608o#x*0Yp32$JMf92-s&GlyT!j?I1VG4(NdW-sJ{7;G3{=Z{M=Zv5!Q%zL# zeztea@LVFrbm4%yfyl`dM~$3o*4&oRzv6jRw7A+xz(L63%9&1?;@Zn^E*SBapN%Q{ zTqteO$UMcuBATOtIdMvdZ=1qIJ`Y}o!Wr&{dPY9o8!jukXDn}e$H^db#WB#X;DB0Q zL~B;g;np`ijSQy_oU4j@GW+2Y4*C0%{(L7NGG%o*w@vC~Zir)Hs#|ebm|=o1gU%M_ zu3a3?>IIAws)ShTJ}{=qXq{`8FiKixL6b#2Gy{DQOEZ@M>IF{eT$=#NydTcCJUN(xIOaT zcJ!*F!0L!&ObjN|j;=}5-@ltV!@I@aw#zT(+^q?w{Fay4ve+iR32^P54^$5BA^$Kgn}=?sh~8kB+~cv1xu zS(RKAH)`Fs@=Ru2@$9utiZV71%;5>Fif<+`DJhiilGp2X(P(bdyYPV7T%bWhZBa|F zh9Zwx#R2DY7L0D(j=i61x+E!n6g#kKwr)eZcgy8@Y+F}&<}S=F z|9$)6vJMuBzsyF?QOR7Jwk_VxkjY}eW0IA&dA8=KcNNys&KK92Y_;WiR5*S1jbqa| z;;riPQnY8^6y0xf#8g+XCE5Ct*ep}7tlHNx-Y$3F==q#zeOp-Kf9J{PHnRu~+qcad zVjkX{#<71d@4Hhs!k@^`H%?J!D%A0vKJJJR^hi|L@spp0S)GLE4u=gz0th1dsLUoo?~gJLj;yxb4`tAo6HSn3A^u zgQAL2#ai!{*A4rZx+ZwPwMejCpkQwMig7_z7sn-~HSE8YfheVv}t6^XoxtYI{zzVR7v5U`gNtEB1B1yy#}>wU zx)T#v7BEbTE9Z33jA-F(c=+5~PyN)yXxkzr4mRj}D z(L%9(&%*f(3mMKlbcvX6k{aKn`Owkeq2m)p*Eb7WHzXTS-g^t! zgYNd{%;T7}fOF9Tb*=;V8}ENzd6(O-MbU;q%7ew}V?t)(0mlhV3>*g?MI5Jkws5E% zI%J{XgF&L@srPlne)hrWJg966f|TJdESc%w;YM zmWi)Z%ig7ybL^R8gnHVIG&8N`#c$No_S}oNx*jDaB({X1fk{IFGBE^{L7 zpQ)<$J-3NviJj5-VByS!EQUm_Cyokfk1`!tRx~_eWH5JHwq{Ct%{jGHvy8TaM%fO> zX#vrHL!XH>sV(}Fm>JaK%cD}gN;W8r<<8m$mOmO3yc(>gYUD=!XQ_R(%w^5NqFwj< z#Mr98WlUgtIl-%?YtxE^9T_z$>3R3kzn)#$i!)*^wKeAS;wNq3>L3SS7o+2F!U@~ z8p74^$-^b#f%5$wT?`CT3=XQUKB@Dj$<6k9rCb=aDoCZXZK+Go(;Y|ItG%vmIM%+J zi(!ox$0oU!O-9S7TdB`D_0rK|b-RgHn#aX8axQDzB+@<{b**^a8TP88FGDcyKgW8% zmi2vcq3betaUIwk#)hPdx>bo;D^hN*kpHgm1^k!{*-S2zyy%(0Vl zR1I>I@M#g9C!{*}QOwdu>$k0Rt!VnYll_p^iIdCTWFASDdGvbIx3s-nx{pFR&V-$i zE>mY9uQ%?&*8Ut|hwPKIZKDsk8T0 z<_0;I+hWIVB(dEIa=EJacJm_bvc>h4eCq7~KVr{9F`G^tOj_@Er-2>3HT+ zb4^(>V>O}V^V3tu7?b-_1?YqYh_rG_wMLi z7Z1j3iH?_#P02UX|8_~}%e%WSSKeiWapatw`^}Ewd(vv_D34d`^pT}>n zkjEph{Kt>hnQ*b)y0>=kt;v78@}JJT-x{Ug#-aaFuI1yp<@r)tjP3bnpT7UMEAO$| zhCfUWztY}+W6Md*$$Kuhj=jz`qQ^BdVdZ^=pl4?sc&>0L9($)TEtqr70WJeM29{$9 z2_4JZ@>WQ(l<>6YN&J^jH)#uRXpNZA8YxpycFesr#=R`3UC4)JKj%RK5k_u<_O(jw zMF#BCnHq9>SaK^C2kluE^k5=OG)u*bV--BBIn@ifgg53J@T7Pg+h3~hD$p9}@mkXV zh*URww#O0SXVD)_Kn-k7p2t0U=*q44{s^6S|uBTh&!{vagpA{t*P7M*pA zX{}T^t2FzkKT&$FHbv<yBj3MS*4bL4CydZ2>;|5vq@;RftK{gVLd+ix_m>3+n+Z>fyHgg=aPVR7S7k3d)QcgeN zbl*!Q_=xLt;Z-plR@}$t__)}3Yui?DVsJO{TJGt%zGOz-TJ@=$J)=+9X?wc(nAC)B zafo*DN;kQr_{IDFdVljT_Zqg`+SP8B|G`i^?4*wGV~wj?f4R?`c(6Z(rz54b=i}+i zE@xd88l@&QB?$I}1@|0U@u@w4S8}4M>s6od-`ug$MfozHJxD89W=-n>YC zdy&3*vHA95d-D?a?Ir%^rQzF4QB2?eVQscDr!JyX}BL>SX`=_7ksX#Pa2OG{&E- z-+iv}HMj8FfTrE%t;*+KA1UuVc5)qu1IMd#l@&MYzIV$nU0D~+vpvAWXyUooJwIMl zL?mYTK66Yf`m~GKvvwUUikG}LN_f}e5b5NKO)Ytv}%rxd5)mMUY%PObb|1r7UvU1<+sr)=M z&-Vtiot%AMbK>=#&8v6L2tLuZqA~sm_mtaP)^E!@gvC5rLob~86?O3!!-ic)9sWDAeP&#2Gt4)xaOGi0%C%5Zn4bF9EA1}N3(k z3~w4tnHtzOFiF@n=!&o{*l@h>ZsvmP_q!u)T_4m|eB68A{6_V)8z;aG1$Z`o62xRW$u36P0#1MU(}5`ywq;l zPRS!V|4w@DS+zoHHRA!^5SLA{YtJ__Ufj^Kw>D};@2ql>xpuo{-mhm_@bu=quQ%t5 zK3X7pYvIB-tyAhQc+OrbyZDuR%$M~?j2jQ^=5OGzVcWLrshVb}|gQ{EUVnF4OjKDv9y&UlHi}$;sxz%n)bea)^$M8VBAmM1IB(nqK12^_2B`F30&kx%RnvQ4(2`+F_ zJLoT(d~TiWonMchoM7w`+>q(O!MKpUL6AZ0_{1&&4-SKpYes2jnJubUEW1#)`^=V^ zN!1x#i~=0*?DbeO9_?o|tKei{*B0tub=%=GFT*`P76#L+97((k*E56|n%-#$yjb`l zWA}f7!$&i8e3=;wDqe6gGAMYtFnF*uY-JDNS?9Di&1a$mgIo0j2adcm6Bo$ZdwDyr za*J7Oy0vf3E3Z8Vc!JLup47Q~#`vO7@LAKdMh6dd6$mDDZs73_Ftip{Ic>=J zIMUr8~+z8$ycbXx|^-udfl-o-`6mTVcFj)@%8ddJG{1>Te~9GQ}gL3-^E&K zmml{#@mRLa3E?{={t*!v%Xbl_$}r1s(d=Fxx(_<%3NnozE1^=58Bs- zrrk`Pk*e0g!N|jLn0;~4QS-z&d8y{+86JWT95Y!aEK(AjbYo!?i_j0p2D53hw{Cvg z@XniI-C9#FR*|GzjttUzCe94eN0xq2{gk%p*Q>=_{bngF3s=Z*P-K{36(<^5^3nBU z%K1AXO@^ z&&QMc_s>NA_K9auPh0lOfF=8w<@t>j3<{eUDHg5S?6lU}#09j$teTO5v1#^6DZA@- zvzF=wzX%F+WwLPi@>8?+&F|QoUe0nB3=J$SE3eMKvVC7y$pRJ|AqIY(fYy^Qv+^xo z&t^;dq@i_0h3%@bV;#!@MzIYFOiTfxkxUErpEP}6|Mk)o?sjDc9i9c;y$>2V*b3V1 zeL9>N8a#J~Jh$iInxMccBU5>ef#Jg4yf_xaNA)378}7w^s9no6{mrfmi}kqt$~a^e ze_C_G#>gq4{3utr>#hLX%`47zv->1O{oi$EFWapCiM=IHlocgUP87{%725DbRn=kl zoY+@sR$3UimC)2`EB}0Kp>j$4>*Mq~U zoD=I^o;+qq{W&3jBNGF^#R2ALjVugbmXw@6{78vidA;tf)7{&-9!ms=xG}uqoAu*$ z>Ny*Y2E{vG+Ac5ECHPnFxvc6rpWiZh?SxEM$7!t-*lM0CUYz97_b_;ps_9GctxBJK z7>qYeQGd*S`N<8Q&QQapQXV(=XX++(tk!;{%h>RLZqr*ILSJ2IKpj(x6XWA$>sNQso zpFiiO<4?6|v%gJ=WSYSE|Cjj<#toBVOAgP7|JbtGjN`P~sZ>3NBJTMuzQT?goQGGj zIB2|i^=(zi!2sjgLUUe<9bDkHbQ#;RRhx2zQr+uo&dDF)JR)o-?y!)KJ8Zf%r)rq>RT)YX0PX5i+i2Q)|;-SR9xZ2oaF-A*7i&6o=hxc=RW#OxuN1z(%xk?j0s^o*G^Lq zeIOita#5<^(Io=K85<=T|J+{G(8$cjF*+OEsjHRL(PRMCw9siWI*x>e= zb7i`n-HURS`)A*IYG(e^pkOgBU7f*vTmI zp;2+gaki(P-)&s~<;l&5E);(ts5(VmEnr8*G4r@jUk;SV8uxrTQgfhbnQQ}_*#idV zPtjrx)}Y0rKbE_mzTL%qfVJLAj6uwr>2=2e*3|o1H)9n#7X68NobZ34C!1~EX~rju z<_b)&@H)l(n1dsc!!@C?%IZ$>HukxXrb{)b{|jMKyu-ko{Wd+w^|iJjj4;7#iNJ^3sRAGgh){cY>^zi*GGbc-+P zXEs|QwzpdQ{mR^09l@Ky9LEdhF{&uCD*RcqM?^1;LFW-)?WF@>xZWS)j9}oMFYX}F zA@P^-n9KLG-}YXZ>b&-uunK#7$JBR~E)(vBb29{f@R;#>f1zbK1YpMz2(v*0wZ{R(z#E@`+ z?{v4qB>{#T6SUM8@LdZy|6zjevL1zm1m62e3@^F??8{`Q=d_n=_xpQvQbqe5V(Qu5@NdxTxncQSAH&@kT?5)WKM(O>AGMhijTr`xu zS}5CivG&Hq6tPDCo&}6{?>Aghk!$Ug(|jxYbEEvP@&`343NHubk zYV0S~L?gA-BDKs-YPp}(3XRlDi_|MOsn>o|Z#2?qEz;=Rq|y6HW1^Af)FRE9n>6Qs z(tPX0=GP$L|BU0q1FiUi-C9hXehZkMtrFUt%X6fN=LP4|9hbB}KH9P3(^8pKot0XG zN8Q=|9=x{Oxa`~`o&P6~$UbG#(JiX`A*98)xyFgR=8Xc2bRug(msX9B{^cY-zXvRG zr zlsT5ZDZ^@ zrR?JEZqdge+L+&Bb-?zNf=i)@Zp#+tj>~#xlexMN?onf4`E!8%R4T(7V?pN-3j+n? zIb0$W7jR{Wbe+j&c$6Tgvt^IM0sdDHIN1(3BrbOQx7c(37LBqgT@E6m-6byRN-m9C zJk$lJNCb<yrCQ)RbreDdUdpE|lu*|3Q6&($$a)|$dLDZk1jFnP1vgpL69 zEh^bb%tsdFt2vn5RB`^fI-j8-luw}LQ^xLV4~&1cun6cI^`o(hR)8^@Rhl3qU)t)2-I-Fp-b3U@^ znN@dESm@U<_6Ig^-YQm@a+*E}Ki%xS!gP((R;9c~ldca8SEdAtCNr!vWm^19Kx>hR zNYce7Wk$JX=g056PANz3{qVaj-&Xso|LLz0e?R%J4Ax)V?XS5lQC=*mSwC5}?Demb z#OJ8IVPtE%tss;4m@y5P4Vhol<~jcEHimpisa?Yg<)A=lOpz#UkciWeRl%@I?IoK@m{O6wH zQL3iZdZZ_1QJ$;yj>R_nUMfCV&3)$$=d0z>T2A2y7uy|Swf~}Q8KCT{@8XnmmREUo zz_xawW`73+^ z=?YwpCN{kaF-|v=UIwgoR@?Ac@q>e{Q8Lq<2G(_J%<;#+#K4)Wo@CNR%iH!()dnuW5MsLN^(zBaeD|fUeN>n6&G8S8wXb|F@t`wtE z>?E+vCd)NqHPb!?cjGAz3_0KGrb~pcIqWz|)pFI2E#G{YO&)OO7`w4EI37=u|RF>D#U}ZVoJ z=7$F}hb|J1oT~dRDe`(-_RodE-yDrY%i?!FiTSyxy0axWQkl`@wb!!g@`sjADPP$9 zGtA>eOTY^w?MH5VzBq{`1eNcasQdhgvZVd9t-y@dsAa*oFiPa_-47< zjMqE%2r%fZ=zCpecWUwSRJU?R*7mkt?FPKRUM%fz%2Io@qA)wF$!CTCrdc*~+Svbp zNO0>(33bZs^y@<3oo%k$Y@BztXzyx|4PTWkIpzHtA?05i4&GcWYc4)OhhNdgm`iKk0dslV^whR*bnlkM-4}OS_b$yj~QY zoKc}^!Nb@tqu}*+zd)ueEwx)|TE@n@!)AcQdVBlDRganqk2K28#oNd5P9J z)uM&b>-YQC{uliHc1o6)j#KyP)jI^|%#}|%cu;6>J2o%gVtqk-IqL$E6N|f&6VzN7lzSHKJL1an;q}&|OAS;T*p(Q( zW=0)u?9ts9xuM$n8pDfe0{Pn=-dGwO>bv+y@k-5-$XCp#oX;)RTaZvQjp4uqb%u%Y zmb(k?M3%WYWiaH4PCg*pvrA$2dh1!IoY&l&5M$|XZclYZx& zQ^m5<8*M5Ij~_L-vZG}&vsYr*e;a`ru1jrpm|O7i9+YHA;7{DRLHxk>9JOc1GMf%x z>WYdnb7Yv($FxagO_B%0tvB|UzMri9VI!n>PK)Uz!+~o*{JqkWa>d-L;t!o&cDJ5a z)b`A_%w5g5PfL}jJnG?N+$SZ$z_RUFHrIt$J@?oZ0&N<47#&I`$=+?QQ9E*Wa^PNF zkDrG%O|O<)wEeC)a>-xuZI-H_ixc8?ScFs zOE~mOzDDW4m1}yI!}q*IFRW`Dw_O8=%yOOgt;}8ttYHrvCgr`H_3q`axi)g%3`GZ5 z`h0V((fgJ&?ZXMD7l!_yEk65O>pf@Gxm%(1?7!Qbt`OH(EA3pS?RzBnu^(`l4ZR*ajzpK8i3fqx<_gd^~v&`siiAO&{ZdGdGmbUA$*!bvZ zkF<5&pJ4rz6O*|8S0ppJwJ()oDQRe8KH_`Wz$ja`!QsHvqf^!Y=k6_k$so^Q)U9!+ zviQZt+`rS>7+oJdbS~Y|A<=NdUG%p9$9rF;CAMWBJIC$)Ub_5O^ov{b%kR&#Es8pL z{bcd~KD)iYzP`D=yPn^E-=lL3YGv;W+!e@~*e+Mck<`%_st&$YDXHrf>jFjwSs#m=f;N&1+PfHwGLrkO z-ko@y67dyus}kSI2cjV?*JVXRcmg>lzL9*HG9}0_GpRBpt}}I7RNl$d>2YZbRjc$uU$5LA zHGM&q(VT+W&B6z@RwwRfJAJL<;@4Ah8}Dm+KiGKXzoB>5)@ypE$2rw+C^WG1K4WMQ zTD$Ai1vVxFgVkY$0)ehcr_y%kZudKQdhPZ$NADZE-kP!Bbrx9Tu{K9&X7{_`Usg}w zXWx0KeevMkhqna|o}c%;poVkvwt@rK^Ukbf`eekhZpY()CXJ#sOMYKrWKwycS0YrI z^FG)>o^4}-*5)($6%w&Mac7r%hI~4yxxUB1h3mD>^kAX8Hinl}X5ZNo=5zXZ@oB&P zM+>iAKgUzFBkaGa=~+Gg16$9?f37l3Ok8{?;3|K1%%s|ywR<;T>@u`rxNCPvcmBP% zJ8kElkK(V>Jo7|I!YEo+=iWiVCtfVAGU6))j|X+PD>z8@zZ=rNkqzGh>uumpqWhl~c9tORzYlPNB0K@+llz9StIML#V`P@T9$!t3R+hZ}>sH%v*DpYG%}w?=R(!-}Qa z`JE0&e;Bpr>3GUWM;>o83CswblO!6<=_J^7IdGZrLqWmkrd&!4j7}EUg$fxMcw-tx zTQ)dzbu>)mUSrH2aOQ;7{qk8d5{hi{3P*T?6dIJ)tefMlvglR7_bG;7R9HB!9^gs) z&|qlt-(>-dX$BWVKugU#;jY(zo`c}kS8C$bTZVHEnLE}!&ik> zA$ZoUEiBVgJcL*T7#U<37&QbM_+|(>25>n{VK}fVY-g9wE|U~Ch98Id4jo|UTfoSm zxbl3YvOs6+mQeP?v$d?xZ=K@Pwso0#tZe*Wu7(4P7*&q{>5TP^3QAFBWav11B5CnV ziIeBHEMvGK%22Q%c;2rNhJ*{xT=o*V3-$er?%jqT=h(-tm< z0LPb1A3Cj{^=AC%eag)zqb|cS!GWR8;@ugkC_kk|Wtu{Fk1!Z~XXR0?n(UI4d{U)@k%xit_K&T+7Y!3vFW>TV)0v+u_j><;1O^z0lWN2W!VZCn3QE!Qz zkq!)MAKo4BlX&jzJY^3P$A3N!p{V(491GkIZ*|B`y7O@Uiy8a^wI^&0K24k!BNhAY zU@OD433Hczx_Q3*r>BgTHG{>Q1CGg=|S>-`SEkxYn|4L@NhifJMVmM!Qu(W z#F!r(EvdbC<;gU$l`RX^SARa(C#m$tx?^I=@i?xD)|w6e`Tl*2_?Q`LE(v7Y@4U)X z{jDX+>CL4`shi55Oja-|WC=f*skkhT$yw!;fI!0(#YyWXM&0Wva8tcCrk9wEPlrWC*H= zJ8m!cNuFWB6PGX240e-R{EExZ_@s7l|7US%bz(_;*>|9cL281m632o^b`d`h);BSU zc%-m1ZD4dhqtFm37M)c5Et)|tse{=#R8wBy09O}p!<495iiM?yJR}%&i+`e zUi;E9DD z1p91=WhiK1)#+$(;_3a=x^K<5WB)ycRh4p{@hK=ON-}(s-1O(!YSUv39tR58nV1(g zSKcg-*W#9b+4AO#UHbv?x|Y9936QCz1G(=${AU+rk4&AO`QV$U(7_y@iBg8?^4S+k zPns!mc9b7oUY?*RI_VqZ;mfSAw>1`#=y`t$Gu7HpuoH59xM-8{$Er2ajk;qVC@F=YF7yjt@P@@6PEGNYtTVX0n6bn{&7E!bhi`&F>pp`BN;(dt-uk+NVNhw>E- zhHEGCR5$W^i2GMCu!(NqU^)=Kv#eV}u~WdYbDc&-L3jnvMGmF_4&g((XP-4~-%(z; zFge`7#%)7hlY51AYQ-Lw@HIPf*6om5-6*KAvuS=r_l=4shJs4oiIuajcWXp;epw-U zgrnt5Y0sRgJ*PdUR2T^=DKIeJF!lOid@*CvnqvY18w5`n{TIw-$mBdJZZ)m(kRnt4 zhZ>ibDPEn0%mULMuV54k>~r2BrEx+a_UBZI#Hor?Cs?U5f6ORf^n{aXg3z~!u(*d> zL7WWl7wgC#V2ll5SydEZRp!BAnO?Y4RPc++eA?J@!6U`sQQXpL#fm%8vmBbfju?F~$?-D4OG zB2){R6&0EE9xS{1Vwqlppt=K-p#yVn1H)`py}ix}Odpt20~kda0{kB`TWw`xcVIR< zz{vAqT7nislGn1=&sR){TGr^;_cpUnF>pm*`--kEy?Z}wYJV+n?6S`N&fx3tpV{Ck zOZc&*f0|xtHzZXZSP~bo=zm}^e$ZZ$wY*~0a*iv}?(7VQj2VP2nU-8$mcOgNP>aL6 zF<`OQirmR5OPmGE%^7w&xN<6RSQkX`7DhN3u(%#z5^A0J>hhX~Uuzy*5j8Cdb}C@b zSWs+}wwAwP?X6c~tBcp@F)Yv9wWdUT?Sdy=RUu4oUafQD6pv-JeCoAIRdM~zU2FRv zdQQ19Q$k?%=BU-%Uo~gkta!I`>4PUrWpAqqD{|OBs9~Dm!pfxQt;le@LAZB|@QbkQ z*++%z4Ve2k+c-Ij^s7iP9dzO_tZNY4bdH@t^>w-wkSQpEl_9{AcO%D7 zM}gTb-ub(mZ60naY;E`-CEfkIxKEp5V)TZGf?Lh9cSsoSob_Zo-{}cOS94-d3nx@> zOq;QB<}aDtXB&6lR(<$I@p_@;%!8Hz3wPUpl$HqIvn4`k|3R%I+=fpUuq`T-ICW6Q zTX4^;MAOX0azzW+Bn%dMH?m|oa2?h*(`#lwE||tt;3#o$@4eebCr%1H*B0d1x^Ke8 zeH8(3oNbAg@b%|nXIfu=A z4i|i4S?a)Q>A>i8prV@D$@ za?R1`Ge=|J9F6BWmZ)el&aw2KW0`A?WuG~g`{r2YoIM{t?mb-0Qt@GLi-pqh zLvy1N8PyAp-%_+F)Y+-NA?w`iy*11VO=l`Q{v7Mo(ds%QClDYYWnd+Ak(H&8@$ZYQ zH%`W-=@Pk5_qQ?p-;mKCUQcyq2p$*r5&M0|lgi__UPTkIJMn5!ES z?$|JFQ?_DYvDMZ%EU`eq!g23HV@82976#U*jtYDY7P{5E?xEm${Y^Gs=A6IH ze4$zEypW57YT`Ln$BVv=`e8<=yc7?eERt2^k*!iZap|FWM&Rskk9WUcbGcWDLGChx z|A(@v)kpq1o?Rct#Q;8b`tKP5yCv??SN;q1q1h!=-YZL&F!nsZGE2o}?-IBDU-I`Po_emsbm!1E@wvNC zZMvj?M!f3kRo>XcrzahWIn~r%d*kh%%M;hC+x{(qpIPj!rEtZDA^AbR6eFV#FM~{I z0DI}wQq!Pl(I~ZvLHrwnbiW1}ZjDMV7480eHRA%S$p^+}6}Hu%Go(8N57u6cdwY3W z@6B0fZ!UWqxbp1!$*H$_11~XrV0m47ZqHSzw!Nos%-wVA?A?rqclG`r(tUMR;mEZ~ zz4yAEZptJu%+eHeUvS-}cCOa}#`X`)>IMu;YX2_~UKl&?dCp8W+i$J$E?eUNwyG$x zr9GG{shs{1WtA%Fb-1jzrEj%M}O~7k`6z@mSxwf*r`*VE-ob1x4 zdS+NNGdw!BgGnK)`YlKEmDwj&9$eUI(tP%DgQHk|+~e(QZ_GM#_l3_3yS^7KPB-}l zbbh{;o0sd>pXI(pc7_~#k&=6n@DGt9k%u96olBY%+;eX5touLnc5;^0b%C}I3@P1~ zMU@Zb4!;PAduh@B(&o9qM^nXxd5^Re0^`=5tdzS~legs2+Zzphk2`7~-+%i^Yp&tR zc`wfAsZUuu+xeXQguHCgiBER*)Wn~zIcGkvGPtf-Ec6fSR2{L#xse-qFNO(jwDt65 zQf*9lv@LFR`HSF(hL`JHZvR_x*KYnC>$N4NXF`rJ$|#h%aJ=cXePdqxEVA#zF~0q~ zs_$u^GvnlcD>`3&%Gv{c_v9wywSFfeU(gF-E($^C+}Xaub$4yGWqp7 zn~l>BsV1(y{-$I_-21qPmjfg}MQO<7uju5sG4uEtMo)!OdxaTXad)caE_=QI|9tAh z58>MlT@O<+&L4 zPFGNSOSJW2#=Zh>-m5V^aIVpwBRILEpKxAI$Hj9qRk4A^dgzk8kdu zzdW6IX~NpC)AiMA?tgXBi}hJM_2{!{s_$p;Zk4JEdpA#~@z^}sTv0Zo!ZX451j-Z` zgbpwZ2JGit|8x6~pYAWGE_l_g#y7?8z|3uOU%T&rF`oBkRsM&@dE(7+H&hP(uZRVgqIsTyi^asj;=rrRa|Bo>Y`Asxl@Oyi!;b{Tgrkg7W)=nl2QFw$5n-yE zvNFK2~F9mJgKN-Vg`0C24 z@Z-~LXP4zhw>5K@+s=ttz{MCM5hifqX-CpDHS6*>e>QISp0(fkQQglC<$e$MwXgQ6 z3o7(kb8)Hv^0>RdO8>vPxi$a!y}iHFS269bVqY+I^>s#u16{HQTG_w$u;f$8cfXAZNQ0Ye%ANvGFZNVV_w-0?i<&~@_wR-EfsGQAL%cApkfBhC+a9FfFrs%Zk z_n4B)q2;k|s9#{2x>-V^t&sWRi>wbUz9^b$$R*}%eZT2IfML4V?u}!+{ zM`DNaw2GuI?R{m3RXz&%huN5jZMwNA#p0pfe5MT#SZrLhjl#m)eLr0_bzCR%%sX@2 zkF+^&yPG?-rd{!3;Pnt&(S7E~t&NN4R`*G&UajLgU?>>!??#$iEZ?~-hDp!*LY!9e zoyuNz;F`$m_3fh8>08v-=`+qZW=`O3`Lf{Zi~l~7Rt^l?roUV9a{hv8vm$3Mx2|@Z z^6p%;^}1qN8Ldt8qxP&gUdU_nX^VDv#oKM3KMwM=q;)i8?8-O#lQr|_x0CO`d^wj_ zIK#bu)9Yi2yfUGuva`07oh}yN(aguB-CTaJ-z1-%Z=S%5Hrs2fxjMC0-E_+kuNHq$ z{y_Ir7PGL-1?AGlS$)a#l1zGpvos0{5`_DjYTOG($ym$HYCcejaXECtY*SvV~ z>&^D}FaG^0^jG*enNy@fyy+$5`PzoblAq_W+jb`SS9ARG2v^C_{(pzP-fqIJ=qCk? zrbimp6#oeIy_jNg^y*4gBkgH#eJo6mNqVYmXBM85V_|*w>4g8W6BmdwWE_?MG((+_ zNrRQ)fdYf020w$z2Z0ME6BHRfT*ze-a;P^-n(A87px7~?xzS94EvomR_pZjiWRHi8 zQF9rXcp@7aGB(&Tm^d*69hl0*aG^ncOQ3=jLu17g1184E1}DLTi^K#ExwicgG-VK2 z!jP$S)b-bfuHa@q;rbPg>P;%Pk$)7$#e+ONxfmusk~|N4wG?}M*i;?KQ50*OJGxc&ag_S05Y%}6n#@G9E9k&7lqa}lb_>`4CFLICDFiRX3 zVrXFCb8zUiG;rdvbLfyfvXq0v^O;fhXCD?0T?S@}rnnRXR>zPB{Eh!#&eK@y(4w(m zBa7LsDajWuuu9cDU}F+sc6JDu{Z)1g_j_jk=Q;`PEFTiMm<~Ed>IgLPi-_s zsOewDv|v%s5e6_maJZDzUbLM-J=PUD;EH?Z5!e(_)AY+Wl zVkQesrvjwW+5;07tCgQZa;+lemQqRu2Q+ZsC~ z_>u|Zfkx*)3L#!c4(9G+Vie*yAh57dwn?XnmCwe3_s;K@Squg<#1&XL8)KC{a;``) z-dVu>QqYl^WdciEgc;wW%q9l4D0jw!0}NeG7X*(wH z)UaZrk*!{buVPa{rh5V-gB;U=xs^VdS`kv0BN)zh=XaZb`4Fs@o%eb6W1HtK6;dwD zH#*k%^DqQ-TXD?PGi8{U)nM@Az4J8d4tlV{7OPWXA^X2iKqn@(z5 z>aH(uRV!Jaclb|kVQ*wb^hPfc76-;gjf*Umyt>>G0*${vi864WSnE)sz##GDW(h;U zMZLREW?bcX(xI|}BjVXaIRlOck)lamjA?V{DKCE3&QQSQ{BG|1XnD&i_G@;mWZ$su zf5`uvO0UoHu;1a$7iN9%DDJ0#Q`ou39owI_Grh22unJ&``gnjTRKS-ZZ{Fv*t9@=A zNc^;UdCnK@=-a3L)xx%nGFoCGDoRGcVYz&CtNYQ~yITLgv1W z+@FWC^DFwL^`87`>9}$7A7{$~+o$^TZJt|SsyHq!_euUylkAZLjb~aKZiH$6eHnay z@51!$FK5pBwv}`FlRRhJS6=)7MlAg&v`T*O_Xu^nty|vBH4?Yc*(cT@(8kL!XEul8 zr1j=a;tStz=l-wq&gZ|!0@uT=j6DaH0t^_~WeT|&9lpQk<*4aNOR!xTIsZ80yn}0V zt6y1t7g9V{X6L+Uz95UV*)(B}pR?^5SM0ZmmgneTWOQi0`gk5|j>C=HMp>)P9z5Q+ zWc7htmu;`^G~2jPF<015H+q+rww*A`G|TKQKOb2=74ByE-H<5UXzyX&lEKWFvE>ez zf#iXG$1d3&IbiD`++a{(!1$QMTEj-JgCVilYcD&_2_^x}+NvQ_)4Qnn4cKB*^6k9LkM&P`+2erYQC-`TJNPIFS+*7MM=1(=|KY#P!f<7ZGeaWB6`!->KNPR2_%d`b ztz9zJ-oc^8;GC9AzrzM?#O8omY z0%k7o|NUpa)rv{1k2*M4H2p|LF5wG#i(0+ z{HB4Tv4L?fr}%SII(NdIq;0dKIOY_O4Tu(55hiEprJ zY_M5wuz78;MQ^a>++Zu#z$r`(eTmL5JLZUN<&?Exlo#btv1sJ_uQAh^MZ`UzNz|fI zIKov!aOVGc9%Pl1PCknBjV2p9$@Lt>J`L)v}_KKS>7moyUuxxW}l90#N>Hb?g z9CfcmTegS>?62lzc=1coWJ5#JjWhR?%@(}4Jj-DN)5Z?o9|q1_1N$yWX=t)oRxyY; zFggYZr9SPb?dD6o+nM>4bHzbnn+J^hlRI*k_GLfiOuO2h-W#@P2D95y9%rY{oY1cF z+A~?5*XK)ww`qh4oaU=q+NV^(V6`grg%hLnhDJdR?q4T1$Hn?Dx4g1oLwL&!2JHvU z$)a8RiiC=z8@)p(b@}$bnatNNI`_YoEMrHAY9sH#W!m&=*#n;_dYwKbyiY~QSNI>YFRJ z<8J4cyM4QQ`R4q-?wL7%+V2SuBt>p$FkTd3oD{>%cxl0(jU2lVHCjDzledtcGNYMW zq1B^%-fD^d1F0MgQHLa%`c@Y#c>eSDnh(ssBpKR67Zm7BV(ggzdk4cW%QL)6cdOsZ zw;3qBTsZISR*q9!W2RJG;B2`2>t<}rhud=)<{h5V{%T{#0p5Ezp58sxtG2)N&h3tv zFBdzR|9dTXy7lH7M){d9?#ypsxNJJFUo^J2{V##>*(?dO1n%Fs8~JA|$CIZ=-iGRY^SwE<;C7!wJgXBIXI#Sj zkN1AZ-kHBcVSYy3L)QnaMR7dUH<NcXgOZ4|iufoof5qt2SXMXE6qWg0A`nfQ!V8#z`v zGBp@pXqfkwNw~t9p~18zK=sOn2H6Pp#sfWB4*gCY3}QP%To;KtDtUKGFnBK#^?BsB zdk^as=2^@POIUAkeE9FoA^KbT!wF^2N6Pk22A2DLx*w=SNve9xvOFsD_}~d1<7XXw zCzWm9EjIJg?Vg~#Z)>ObvJ?Z64&OXwpKqJDYd-aH>(Ko-<<^g+y#mRzXFQqt`t-pc ziwukc7&;!Gnelk;gJhq7$r556*2kXs2yw*xTevSq>GYw;sb;s0y%x{*O;ay&F=8%8u}AYFG~HPljGY#r2~ak3+7vKv@f?LT`?4GPVrk3^pXj@A0({=eZIDjpPms=&QE)iaPHBZh9_qvRBbOmKk?-G$_GzEmu1)lr7lQ(T9Ni5 zmThsf*@eb+Pi7aS^BO!`!D=6M@_OHYkEeca9evL@+QpXYbtzS;Wi;MMTX2)ncU?wr z*c1O}9D&<9oGTcbR*P)e-L%f5>4cZ$LDQ&-HM4jZYjkUAGThK;T+n07(YWJ6gXD}x zb^-gAgjXCLEzAxK$1gNq**ROyfnREe%kB9g{TlR`PZSXw03!klJM|S)q2AiQ$r2?r|}W^LDSdw52lMc(v}|s}1KkrzUA; z7zw!SSYD&$xnffGVn^TfO3F_ROa2Gylz&pViB2S&+B)nNvOJs78&p2k&MY ztzw^`wX8_1yW!0wrB(AZx&_hw(J9& z#@l0Vxx(%rFW2Sp&wq39!iOh*S6^StDJgouA>6S4UH;3u8;8xprmT1?QvPv4*87ue z4FbnCt2TX*exJjrk$so%?ZtUqV*7Ld?92bVt;5*+q31#7kJ4*63z)ru5K|t@(tlVEW;=2zN zw{$eyrg!+ruYDw|d^V}$+$z_(5t?E1ihTP^8v{yh>lc~kiDKc|yT(M^LUAO%Ix-AQuzHH_= zlgyDG&d<1F?VJfsamDe4?arr@ZpVo;2s(8{9p}tkUdFKDn`8L%^#1RC2fp^bC~Nsq zR{3;$XITNq_KrPEBSOq4q{M%lU0a^9o-@e3<4IJ3d``hFKHZ3P`R_Gfh5o-SVR%r{ zvVM6_x=!DUAAKAZEeaJ$te>Wt{hVsA+uUAW`M;u(q{o{`WfZ zj{4^uTdbdY-ell4U~=}bsH}g*c7ah=psD3|Gxv@z5$=tGmy;L+wlrsLIk#!5>z?Mx z3pQ#zxUzj=2J?=~o6J{P)UQ7S1 zTC2|N%)z33c8`0<3I0F#(mD>=r%m}$-L?MDgY|}+ZEv#A=6opLq0F2*S?fLov09Vps?9_A_Jcq&&>~s2Rnq>;{*>JS9R=Ha842^NMFdx7|3-f zzmRn*#a5`6d4$mYj`@i542u& za(riXh-tyW1BNmTJPN7~Ck`kvE#dj2kZ`o2$(bcW;RUAyUy}>Viwv9X@9rv8vVM@2 zNGLgYk&%nQ2`=zBx;`(A2 zSd7(9z6xIQNR(UN-Atolhlex&1pywzZ*LCBFgbL{#LY?m`g+3ef2;~K3>Xe~oc807 zyclp$_4&l&V{?i(U)>gvx0`o~RQ9@qYSE5AJC`J6uRrQ0z{PYRa596vh>BvfC|}7; z#>5{AK}Dx4uf=4&VJSeYy~TyT{8z@k_g9T|C{?(g64%3V%ntg`+-R-8+x++Hg_sY-FK#F8!%&I9s} z|0I7taDQ^~Sh6Ggx-0*Ksxmf7CUh|~DX4`-3SF6({66z|tcO{fd7Q`elLbqcPLGqk z&c*bhfqmKht|`-^Egnob!p*dYp*6;6!_{k13>Fusvo)}miZU4f;9y{CW@SGh#dO2r zf}lo0!3l?04ukfzHS4afVc6K^Cgr$HG=+&Xx9|WHw;%_@wJ=|f4~;R$pK(Rx^D&0s za%B5prnj2e^0$to4F^MWNqO5A?OK+JC7aSqkJ-}m!6Py;EBudiLwt7OB;<%UC+>Cl&-Y z6*%3#f1=~)W|4^s?lC8x{7Z3TSW?)Ou;vjvyM;vi-Ss^-oJs#PM1+>PJnHJ&A|k@| zjEQ%GgI~8w{~InL5fPb1hJG^-I$bDth>A>A;AU|st!kCMSFlipA)!m?*i>P^Pe-aQ zZ{}IwAiU*$qN@L6CWiTEuFm-UR)~QyAbz*WXRosh-di$79QpI#X^}?LoS+HGj~bNo z6d6SS@aLrOdTh)tbk<+ZV9KHHIbl*7Zo3NKOr3EmxWBA;W-afNX*!#e9PjNEsN`dD zWA%J0;q>Kr(}T&%0tc@47AP@9B(0M8S1s7~O|zj+?+C+{Eox@F51q4p>NPhyQAzh9 zXG6oYWdf`l8>Qow7`AmD$z5rzE-k)1&^xtdrXJ@@4{tA@Q-WEF`ez?m-qtwUxMGUB zxT=RfchGT$u9W49otefrH%oj^N$;|}dfsLIOQ9#BC6l7=b_LI3V36Wq;0d^~DpD&l zn8hT`NZ+AXJ)PC2u+KJ|1&$2|;2CI2n9D`&gY6tRFxy`%b$RPB%!5OM>$b%F{V}cQ!`>i2JLyTk#a#B=?_DYDx+#HW`<5jP z76!~WttUL1^m&EM!VgY*XC|_xw;twJ)XnwP_MN_9`qp*4o^G!ku1W7skyD?`#c<|= zh|K@uqia}JI@R}?o}d}3asbJbcXMVKj}kwK$C^XI-9%AIN)i`Vj;Q=e?C?PzGycKV2+p7yW9 zzRyn0y6q!i@x1E{tEF+Wd+m$X6SEYyw5?;vQ;1`*Q9LF7VR>muZ(7rX2iF)noX>GJ zW$CZqrL+7IlXI=@gaqz{8{893mg>e%3*-NF_FZk6l40rGO~}J4^i$|aPw^v!=CCx!FQK={8{_TbXL{9Q)#BN z5A!lawBPXe;O#ujn2^_adiR5AI$w@(ZhF~RVzo`_VcF8yPqDleTqlgaTWsuFIMexp z_dR3&&Iz2CSYt1GF*9i}3LaX}vh~oX%M1&gVv2U}XIF6$u-*}nc1yK&tHLw|2?48% zz5kln6++G=>38sJ>}_JcaDYulA%0e+5G&&X21dmQN0uX-qy={l{N!?hZg{xLf96xsa*zJ}zh-rv^M7ee-qW{*^Q-R`hkiS{Aogv}^N!bv^OxP9 zZ~Hd;{exDX0}cEDs>HB|p#i*C|+j z`gvit>-VDNyYFV&SA2RrPhrNoeV^LxC#Y~ZuyBBnl>2bizm(<7lmlFA7^Hb!K8D_V zD%i63;p|9)7 zaV%x6e?G?jWn{SbaxTLH#`~O3&l!*Y*qh+kqVU*K?uqCT*0^~ubLa6fEcD(J-)DI0 z+}#_3DJ~*!E}7XdaQQHZwsl3FIp^fk{$JSVD8r3IQ9HTVZya!AXn19Km*I&RgU%sY zjsp%E2l!YV3ho@^Wm%wHa81&zTWXVHVrOjPUV*(=9?HfrtlJ{%uW*3JS4unONS=k$ z>K$IPeA5eV%#>q#6vd$w%jh8FaWBe%!P2*Zb-_Vq1s4IGBQoob%J$vh(sR-L5pZ%U z>oQv@{~bzB2a;YX3aprWRCC!Qty6MVqAu!-&PdHVs;tDq?UA&zfKiF-sFKmN;|mvQ zaWQBMxtOeLRWeHAOgx~$<-jL#+RSUQd0Bu+&Hbo9j{kUBj1Kh}%{r>Mp+Pd%!(tt) zWfzOCRHJSdtFhZ76}iVND;C+zyZwTZ!CZ;Os*eAEt^$jc#eqj6Eed}awsSNv6|@*6 zEjH6*@w|IrX@-hnTEY?D6a^`j@Q$R-Q<5AlRQTPNa5>HLJgQ>Dm1OuU#G@s}Y#OVB z)nW%G2h}(~wP%aGFFf&VTV!F?q8Yc?L+FSemxKPM1dk7k?aO)?el&_FrH1W0%kaZN zbOr;DM?&O@MyUh_xi4OkB~QcKRA)3kayoDzyzlB%87J9-gHh*%mMu|@V4ES;;2<7% zGGf}&rEj`|GgK3f%?V3#jk~op>`ZFxt|QT(dY3w+g&lB+?>dsQ>j=x0gW>;Xd1x$K z`l5kh27`adviM8q`%kLI>ZyILTpBltJ*|sHXa%EY$ugzV1OItKnUm_CO`X6TKkJ$2 znY3K3OL;+w$?Klo7EpKpvMlwVYNXt=NS#`fRcX$X&f(cY9X;ct3J z&_lsBt&A@iJ6FBvIya|NiKT1P3ME@c_hT8ow=!PsSn*)Vi{4KeJz44flSD-W4hnRL zOptmxF|T!kkme+#%*j@nuQW0z+P$0-lsPr(<(v6G ztc6mq7Aj>e(t5SXC~L9RtHn-POT1n!3Cda;^=fHS*0QWu%XVqXRlF*G7ZX#JWth5L zao*8{hco!*9O#>OgfoO;;VP}w(^!RetZIomz}b)$b|lN=!mHJvGS-JJSJpVlHRk|l zMs)qD1DrC?Mc=MEb2n?*TNr+2Kc4@0s(I?7^_d;5ZLd0Ea39o@@TYsJ|_S9rX=R`u}qT81r2%Wwba-J6zc z8LAr|^R{l4>#VK16C8EJI&^RD;}s3emA8F)hEKL=BNunf8ZWW$A&#aw&V@X=VGa%QR}KpE z9N3qn|IKQ>cS3%Q&jHpg`Qa>+nNO^W^vVC)fd|KBHx?_OasGL5f1|6ZmWb|jzuhSIk#cgdUrj}r%3S2)VVoZ^`NA+kh=&tbhs#D@@x zH*CR68Sm%+tD5=!(-F2A4F8=9*lP+nijVxirOGQ@;CR9yOhW(DE*7rY8zPUqpM1vo zPaBKi?E*)Rk4`EE3!oV$~re)sEy5SR3zed6Zhbem(@mc6I?>?gIu!v2@K}(yjW@ zrUUsrYk%1|ZnRxmm*g6w!{o)upmd@!a*d>G6Nm7%Vo+x)rnSb}?0E`R^;@q7u{R_les|nT6A*&Cst+qT`bJGErnT}IZ%kee%-WNu}7uCl;m7OsPJMrcCg$&mp zpQCyl9aft-Z77Ls_!8Vz;`pH0=>DzHP&f#OHP z*MG{E&326Oh*{t2E-k}bz+&6|)p)w86S*=LVm2#`B-+hW5iT9MX5&&PZ|V|9AFnX#N!bssG#R>z{;iJC=qdh z`G)LQ9|k6c27v|MX75`i3mRB&I5K^3SXKKu*`|TVr%@r~fV{%Puo(;Tna!U^hB2=& zuim|VQsaT@XL*f>m)nXLm-v^LE_bNS;ABu}5*2V1QMjqzE?-`4ULn23qo=%bx(P!J zL*;CD@d@UY%Q^XM8rWhOwFR1FmoNy zZ_ZaIQ8|0NQ+{y6_V3mFEJeG`a*V$(I#XVI-(0BAf@#W+PGyJxv)+8qUo7{};Aexp zWrud9qr=W3|DTiBS9I^M=$YQiGQm9O#DPxtXN!AxPHs=iZ{AtIT`~8zS>9{2@RXm^ z=KpvadZZ=%N9*Fs?A1GS%8yRS-!U<`tt5DRX?NJd{p!<~b2i8SDrGj~|MsJw+hM}= z_NCSq4HtLJzF)Ceeft#WUy%V){k>-Wzbz&Rvoz_qtaG=zBWT&K>@n+bmE#FZrVBgg zzLsB=Y?Yt5#gOe>Du2te**_LqYs!6?DkZXBcmqS-$Gk;8v!+Z6{cx-`X@i4eM%xp~ zZ5ci+ieFsgc^fJgBpzJiIiD=3}lZSJA5#==8uC*qznuD4vky=ZrrofZ5VWH7(9e_FHmGqV63=#<}h=^QQti; z(p(QSg}%My7RJlME!c5|nc-^qx7LVgKDWr{c6(Oy9=X)sa(TbaaqjN;Mb^_r{(Nc> zKPlXDve@PHl0Ob>YEI7Cys+b=vwV= zcl|w+{a)Mcy*KOZ1@XVk3w&?+pS@*mb40l1hH{OgPR*P%!cWy_zvymN$^5&%)8YDO zn^%+n{dZuga}3z~jDHV9fn9jaUD>sDO*`z)ay!UB4xClwjz|1Tn<8k4^K}K%TD1n4W2`-)NhdFL+ zE?{6#VPesd=ny=>#>m6aU?btccsxira@!uJ27i~yy6Q;+1@4OuYX}B&MMO?|=%C6F z$5*q+@$lryoYCiGG8h?-G_o9%lUXloSJm%DRgV%m)f%9(Nk6BaDxVKh0ijdj5^ zU0-G<1(ziX2M+#s6k+0X2~k{dGOSy0f7Kj~Nh+u3*{jY{kQSWI(8#==qvPf^om;ca zi@9!87Ho_-q9dzrCsFz7_SU?+&jc8n(q5dkP<|z2;da15fT@coN6CTzb@R-pTpOwc zR$p7u@9!;kZmNO%VG~&|*}AZb(!Di*nZ#DtD#XlMs=7!_&aksVT=)Ao+aKl|0vKHx zWqhmTc7?xWKIvShchU659j1J(U2hI~FPdV*(Y@odOpU-Hj!5N3^Ui;dI1UTeOqg(( zLGK9%1EUGcNmj-c8Y&$kvIm(O*zz7PPzhoYNLrx8G9hUJKTCw-;^sC1hEJzI*wTX*LlMh1iBOa~?` zm{yUiV0e<})R~tuGHaKzsasuYFff}kAtX3@*6MZ5?@nbe*!$oEe-MMo)D^+g9OjZO z1uC;wNNBVf3(lD6%WzHLKwER4Lu0cu+bgFA%c?a}hj(qAHpy$*A|*u^zK8@xrgss) z-!fZ2G|M^5%aD-Zs};P+%Sn!*Vd1$=x21mHX+Gz-+jk~oYH@>iKeIDK(5J93>B2wQ z4&)zTEbvd;b*<*AIU`s6=MNm^b2%O~TWK&l%jv9OI&{BTK5o&>Sl0~?!q}Uf8?JIr z*Z6*TQLfmh&KK)uFW$}gz>(op|5YEQGpe^_es3%LZ=X^9Zm;<~<%ga98&Z$T<(>S~ zae+O7XC31Qsho5nzxRBL_B3AbGreea{G~qj@}cFsFV}=pHvu) z=M{29zn;~}lp%3uYHq!%W;4Sf28P7H3K}UkkL50RYNiRXGBY`J%Jp!3=@F2-?YU&yu3hua zs#OZuzPs2{`zP+l9VZ80K9xR(4=P)HgePVv1<&67=BYlbfDZ?!p`*6;{ho8jJ^%gW zZ(!hfh@r(wR_nQ_mY^V^Jz2HEu)7%bma z_T_49VzhYB5zXPiDpaZM+riLqhPP$i`kbpy0vVfHpS*Ug-uu8mlBsb+Ymf6XQHCt` zq-9PnN7&B1UT{z;>6&3mmd_5M1Q(a?h|Ue6IuVRH_WP%*A2RBm^=h_SAj^fYYb&O0 zj^q#u#aIw?kB0=H%?e}>|r<|UVqdm_O~3%{&lTub1F}{OnVWu z>c8Z(fYezA;L+pOsH|Xqp=g$j8D8O2Iy#MwmVB)-(ukFHu={Q)Fk6D5l&|oeQ^f}c z_XlahjvtR)y0dEgNu%#&+=2(?#a>9X_b^m~s27Vtk> z${_8yt$O9-Y8~TS*77Q+cH4U7ueF(=xPOM))RRTgw>~^yb#J}d*`@1>PFGIww(q#W zKP#^&^3czn#~6{&MD|jVyaMSedrJ=}FgAzIm2=tEsov<+RqlmDb&HuTmRo z->A8(T;2WdzoeYShX%f!p1!+@-yDv`JTtamaeczHOm1?voM_U?9@JXlE_yVix8vad2iue@92kOsJYgwV za7^-iR0D5EMgNk3T(Q_qF2yp9o^o=9odGt1VXG!B>N}#`6Vjkuy7Z)?$p?m=yef=A zWhqGpos-0_zO;$>@wCt@sKe62>*M-;30v#MPl=s7X4oZZ>(wS^(C;O(!BKTOPm zzb_X4%f6=TZ)aoIGLzY0G8E&Nw&Puy$t?@2%Vfjj&` z<-cam4)4mJcyju?Leo>fR&Tkti9x6TwWQpH$_2+azqoBwvFZP=r-C1UDPDf}Z7sL` zv)eCs2Qt+ES*KpFu%y2F4*R0&Irwj6x0qWeNI|o=jfC;5_NfO0^9vS|6C?59|!% zV^coFzABHEuYoP6fmy=yS%wl93j?dbe+8B>1tyIn1}+C!`#x;xyTHn#=os~+_*^nW z$rHv|4Qx&gTyqvIjyTNh7{D?yMN{P^r@iJj76tJ+Ol+I;6w(UZa|GBuna(A2ZcbUv zUT?tBe&NlbLmU$ewoaMAsj9^4wUS3`0Tatx77qosj0L;`47`_KIdXjz5H1vKf243p znW-g#qpN|nU~$^FLktoRnA;f4Ez%X932?Md;1G4=ocw{~_k_`a9M{7Kx-1uTzOe*ScUHKdSpHJ6xffY{vAf`Wm9k{{>Z$iEWxNPKqy zJD<|Ej5mBooy02xFHGo23!1<*wNR|JS>*Kxk<0%lu-!CZpS?z!^xQ+$_J$&nNj$}hPUkL)u)YvIzEL6F z%ORye_V>pQjf+Btfx?yPP2gj=n%N%7RtGBmIRF2j|KUCc?Xo1_Z4Vg(5||hm7%w_A z%yG~Z(o{B(O6vl!!fIV^Ls|IjGsODbM18 zMz9`RHg`?YV?I5FoU#dO0u6H`8bmi7GLT`+=4(=x>z#FIf~lAi=RW~wiG=fq7HJx? zXsLQL&JhUMmZjSBfMbr**>eIqYtwX22W?Js-^RwE%l_X<_vR;?JCj=39zW4x;FW7o zZhD}wC_&Kh2|v#z8TZM`Ud2jBT9hvwV4S3>{UL~X^`F_C zv<+LdrzQ)f7OU*aX0o_!%*tTGzewNmk$&q&)w1BmDq)7E%Nm`*Ca>L0{q>cD-KK)ZNmUsnjyyBmj5Kvv>qrBC@Ku3IT(CK@?8G;;b@ zpR-dU=bJiN9nfUviCTR%YQ1Rm=FsTvQ=?~I6^wA;QE`dNTpc}sD<8}M2aKmfW3O+G z+CM3Ft0>c#27ZE6VF_c6dbtSKEWF0oPLF z#nO_)(iVH9MwX@Ji=`KbrI$}jufCREFP709meD>fqx)J$zgXtvu*~VxGG|}QoG+HO zI4o=Vw5-+Fvet`bZw|}eJ}rCqwe0<3Ifuh?j!(-ueJ$s_SnlPp-0RbFZ(qy3FP8T> zEbsZWyw}(A-izgb4$J>OE&unm{QqJFmM(053&Q2Ur7R3(_iISve9WS?Aa?7O$c6u3 z2!uU2Aa*VBzG;!EPVv&L;;mPGtixA0Y(K#_JzdW{+Vy+(T+vd;vQkqWzK(>tTSsk; zzwtzeE5(_Y)gCjl<^TAPzg*wbGuPay>jC4HrICT{(b?Zio`+P-Tvj>zyXW=L(&r|J z7liw*{a#@$UVUD#{Ox_EN`nOOFYEfy)|>#x>b{qn!zc*W80O}6FD)gevM5ykNp)y5TV!Vzt& zzqk7T=UgFY(LP_JZRWP7@*nl}KmO<3aI{*$%(s+hN<`=F&3ca#G!=^ z!t8T^QOvyaZyuB00=_CErFjwzhbnp+zxS-Y!JhW0lii_fWrfnT2!>fVIyaZEHezD> zqtNRu!7yhBGv8*_GZMWgBNWvddJiXc?~YKKGNY4mXATQ#xv7xRXE*K?<|7Qw#}|RO;gNk zoNMxc;l?GeGpDj7+=X1aMFBrrUkFl7O*QVHkEQ=C}Ft9P;{c0T}~w< zgCStS0iUo6hC6L63lcUtMV{SrQ#<)W(@yj0-am`x&RW^~bLHLARV$^cmfu=E)5_bq zV)gc2iwh&>tll}>*L>B*sI_x!)eca|KSwR-E!S?=Mhd)KVoFE#gZ z)tZm9*8ZL~i_?1D=UKCbZ?C;yHKXvqMNRb=CIJSIod=>QLZP=zCDG z;FXR7i(SLKZmlZ*@9uIAY|9)3v>xzVXy; zR%n^M#aEgk;I{jmrCZ~zx3M?v)cw7awO1&fow4boP1#~@2G{-C?1C%{B&N;UAZtBS z^z*chR;zc4tY@^|*gW&#(On03zc}dsZPn|jgRIhr@6K9tao3Eszt#)h*(ln&M$r23 z;_`K(*3H^7N4aa(Z@#|4*XD?@&1~B_$CU5PQU7yn@&C#rr8Ni2Yi9EAIXro5vmr0% zs09QguVj>3kus34c_k?P*|e z$kO3*Gs{*qTI??7bYvzIZ+!L}wnMwW@*HzJthvkP^wniyN9QQ8G@Vpje{0Dfg%vUt zoyuoS^jHj(_*Uf#PvB#CbYKp{f{#mz6myoGwX-=MthZ)*Q@iAj=?~}3wv?@Bl{w=7 zXNtz1^^P%DUH6_$jCt*G_hjhbt1oYDP?EkXE7L#s&t=6OSMS@*X^otj{r6Dx&-RHs z<~G+%{oipj^6>md*<-(NY1__S_fYD__McZ$Wv8zUzqLB{%3rDLljmMv|9|?e?%12= zTbn=XTmE=lb>{G)`qdZzoLo?OO8tJ@xNw zSIeSCo3np7ruBdKjJ$U<{O=9ZxreLwK3iCOIWhK7sNIcvxu>ObucXdoC5S{5}U zQfb4Xh_Iu!<*UMXJdIRSQk>Zmx2WYl>w+KyCk2)k#T$Pnx&8Hg@1^*OOZke*`Q1xZ zFU)gY^S||NCX=$?4)-anDqO4e?Arpwl2UH4Jn2ul>|u8+Q|{U1doP#Py`ETk%(MQB z=e;YrHD3$=&8+`pNpz`@YP%&Ap@|7ydy1LkC@wYp#rmVWO+J9%>-^{P8BG$yt zofld??M>90xXp)HrOVb`+3C5vt~UDH>f76jUS4xuWxnp=LG{Z`Hk4qRC1(bpW9ylZjGis~6xTl-w@!}Al zB44d+^@BIJm_<1y~* z--Ljr^2w`K&R5U9V_0p-c)_4vWNJ>Pj|4};fmLE04_1aN+*E8}v2l68yiW0GWc&8l z`+l#U7XCTn{nk^F!hg%sBR&uWxF_sclRDwCHqB{H1F%Os}Wa`)*(F6~_JK zrs%m^{cTR)PUr1-?DYHlo{w^I-|y+Xn!V%U&ttpa-~HDoS;FN$BXW+z9mawdb|xRi zi!2s1N_E6!I1Kz;Bw;^X>vRf>GS!_`I%oTU&u{<7tHYAIiJtrxm4`Doeh%`EHlp-SY%rGA~?b^?F@&md!#269Frapn?w!V(WvpbTa60 zI5>V4;A>!KmwMoMCEj&e?)Lts+fsK!Qr7&Ry4vv4r~CgVd|k9@Ye#*#w>0DRZ5FF% zuG4aRbcW^O(`{V$Qr-SIN$(JAS7rToEWeifVVB5^9o%V8W5O5B`E=;fYT>j1w~B?~ zQye^;M7Ex;@4KwXrQJS7#AF4J=!ymoHX);Pp*+k|0uG!V0&J>#9x%?Eln@^D6?VxC z2iqhTMi&PTXALIqV*!Q?DQ{HrWkf`ldbnyQebl(gc=C^%*klog2mjeULXz&OiNjZ! zc`T4?>^Q(Wp{J4I0)wYG$Dyj7#wQt`Ssc|;dy^6KMM>i54^0gT!3mx*kK6^mG_Y_a zv4f8EED{r+@Whj0=Z_o9pIy|NQYg?dKT(EdE$hzx8LwNbGaqug?{Lz*%V99pFpYV; zh>!f+(=!iPJ=-P_aW>KJ^Q;?pqD|Ij9+FS&oqg(!wDDCjzt+Ibv&)2)EWWCpRh;y> z`Pr1^X76VnKDl+Wx0TAG{b~t}CN>8Y91|8ToD*TqaN`jxryv7+P6MNm-Gm-D9}Z?M z)d}vBEWCU#=DaoHJpQ`&)k49!8f;~g+`9zy)mTh5oF=C@u`JI!EhiM~ll5 zh3W$;L2MraT0EvK67qC%Ol-Y0`&ebf&e)E1Q&`_VX41NFsqZ9vr~xBS zNTzPl3Pu)T3r?Xc4qbdR#MD=W>Sp)uymnb;5ns%Ww?=DC8}6(t(^%K~mT{sIyJ><$ z{gX#0L>)v0-3u7(G+yUgNmt)aFWbJmUNmfj)rq^G%ETgOwQAqLrtR}FPIphk-s%6V zLX~g4-+7=GhuQIe>%{kcEnQzGdi_3=^p67^ejA#^eWvo=QA~1PDas)+$B8TY z$03Px9~w`-cH*s`(J0TivBTZx(IvJShgJPHc7>mLw9vtUzeeByXIoK+h>QE-Ke-$G z%FiS-3774&y{BK-?DIrPT5@lQ^`=SF&pbILtEk9!!MR)f_7kn>nMXtR71g(|d8$`k zdD`;drWwc2q-X^sa+F^xY&d!5nHhJ<*}T5ZbDsAkT3r5luHxM0dEd`GxBLC`d;{N> z1?;{roTPtU=J1$^O>LjMECQ~$=h-E_7Q#djeA+` zil-irx%XN0+bPL8YpeR_>@(T_a8~)bq?K}SO>&LCtoy`So4i}PEseN=; z5GtH>kl$48--IT$FW(n1IxunxR{s0Ezq`U$?%}WFhwZ*7H?ha>XylwV!Q=7U<1A`6 zjnicRaWJggU-#`X%cmz&2h6zyxWDkHh)fSSD$LMOImO|z(DV;{yRI zo>3x<>0sp*Rlz+Ec;gh9zI_)Ac))s$ftTMx;Q!YEhC2a`+$N5b6-z!8#U(q&b)`m# zvsQ1vuB-mS*~~n``Fe3=SiGTAaAa{(-SQ^$8S(loB6-^*94z80w;SwF2@6q++V9-r zq!ORXF80{4$sxVPV~5YvEfvp>`fI82U;dCEXTiHgK+xZSFK!3lw-5P`6$Fl{3%vf2 zfBAz6QxbpdkNhti_!CS8<7Tw~U&enWyr8pPNI<-!-#|dtf!CIyFzNyi^TmqB4{WT< zSuZx!*&8u5auoJAh>9>)IxiDuX5eRi!23{9@YMlM)&Pde2Rwhx1sWO(m)_v)DyU;B z`_yND+3tfCa~@4;N9>d zr2PWt!Ge}shsy2Qd=`q9gk`i=Pc3;VYF_uz|L&K(n$(D^MY)so(_uYQwNTfV>Ozavrc>4f9&Z@qta^ndj5pX=JM=+;&>gYk<)4b#I3 z@f~ehFIt%v^5^~F6jbErpUL=oLoM@%iPbmSSw6JO1$VNUcQ7e(vK{B>2`HGfp@WB= zvtvi}4VO+WPX?Wt!ZT--&X!;Zn7}@_pzfxrz~KOfgAVK)7H}L8;7L#yh}+Q9HGyZ{ z1#Z>?E_X(5)(>1C7xJ(c@Ch1DWeu1bK69$8qu@c0*oPN54;cF|hL|Eh^?-`Ef>nC(?&WQLWF`?*jZ&XWvqiSE()ER7@Di^-=bFB1z zBH{BaqVK&%JVWHnKQCrfw$4~mS@qCl!ivfXoGWK7jm&>l78(C(#>AVmnoGhS%~0j} znfQ1C|CSB)ju+Y_H}EqFa>VW6PiL4TIiZaqq2~94wmtzty9cem3fMk5@c&Qa7Z&8$ zvtVxHgNgsu_|-ZmH9snOva^I`11nP_`wD|n9|eI~30zkMgoE4}W-@R^3ruDa;4LZ* zWOkV6mp<=Br2VXnS??Um9u|r$KEOHm05|hN-la1t83VXk7x4HqR-IE2@Gs!`U+K^& z)i`y!fS}MS9{J>j?hB`-Y}aC%$jdr`$FPx~t1FjjW6z<2cK-#7ydSjW70Xg@E;Uw_ zVy!DPmYVwnSvjkD1fL3CCYK`aHLLi_re(=q%U-wird&+iZfT*LR>@q*CdSEdU?(5* z!wIJ>EACnHo|hCn%Q;Em;oMW14gLo04OJ44K5%R{;C#5fW4e{V)pns<8@bFp88#aT zqy!Y?Z{TX4)bm-AL*!$@^Op{F9}VY46)c=3s%W_2vnU_y1#aO$k(f$eLBq1ZOdeJR zp8s--xiZWJx&j#PGYEBF;9Myncu0$9SIU~q<7?DcdB+7XtYi>BX~o05vFGat1y4!t zL_y(_0EY7pW`BkAi+?TE-r?(3Ra|k)r)u%KV66xjCAIaMPLm!N^$N{Sc-0&_SxGTz z*1GGa|Fz;?x?8@uw9Zn(;?CCQABTJ*GS+|JrZXXPMx;fOtOEaQ173yfxsnFFOor`^ z1_GT{EBGtf)E-XoVGwFQUZZf4v1yjnC4r738(61);IMtbCbV&-pQ~WS0Up-t>{V4P zQ6D-M3h=sV&SyQ&kzmT8=gIJ5g3`wWY!S1!`Y;MPM{lV*)ybT&`pZ-vRtA2BK#}tS z3?&MJTC*zuziL>wSYUhMYHoEdh8e&81Txb3{c_TuWbYO~nbGz8WKFx+tP zu3F7;KZ;@32ZiYqrasjYsQS(IZB<1c*X;bGaXZV`M_9!4KHYHt(R$G^|0JzQLFpy= z%CoCPbJjgyq8hZp;ZzI9?U_8@GrpV6GG!_CNZTdEZQ+!);pn08@T`6=N&hwJ@v9Bm z`8_u=7_|R05J;afM|@@bYXkA(A3GEjH_23PJ7CFoXsSqsLFthT?0pg)ZzTmCerswl zv#?I*Ts^^0FvlJX3dUefxXg$LMv5+*6iuPV1~*!1R&J zT1)Vdz*N37-6Amzrws)Dy9@BlNthydW&yL|LD85l@f^+Up9;@^H3}Nmzr3(RW>t6T z>CP#)r*600^QyEjV%F}tr+039Ju_Ts*JY;NRyl|3Hm}d^+SOw@d!6U*mEId>S1Yr$ z`FH(1958)@`=0ssQnR+q+H>KJ{80^DXFinJziyx9B6!7N)er6c%n5vd z3p&`;xu==ei5%R|@?d`?mgT^iqju{Fk+j34aH=La1BQom&x8C1N?wSJfvX|;t zhJG+_y?N{OJ{5ue3$_Ub_RPF~`JU7k!G&C`1-#4!>$0T1Co zTiOB>z1M8f5_l89(9CeQ`{q%Dko8w(Hq7bHxwmz<{i}2TBTs~-pS7^HiE_}1ba0E> ze)@>Wk`2*oaub}-@0`6pLhI=1(m1E>*Kf8giJ5b_N!IeN%~B<`O`N<8ov-#xUTfc{ zuqofCqAqHZ#_#;s0z%9OR@{8qn%J>u`_+r`ihPEhTz1`ym;)LF8BZ-z5YSkAY27Q4 zRlW>s&Ndj-T)y4HK8Jyab;o6f2R!bwf)_q4U}{{w>(ss%(|HdVaMf@wWsc3YCDh(X+S|mrWLInL+5ENFv(Mh>vAuqD_pa|c z#~8eiT-$Tcan6R9I(w?`=1s5O$^G))=h~yMHWmMnx)ITQ!)KLG$**<)|HS?OJ8REM z#T6Iaxs_h;x%je8{&nlj-i1oL8JRymlr)%owQ?@gM^2^Pd~pX@_8ee|Tfn)aTxi8z zrb#_Kw=O)k_2afPWSC&Uxg{Z5mw}IUIq#OU1;20aKNu}y6<1*M?(waFTM69tw^>CL zmUHp!u{pkB!HzX|UO(?S`9br7LvF40y-C?ZDSqDRea1qsc<)YJBrGNT?!%&9>%}60 zi&+a6e`UUNyn+4YTGjWw%T+He70}xdcItYb>;3Fg8WZxCeYd?~=k+kOW9RYgxQ`Jp zd+M&0={EWLL@>*>GNru`D{ak?dMI%E-j^*eTk9NG&)n(qYaO?WABW#kmdIUG&Lv#t zo)~-M;eY0bbCvd8kkAxp&8l4Zcj9$z0lvQze-%7dYrN&NVX{r7i0AJuY~R`HV{ZGc z+s$P7*81k;2F-0eCJYHH`C|DPJaCPMn&aMR`O8Z{+!UYt7Gb(6P(u@p50QMaZ$IY;lYok96vM8$!!SWJ`m6) zq$zMDqvr(2$1^W_mU8sIa2MpO;WRw^@wM8KT&bgfQhIIlU;DoQv~k^UHqQPX-shIQ z+&Q!Ji_VJ5o})|GMTJ|O-+lkcr@wPP?fL)vLVt@h|8<*)mNhe9@4KyGdgHUFf1>OH z?ky8O#66r_lcDm@f&1Tr<>K2)qAxJ%8mQ?CaNIXPrNfc3`U2AfK9;X;g0{Il42%vB z92(n0Rth-=JZvbR-t*CGMZlvYjlA-1QzRVzFLvu{=&3wt?2tH*NtU5vCrhtVL*Sei zUV)uK%MSD!=U&^QS)AN3$F|n*&dJZq4=oTWKX+uN;mZpPU3>LXtEOZIuXI`Mca%#c zD{P(ZT(`Sk25-)9OtQ2S?fSOn+NQYcn__R8Jr7-4^mt$D>}{`O_f-G&nv$MB#i9I* zQObnx;UBN)vd9Q0Y>C)(-magM;ih#~t0|!QSl?@JS zei;jxeLeL00Z;Xlo9^?Bg_dkMbiJ-}ndvv3CmWpk?O6<6mfREG=pyXzV(2Owp0d$Z zJif)yO)`DSMmOpFBZls>$R*4_SOlehkU7God7<0_kdjL*9m`Hn3LQz{gK z`5$DwXJ8b{xVrz{uT`a+a<=xGhUf2R6+a$ZJvD>R+OCt6L5szKIWo2VlXHW_mlcZ} zr5DZJ7Iku4YVZBp-Mr=rjqGkF4TXtP4*D&O4V+CrPbXwFq`1p^b(FDYIWy=aB)#IW zv19xB_};l&0m}qfG!`>Y4Sc))iJ)cFDeKjjg3qV!idwf*XHwy*oqA36Y*rb3=2jBR zwhFk-VrDc@;CQIY@PRp@N$7#&0>()U3Vci0yDHaKpJKGm*-(0sJAEZ%hYJIPk*vmL zg^Xh}%~>ACU3jx8dfjQw-S4N(e77j!?AiE*?CN_8SWUI89&VY?)+xha(a?~++|@Sv z{{j^jhXu?<$1)TcT2>phq;05<%Je|BrZeIL)gWMUCG;n<)TS8uy$@5-**`CFf{ z9mrW7vHx!VfsbukItO{(?JA%Cmzut)m9@)}LGseqm?fS3z74q|1q=r!Y6LkPX1utw zuKQ#Csh#XyS1+%UQOjI;x9UsyWUJgY>#x0<^>a!@4t5Y2Fd)k#>or+6{W3Z{&u0=eu^iP@-ah;1qw`c4LQa3ymI3dw7fbqwh z1?=;GuFo|1_@C*Kb++vbmA$$z{&yCwO10y^|?f9qay-6{#{CU#&T0#3|m9+mQ&yIwaU7o!?>!|~q zLX#fH0oLh0{Vey7PH8P|WZZ4V!hc5K&{CcUHQz5>H`28{ojz&lluIlb4jW&dOrI1q zd5`jAbJ1M^1+Bpf6%~yP|CJQaskj9w2rpjZ5mC_HC~}bbOAR-t?+kyhv^5+rL{>zH zO}{WDZFBwXl$DP0+s;NCU0G(Hd-n7}_d1aZVFQbCL$W)0dS*-?+OB$F<&*p@l zQ{T4XCDTSb#~Um<4Q*+R4|3-`eU_&G`v0XpCv?hp#@;tgU*&Tt?E0?Qq}OpXBup~z(VF;QW;cHpe%^j&Z(h|^?WOLn4g56`M?#i-xaYQ}cyGMwi`uWdQMGx7GQs@*9Wc*$O*cZIXnh z-#DV~R@fD~CrNDkjidT)g*~Y@$x_#E95X*w*jKtIS?>Fd<8ncgraM#bt#q(hy{M;m zV*8(DHS4kB)!cDAu8fc@!^n9-E<9ypPwgQZMrwR)AXwDQT>RE+^^lP zM;(t&V3Ah))N0PbV&ovP)nUoTNuC{_Io4h{k!d!cn< zq~e}PtJ}A3TcsUdrg|uy>BlX@e2#A$G=p+xDL5;!tZ+#XPBp(UZTrq^>(nCEZ*P~$ z`nL1#zp?}AF`P_$61!OzvMO_2U=G~UAl5jq)xlw6t4_)x!$}J&#Aewtm|LsKEl6n6 zFcQp9x1W9M@a}05$Gg1daZY&p|4B-y)oC{y?mN$<%2w-eByhQNx%?OE%Va$?uOKbN z!|XzQ!83+GJ`FDfRBlw=zE*MAJ2o@w+x)q#D}0hyU7e!$>sfrf!KFov4RULg>LwJN zQ8}`ZH}`|`9TpB2$G&%G)Tc-@r0>XDd6GNUc%Rk9$orDpH|~3%>%D!V9=pX2QT|7& zd<~Ke2Us4n6r~-X@!K#{j$<}sLy1_{p?B^RZ0e%tCS3Zg-J2MbcY5*bn8VEiAD_q8 zyfK#vQ4?SgP3e$l5Q(c~h-hPYG-0>HgmnVvt=YaToW9fX=H!IEx2s<>F4-k15hY>1PSLTc zVLRuSgD;e~PT9R(Zpprbu z+L&P8X4&NFVHTgwj7BNSsV7kc>ByS zRsK~&^K9;C+5N#TNBJEW$Nf2)nsQ8F=h3v5V;LpKLZ=+d+Hx%W$g!L&$8w(>%lmRH zpXGRg$nipz<3%RNi(QVFgd8tTIbK$Byu9Uj#T0k5LKf8sM(dpol~<0}Zs~Mdv7X(5 zQAB{{MzCnu!{g05$29~RLkfZU?{*~(7@DKAbVq?>@7!zlT4@9FnJtrl;qeRk32?7iiF|n8*1* zu4%z4ksk{8Qv8e_pE`ZUmgfTObk~YT_8E+w2|CA{bk^jY`*6o_#)-zGXKWcZw02yY zl8`9XDxmkMNc!Uxe|c{M`4#_}gc}$?%sKz}$@za@&i`k*z#w{oQS}0o=>=xj3oM}* zSW_>sm0n_W=T5ENMr$${kH26%dZ0OHMeE%I?XeoY zS1s5R3fQIJ224Nba>m=~$^qt6r(1-5FV45HQdA8(D$&B!(0aF_m8paE+J#oX1uU9R z19m~K=h2$5)(4>AqrBT6k^I{G!?v}O?j`)He$20%0cyYV>T;8HLx5J-%Yl3u#t!|Lbge#8@ zbmco-4z}eCy)m`ifbIUI4woG*1s|CHif}l5U`sy0-Wf16MT4O%Vy1&AN5+m8Zws9+ zfxwIpY@rRIO)J`&9<;fHhJ1CHWu4Oebc(|!?v^-a2Hg%eu}7x6nHdt27kX7RAAiB< zvm@B(gYD@L7fVZd+!(esPH3yH?Xef(NZHJj79Fajd);4l_sWKLrVnhL8STjxtxOsW zi3V(b8V!Cc*qZ{{Ocq3R*|x<`=*ahI?bmHc;An4rz&1HGas}75;2$^q0$Q?VJ6tpx zOlDl{KijM(+u{78CE>v}?z>z|ESX}3TUDg4%PshSxbXs0&jaI5hwY6H>z7xrtBT<#Xam- zTJAa@)LpRW(_!W=a~tt*rxG~x2Ur8jCea9U|J@K`3W{k?Tc zxlMOPi~9>k-x$S-5f+=HXV|8;JkCxm5$ISNYQ3%4`gq6g^;1n6cSN~m+!l#@Xz90m zYxeHukIsU+MQ}DKG-^~@O3_3C#r=+hpGNg1auvxP;h~Y$VlZIW{T#hi=j?{aW z%L3Y%4zzu+ZS#JY)R@rD#L&`c!1hg-!7rjMm7$I4L44y22Ir+WaspW9t-T*PwWBlj zW`8W3j$iAX3#oDMo(5?2wG=j2Twn@GVAFP$NZMz6GC4FgEv>PG=k#Wt2b0sX#5l6U zI~?jDYMaN0&nZQt<;oJC?B#d*)>Pq><$kY4`nQN_G;29K6xhBn6q@l5ajKW_|R zEq%e-quY=&p(9MKqcgO{al@kHu>xkEANIbzg+qZd6NBU3J*DSGD7(dv%F*vLi?C7_9J%NpZvBgGAs)4!1Mo_LJ zt)NFZ?xp`!4n`FQp9vh-x+l-(>PC`rm%hxS zok=2JK`h7T-^=H04Z(5Gzc0P9#4on-K>OsW9sA?_nm$CVP~*tpC|vmL)l`Rf$qzz4 z$puW8yw24p|E-Rtv%!(ACbvQM;mxpzoeu)17(n~qs zJk!hJt#5x7#*!Y;mR-R4T8zW%L3HX0b}NlYs~H_T*RqyXw52bInY5rKwt>~kqup=8 zo3;Di%>2;C6u=_o9w5_e^ffMjbKd*T8P0{&3MGmm3uScmiW9+z+q+b4&& z1amlU>2Z?z|4ym(!<>Je>Je==>KxDH-th2eF$A>c{J0VFp{>I2RiZ{@>%QX71~ylZ z)>=J=>8uP67w+^wZOP6k{4lSxQ#He0JV49V*qp=GRyFOeTVnBtR!R9TzduI;=XQC= z@}5jfTJxZ_eFA4jKx=!#wfP%3I!<&=6JSd*57@cjsB*i|*$;UFlD*04}BdX^}dv# z?#}cjKNsZpGu~k26Zp@;o4{&N!4NIMF|VCda0BC%iRP&yzgBJUmlSBQztL#$fSJ#M znNdNcv7jm<_UFpwZmZpYGc-25Ji^%G>ANAns+5s|Lt}Zg!O3u+-+P`<*n6v4^i!h` z=Wm99O7|U%SI<~4xc>Xd_ukT*j0T4mACUhk+OSm3!hcWrpVQ(3XXl(OYx;dJkg>6X zf$srBv_;LT<9{w+@9kVNr8TkPoOn&b!CA+I8h5+bT-pBjs>fMv24$bdnogk(A%TX; zUVCn<|NFED1w+lOj!K3Pj6Rvo5B2}OWbfyzIB5{Drmy7hdHrgJ9SoNjEwWtt z@1s1wf5tQ+fhK7O=0!Z!3$oA4~YzILh3ya`qdh_C=@`(vb?vr#fKdGFWq7}X==jA8W zGc%0RFRjV^tafgWRr#SK%1Mb_jCLAMJtsbETw3Ba-6;3f7tJdxf|duZ&HAbpHj7Kn zieg+ufOXjtm$UqFu3%f zu|c#^+&J&e55p%XCaDLT{ahk4RYs(xVa1!D#xE``a-Xc1`^yA$E!5_`x4%r^+}Mokybb51+n5x(Err%P^-MWYBdB1wvu;N=!$+1A$F{PBeqwXB zO}NCkOiy3rfim}6pDiv1`m3_neq?Z9xWF4|`RI)NtsZ0NNi{bXyIkt2{ibsN+J6a; z(<~W+yv{x>8s3h#g#u1Gz1p?VwIQm5S$nE*r|q|fBTNQg+TH4;yrNYYLMQQ!&?~?^aU@nJmG0*=YD(3gdu0kfeWX4o-N(wAybsGWA*XRFbnNZn(qYVBU0tH=kjJh)R`# zS;&Q^S|y=7H@T*(l|1NYm?q#UXO(E(xn(iKbq_aPC-a^}hQ+cxjqV0F9&)Ag94>x7 zp+ns2zv8YM3uoD_H&~tbII>%r_(@pbNjxO>sMSWqLGWaOt3FpjSLXvg-Wv~El&%PN z=V&x5-PK@d?OJ|R*Djr*wxY!{tguB)hJ#^7M2E$+Yg}q)oV+e8GdnLhp!7D;OSmUP zKzQ2%2X{+ek-9IB#g?!vE3Y-|NoH|sIOk!jdGcfW`l5sf3<`bxYd7{LM0+S~n!uVe zp;vLig%mX=6;9u@hdgebB8*0iUAlKBG88a7Fr*%w!1U~`bIyrF;y>INQY-?L!cRR> zJGo8S`cYtiGE=8@QTjwaKA)t$5gtOq(_Gtnlq6U^Se)ktGVpk&BnvN`JXc5Pkd{%4 z(Acwj+9wwOxqA|>yC!VC+i+;d?&p!B=2 z-=Vi^%KC5L6>D$hPS}{jq04U(%oM5Yu;Ry+Y1>>TO!ZS)xVz>$gVe7J{Vj_b&bP!c ziWPM-?Ga#Dui;>=y{LmpqFFIqRo(4CreJbNp3*9fhIx74ch+RI@Ud33**?|^zt8i4 zGkQad&W#Ujx;iXE+!Iw976l3fH*`oa$KLYmOf_SQSgfF))Us2gwf%b}SEk#>*QdX% z^4=fRuV}1#sy{@fn_=&NA%+%L%}pI$I@9HZS1#ufQ0{Y>aByL=;>J6He%eRdWJ?)D z87Bq)US)E{PcLQTHHTNp<~syC4<^r?Ban1bOvt}o*M;Tbg2Tp1g53gnd5XI=9JCT1 z`gV70ReDwNTI15}xLA$gwR1Thx$gVjwe!;UecKY9KgG1gGdT2$v7S8S#B=-RpLaol z+?moroLi2+6;)wKJ#$1j$&1ZwLC1mLsu^{anrkmiTanAVMm1~a@>|oG9xN58UAu(q zQwPJ$L)(g1M>p_9XeKS`Jj7BEUJ$%0=+P&02VR{MP451!WFRw|vHsy<8`~|n% z&E*L`Vow5@)H1XV3M$kIa39>mRphv$Fu}+~f?=9V>+FYrHpdvM2v?~w*qileFsxXS z`-|nkS*JH!1f91WS=+mEb=H;@qQVP~Zm2P2Oy)_F(m!>~B5!`5<=teaKQj~@zjf?e zmzbiWpK{XI?}%Z8VaLZ~pHJ}wwpvv+?qpJFR(i@>EXc0-Hj_VTUY74+w>w#zOpABl zUetK2iQxg;SJ86CMF|`$@9)?WnlXhTzvIKAp4SmK{n#OQou8CXQ?M1&0 z#dd!A*CEbjpmIW1l0nmd(|X1acXOv-J|!l3bW-rcH~Rih#91ZU+-B{Vs9Jpawwt|G zidw3J@ub-=^$&-0m#loZ`lqnVqyr*qB2fbUdZi4RDhyi3&hCABbcaIZ@mc5Aq-O*s zy;7WYf$7fLz(t!+GrbB*x9Bf#@nAA}d_-`*2!luNtFrG8f-7z;?y-Nu&Ey*tzsS`YNP@F+!wU+CwUm-ml zvC5l%i(e{U|9ihjvSRIl>6U6+<9!z_TL1BaYL?|LZKDsO(|8o^F8}|u{A?XPZ3HV4WF2L`MJbx6I~X&1$?ec?wks3d2TY>#le~Dnw(p~J;Mj5-@R4f zzs1@R>&w5z=kr@}hA(qnVlLP%m1Vf#eLr#zpIBmRrSF}FewPIQr5;=tc^>}MNqqKo zD&H>IUw=E?Yft>qb#V?AU|e#x?}C$d?Fp4H^Sc6L8gwtXsLo?}JJJ6q({GyxcmJG_ z{2w;qU(drE84?~mGp#nvd2#fP^^$o?7R^R6%<3G?uNWCrmrO9a!Yn(3Pd3Db<0_N2 z&0*sM*98_{)jPl>yTnfG&tMWT)O(@;7W4ai#5jm#+uJpM>=_H0k~1eefaim+vk4NB#dqk{>B3d)OQ_N|1JKnRj~c zR1Pyqh80d`4Sre`hbKwiHkfg4#!4kuhi0WEPE$n>y!K#GP!W7laLDvZLUrPi(9%eq zJ{8X-Rymd?%l|q4Cj^hEuy}Yn3c1Z`wES^MxM|w5IVoOjTqk;6yo0VZzj@-G(dF{P zN#d%v>xS+PTRH>UI(#mrc>ah9?`6@KVAfAyFj~6vv>Z z#qms9AT8z{Yiv`C_7W$qdq;(@9IE-bG&L?QnBm!t4UKYQYX1t<(%P0~^rd<9bZhuH zY3DfpeA$}0Xj#@IwVY$ia?YvcUR#!XPc84+vb=X{`QMi1|5GbqTVBAYUMRM_P)@x_ zZF!NNda>E^VmtK`x8)`O{nSgtmX{t%N{(AzmZyFxRlU4Uz2e&R@;3F#Y0JfWmsc)Z zUUiK92oHluLW9(S);`CBGBFIASETo>Szh-py&|K5A;BSBpiR<6;`^FLMu9el4A7yu zb)S|u+r22wU|^7F5WR3fK*5DG!Apq2fyLzzqXGk$!-|f+6{Qlc;x60_HjMlX4e|yq z;Vle7M;X~|4ya97(R*)25lch;HpcH7j0{r_IwdqP++l1MYhk^>+NZX15?gy8SA(2~ zOLy5pry7SOi5mhO4XipVr{!tpnP}GNGBA{|GAJ}Ka5OIBIUvQ+z+0d>d)v$Gij^)6 zD`!kvIaAAP*1DCmpRJrX&2933J5A@3wkb>uQ`a3>ByePE+RJ%rs}=>hO`hh|&*Z?v zvXVifAyDAR#B&E0rL9_K)Yiwuz`Wpvq6t&?E)51BMrV(MJ$b8Et<#G4Six9wkX_&) zKZiq`k&7O~0cMp3g*Oab91VOCBCFX}Z;Q)&SpEKw{TnFEv)jRrDheTw1n`-P_wtAOa>rOR^UF)>>9D5z;p>auK z#-4lH`#v2J4Pe|Wk-G1n_5rpv2l#Xjimf>)r*lYc%^^LV!)9v^+vyx}TXV!u=V;iP zqj5UNzOhvcEDkx*9Z`{UtnE#HgmdkNrGEe2R=YMZnI3UI8Pu}oD*G9xgYBX+0gGIY zU(h*~#&ROc^K93VbACt8HXWIEB&YVw8!v&iXO6K{d3mHn9nlYP3cK1OzJ>YfHs`3l zEv+JRPl&0r3O1;exH#_d=t((plXJmop>XyG{Wl)wc(*hy^Hn}o_2&G%HEtcbpEXj? zd9~a=x}F_w!yZ6ZRyyo#1o4#iAd;q*}1R{*cS0DW|Rp zrC+bpbr(5uIP%CtRu8o;Z(P=#R4`;Y^D5|}S;C{fBU%~(t39Iba6P^AYE5~a-o30N zuZ0}maOnmt%WGJp=f$AU$g$r2!MY`xEOSnrbhCKpcjJNg{|6_prmZW;)4L(W^2zTA zv)Db4Iagj?)AQJpqQ=AZc2WAfG?#CmQnY^R#8&0|?9lgIlCK}jvb=)J-D16;!+Y-@ zu4h5|`ApmkBiHLQc5e{q-gv`zd&rTsKb-DMaCiC1xmM`!F_G9{a8Rq@wd>C&X@i4z z*G=2;!8bY3C3YsWaLa3_J6z4{4zbsXe1+wcXy*!UH-!&R9yYQSe{dCG zk!#rCYQxAm`-79f2F~{#EWcOpUbK2E!|NJ@YnaZc>b zxhll)rO`UBSIlMBwSsBV3H%HToX#kSK5FQAwB)YJ4>9RCXPr2t+;zkhyj;|n<$$MvgsVj4CnLHA0s8_8YUW->dam<$O_LVY1@+ z^{yu89!IoT$sB(Eq|vy>km1O=H&^(aW1JaR^ttpf8R#4qKJ@wdg}x%)7Aa$wmks9( za~8P>Ocbv;_dMaSJu|}xj`On5mvP)#7^(c{ zZ&2RdxR^aN@L2mw)XH=YngWbS!<-L|lH{w@6TNqL3lW+z_?r0iwLE{^Ht@aFJ!0Y6Vi|i=SjJiI zK)6t8WY_e|mX>B6-bWlyDKI=>Rxfc16P##Za70+(wX`$1hIUY%V_xgIKX$qVc)th(y>WSxH z&!5hjz-RY!k;~4&|BDYZY?&y=*cKP%*eRcV8Xm}9}8mEymW!dQwUTg)U) zoMluT=Uq2malNWGCD?R&x#)q^>2g&+ZL05DFtBXV7P#qBGhHdcEX?yri0QY>;th%B zyK@$KY+kV?>-&aY0fy$p_u2bD^nLMdYW(fQ)4@J}%U-5?3i(#f9fxijIN2o3ShR;< z?Z)dKO|ISVe=CQ()ED~S*nZ%E_@3R0f3Dha9X|c%&hDPOk82%Y?A@IubAQwB_N6D+ zDte#_?!Z79k$#lndG22-snU|LbE)Ux~ zt2F!i`o!bYY-g9{-ripL{Mue?W#R74Y+i>l&Mxw1=rK90^PBaV>x^`ZtVT-(%~N4A z&WSCYeaTy1GT-D`V`cm5ro)UwO-`QE8a})?vfR|z$$mAs+mF#evp?{b!z1QiXFtU@ znI;dVu7GI2Ez0M-^Y`}N`JJc6bV$0x?)MC(1G8p`C^76@xIQ*L0-kJQD%tsB5>w01j=4;14}H&?-psjt*8E{l@Hxx>FV|c?cRP!z zL5ll62cL4vBB=#48xKVCbM(#1%v&>MfwF^@>r|-+R!p0U^_Ff@tK_#}Fo?`&h}W~q zw92x`3eM&3&$*`2`mb8n5qrdmhl-F!Mdu`lx3%*=I?+jQBISY!i!MQ|`Y{BKaz z(y8nAi9@aQzQNOOeTUff7u{>El3#XZ%!*Q&q1L!{>e8#H&o2s?VUe6sV6>BCl4r(C zg$6OFD{QI{8Wh&sgxy@>GNqieyfo<6fOt?JQlr#1m@R-YV z&PG-F&DQ-Lzx%T^56tf0r0F2pedpnl$p)@!mlvtu+OM*>zCZE$v;T||4vc&g8dyyh z%y9`&?EBB45aaOsgwupT*%=p_1g}Y*P^mexqS4{3l7%%l<13n=^guS z()41hW}S+5KKsZe|AovOMb-KO=Dpl;P$+)|KZC)GImS5xL2@+V2w(OB6M z9HP?K_g)GsUx>B;yRkxvWgGL>6g-k6Z+_F&QexOG$4=9a#W zei(Itf#Zn90?TI0nnreyg>IFr|G&)6h&sSx{v$~=J=0O)&ViO)d?}(1oEck>aWL2z zC<+8*oQ?flHLWhyW$8xCoFsAXhGTh0^96g~q-a-*o%xk-nzABc{yC$$S8}yXSKsB2 zFXo!1D9LQn9?+^~!aS=y=8(i5j&)gW(RUuNViP#_fhl``iI9E_lT^AStNJOC@V9x> zci;W`uDoz_DLn%E`Rnd$f`8V{24EAwfp9qSI;ylZ$ETGMJrK8?ZMfQ{7L#5 zZX0>J_lg=bF`xZ@g)5F#f5t)HvV!R2*7vrRG4P*^S)LiLrT*hl+o44_H)Q;ao)wnD zly9q%$oG-_N?f_uJR?jj}n3;sI>x5$`rkoST!Xzxyhi00YYm+1yP3*|%nt znQd7;H#awb_U*cTW!n$R<`wowHz*l=-+7i-%Jhh$^8LQUHeLT6^D58JzW4QBFCT*f z17n2C{Wo^q3?2_UyDh4jlP+v$IA*|Dtv}}>Z@EQ=PXTwQ_a3I7$C_LV7#MhC8bw<+ zICFIv6fi0r;&SO|VrL0xYF|I+sjm3<>N5%qT5sC97y=GPFn#F!Yw?>^%#n#*t|50i z|J)a@;@cKYQD_i%SZKpIp^+gYVdY%z1UYfZMh1g~lC}ABUvJ6l!caE7mWByu|02LIbl)mI9*(C-@xW7uGDn;#Ld->no1;&-=1ezQij`;q(8k%m+UGZgk*b zX<$1aukvNt_P=in`JXVJad_FCwM&$dft8Qp!Hzb0kGIA1Yo6-Y@9q-cz1(2lnQn%f zZ|(jzpEu60eS3crBLjmo&jIn9X&&YW<15hKR}0j^Mk{$&CtVTxS7k52~~{6BJO zk*E$6hYzD!52IX$kB3HM-HjvMw-R}8J5DQk%(+3)*KaXbwDOsp!+dX#FzY(;zYjQM zHGyxofq-i=cSwgILm;R7V%CJz^>$4B-#_fHN?H2pndt`wX`W=0wo|?pjY1j=E2~bO zW)NgJ$0%_}k=xnOv}+Cj)(NHpf+F6{{MpH(hhK}ZZWOcbP+q|(64TBiKT#|_L$Hy5 zdCJC5I}8|@7)4g7mBb_qFeRI?DF{DY;uW)4)X+)X>LBl9Zn5VD5~+s;Lz|@nFN#O{ z%Y+u1Z@DPOJW+sCfjg*4y!xW7y^~;QyWsW@GR8>^ElEPriU*H((prQWL)BM|mZI({9DmRh2D`c~Nv-Rc8x+gb_tA4V+ zSnPRKSoY>+%aV^?Yft`fe(_j+hJvoiL6H>;ZJtbIFk%$hc3^Q@i)Z*puhKwS&I7YJ zlpHFjcw9atYxUTe{n4%^?wUImR%z+iPGMAIdY~{jQDNQ#iBAgJiH}z3Equu!s>ZgJ zfh*M9S0pHMeeEPhwGWPUFVZbe9y#=3IfGD+aquIVM@@W!8$G(GaCruB{?7_MZfv|* zI4oW;wEj!jboV_97cEP#==Fb*oof=-TIgl`N#9gUEsW7VZJ|xiV_v^CvPZ8(9b24! zFT~0@nPJjYCvS;XOBPuFcJzGC6F(^5LOig5<2RTNo$U~oO=p~?P;qv%AS zlcJQsl!Z?w3hL;TwQ!!gk&w}OEq=yBgpMVB)J&mnm$T)s01-Bs9p2C zdS0T)j%nGP%Dk(R6PK82?Qof@;{-b9RJJ*!d~^I-F@_B+(jTUJi!4kyxWw|9OU*X{ zwH+?U=apC$hU%J4ORn6wo=rR=GBixpxG?f!7~^)UFwxZ6+dSRH^rn}Db8k-$-^Lzo z#{F)i>||BpH20ZNO9UP_@>GaPus?9+Q25WI-y~6UtjW$v(p6kxW|(idq3#clypJLb z51jO7HS4Wm*PFn#a@s-nrbgj7A%+)8RXR---Qp{5Of$c4X0+qsHm$>XqNZ9FkA+J& z=fA!bUL2}dJ+(med%=FwT0!&Ln?grqt`{XDN9MvppyjF(gHE!Wb>>!qSvWz53L9w>51u44>Z{kVL;bH)2b-a^j$ zF$diln8nx{4D>!$I$E^2&j`AEEoiNHHMfH7mhG0izDKOxE^*YnFgUcme~O>sw?gCX zHOIq?L$4+4irJo=9=cbszCWU<-=gcQIOosn#im~WWw$=yxtDAu!D7pHs8pyzE;y;t z&`G%FVb4VikRuc>hdY z_^2#z_mR9(#{9R><<6%FltdINZ_^c@Uf4dR<9c}Q{;4+ied!V-pA?xMFgS}ky|I>l@t z^o-*~yUn?Doqg&xMu(PeW?#13-JDUO_S*5F_19_>lAe4Geyea-r(n|C^40BMS8L8p(H2|4e2e{Zl5+K8d-lspLa&sP zG*m@z*icgRmL%}~$DN%G_d zQ_tm=Cnq~_x_X|R60nk?F3~>XhLT*&C*bI8NAnt8nG6&V{r7uU;E9&(hK> z{I=%>x4S1+ui9Byv|sSR*PWfLFRvSOs@F}_Jc8VxdxALB;TTQdJ_g&rIaJrsdVQ0^3(~v(m=4_Om{d#A` zrDMxh?^?sXyGc;@5#Sc|<*ZY`UStu;DX8+n6vFDYO(%nunYfR~_Ihh!syRRXm{o1s&#_`K#u%$?J%e{ZDMG8~k;Idkr{sj`P>+un-(d$Tw8 z*4n#Q*5@+Z)4lf~=*s%Px3eccIC4Nq=-sxHQg<%Sjo@Wq@HqD*!0)M!#oecSw_mS) z$@b`Z)43^oYw!KM%YJ?D|5rMXUTr!z-*fMM-Z=K_cLi#g-aYAiaQ^QD#d#c?Wz`<^ zuT=i`Xm-J);6;y4i$AulAM6``^dD|5$qS88jFeT>77I|9g^X#}Yj6aks^@ z+2P*L(lHK4|ymXx*EW``(=W_vWJA+pGUf)(LP;pKW@}?uh%V(8fBApS)KC5bqv5W{LIOW8%Kwx$N!u@-J^! zkKx<_UM9!&Z@PXjeC?*wA*XvpT!>qBq4gJNv}k`ohE zyl2^T8ZA9FRVR8^4X5$4Gc!%HZ|&(cUVd(_E{6bvzzg0(86509E5004Z;+cI;pOsb zGDGlkh7$@cMhXslnsZEK-#Dy2?$5xo#pLjf$qW;E8E>Wi=P_WAW5{>As}yqlWrAG# zaxMm|43U8QOsrO#Rg=Cx*vj;<$4ZVhM^dh(iBZ7pkISP57lum~*Z$~+HZ~uB!7^dS z@`mXq)3_5(*L)0Eo?xAQdta~h_IG#pRR8|RYqR6S!z0<>W4JUIiZwH^El{@pwqWUH zj*G5)^Eek?ZH|yH%xw$^y3%Z?y724Hu;l1hLbshxUgj(e`*xU%WihjZ;D&@c#%j;C z9!BfF1Rc+DcAw-@AI9ejU*Z`V`63dW+*E@a(&sCR@G%@HVCI(H^0z69apjyv zXY}5RIC#3?&VQ z3dlMnlXyk=rpSgDuFpjtc=fN_$CbTi(>br~wcGAh-R@^$DGHFc%Pka`#h`Fla|1&| zvw*3cV)F$tJH_s${%3z&QC)s<-^NpInakQQR^8nu>c`l5%~e*1A!f2b8^eoCAI3uw z)(u*7w{Xl*Vy$ToP@22MDR%dJJFbR3U#!{`vkQw}wRXOF%6`CLp;*BAgI|v}3I3O5 zwQ0^iCY67t@VHz(Ptge_S$2k%%pL9riWxkLCz#I3JI;}F>Bo~zfhj*kinlywW%}S4 z^<#;v#>E5M-p=Ay-V$fTdgAJwSc%IU6BuT`T6ym1;+Wd4dId~kdNzG;gAVA=3H!@) zEi&KN;1?3}C& zx~^XxuJwBgI-G6_Z7TmcRbSxSSUdw&q zO57%#cGJjJR**;i)5&w(%eOwRt7hCKA7ij|PSly++dr0l-r(5BxM{0PC4XP-w_Ew= zYro%nJ#E_mhi;Yb4UZTM-dQ9}5LVdfKh?Ty=ed~;kA>~UXI|!ia^a+tsM8YZziSz4 z7Bjrax^*aSyF%g@c80CNM-=2Z4mxh>3fic_pu@IcYZSwpM!}W`ESJ+Z@EV@4WN4Uo zhf87afe?MgGr#9?$8#K(I91Tr#C`uEUy|K4#sgBfEIE{C7#lNP$zhoJJ8=uchAxL6 zPk3FtPY5zKc4{>~Qu<%*{d&T+X)RZqO1TgFJGm@g9xsw0(SJ#7X^5i(L&TYGc0pyy z>a>O2D|>@;4!7NYu&kr~;#rNd$#-3E1U5KcD45WqvqX`<)8l>%zv4Z{hMxw70%@{O zbdEc5s7-5~kSWLzW&Zg8Ifk^rc`X)44NoaGXsqavTP&OFpL>v5z2PEbk*rGqs||+< z$KvG$Uzy706#JMp78-$-dP7q6Gcl))d%O$IL z_MJD&%=f>vpD(e_ve#t3T7cs;cY{VR->OM7I2QP6{e0pzH-|&8-mO7ZmPKgt0#|mX z3rxQR9i&%;2s7MfnO-8|Ai9a=fMTDbKubtL<6O-H%j}qW^<|0~LYbdvJ}Q}@yyV~_ z=~FM4?I|zX&8nCjS~NCx3oKnM zd~wN@*&NLd*>g?TmPBMn%RcU5Drgew3OJ%+@nm6yin9xY!o|Zuiagul0ZEce$2>d~F3zx2h-ZVmKrbH{<=` ze=l3TU09S$K0U7T?|CG$y5gvL=K7Xe(W$GGN|hH!xGkzEvFcr-Hf_%24lAp`I5Fk z_dGLMU3oU=SYepzC+?oDmFG&Oza&mWBMiFI=>% zF81VYSuD@{(!;yz(v)>umg@Ju^vSNeJm=k(<@UU<0=lcNEYaJ#(!X}K(c-GBYx1_v z3w`@4;&j!ugf`Q)`Ms}W7GJ-%>)qD%^|pt%eJDzFYiyFyThM0lKP5$xedYnyR~K9o zysK|rxi*85fuWH#kb!|uYF|3?Qr zU|>+l$=mX|_G8cYuUrfU%zmv2cSVmgX7CHKGfq%=-}`>g^W?cK46xIb6}}5kP+&93 zU}n0Yz@S?2@AH=Re^;;oSJv6G^S`3HmsS_V05v;Vb`lCxnDO8f7aQwKLLJD~JWBG-zeG8to8L&Jfc0 zU(sw*A)xj`$mT?x)rls@8EKOp7-lv!s3bNUPHeH{Xi<`AjQG-G{IJ5`C>P~@B_ z!7$l_;Y@>o$>!#D63r`bw4dl`o@LQBXGPD#74723)Yk3r+ThlEJfqiFqx*J8+*AjK z{0E5){|mZ1UkG<|FeDnOr535}n-RrwfNfa<@1hIrHZHxFBl?fN5L@`8vxcMlqDI$` z6LJC9I+-&2xtqIWEha3Fn6Q3D@0}MD?4C+6DsVfo20eNqyu*TFSB36Pp@|VwqBbeW z$De3B!!bdnvUiq5Yvm8YKN%C27f;ZYoWR-{V7#*{K%>_{(t&^F03u;6~SlAN?USCY%49vQ%Soq~}x}&&fYJrkd`Y zoU9pH@KEAV2j_-j0jHT0T`C3UEf!&5uv(`MGOH6e3y_y3tQQeMumPMs#!$(3?pidbdG6Ay-G6#_pt+ljvvDfMLVzBI*b zN5hhry6TmaPrsNFraA4R#SCN52`g64=#`w^kvY4+bGCIVC(DBr@x+b^1=I38HT^|g z?HHREXwH%rn!0*t=l70=3XU1|o-?Xm3ND{H{i^2N&dAwoXU@KR(>L9Lp+_KEXrW7x zpm#-p>a3H={Xt$^JLZ%}PWpIqPV36)Y>`t{JX^2sn7(;u`?AQ^#*;JtX)IuTHJ5dj z?*f%%j*VP_ikx{2EP;uA%m@7cu>>%=2CQM}Imv0T{^Zo9p7Xgmy9BTGtn8f6&e^_Y z<$NB=$=5aK|HxdRpXH(Jpt5I?;F13V(^oL`2(Dt42n>~YB`oFDR@*u0RL3M)uDQIG zQ|mHkgh(#(nziWsi#DgK*#=%qji)q9?+~12(CPh=RqCgw^(=u6NBiu#<~y%i^l#^) zuP2wRJ~`{$j_KLI+BR7(S!p?SmF0rauH|}9nphsN$vxzL#xNyAkmKjpc;$tYaQwAf0S{l%)KTB~1(uil)s`s4Cd+gGjLeQNdISF87PtvRT*=6g8v(X2Jcv)1f4 zoUzkt&DpH16I^SLu3B^Y)talfvM+M2y?konwNq<1x2-+#f7RM^H`hMCm36;r%|or_ zPgbp4lD6*TE9ui*t6poZpMGuKrC;l=SgrrbmGw1>`GwZfUtAkz9$WvfY6fHWhA&a; z4JNjK&0I34Y6Ji53})_?7MaT~XZC#H+9)ZVDYScKhvxF{9UG;zH}xFbD7$ekbJoUh z8dF)VH|b_)sNSA0=iOY`wO%iKb2Hm!C5_E>FXYbuTyM_3rDob@#%U9LX7%2d+Tyu7 z-PyW%`^imHc5RxsYD@6xG@sc^0;HGbi){)yy|p-PYtqXVj0~*7w>E6OwKcsuF8=q_ zl`ppRc5TVv-kz{*Tgj^a|5aNaNo}vpPAT@@?wZ}6*S)<;dxy@k?JB3b+M+f$`>x)h z8Meb>rTxd+ZK24x*xJD zC}QWz*Sl_S*(G#i*Lv^WZ6dq9EOu{Qy<0<2fI;ym3#$zS1A`6&gE50QOC)nU0|SG) zhEi!^oSM4g_wOG|3SyT&)Ya5dX}fmK*2YN3Kq)INOiNoOCnLOMhNgzLT1JP)zkh8p zQQnUq-z_Q4)6!8hF*8U>iSvq6(bLz|H_*(@iYUm9ijMGHw0MrIi)DX*=lSy|4b2so z+}CZ}tYzV(WbLM$H&H`FOL51}O;%R=Ny)J~ddhzOp0;)t&!0b>KYwOec;MZ;*S~yu z*Vu%b-cK4pG@87?4aI{{! zbpDYe`+`G!J3E_$1D!v9eBHLLEjBKqC@L`?%AWQuA!JeNn_z{-Q0flL)snNwEFgI z*DljcX;Sy}unF*Uu(P);EXp>wFq$y2yQ#Tm!^YJn4%RnsUT$k|^bhcwI&Fffna+$E zlbbJI+`Dgkbfi~yMp#Blu)nWENU%$GdZ?wBOKDkwjjv}-ZF%OR1^4dVFtjm`iVnGS z>CC}HyI;L}ylwl&hY#=Q>Zw~;8ePAB>Fd`f`%wShzK#V8W;HZcJ35+e+LW|%<&wB) z@6Zr8EqyIlS9|x=#N51$^o*pZPw&s3J$3b(7AXvZrzH; zvuARaFAc6J@$z=HwlS-yaQ6=|NtrRNZ0C-!aErV(tInJ`<{BS${P-a|d!03FmtDDX zEHO2Km$+IZ}0C|A~`1(H*UI$B$2)+8+}e-r4DIWTG42 z-y0KSwS9YPdWL;sl8u?GgIhw3U7+`i7uAWACPaj}7v@DL#`*X42NrGK=;rRYY*|c1 zQ^SP|1%btRJ~^3FriA?b+1%XXWgV+1_b-wx8t5(JD*_-ZLkaO@*rek>U z_3OpA@09uadAPXh|Nh+)Qd3!6;yQaygtw1zc1~J#jc3h*n*0Li@P^v3tl*56baxM@ z{Jy-V6-_16N@{DpIQ}y*a>#fTC@8zJa)vp~*s$<$yMVIS9FL0+54N%Ehb@^jAO;Ul2Oio@(K04hX`P3ZF2Vx9;CdGB9PHtX)em+a?BNneMD=sefm@IT> z_4oC6j`b;jpXwuGlzMD>?WMD4c5Z%tKEK&S zME7ICLD`gKHaA~E{ukFbB%hw=yW6bc?6%_9W!|%j8CLC;WmD_=EO7SWTGjXo9#7JX z=k@OX_N3dS>iqK~%m3wd$!dJPYq$3E|37_KB!13$Uj2ye{65DWOyW&-84jTJJI32CEL{%7U)mXTEwGV~( zI5&%4QSr45Dp8(fq^l`0IoS1QkPJhQ>x5omS;>nNT(7xb=x64=IeD6EF6^wB7ICoPHm^!r$`@OaKL1)SkvSqE55q4mFu52py{B@S=nH>igHw`ArbPX^ zzGPP5k(K_9b+;z3VDf!=ZApo(Z>jxX%HpHv_@%S8+q5;)C&2T`iWoD` zqgiVh&di$3&$M)T$OgBQr-V0|mmYhwp}aL!X6ubj-?OLB*~m6=mdMo1tm@lo(Sq3} zcb3V8zI+!Iu>P!?OIGl`b*%69e7e!CIcDsxdWW3lZme?9Zo56-g8s&lKw!#zUp3LK1{a&z^k|GCn$E1g@)eVqUM zetY;}udU7+=AZ5pYSVdLxH1Zbr)obkH||^etjyLocT#ZWyx@Z~rsr9?2pwuk4FB@9 z!t$xWPL0WrcKcqOkShB0_2jpl5Bsh(?J_sfxZt{WgV+aS-hS~Lp&#QWycc49FY(!7 zt^1#sH`4DzniGY`(Kvn z$VSeMZ8jetMypM;+Wo*yMZRazOQQ{9T3k!QcnuY!7j#ITI#6Kc_j8fU0(N2TeQiA^ zhL1N~cp+fY6{vQsV_NVPjiXk#KKA8zCbNIEFw>iLy1!=6slQB~C!C}{#kBh@Q4&9S z!p-VZb5zX|74@Ccds*F@rkq)#W`6SI=>rNa6Mvisljh0jv0@RO&)c72+< zp=YU1y65SrTc4)wII~o*{N(AlU!SHQ;8|wS?s+Cj>hp{fKFf@zpFERh^?Bxno@FM> zJC(q_peV+Y*XSv03&vQkyKF@jKv)tPhDuU`m#`P@~m55mRX!#=~sU0 z^1NSPmOJpS3TXGbvPkOd3J>2^LDNrNS!VThWkBz$kmX)iS4DkY6=AEQ!MZ7QQOVZT zVT`YJS{I3KlzXZjab{K2^;6fj1x@MA>s=l5-0S+TUoPDf|8U0LopgPAjk}HI!uvkI zw1f`|9o>*DazZ-UDWYAWEYO#6O>Avem{6#hW^X8WCEtq)YE5pfkvrEoJH6P`*-^I1 zt@ZNEh-nj~9vP^w%k{{qUlb+(f8#gxIhO?;Z*4Q}YFMW<>-7V<;!n|Qo^<%M&N`8! z927mvj?+%PV-oCcHKcGqZ7+YuJ8W*P%iF>_54q}Qj;t+^;~>b-u?FO zQlyFI!;lBFPiF26U&)~@QGH!>;@@LOni338E&rz~xc4ou+I`hi+4W6&r5}&%XJ#yL zRq+vE2;QNJ{L#ZjjD`VK(lfW6Z98Hp`0=zun1D#O#Ijg#k85&9kC$E9 zp=kchvnP2{^3sG!lkL}e^h<9_UiEj$2}90L-RV+u)`uNE>B$)5^r?2-PtNlyhR#dfl+ocZ(W>{^=eIBR1o0?sP!yPwux#q4mn|h$YSY3V zx!BzmVdqO}WGLxi__*oSk}Xwg%hqwM6xE)<+$F`Zp3Px}suJs828G7m&pg*?`sU2O z8>Qs>$9vP%O>gGORBN4`#yLHs=t!r{?i+f&i#Kht70t6hayyH0dyv>|xA_+Y^`D>P z+L@^I?z}?P-5Y)8+Kig-t8V|k_v765ec#W%@9fxgpMihJ0d~I+P11iJaQN>yB!2Eg zoAsZE0{uIVsQZ2FivIIR;{1+dhdslp85P!UyOeg^)bnYtc2JxCf4RQLKIe*@lxCUf z_j8|^DEWDs_s28uj&3?@F6SQ0+^|Qq@=a=k-GnnM_|pV#EqJ}i;e8 zLYJROQ=B4jp6kxhvWW#V7gjHww_?IB1I9lNZ2wgm9>gf6PJCBXJ1N@8(&Zyx;Ch!k zHiD~Gh3FoKPD5u81xp-ac?*Ehj zzxx+o{CGU&H_LU)+wvgGv|~8e0?5&Ox4!UNwLsQGp_f1sQZ7q z@bC77i;o3ZJ3L$x>-ih&mlQXcY&2YwRC`lha=*JE-wQDVWr65vNm0Sl4c8lYnTj&K z5Sbw^sp%nF%+y`D zB}}C2{|k}c8v^AkMEY+?PMsktCLuU|hRDPpLQNF~E2h;m9&M;^TQVYYr+@HM6ZSkEHlY1EX?KK*qbHT&1&f4cd*;#Nb9w4Eg6b^ zuWv|xm?7{)qIa^GQseRi841Q%Ke%*j?eC)>=NqD$8U$VpWj z%gf?6MxSI=i)4)I2p62-Y2xNwJK0iTQm2@lDrO$o#si`Mr z{xWkx6^{7^6KCfw)XMdkZxPzk@3P>vviLiv-cmu0)tb^jIz{-k7F2|^^(~xhaB#kf z<3hf`cJCK1q8As4c?p+HWULZg=upV3-#i-e;A+GVr(%3v>rr_+%hl{PObdG399$X=I!9zHht7o5D zR-}~RPBq~PMO_Lvdj468hDV76|5$1i=$PT?m^fKDy-Tc6YUw1y{@lbF5rO^2iOX3G z7r*roxa-lctu=pZ<8-El%jX&ic4!Iu{9hv0>m}UnB|6b-dEUbb(*vi9Mv6}J684Lj zTJ~_|l!+@t6jzB@x<@#!nlfwE^oL81FI=_m*QyP-0;h>MMjNhXlUluFmGsghV!LOp z-uG+u0jV{ItkxWfT63&w&52oSPVHKA=GK~Xzt&ukS}VDIN|E4{Z7yqBKDA%c3h60c zef!ticZ}NCgY%X$uUeC`?!m5r>KW_a+!BdDDfW7n$ct4XZM#GZJlD{=Bb5K3WOR(i99Tln~bz zxS|@PS`;(GQ&^UpL7tmo?o5G$5339x&Im7a73KC{^Q(&Yzu?@zu3nv6*4r}bh6ZjH zoR}wLwOQq;WzmT_LX9pSjdi6Eb2=@%1HyHpEKHSDyU z7ib+UDJ}T>rqN-ch2$ryyY%e!&%jg>u(ktgp0MQCgUNR(cv=d)okvY6*91;%t?n}yc0W`XwY!34;^LjlMVhUJ zQ*uO9PAdx^+~qe%Bw)^FwMW&S7h_K-9zJ(M@~6?9EX6r$a~4K?JRa_NJfBCrkVnu% z+Pm}rpM}hgM{)w^7BHTisd%z=jY+%D;wg+f4oL{d%ocs+DQY)kujt2lJZ>v86;FLq z7f6aeIkE60U*R?tru}XUD>m2&GyL+`*EqfAjqtiXVx_xl>JM%=KDc1wqHV5;XXZIB z*j2Oh$!gKPGE%&ay=UhL1b7ImMa90;6j0$}xUQoTwQNy@V%zCCyJlsd2#FGWY9sK{ z<`iGx&bfk%YpcXfSBYf$oKG@7*S-2=#>X>Jjk_0V3;vQxV10PLlVgd?#3k~DHfJOx z171nirHd}iJ|(QPdri`A0mWqkju-hCUM!d)ATd{=LBo2XM$TdDcI7()Q5hFS4=&3- zc*$ttrTmFYf9%qq@`ZcMT2Ao?UgkS^S$avYm9C&o%jMRi!jpepwrp9{-zDa4 zEA0MPY`fXz-Frl(-Wc%QT)FGxHm{G{qHKj@Z6{o){ht5!vzJUm01*(miuno?07VB($Q%z6P0EQ=fAj}^rrV@lKSr09LC&h`*vP( zO|O~KsKqq#=IOby%Xr0oxW%s(-8KAQdhLt3u$t9Y-j8Nt752szCV6k}=Cp2p$GG)P zZVS_o(`L^1g+H3+OWprnw(%~Hu=8!P^fmXtKRZ{}xQ8pmmZ>hE<*nhLR|50BMY#0@ zuT6e%q^wJX;nMeocA;G&>wjdwdbWGInt=Gdi`(2E{`q#r>*4bCA6?Y^3PbNc`cb{l z!0xe0++(wMA)l%rTkU&nbMLX;zsC-8Pn_(YxWqkit9#-x?}=BQpxDMGo(~Tse=78r z>%C_CG_3AvUg*<^d4=k}q6=aVXBke5I9PhQ=dj4dry+^YqVxP#>&|e|5#BI&!)9IK zm3Ji__B`WEy(9Q>=E1)Lhkb=N96z?{yRPbLG40n$djGc_m6Z|<>Un z{+c8D;O}P68NEesUR;}UH-F>Z)mu)O9xR`u=Xcijo?YTS2gXJb!TQxY%^I-@|0W$@ z+UNJ~uH1*Y750s1W*Ro>gb8eod40y@{?gCaIDU(LJ1cxl@6FRA_d`D3fA~k}X)%oj#?m@gcU7KezR&kGi%xgg_+455hbQCDp4Lx2{sL|L z4}}^Ys+})d#y-ug_EP=*2a^?l>iPWeTKqISQU1rm7K4SqcK#LcoAAv>@#|E5$?Ed= z%!%J0Pn2RRy!QHSsC}W`hP$^a1fMVQ6WDWKY+Jqf!S_$M@`{{~SE#x!P_*vP-*)xA zPQN4n2c{X^7GMrKzw3SD)S1Fne21>5ZjOrir|TB8CHxUH<8Mbt!Jgok3b&V)5ar&n(m2dpZ&-i@g|h3Yi$bZcg4f-985c zivIJtoAr3V24@|d$hO;wRaz{Et?T!Zc}rJJS#W6nLy54f7Ke2iv@+iA>!}dWiQ8NB z_0gTg>-h(Fdi)Q1Qf>b6;p}#Z~6){Z~ytSGGWnGvHm?g1<^kWX6;*8w1oTX=7`5f=GwEr4ifnC zc-BJwkQ{GFA4l_Rnx9#Fw6u$oY#j`&$LJ!aP%(p#!ZLw|n zoBZW(?GE#=`IR%ve+^4~)PzNBnOX%q*qLiyI&>*5;oRLPXYzjk_e<8^`>%XB#o;{L zgy*!=buX5Ws)GNM*4uNfeKo;wQ`VaoTC+oJyxrfXtUlu|qq*s=x(NT{izbQ(nTk9n zX&rd1(l+hMx)U>JEfF+OU%9x*yK7eo-|77aN-lXdseLp$yWz?ujt*JJ;?Fvk3yM6? z9DcOK@$BZlKiVg+K3ej5@$_dR-2of^^R#jWY!s+mcW%1K+)jT6fvca-dEGv9F7UF# z-YvoY^+}T#cD~r%Y1`{&t8-=g9bw*3@$c1sm);wFGByccnDkXGwDs0io!MooFRxvw zS*vrsr=@p_T0(r%)5}d0VqdvFUm$z##;Fyl9=CS;*miTIPd75&9U$4d>e{RV#svm@ z-~5@jYweLqSM`c-r+!~nmA&h`nH$F{hBf7zAAi30vqQCWdzq{BkA&9N-{px5mr1NY z7R$?)z}3}uAtR1KFZgV9mrfc-^6Wbs&YMgS7m_sTyUlcfbIYT(nW<6pt#2-vlKZMZ zWn;;*mG__UJhEIfi+k5kz4^*Mz=PJl(>Wbqyy5PU)n`u_d85^ojuik8y>$Y*5 znD4XMQ`9o!8P1gL2oBw^mGNrk!d*FQ`zpTeT9C$A5G+ts_-n0#pLJ7`=63ENjYTj2 zlpIM`Pqgz+W)l_f%G<~L=*zo3->+#Dw&}1t~n(l`n7}l3BZt z^Oy9CreDqzzg*+IG)+w*iQS>NSAqR>`3k@7D?glz*3l@x*dgv!F+1+~ZIfsAMlzM` zjpco}x9klGHF~14Yp=rbi(K`;n@-htio89W9JA)5anOIgFTUOOI_=Y%pIh#N#~G6x%Z)w$8Ze8oPFnAO?qj^W)QhDYhw^Km9bQl@P%-VlG-qn_1;blwDtN0V`$vrHth3X?7JQ6Eo^Mj5e+? zXm)o=61qCYS=G$2**ls`crM2@flawx;YX4jm#mn`n0B!{o+Vl0sKqhuvWY$EF3D0? zcet5tyV#q*<|Ow+3wNt)7yEKs8n?dN;r{B$#Qu5~m6AUa9!_GHCbYYxD2eX$a5K9! zvA-onMb*;NE9}yw=|@u3Om}+vm0g-VpCwhp)zT|y+NCMWT~f6|cY1|wyEJuuOR7$) zrFYb|OVhR=N!2Ue=^gj&()9f-X$GyFK5inyxfe9k6uxqtN;SKvbbOAdal53{^b`LL zO)jyVHRfOD`!FGRhWHX*i{+N*BA&4dJdruK&*F(@@u^LD>)tHXdR%$5Qftk;Esbhc zna(TopBhg+EyU;W)$&5PR{w(4H^k{ig3E#}l`k%H6de{|S`hi_Qum3r9a7m& zOBX-+xuVReOYF@SBZntpLBE^e42qNBO@hKu9mruhd-6h-&G2#To^p0+PU$NK0= zPh+j%%N$?z<=<+$X6%w(;CHc$oAYXoQ~B%_ObM&ZD_{9sc+OIP@96AB8#BwE%-G&) zVv^_mQEk_=3e#gPQ?2r3g<>>~CY3w6uD$v5)heSyVZBeLrb#MlyPmtHxL+%%QZSY` zX{FKR-EPm+|6jKBay;ZZdB&ZVdIo`XU#T!*qrEN0W zE>^{)T{&r)n{FPhhjpG-7uUXXa>olRu(FR=gg9Le^Sp_FSYmbl}8b> zAtq|K#5^NdpKM;US(#n!e?f$p)HDgs<0oX)I3{hLp`dC1!|B@P6O#^JO1Y94Y4UN_ z`keiL7HU=RRP%Qe@V#(n_iTYmGu~SpcHWsY@!Q&)6QA4-O6NQwVS8U~Z+wY<#y=e? zjneOGtz}%vY`jzLmajbDq1G|u<(^qa%}Xza2T3ehnLWXqU;TpQ%JAi!mmc~lT{Gc- zdUu}o_IOWJcHr0*p$Zjakj`TkqvZ3XGl#kv2FJ)P4y{k6`EUHK7WxyR4mdfmq<({j<_qrEPbr^y`{m==H*A|?zF*<_IM40E^#3KZYwjIiI5WZV)As%I zdH!$8P}i-j*+1byy7~uh#eGFm{8OJbr~a&3xzCqj#`jj2`6}11*HvCP{*Fm*g5pi{ zj{11c53?T3RC^=tE3m!zeBX|E|BrjQ|5`7qUvXl;(TC^uT^sgq{;`ljq?hrE;>Hj5 z{xj8o6i;G3vM2xMj{A?7axOW*-J`1Ui<3KLvDTpj{456rL=GBB9TYM-DC~0309BeIBdcdaRtPq&3&6TXYGB<*mc>8CHqxKI{_WqOZ8_ z(+lU_87>owrXA4Y*nEn^CFY3Fl_N_!)=W(>*_~n0ykKqj0hhK9+h=;L+nllE@gtKp z4&85W9f_FYI!Dmpm4@rjM||cj9WC75H)b4-XK|A|VmSN3#srgN2`U1{!d=(Ajf8d@ zsc7$NeX#fYr4CDDjUG1%cylIi|1vbgX2{;hmp_%2;~i zlX=QRj#n;mf4IYZ(t%@#ceo$pI6PlrdyP)tsS}5*R8Ew%?6}W;v?;{H^o`ZppOz0V zxUQ@AIA*cy|I7=!dJJZ-i#pN!#BtwY&MU!lcO5orFqwPdH)sD6&daNLmK)m`XKPH6 z;VXH3Vy2Dbm*1QpW_M;D;heMOB;P~NnM+PCFmYp_!)fNiy=V;&#~*G69&Q$qQ_EYt zgr7L9?>@C^%c<2zPOZ6eYVDI#>tq}yznt12a(bi6=}ji5H@lqP5^{QL%IR$-r?_AMQ)pDfNad9+{HuyS;SGH!SPb7a8JC(WF10EI zc6D6pxxvQ3z+T4CaC1pVDFcH@?nUF$Y5yfz8Sd(EcqnkFDs(Waa+ub3IyD40djvF} zV9H=%uzPy>`GQsl-jJ>rfeZz~O&Vup&vJ0C<#d$2()Z)y&5BEf1|7u$?X49oKVvvP zn{asPa(K&L>{}5uDdK{nDu1Dfnv8KkFP?Fk5P?zrk~%Awk@tgbP*ZpWqR6$}?9 zw95PnZ*pK|s9;;-dA9K_M?%7lw%X2yr5vfQ-2a7jJMwioDi?HI+{4+E%F(;DLr0e* z+mxfAqVwaMpxzZM#i5bECWWYtCvK;Ra_21VSogLg z)uQdN>z!nUo2@_2%s6}Di0hrBPs3&j#5CWywf<;Ky5)uGwVjc!ZA}~6U#|*}*?YY; z;5y@lKKmCOt*RYoSQ_^6a$jY=v%w&^Ss}bjm7`mgqpvsYfBIRDdrLdlEaf|8{Yh!OX=iBNhnY6I0oJ0?wH6mXtigt{971IejoSGB*ZsJBR+Z!5 zlgqVNJ6M+{HU}iXb7_7nk<_~*y7@!szSNFIM?0g*Zp=_elQGNwG#NZtE@Bh?}Pn+k_- zEZ66f)Hw$(L@?ZM$~YUb;)(aQ)K41%b^kTjC4^t!diaaZMUER!lgs!lm&RG}#`?cJ z)5Oqb%*5_)CZBYz!_n)Bp3h`nf3%g~$C=p11GB%6cVnuYfWXOPF< z|4q|gC>=RD`vmvCSuc9l9W1}-$$j}n|2H@3fQE@`FDI(qJuKldAuN;U2@`X{%jspA z!VxcL9&~u4a2JQX}X-;dqky~;P*%z2>yfC5B z(15`p;q~q?RV|6N`)|CS&cVFu*y{s&s=YD2PZxFSG2|Q!dviZq$J&@<-M^;wac@qt zsUElEX^~LSF<>w%XgK#RN86%jx=-dQwYP3X9W8a8Mh%%WroBA;;^d{aw>PHcHnDhE z&3SwK+|oY>-~PY*?Crg8Z|}3cdm#4iq1wAgX73)my?YY&?rGY)XJzl6x4nBY?cK{| z?_Rw-#kC{z^|g1-UTsS&*zz8*<==bvv2RI{!u!v8%DD^-5e(d)-QItY#{H7NL!3G`a>r}b6e<`+ zhq=ok?CUa4araxC>pv=}_h)b5mQU}H3|AHwFWO_5y3pWLtHUSN=|$?D&t_K?InMc{ z^Sm#yqH{rMK--T3jq9Hb*H8Q(%vapyz%InjASCbe?yHh2d(o|iVx#=T@~xf5>D!#rr?E&G9e3 z=@&GffAMGk8X*2PQ2lF=`PX3guOZ=IL({*8m46Ly{~9swLIqe z*I5d0;@H1s^L$IZ-m&!3Vf!T=7uCL{rk4e(zw&$2X_;RZ+@#KI z?h}jNlm$JXyos;8P<(39{?Z)x@<97ZZ87D=?6z5FIA+v*x07G+q4I6j|B@wFzSn*K zUeEpm>!mgS5x3Ux7rZ&Q=r&K(Zi|%GgK6FGkJ-PU@}4h$;e>?QD^j1INS(0%iQ|nQ z^DByGS^S)R zd)T+3HSNKL&^Qi(r5#^YIKEt|Zp-lReerwQcQ*_54_nMRw%C7Y4Jc@O!R92-rWW<5 z&*Klv^e=AlSN12|TA9k>fAqor1HZG5K2r^Q*f0LaXihO(|CKf798TvuLKf64OsL)H z@prz!C2l`w8))WZ%IY$bZ z=ZPFEOxWBnFkNwt%B2KthMRs;Az}~j9IH^@%lP5wC-9{;pWeLutbSpEQ@fCE))&-E zYxuUV_$=9A&1=ZF<(9z>hg@4xIT4Q!*%5R21t*D~6m1A!c1r4;^$G@tvpF|!DHQcIX{h_t>obqO0LX(9Nm1Wtc*>7BPoL+jhiiYx1rvl zD-3S>y{uDQty&bNnc8MZC|NGpZ;W(n&AUH852fU?Z))S{T%2>u(tG~Bu7a%r*98*e zb5_(ox1F}l{MI4M@Rawxr~59huji5Z^5@t0&+p&=w{KwN%7`rEU}V0M#@3kr!0!>S ziEP=kpIhd6h}@eZ?Ors+1Ki)$`mcHiVLOEH-AiQUKMyf;Qv(9 zx)wew_EyUYJ&P*ZFI3v@-F~s(`sksCD&~Wo0?bPpKKMK5-n)|AANcF1`hrF-D~*MY zj?A~F_|GX(?KR(f;?h*+(&xc_HoeRa69is%3V15bEMDo?&buWpuZ}Un*Z+*jF0IvT zcm2{@^I!FG*dmU`sh16&WL92t+uoIumTCSdSe9YFWXMZDyE$84I%G2mob_GtspW~| znXZ&ec^k8K>u$eW^*c8(jf=J2ib3X-$j(J`ZeM0*ay-;lZ^p27_QVIbs`dB%e6@SM z$;R-gXmpL?G0E&bhR0>A{}`T7?6xsF zsXDvH=>I9r)q9Li>+b$zbjI+sjqzF2+cn1LEMM<2K5zT`kMRXZZd;R!uF|z8mprxi znq2m^{%dk2(A(DZYH0LXVOs`{BGc=!)qlUH7&O?L-AtVwJLN|D>b+*SbNQ!iyIpwN z_WQ+S4iy4-N?z|Zzi+(#V9>n|1_zh>ta14 zUYoSXkthDY?T_v00(L*2hQHtQ z^X2OOcE8{5jxW2$X32l#|L?E2?{D9<|Nega|9^k~w`XA1IKU{hp@Gdtfk}A90al|8 zjeIon_^Oq{_U+_AyQqpfvHC7bz< zhdftwR{Hm!oW@nGVJz;{)*dK%*>e*M!%YXa4u8X|NskUsIds6K-S5nFep%t8Cpji| zs7w-P$XOwwYQ*a7|0ijRf@AmOGXi@28@Tv8uS_*IQ(<6gbZg=%I%aw4qE&K^ht$&( z$L38b?5kSyxcAYcVgf5bD21ucD+1RIPFA) zyy0_)ikZhhb*PA1IjXx{^E@%un6F~-n=Z=>G z``bRSDqY(k>~w9iW?#rFDPiGuJm7!$Q4}BB4)k!l3%5je}{zdOdU%Bs~MfbbGbs*52>7TTB*vX ze3XfmedS??TZ@JDoSw{LuxLME79?Rgam$+3pRWHG;TI8!f2y+9`J=f1su_YU5>wT8 zt>M`kFmrM~Uy4Qj%L&!{xCCc*w5XXGYA5|(EYKv>Y?{N`V940O-{MoKUT)l>Q(`&y z7~hkysed^PI$Q8Mi$q_|r>M@q zxpiC%ug$L!Q@pcqp(9hk<(C}cDo1O3GWjPhyK*mOhpXkgnSDu46Cb#l3p`xq_@`>Z zgC8z?4%oggTB7Jued9joVT`yV};-Zqy6hAT2$2iMpS_ zMJ?}y-?0Zy9k=^>kiSa#&Z<*Fhqnr>eBy9skuX=Zh1SKl?;ThC-#zi+Ix#JYbr*cM z&A!l|(c!$)_JoV7&SRmUpVfFKo-M9b(rdXgL;2Gm4y~p?6Q%#VwDd|D%(6JN!RN~l zm2%!qK`Rfbi&U>r6c;@?HFDB*$>NzV>TMlC^=qazJ`hoi7c&l6#G|IX?x(k#iVziFc{^N)@|Fm-MmuVpk22;0`EL!DqS;}~#ZHI=- zi{MkgiWEdYm~`(^%A9kjYT9151M90Ny>5IXr9M-RW5W+?fyQ569c(+5*LQr%`QP$n zl{&{&5%)Q)8z&#BQjZpU>9-;Db*Z(Q@Pz>PnTn6|D!P}PJ70NVcjTs-`us=l9aCKD z|KjMoM)nobY=P|AI~bLk<&7VvFXlX`d~aWS?~B_)`*)-?Y}6CVlzA-YKX1v^jUNA7 zYM#j3Tb>GD_i5_pJx}%OEzczDeV%!F&oi_AmgkDseV+Sy&vU!~mKU1!zAO~p`@+rM z>eA$OUzQs0&2e5(e0g!)K0fcguTI{Udf8Mk;a=q4*QYmEIHw8lt)Kk2Y@)?UX@-K9 zO`G?YUHR>C>$cwaotO8%E8Aav+%9}Cw8t3|oJTqSZ^Q`qfzF&`RUO4Ojx;S~?mu2?0uY%YAy1IGa*LC%_ zZ<6(Y-@Lr<+cx_dCl>}a?zYPO?t0QTu;IUisQxjhI3KPX`TtEMP8n$KnZ7wVjaBy9 z<}i&*`lmimob-2ofW1bP4xh`^_mvwUJ%cGWfO&^i{SD(axXF2*uvo+$u^&$=hKbeGJkq3bm3;Z-5xF=lvp6K>p^XNy$ zgtHkE?mGk-4hTA_1RZ9Xti&O9RKTi5y-3A2{tu*y(YpRdcHR#Ra^1F8u$z6b>HalyZ@OnJ}mG zh{(S{R~I3F5sB`Vm)w>FId8b6#W=@t#zK#n2W}e9(>4ly%uG0!GuzQ&vZF_E^u`v4 zS{KG?%~pym?->uQFl8~|n7`KHw)=yJ4lfoucCcXmrBQK#9RZ$;IJ* z^b-ju8_{)zEow!JLMjfMceI#EvY0C#S!3!lf6XI@EsxxGD7rh`S=s6G>Egmu2@*_7 zERGLZH0}xeIVkuC9I1H0;&7MCX0D4tm&;>LR-=0zM%yOKzha5JA}spoh_O_wV`R*l zxAPrSt~eBkICU&umNCV$u0?m=Vvi7Eix2-@*`!=N&MN9ZIy2+P6itS!exjHBCSH?e zx$0;TYB-O@LAS-Rq*K=H$n?fmO`TcmWlpF)Xc63bd2LRNlAVgv3uSw=sdl_9Di0Q< z%yn^QYH&Ly36HiDc&|kNqWE9Q4}48%3RLoTjY|@@*4!*^+Fz>Bt-p9?5&j z=K>m4`Xt?Ly81S{MCTkcFgxO;HPi9Osge(~7f%se`qCvN?}&n$@C;s;uf9s|f0P(@ zJn{8-;6CTJ!;&K(6>qqoaTR7{@a%Z#dmvS}>GqC?E;|)l5(Sr@mQf9MYWc0Xbkjms zh7Bo3c_)n{B*GeIIZlue^Ly$ab8V5SN7B5bNkuNnMgLh+nx1;@m=?KAILGB$n3j?m zms;?HM-ESxuIv@{+oEP&(93MOFT*QSOj^WO%qrUZ1UKhL4x6q7bBO1 z^;dD7g{n>l&)qoG)8$x-_^ygs9sT30K6Bx-q#4&8CWtc_I23rC$^9nkUZL*vrr9M~Qj;{FJ6bGvv{+vIs--mXxj=4<_dTxc zm)A|rS{lDS^S_Ylyg_}rg+%QIH7|yS?64KBNiQ51s5^PQa9ELE{mN&$&*FWV%SHaF z1&By92rTzFz^3|-CHv*_Ue%jL-(3Ekd=b#{v{m%7TgM{*9U7ji{%iP0bo;J&w)sFr zEYkrSzLu4pEFE$!?M^MZ(^i~|NbNau!d+llAkSfj8kcaPR^^)-{ylDe&sruHss{J0 z^bcrEHhR)%bad9QBU661L>0L>o4U+1W9jUB?7<^8?cbRmwu!TSg}S>qXK1X_vAw;h z=}Cm#k+lXsdp5dEnYq#UM`r`GcD|~XT?kRDbIW-s4|2^I43Mg zEMi$Elw@rBx?XCvpM|!QL$*@U5!JL~+s%$te{)$`>r!yVc~$Qzhbdi-Z&asl{Qufv zN4AshVWWgl=PS+TGt`|zrr0nc;6HP(1EywON{<9lG$G|^dpb8atN zlkEIt>7-TK+IcOz7{rgZaTGwZ|TsLopZRdN6P8Q*}mL&24}8J z;<)R@mVM`7uoC;x-V?XmCg16bJ6?O{K3m=eg|!U~mv`tLd!*&|Sm~(2mX7`)&yK6P z2VGV^O#8p?S)ShWvUShv^j@^Bd(o%&a@x9=^YmUVTlZ?6-s?@LbQv5>wyk?}PVeot zb#L$Ky}QIG`bO{lyS#V*@=^`>f+p~N5L+MO;pe9^@1vf6;FGh@=e9gBT>s_Mk(;JR zUgw?tl9nIrvOeHV!?(Kko+?b?j}AJ%ko_@F|JSnjsW$6>ZCn3)pZ=d?@9Q@-{kitu zJ>|Unn!AoFPG4`W|DSi{^569g{05BT8yMvcnAA5g=^HScZ(z1JU~%8T;%~qjzJWE~ zfGz#QS;5S}27yyT{4N|iem53}NW=&4$O%@^3tX{*ZL{CfxMSDjj!oHC&?2g3XUl4^ zR?C0E;?y$*0e|i%ZP*aN@!ybl@i}hsqk{eq7D~4Bvmc!-_L0?5NY+qMS@x8W+HyPD zAZbQnzAhE_48>Bn6&_a_Z@glYT=dX!f#J1jA05sZ$SAom%(=uk;e%gEAy;)_(M`j- z4-5By+$iTz0m_$?oJ|Vv2+cndA*wL_ zs>!q9jX_-jG6&3^Tr4(qTFJGjeJ+?cXVa8dS zeT8bYTuXG@ZSN;*I_9-_n{0Nxu_*V+|I{rtF7Z*u?5WdarYfX3o``0UH+W-gKcB@m zUEH5zV-_Dn_Pc3*2cE^AVs{G3bdGuHa7D5;$<6fi=7$>B`JS=Nd3mHr(JOhw^75wV zjt4)rOiTA?I(oIp#by5)m*6kk1rFb<@^_o;R#;i=Jjb}QY)b1r_WX<$InPX-%|BYs zH}QThz#jD2@lK%6YnQ<9%jXxmOj2@jRG%@qh~=4@iMPR)^4{kGv`{Y>m`)%ECSH=>%%~qKuJFv{}z&C^6EL`<1XZ*P1_yt;S48#VKdBU!Y%j0( zWsnf;(eu22=wp4ucEzJv(=R$plr$;~X%%M@K!72!D#{`%`i2Z8yF$;i%-+B<#eCPTicO|g z%1fCUL?4TET{89WDDp6O(Omx6U#qxHk6Zh=TFo36oy}#=7mQX}?@F83GM)Lrj5{Ju z?=~HBc{-E*sF8Gw6+ergnTgXC754?t^PO8vyvsK__nE1;M#~<#cg{4RVeUye-PVm!OVFQDdV|JkFT)vXiv zRKH|-@A`ZG>OVClFPb#>#QZ8bJio=){rf5LbK$Qyc^I&?$38n@^tHvpG?&r*koQ;N z``=G)W(i9#y)gUd6dBf8ybpX`s*~h9{pNgi{PNOq#n!{-Ez$9RAM^a(Dz$23=&w1g zTHcj4n@w8cPG{v`*Sh!Ll!3*}PopM4?ps9ju3PJQ=d`|dRQPv$x7Bp7H|`m)b0=#r zn_#kw>%aM)d0ZLmU$5@`<~E^huMxYHV<&v?vbKf8vWfjVY|jc2b~Xf@55zlAGcPR*R!rI z@3`=NrFZ=WTl;U`bFbv@|6XtZqkaF6e*2%(_y3%4|7-dFU+e9EZ{PoWzx|)%`~Nh1 zG@svp=IZ{x^JPBWb1{5ke`ce;1A~CYgapTCc0sj}9TO6r+xZpUrdUi&a_ts3OuMpU zVzPU`yknb)<)jqP$?Ad2LUv9{^`6e2&nWO^Qkw5<^TKCWc1}+BpKssDCTcY$BXE{+ zk6P%iDVf2`{TI4TwVL`r>*^BG4+1sGQ?tX@#~*AHwVsv}xjFsfve4bra-+BBKRh3$*eDVew!Wk}s?1}>1id_I5o zrO4!YtPHnaEM6#N#jvQ`?bgfXok6oQSFBt&YdJ$sfWzyxThAqB%u`*Z+{jYnz`-iQ za!G+vRAR%ex7&re8n~HXtec%Dyl+|L0yeIS&?Y7!g%zCpxHW2;)woVAXke9ivET!f zMF-Qnlj{5o%p3;CW4Z--G!*lveSbH5!G31(7wj@CJew!UUAn>Cdqn(vb0^=A7l-@# zHO}9C#lZIBZn-g!MPkEwPrkeP2iTqdFKW2XnZ#1YC#4a+fWhR#-CxTqzt=Vx^C&R3 zKAf(0>&L~3;u*7;3c@`;GF9!kSG#KSd)a2eJpv2MA6d%PD_mlCTHL@^^}wb@gOB~a z@q){b!kG+n9&+tF9DkDG!1l*e`4}{I9C`fZ0^`Yp>loR;C|uZdyvb04f#+8Bf+Jtl z1^x-Tux74c6Xu$}uTdk9QGUzAvzx@*9%S;@1T#0txtLFgnQ~r1^neSa8N+U=dlNb} z9>JXv`t>ag;~qPLH5Em zuUMrwQ$z1O)vvvF+Mj9i3KpDI~)yf1Q3x}S0XnHE*kjh&v^zl>(z zEqQ9z{?fN_mAV4>P#z@$hw`*tyA~Ve{qJ9!j=p+cR-~Pcv8kECqepkObW}@9^A;_h zlaw6W-`}aFt-539rsDhzxfyqm*^_jPr()YO(QTLwDXCM4AF(xo%- zLv6B_EOKzPzJC2uL1A`tOYMRMvz(mmTwU#pN^(}NT>SLueTT4s*|VoMG**|E74-IX zI5^rsPO(|HZiS_lapT!D9i2^8Ri)N8W{)3(4z&pi_C0m#Xm)z2p^>hCfJs_<;+ZqY zjvqf%lo$Q&TT^s|r>>rQT(oz3O7M{*`xE2*?d(h-=h{4ed@rb?bjgx=Teq%QjE-@U8b zv^hz~Sa;X%w1}pLiVF9bu8!2%GwKc9rZOqXHajQn(BUjAZ`Zv1%=`jp zQ!~x1Y{%L~wV|0oVbLbVB`)qBP9asLYuCo_+n1i%nr`Q)ZRcqf6JvGYKt_IlUdc?2 z@P^v*nPrVl)lDm#(%aR;8|(ai9lCaD%{;Ho0X>vwfs7?9=OTw0@I!evK5S{`^0X5bSRJe$p2 z(RG&$g-u0TK87mv%T*Rla<&p{5Zh7vcUP~@PNVqKj+)7Ct1FHDcFuF|mYchQEAwP0 zC)2;k8Ot8D^h&c?`tIKL_V$kA`D|-JaB_EeKl`h zF-yQ}d+YBZ>q36}zH!^B{a^OqgsRddkNRhYN7<|_pYu}p-xSgM-5=-dsegSx|BL&< z4YQZFO(_<(WOT6ewPh12Vf8#NAH?)3y*K15;|E3te?b>HV;fhC@K*7(83OHIl_xG& z3HfGB=@c+?X$}yzYEg33`4o1o+2UD-aNNSqixcV{G%W-gOrJg%Yi6;un4Vy_<*Bl( z&801@VS!w%DZY&yTV^?|6}*z_>;LIWieLDpDXI+7OdnLId$r!YEMRSNPZXDGeC&9IDTIxy^@)SmzSJd) z(*u7^Ucq^`;@WbDiCL4PR()!DRmd#%|B9CX=046TD@6mfuFqQV?UqJ+`mbM;qSuFA zQFolpbwx8qiR-nFG@+ zUC9f0z0Z3p+gn$bdv#x&p4{16ml_qa$Mz)mlmk1jaZlWDzH!F8LrWxI9w|7(Ia{4! zlT8T=!!se5by3e2?H1#b`(LJcnB}Ua=!t@vJ(8!gdVM~fHt07q5)xrJ(45!(@JLf& zx`@h(knW^E0Vj$-p1#&B6voD%iuDySjd8V4+6(Pg3lP_%z)SYnEg0ZvU zOv?1P*N&c6Tv&F*MDkX#la~I|{Nvu4t&fjcvYr*Wm-hXCuGoFEm%e5<>csb5yK#=q zd%^_%yBrs9XJ6!Py*1}xRB;U@J78AlY zi@8|DOww+x@O6*yoA6HfwFpKPxzp2x5SEJqw|){kvlJ&JpOdn{)^@k&tT>0-7zu-UTuPQBU zcXxGOV_9VXpK*i2bRix=w-1{C1TPq~p7H#5N62w;%ZWlWPlYxKi;4ePH>feQIIwoA z3p~5SryT|mK4b#p!Cmwa%XezrL zJE37V$+!2;>P~4!2KQM3e7z+r7mIyAaoo<&&$rGbR${;D2?xKWRc)|Cd5k7j8(mRW z_dMz9wR+NwGfNh;2s`;!eVV+0C-pGP^tEmif~LqMijTNMdCsm1+kWcmx^E)=%U>=E zKkgNl*tm5~#?>b>vQ^i%?E1QPMy7Vm?x+LaOb6DToX8QUsT9ue;A(lD?LGeu&nEAk z$F9{fRk=qkY2T4+AM9$Lo{W0_EBL^(6Pw%(*EmnxG38gw3B@24UcR+Wkv~mRszo$) zQ>St*Z}EAfxIWe^N80H2{Qq07scmKTTA(1beO^nS((csDT-~3dS9okv%$p$MTJ(Fu zZMKO4d_PaU;CghYh2fpz-q^Ke%*ui;W=D6M9n`7tln}hym$pa5aedGYw<(Y8S`u#e z>YJ|>_02iCeI-Y=culCp#J|^`w7fU<+9$-cVcU)T_}`ivRu?cO%re=bz*}d~7+M*> z%x}7axS3bm-AxbEQ_B-&xAC0T+7q&#F`aQEU+RB;5e#v%@kN^KLOU`)zlH&_axLvkpKRf;5Qnbitz9n6= zWIevgO-g6ja`TLVZ=y?=j({8Y(Tja?CT;UH4zzvwswk(@!6x3J#okq*H*a5wvs3N? zwIG+{U2$5!b{Z#zq@Z(o|X#$i|Po1*QTCOq@ozU%tg zcV)YO-~CWFb?ReZs>-6u``5v_Kgw>Iavll*$&lH+J)tu$|hlznMHS?y- z`pWV`MA0hb&8^P|^|tLX&HQz7ve1j_@3-_KiD%X_%@A&jQQDIw|5_&KuGvK{20iwguFTm} z9#}m&oVdI5adFUc%ZZx3ZR!0&Z_EBtq1ilHo{0$SV|9#T`;np4U z-VKz;)TWEC|CBs!VZBLWgPCBaM`N<1VcnT`caDu|R2= zNJNKK&2Zo#u(1 zN){4c4?AaZbWE&h*>aFcElt?&iU`}qk=r)TS{>1W<#O~S((S0kV z4`vAOktp^uw|f#Mcw9s9w1>d8ZMohTbI)3cR+;oJp4j8OTdCyV|s5&hpP`hU#m|Fxt4&yD_nKl&LYCoow~ zV2PZ-7TK?PP(Z3NvU`Rw?@U2!iE#GJocd2j{FW0XEPcdhx?a1XA)6^FKXW4g)`?0d z`xQGSPo;`T&6vb;vB%)Rq^76B87~A((~GwnDrfxXm~2oP;ovB5&)8}=Q`p!to!@YZ zs-@>q4u&FjQSVOSRyXm4?=?p(DjW}*sXB@4CyA;}n(AKZ%~2sW=}Xm2c2x_-ivH=7 zrn!q+gj9GeY&T(K&V3=!rZg=?&_T4b+C5RDY^6xa&8g=_rn4~42raB;xGvoaH>t>Fx*;m}gCun!2F&6GIh9g`s64wd}E*?Ed{<~h#U{8D4eOOKP0 z!lzG)Y{(Q_AgH>lV$PM7%Ile00t1C|8O*la5L@;s40Fy0~$;qyOrGRqeW2)gn)QA{tq>G=|G~&J?luTT7E>>B=r#Y#z8QdDgP5UCVNAEzA40 ztUzjck=62&sO4o<%PVFruiCY|W>=qzq=?i*@A_NI`LH%OW(hI2W)^PID_FPs&}IQq9WLhL){nJc zCJWSOh{$LO3RibBEa(omj!}zVEuyuF`%;Hlq@W7dR+g=n|)xuDdJ0Z z2{%I-x9*OQE{9KTvo?)<5+&&QO1Jg2@n^w8yTTm}vs0hm*fBwR=OpW$Q)YYHB`j;d zxv8#r=hWLf=l$NfKzi3A>s?EtcP*>lwPN9x2Le@%r&pCioD|%onU~ds zi#_8O)Q=XvTqVZ!dB5AkH5r{1Zj95t4X0;soX%-DFZZ$lPmc(nj>tJH!H=`|du`m$ z*|>A|#?5!O&e(oycG8cWKtb!5UcwV^iu`>oE!T5!(^uhlUfzZ=f}dX>3R-%w{jk^^ zi*5FW8{89TEjVMX9!8Ee*UJ1v~! zBdQqYDBiAR87+D18R^xVrg`3Y}qzxFJTjuQPn=X{0K zvV}>C|8kaRbcwOrUf`H}fotytp1T+L{$3D}y(naRQ6%=F*xGfX(^C#duonZK%>;F|D~GI(IKg|9`s0XQ52kOV=fH#I$6Ub4@Rs z_y(Hgipr%&1$zp=`#pupw|0$;;H*?jQ>Prqv%&MXOERrdw^fYgKe)y+@M^fO!0}d% zE~Be9p(i~XPs;b4H+7uR6SK~4q4puyYfss(6sNBXKH_{&=elZX{kFzyp@wF++t-<} zoD^Sk{m+d}}znJNEp&eL(ikp}V0U zEbbhuy>nvjol|@7oVk1F+}}GFWbaxBcMbo4zhvY&J{J@+n$T-jT7MRekox(>w! zrOWITmt3AGklFs=k8D7^tVsQBfhgHnp?kuiwgMf!4g$JX(7< zBK2O_#k(^OzS+3s&Dwi~+gaY4HVUY_yfs&R`zlS!cW=<|TxpHv-Z$a|H_f^~L-3v0 z*SBQ{A04-TXA;==&adEZo^+L*=r`qk=WdHA-V85Gjr^)RWpkH^+xN1SQ{PMcURhpl z`SEOoRjgo^^hl+;RDvRnoJ?6?<$Bcierr?rO!d_E`6WCsu_&v{%eMc=ejs%mcI9 zqyJ^UG*LVt%qMtx*0k*T!k2`;uYao=)Fk|OxqA%%JClu1c76TITlkPkuuAgH*Nmd7 z73sps^S^I5IWfCk#_Rqgrd8KmKUQZqYHw8jkvaEg&csLSbVW_|e=WH0arf5RQe;;D&7Ma;Et-<0&v}{U`B}ab+xfq6FTd6#UU83qrf!CRL_W?nmwIw+zlfur zK%;K8wD=#Vjel4aYgF}G1k;4C@b5MI|L`$$W83>pe_38@KjQz*y5!GS_PI=M^(J*P z?B5>mE-?%@5q$LhvwPvQU5>xcMN0qZ7xnKGVK8Jn;Lya%E9YWy!PlvcCEBD#BJhz* zm#A*skr{!H-TGwB?Y>9^J@IJbmVBl>Gw7+;G$H$t9G8hQ$EGV*imYi8O!00qtyG)y zGdSbm0?uT<)EAQ-#g+4%V0P2U_dDrFzd;oNzcn)coFw9SM0Y zQu8w@ZTF=5qH8iyB_}U(?9X%AW5|Dg$I@73o-a~~|FdpNMZf-1aeLjIMh%N&>(*8; znA~aLc50I8!f$SmPS3U1=aBj3FP^nbxukKzX~D(3tb8eK4$Vj3uy5ZltG{K>!OxOY zjsNf|)KvB8a2=n2e!{ljJ+Ha9t?$@3;oj{N<_v3gzu;h!{M4_&pe>}N#4MO{!mgL) zh@bVlic4AxpD9I6ST3NQRj`0P^i{x8Ax4Xfiv%?fO;{=#z2t>!(+6RHWp2qwybW^e znS~acDRdQdyffqC*XwM#aNtCDoYEtcz7s}z3q?$|HZ5pBrkvFBm*dxlQwr|CJ}ok^ zOuBTk=UG#bSKB$06}}x&4x9|;?303*n3%pwJZJSjBvY^XTa8eI#(!li?Ug$pq;v-A z%-)jW?YuWfBXAza*%N`?D{?r48C2eG@?kKMy=-cD>`$Ts7eCXK1x9NlS6&TLp0rgt zB3<>xwN96JBq^-s5L zF_!v0ZE=CQlb_GRW4RsOdDo|M#P*zOJrUdc#I_@@`HksCr5e{;-z_4~q^`JM#%=t; zs8Ky=`-bNFCh?Wc!fED7o$AXfmNsc0vv}NGcIHJ=uk$3<21R?dohjWmW|pZ_!_#)A zPLFT1Oq-d$Y-if+{9~5slf$p>OrKxRX7!?3>Z4D_VnyX&8B3>|>0~aO-)5Dy^8fN> zyRufVKW3G^cKfqk+3WYSS?6p#uC_a8^LaPx+^yHscIR%t-)5b+^ZByfdAr{qv(Df9 z{n_sP{r}l)3J$WX?} zdpg4RWj}Luu3YeZcDu(;QJqTpY)Jt*RcV+XKa7A{4;!5fG-~WUs?NV@Q zl35wg#4dE;|D%GAH09MCg|DWF3#PHOh_4jo?wc<3pEI>l;N~=LK_=Da7=Jt2kN30c zwkb{9vq91DPbdFe+b~?DAonsKTTW zDz4b%vTephMTyf&(FvRdkD90GN4fN}SSrex2f1~8Ij4}3bEd+9S()L@L?!1eUb)au zZf!k*D!FSo6wQ-7Y*#IbZ*f`Tx@(1ywcC*if`TfpFHTJKRbrVS^fJX!DsrNC)RMaS zUsANRCwT_(@hC2=nO$&6>2#P|i=B(f89~<~*QOVnl=p3k*K>8&?Gy-Bx-jXUg8-+G zOkB%M@uVcLo|8iVZU1kcqFt%xwuw_Lg=vA;#GVr-wn46KC7)+&-F)_7UFBvjrUPx& z&H{SMVs8BxF6Vz+66gNG(k1li<{-yclP#7{n$)narSzyzC!1c!yyunz%Iv)97iK93 zL{D0`U_zkAd|UesT9OKYs+-j!VKprM}sD=xRP_H zQy`(>m0(}ld&?~)H?7*4t}I-jz#(V&Dq!QZD=)u@7`epq1-EZ<>*px-`xn!u*Y9Sb9@-!om>Fhy;dsAaa>f?I-Xx4EoQ%+z+e)HP*0-;tFCXV1Fq>zcUtlc>7T z#P}HXN1_KV1Z@y}sU4>J==jYIEgSzQXwJH=^m_Bjbx$^)->EaB zOi@cLx--MJ1}ASSUDD@cq?#={tHdtJWVY5ceW~VLr=r!-C%$M@iA-FZoe>$$*2QAE zM<%$mz;rQhuBaW$N&Zfg7P+#A8gr$Y&y<#T3b0l#*`1MkqD5d)Y_CDN^7GB>x|Uf_ zcrT^4ca3d+<@M9FPniMT-3i-5@8l=iX7A+uk>buhvpI8bcHH+{*Y~rPZD_T9 zGbMHAjf~=38>jkiPtm`9^L$&`mZi42S>d;DT|ZW~ZR_6Lyz<+(@3WQfIBJ_$H2wCS z=WgY@uI|k%+kX4*`?m5uPi^z7uHU}5F!IITuY2?BzE`VSDlXsupVjWenVG+mpQu(G z65aQqiDk}1e)%6U`nI#gr=5RLq!n)rDLOTP|?{H zHsK93l^k9PcC)H@&D)StHVUUhq(HcSEo;-!;>7 zOY4eT{Fl5^=u%_om^XcO^4*y)L{8-`w=3IZZ#^&7efO2jS+S2QuP9{KbN9N=wA#_{ z<{;!>eedf#59jkDgSqyi_M`ivgvzw$30i+m%B>NUXJ-;D{fSG_!Z;pcVz-K#z?H#o3imn#3^ zx*tdDb0hoj|9S3S|Lf}hx^LU>|1Hh__WP-Q{jcly|9wAR|L^Pm`hVZ=|NqZ^fI;K{ zqsjp$lLO2y2UtQ5u%;YfJ2NBi0cW@bMAuTh*3-Kc)YYWIy@dJY_NN7@=S+9oPk$=&HFVrXzl;3&Sq+R4D)Qox{Q z(qZh=@!#kRN2v!x+YUK1mP3{*k|hQlH51sISFpF-aAt6DYIa~ZU~p-=z}|JyQ9_1G zFQzkFqa)X$!*mBnF#|)o0f$EmkEaZq)s-V1o{hl?9M&uic7F~x2^{I@I207<(zJnf zn#a-Z2u80Kjv$9NABF}W9gfTeE>S8Sfjc;2SQuhuIO48w1W9xxbZ}HPaB$x_lDdbl z@`RJL1xKz#hX_N1jS5HLl#bv9#~LTJmuMVm;%G2k!ICR+ydp~7@9g~j9Ivw^OPOZPfu}+4onuQ_4qN8{L$0if+i44aY4>&AnIc@myfJnlr zMh4e_n$ycpEQ0W3Wk-UoC#j8x8kToQ2jhg;{2v)Ok} z_ZS>+l3>V9@IA2OMB{=(T?@{fKH}f4(jmlpVYkESu87l{zjVym)4^iOk+|l9Oe**N z3GLjn9JyP3c}vf?BzPDVoUr*4$iTo{yTF@aLYwvlw%i>}2Yiln2ON2{CFs!;&P^&D z^F?@@u3R+W6{^+nZ+dZ|{Z7FD<`)-uY=f2NPCX{Wp_9vb;R?q*7KV3QT$>gIGB~hF z&+V{%dwGiuhkj^4%Zz}Oln!>$%dWDWW>YybQ@r+_xu781;Z&o3V+!vBosQm~%OX!X zty(!ES~voqc1T?1NRha}wzb2ym!l=+O1LPe$OLwu+zz#?9g()~eGV?CYq;-S;YeO{ zvU$Rh%8aZ26WUgt>4-H5OWE3C%FrH^5Z3g;F>``*i$Q3_(Xb^62W^&k2S-Q?%5X*~ zgmyU|Zc8|lb@p0GE@w1rgHbD=q)LbVjF~S|u6AgKmmUp2yx?lx?&~#QuP-cMX!B{W zeY&0X@AYQa8!e$XT2pVdmELG?z0ooC#{bTxH@ddo=stR*=jx5#r#Je(-soq&IYIR1 zoIpNa2PVhO+RYa>H(EqSOW&Nnb(`3($-A8PHWnz&IC}HR&iM}}S$83wU$k42v@ccew!S~+$0vd~Um!RDz;Z>?pOS1oG%#f}MuO-Gz>?{J;18pXRfTf}|B?L9}O|2H;$z4t)$-b2-U zk4*19cD?r`^xo6dd(TSmJ#W4Df_IP8jgIgNR==tD-t%I4^=Fum-vK%^& zr*IU^cjzDWTV z9QR{fnZh1)Ffz4hcrr*_Y}(-8@!>4%wg(p%urheCO$%t{{`O$X%Ln{oiH9Gwv=!Xv z+{bZ$$$i1J#3d0AyDZLk2egSTdw3~>J>H^&ciltTa}uAQK9tw%)qBA5!@&8V|+O|j9#~$fid!+m9k>0mQ`fQI4#2y=}JvK6X{NLE^ zu}Rot)3nECWsl9<9$QR%Y$>+1kt5owE&1`m$F|Rst)49?Y3x|^_OYW{ir~BH3$>rP zggtRhdm^}Qw_Dp2k7bEFrlu&Y+v9cYiO;pT%gP;>uReKiYIN>zirBh+foX|vjh}{u zJq=BJ8dml+yzObkw5O5FoDn$*b<+9eUNryz8igJbG6E6qCYq;;2;@AS;ww_o5`cV=5ho#^xVBJm6g z@hv-?7*;&!sd(OI@u=G&zOy1pM75*5?|Ih;C#R`l>Qg%^Bo0^Ua(K90Zwzp5wR0|E zYiRLv{@?DGzNz@WpDc%n9fuMd!%xrgcroD|#~WGCX$@^nFIp46b|h9@ z?Amao$06Kj&Wj1kX=OeMZ5QI3ez3J@Jp6IBW3C+MoMRn@svT3}JUa~7qD4HK1Kg5x zvYd50R((0T?MPr-!jU$QXS4V$^^U}sAL+2o;HZ=6VB43`&+wr6Ls}V2cE3kv%LCU{ zW*o&Qg6AzbxZ+t>>+TahOX96;J(-x&KJ+MWVlX- zu`@8VH99!v&3N^{amU-X1?PGLywAz)Jo+c2OvKMl7xjR9{aD5O6#>-eL> zdD1MS=|_uADO*I&t0i(BK0DGLZrf8)_pW0?aF@orCwd)M!#ZE&1vV{s*Bx=Lc|%@X z#>r*}$35RT-sJebJ;Grx`o8LS=FNF|%@z+kEZ#Pqc-ffneqGJmo`8qnpT#(N=6BS+ zDOfArk&)UlU9NMr*vFQ|g>4o&3ki8uD)9hQiJlZ)M~=cFA?T z=KJ(Px@b~H!L}El`euA;evtRSIpdX$sV@UNgAfZFFFS)n=;yA0E4uHu8;E!6ALmf? z%V#in)Z~%$)vU13Ad5lbbEklZ_1q52^v(~e@=FSA&b=s|v%<9~Q?7IF zeU2sDXPp)MHOH`O%Zy*AJHE6eR9%1YWySV6y&;bt+PF4VoT-%K+~A(gpzyKtM3n!`S6;+q8_1Y1h_1|2666XA{*9hJS%G zU!QL3$m{1j*Je=txir7yhx0Lcj$`*YPV{wbUEiw5;HR3-aW0+XV+-hlh)|RM~`AN1RS1o)~&dX1#XJ#0sUs{v-8U0WmuFaE92MdUL)mUt} z>kuy_Kh-5FAk%5FZmGbQs80)AR$r;JVr39*2$>_r-qgI~<)h_u3RM?f$@;E$Z%@_t zPj6p;*MD%JiT(foCnf>`&I}>kTvIx>E(q^PX5Y1_v*N*{&X(E@78t93xuFKfinX+x)|WL+!%)exF5xXUuHd+hn;_4)tp{{8v&{rr8o zjg|~?ADb>DcN?h7xisj6PpB6V)evrA`ZVRP1FzqeyDs-1vMg{BNebz6T{%@e&_;0Y zwRwKcD|S3m*nGf+tKRUGg>tXytqSEn8{4$b(1rl@NSAFcCg;4Zzx_x~kc+x8snmXI z*n|l>p3Db~ggP?et zwN3%zf-5U8CTlYYJa<{uV)$Y*!x_$o*|wUU0u|fd{G7C)WnYPgW9hS!rJkD?T3pOg zo4Z)pJ)_G?Yvs~eRa*6(v91&5FIQZ`HCLcALS^-`n@hAD7xSh_Ff0;qQE{BYr^4ab zEtbORxbVr%$?F(Cyn5~6awuxT(&>}72Thyp))MEayy%zij)z^=dOKSRC04uEDs7SQ ze=f8n&+*NykX-LSYf^N4`uVCS?{!I(x>yw>wncNh0aHSOODNOir(0PRn+tqqPO%0b z%2U`g?b@YC$J0tIVtcxHk9he>74ta!KhZt$%%tP2i5h|XD~cYybNC@-ver?kRQ%Z7 zKc7SlT>h_XS!Ax`X)~op0&*zN+UsjtTzi*In40i7xWuf{GTdjr52rW---RvR*XM3q za{F>7_)wnfSG*iM_c|%xVL7?iOvmAN1usMH&cEgl8oA$@ZAubbx2^jg-#&}SphJ1$ zeeY>lKA9R_XZdVq_CCw!bF2SZzF638XY~?(D9`J)yZ>3e*?8K{8g?kpKI`{;fB&=o zaFE;H=HpT6dYextwfEb6K5PBo=F3HId)u#9qw8(I-OS!^`~7b9f7>4qyY20MKAl}} z_v_{A{r`T(csx=6{qeND{r|UF7wYZ*{aozF!cgh(rTHI|#sNkvJr#xx@t!6Q;6r)5 zZZ|Q54&~8W%PX=+fz8-MO(J7Mv)mtrUW*e#MGYHT)NB;Ff>#_8-L#=quO{&+kHtho zffh-I00o}n6^CV+4m2?oF!48Q98q*)X=K^RCOCP8i@>4$PQMx@k;NKEHG?*Gh3!!i z+q~ka?xa)fy$_Tm4r?4UoV2kg%|==3@`_`on>P05)hNq6);Ml?X=7j69%Z@DD~{WK z+Sp(BM_GZ{a^1-@z8bA6kFR@unzl&8Z$cl-8SS`>I-MNeYP#HBif@EZdR|hQ?65P% z-{IvX-&;$(_FilWi2HmZ^xcyQEdM1ZMCvJ>nkREEWb2ocI;E4m&s}Yux-W^Y;fqsvooap%P3TZynN40w3!FM7O{)7nDfUwMUYCt$t2u%eH5KqG?Umu^ zPzg$Ck&#gDmFYOrRVLWzcD+~U>f12RpsUkT!eT7CQ(dkBRueDf zNHB>0%qVW!DJ&HK3O*fr6e|np7zaYmdYtJrbhT|R{C=4mRiR}GfxBG zh%HLuf-VcTNp@%oF3J=wyroj%X29^}&7|P>H+z@ZuJ`=MGkMFOiVG4abz(CYC3WtZ zrI4)m*|)%V!mfQwuCp%O>XK(AoU-1+!)j*Gir7sNllQQ@3Cu3@6!|#mzpDApe1;9h zt1qs&)_5RFX;N(Gns}$2o)g!V*3}rNusPj|6<;!G(%-GFMD4a^Ns)XGmzsr|QVy7Q7}mYjLZ%MZtN z|K51V;iH9H(z4C7PW(A6-9O#;L+q4Q>tDYzJvd>*Wp3e~=dOo19M?G#%PboYp#DzRv&2y1Cm=9!_lP3CP~9Dm0y=?|VEuelt+z`|<;$x5b@>JQ zB5&DSf7`E|J%v5#>Ha6W?mSaD?yu^*~+)gP=PIN0b8B|d)Wf^ zIt7ll1sr_}oYNL?&Qsu8wt#D$0{6BB-1`)GjxFH1)yHvm0q;EpzGn;g-YM{ZTfqM> zq2NG+0N+9ZriFrR|0n&IStw*Tk$*;ugpQ)frwihOM?`k9@VP3AEfQeyWci=6P+aJu zXx&1IC_yfkgA(%;MSB^f)-B`=Rg~VB$j!?rbMB##Y$MM_MY(4S<=!RsDjf7ap(xMx zh-GKLg4iNOIVB~vMM`=~%4Um{?UYp97OD6tsfI05jZ;!fTcnn!q+Yg2y-rD^ZIMRb zqfdV#{N}V7oH?Ex>9U>k=*x*pI=5KQJ#=C8a@oS$wu-S;>!^~xn0KJU(eoR9o4-EN zIG5xn@z_;E!B8)`=Z~<{f#5Qq;7-}cOBo&RII=iSZTaOZ;!>dOvf{qCLx_1-@B9X3 zW4*`4Epz=8l6^jiRJ*VQZv5X8py*=rtu=6NvY}tg<(n+l`}&_dy2QN|brP7C7#ia# zkm4wz;w^E8)y?Iu=Mk+(%1YNdQ?^c9R=@iT|FvUVE6C1f~}*m22kg@zjxZ zYq;$&VTp^=qOODCR*za9eNFaeh;ZbQaMX!#G?7^5+Ttg4#K5oRh^vHKOtN>GQtw?E z?>~&eW~n|GRQy#WolIohJeK+v+zw1jGVx`1nln>h>BuC3BRi(DgfE*Dw&IERf~CG& zVppZ6YG`$M-|%tldFpx~wf%~V|FI)0wt6^LNIBk7a(t7zGLdCKBme8FAm?gqqKuN3JT%oTjPCd|TXpVyUNsa?Y$4cPZ6`1uFSkYV8cqt(aPG z3bNc1ZMn5}Zi$+jlSsN_irU@CBX?ERm7L~f**){;QFr>I>@s7y_k}dyN%OoPJS(nL zm--YF`r=;flleXz@h%VCKE@vTbk?Q*P|Ih>`7R#wEtwjs4yiXiFVz*| zTGC9@PX4>vVdSLI#&oVVO{0BTZ+e+VN85^yK8?<4D>~BW z^qkAkxu(#2PowYIioSOm{ohvf|I?6CQ=Gt;Szz;DaiZMIf)>R|dYY5XR!+9loZ_}} zil64xu$5EeG^eGloR+6Ky=>+5I?WkvD`)g+&YZS#<~+?=%T~@>r#XAu%Gvug=Nwx( z=bYx;Yb)p8)13G0CC4JAfE&x>U6#0PNebApd|sYHWRIQmwgq? zdfSP^FThDl&U2Ngik5fAtF|O9dAG+7KFO9-S?mk5VnWq?Sf|~qfW02x$qvFEwKWodWi&s*Xcz&6- z?HX5xYp<)+E&qxqo(kFwBG;?^T8h@P6veSb?aJEoOmMxQOZ`Gt7n__Y9goQivS$2k z@#T_m`t!trCpk_?;^4X?0Za`ozBdlBO)}(?T%Re?=-_fgb!oC)cAiU1ZrRB*_m14< ze06fsn=B=k*|KdFDyzbaQv3xD-?`cnb%`Zf?%BD2lVbkq%w%0#a;0TS-5YNXHK!k{ zD_mKw`N_CQr1?aoUtT9z%+#<^&}F^k$wZ&zhCOM%G0&!NIg%E4+pA&O#T~BB6QAAq zG%-d`#_7k~-B-BU5|2cPX8T-u<9b2u(X6-|L3i$5ni%sg#>FG=G@r}r1ePh1|MTjc zS_=OiJ!q$wGWBiYgV&x{Q_p-mQq1R4V%2lQi{-Yi_VcvmE;-9xO4MJhn)u?J%c-88 zyACXFqS`xzTs~|%(m3nL3&EDVU2nWJ-n`99=>Dmh#>8;^)$)&1d+Ve08|>sixBAA< zO#W!5 O7l{dexMvK8l<40FwYgERse=B}&Ti;!$@#mcW-)rmt-qZj0Z2iA?`v1SJ z|Nl>)fqetYp*-vp1a%9V%r-D@PZ3_{qQJw#>sp|{E7ALoBHQOA@v;qFSq;5S1^Uwz zIr~>g&D+4W-awX7kUKqtOT0yP-v*a3M&8{^*`~87+}q$Hq{RQ0-giaJ$Zs z-|vOPiTRHfZWQc`w?F6-_H>4Hzv8jCtFJarljskVov+wdkX7mEDgRyJVBlq!13K4u zKM5|o8SZf8!ZbaG13qQi`#J*nFbTKNhYq* zCSLg_K0Cy`AJ6rky~Xi(iKBy)@B9b8hfCZ}n<$-d^q>5|e||}T@DUl2BVOXB9CD?8 z>ZXoY8iJ*_I(UEamM`J;Fm($38XRBB!NVY{V8T_fH9XqXTK}^wkAuC;7kwUv@N8k{ z`KIh{B{Dn?3=U0Z3WvB_O1=17m>3xRFK=acD`9kCis5JAl4%ZLRO>YO%Gmc>esMxrO1~yVrGe)xUgs_vX#B zYu7I>STO70q1~qDhPjy$4UN@VSt%=5F1B~DoIihNN=jT8ky+E#zow^b@}AUBTi1{1-Vg$dC^Jn{%OfU zDT#sMq3$tJ-tjTMA)$T~CU)=HyY0@MtH~*`yLWHhuyM7Mvz>o{mv?r0Vp42ELUi-R zi-AEthY#rPW#`V#>(;GkJbR|LuEIAzyQ-@6@#9Ks8?#fVjvCsS z&zLc}Z0C-kiqbP@j%BBZ<}6#{A7FC)_@Vmxs`QMc=twVH8>1sf_ODsHEH2vn@#A|= z4rbwD9`^R8p&@Pwaek5E9*|A=`}gk%33jPDa-{0O{^*WY$Zq_E#F)-be@`!$`2Joq z3k~O}u!j%t1P8e!B-)s{I!u}z5)$ar)Le7&WUh^$XKI>Vd4;Q&x2v7KrEQRJc!Wjb zqzRrLHbt8^dZZ@i=4IrsU6VX*N<>q`%a=8-@lnf{#~wPAHFM?^ODp5R;=G?fo2@*Z znp=DV{G4ph$&oT)kQp5^A<-Q&LWD`qphJPLaVi zHJ-&KuG6MZ^!Ih}_A!o(Hm_Y+Gjmp0c21h9lPzR-eZgeVZh31PZMWq3tZc_Scgu<< z7lvjAWwvFkT^qk@RlHk5%>Dc2Mpnj6E1O&sW0$X3*tJW`&);PBC2bDKUiu9S4mNWL zYsH)Z?WJeYc9?S_Ajzp)R5R<&iH(box0~5@$#`yB;@PI?zbfYBrlqH+8zgHTQ3CI! zFMf6BAgq4*isY>yaOeBCZo$s4N_kiaDBHla!Q?e)MqS-}$%8W|Kg z7@9e^J$c}6C({z|$)vR9p##G#lSkenQ62&9+;b}?gypPJf1KQ2Y93y+t5;=8FB|J3 z!CD^O@JY4CVmk%;Kc{&Q&sot7X^X=!PSu#J>1*S_qEfiS5@l1?-|xLJuY^p!)MB}<;KQ{o<>BO;kP6V7up`U(iEoP8sBkuNf4LWP!8t^nhiZ!9L4 z=M=GQjf>Oj{o?MoT)foLYPZfdCv|B}siP^TBFh{uwY{BqTgNkDo#&R1Jb`!JOLH&W z(Tn}xxVS$#QBm(+_R{q2mwIc<^%xqvyJy^E`ItK?ebG(bNsrVMIlkYRQ#@}{$ZUR< z_ini@yYk)Fm&xV4(%XFR#tQ}w?W-pjuFm`Ymc6#`ckHhB@2X?={@45S;mGqXWgkzd z+si&VW&Zxp=L_!of4$RkD%AI0PGA4`+nw_FdmWNJ|NZ^(WO}~c?F_Y=f4|;rfB*0I zhvWMH|9rWg|Nrlg=j;Ff`}6(%|Njg;3mDiv4lqf5XyEW!z$AX+0Gri^MuDCMEb1Ny zxuQNaNt{{0W`5!zU)6_Z1)hZ*?jDDPW_@VU@L9+ee&UeWt`DsSJqvl#Jq}CV`p{-^ zW+7ksiNkWgKD0aVEE4$N?r}s(>SKq8&my7eCyuCDee4YAStPRDfwwM0X#0fo1RMb6BdPRMj^nqJW&HUs^Kk#1qr5f&@r-IhGXJ{A7 zgoI=Yh4HzR`4ukJOplZ_Ss0|=ahvm5O}V$4VoEmO%cl-So~I2qbttSe_Am*dy{e z%*bCOaLGK5${@EYrvKhk9~dkCH}PC;!g;<)YKwZQRfeo?`i^-znIWGwZ*2_=+A!VW ziyBX@hnw%x3B6)Z7IF0^TX7o&O`Rg5r9O9}>HR5}ChWSRtedOpnRH5IW}i#V#ltUM za$ZfH&8QG;Rl8F1YPrCoO-EL+I%fGzshU(aZ^4@y8q0 zxXmd-iIbLiHqXr#FJC!f0n>qvDup^J(yQmrUZ-i$M-GE3dHfH zl*^Wht96|HvTj|}`nI(_M*USnwtLfmp(ESW53Y46$riqscVYV$-gO1--gh2Jecy4y zcU{rs^s7&;zVE!yyRKxp_uW@f-*??OyRK~e>AUZ$zVCj(yT0PM_q|WEzV9hv$rHZX zeec`84+a^sUMoS!c7O<_}sNB#3p_pjbqa=_GbS}se^vO2aO z8$2sN)IFXQ-?e3%a_df!rnQr9%qtMqmY>!cvi;|Df!9ZmnC|@05-lXQ`)0XfqSZZ* zl%=wR;v%jsL z`1j_s>RB%HtKtg1Z)ojlnRos|lb+hbpE7zgE2bFsUpwLKnlq!XAw*UA-pQr1RcS3b zR{E2dU2$3UWTngf)TMKpU#o@s%7o0`rL6mJuD|LZfw1Y`h7;zRrl@s`#vML#O{{L~ z#0fDIF8i+EsiL^e-N;ukmA~~+ePNmR1Y4oZ|1b7s%$*qJ&-A7-#aex0+=)fmpWZS~ zi&l8}?DUS*qP#gdw|AuN>&#doyQJ+$spg~3?Qy}EXU-_uv6=to>$#zy-gopY$^7@! zjIqsj>J8^d8!IMi*^?v>88ImKgyY$XOtN#;Mp0Iyp zKIz!a$J~~4{G#MiW-qB$G-*F^a`vRpy?6d7XqV?k$Di|>$vs;uUU}}zuyBjE3l$aN zepC1L&x`$5cIj2f`CZqxpZmJ5`tR$6cFw(rJhNu1y05b2OP~L#EBWH@yUbM&7aikz(~&%H=@q-LXR|*g zZ`l5e&D7;P|3pK_eUYZwyPv#NVYEz$by|P#y6aEoL$&|!@nq~;W2u+AZ25e7rp?QG z?0&sT@%aDsyNyre$&^2r)+;ZPj+t;fyV5GIbf4R!`E|EztIFz=PW`o4TJksg>2uFO zHPeGRjEf{#BI%t5(n#7+}6<(~C6ffj@o_}yleyCzS=R-MN z3xWSvYiEg@oDDJ!ZIrX#AtasFtbMV#Xk)Qdx{zswK*)+>{*A4CjZw+v}9lxp2EzKmSO3%LMF(=+1Nuc@VH&!41o=wYnf67YAo6tBs!WToJ4liHdl1i z1lr0lGhA>N>iTaXaJ{)>(h7-(i$$hdbk3O3IcrDfoEx3KZ=Y8O~oZK%;FAJQR{*r)Zdw{B6d)Wd$hh5ePS{ozZ()=cZO7PJ4d zLR>y$f=9~)Gr>ODR88Tfa{rzSip&&9J0U2UDe#?RqTiAJ<;(0{H72FHOfqxUvs^0S zs!?>OW0K*LFxi)a$F>IBQi=8CIRwl0}sEHXtUP)ttMyjr8SiTIP96=Qey$DO6y8Zf$E=9Pb{WqvP_Us>29i=(J^yI*UlL|C(G3k$wC^4ga z;=H#X=LQJQOPW;M6PC%eagJPLOVA-XmYV_*t#w+4^GEgxToVR(*td|tky(MDpC15X=Yc+9-$Walc83G!+1l+lryc!o6tP--75?0p~c0DoG zi?NxxaNdJ&OMX6HXmD_$lk!~VhkOHqs@B6j-fYh2pR%?z#tvOb;=ESTur?hMfyM!{77M{N4sV}v5p~R{yvzjhf zt(|RA&9`y(`Vg7@E7wl@BC}Ck^#8TxwQB3irlb}xTq>(LUot4@&5nNmWqv$~$p(wo z#a>y{@k=OUnc($sVGc9Zo2%AOKCzZf+I5xGR4G;QS3y~e83j{kZAf%qBH}$uxO$`1 z?v2tROZ^z9C7;-MvsLcesRGaEqUze4razh19koKoaH(A5x|W5TUOZh_@;`B@$?VNm zyEoh1-fZ`KbCcvu2kR{^(OcZAw|LCn;i5>ePuE&BZrHFgH z@ArO&7;z`*11vEI*lG@N%sIfd=K#;01AKoD2*?~1TC;h|Z+Fo>u_dP+Kd?IATP-a8 zCrGg}uKKi_vWyqE^}(PWd%YGODmi$F&2by&v~?_k1a`5+ zlgv9jCkEbKDWn-)H&eVNNOAM|Z9?}>3QO`ZNKcb4k4ji5wSA7akbIb?o{eZAk8u1N zk;F60i>i|+3m&R5+;N>-@b&Uz0u#6Yv=(UEof_jN824?v!NcU_n)UZwj`JGM{uV7@ zvMkx}c$&wvW7#}?wg0)*D*gy;=sdwEc%t}VO5GaaH(CP4G4qu!2^IF7{2H}zR!lK} z;qhBX?1ER#7p^*_>e!f9Cd9U?M|+OIdLMxmJu2{vh zwi9!fCPh5W7G0;UW}Orp*|RD`M^kxXofX@8?rpGjT9@d_Jrbwy82q=9WY{Ih zxc5Yq$%XpD3;i39s~PT|wpD~HcG_R#-NI{ycl?g1zZfLYt0ucvM4mU;Nbr)vml={T zc1sx^IP12kdg2lWVa9Ngl@DSYy_ z(BacYkIN>xR$QF+N6_`Jpytza92bwOT+9pkD-!rt$X(Yr*@+=KQvAwlfxJ@!$#;dA zUsc_C(lR01(7i`EwN|J}H84lZG|g6pAz``*X)Rx^6wcZDG^yZ~F5lr(^3P+hv~DELC-CC#~_Z z-FTzH7PUu0~IZ~q_DulC-1 zbNAl6zxO`K-v4BK|4Z!sZ?*S-AHDnGn8?((-SU5&B6WrTpS9cjXYR?lZtQ*cr)Uah zRf~u9O3xKu$5>f)`Qrno#v780MJ#;I82=Fv$`h8bvynb0te7W$Q|iIjXM1{cgz|YA zKBYgboY?F6#-NM0u14^v-d+Xf^tnvhLLqmIe079J09oWCx6 z_Bq=V9I+?FA``vWJ*uz?iuiZD<@b{(o;LDkx3{_pZGF>T;wHZ4f6N(W!_$5s+NfUm zM)kPupBka7{{#*81=j|>3eweSigUhyPJ-1}kVp32`OEhOc`rG6PVt?1QQLBt>c_W- z)_MzO>@F7C{Y+1IhxL2S=Qr(AE-4+nJR!58e&W3&i66KXKOC(SV6s0O_i!>ty(q7~ z@LAK3e2tfrm9AWJzM}YJ<839O=(*xWlAm-gUKQMu=W8qUbKY?U{iT|9!Z-PjCI0sn zH}w-J?A;r4PsHlRHGadJW`&3L8y@|0?1sU@YYr6x=Jh65PYZkAKQ9vax!vxuWn+X| zqe#`;YhjxN0@e#Q{+*KFWZ{$}bg2F2t$F*l{k^sQnDEiLCp;aWtopk!d|}b_r$zhr zzG<`l9{BO-?pS}Tt+(>mPtbh&Z9%X9rnyOc2X8yHf0Gehu~=7`GcLw2c@)Zfg!|%y zv-fRZ=$)E8@h``J#m9#$|L%D7Ou_jno8hy0-+v_T6PjN0yxLZ%n(rUq=hHHAbFckB z``6>ku|L@#_Wxh0@pg63Sq4Uj1rCMGymBrx0vpeG)aRDI{U%mnSF*NxrRA{qS5XO?O1y(2S&m!EX7t_@@P68s`yk!!D<>#UHM zLCbvS+AY;!%yM1nTzzVdRp{%mb+LQvSf#_>L~Kefo+?^VrZIbFR$`osbojfNU8QgD z9i1JXFW0X8MXtwWO8!OfdR}?AIT0U|j`e6aq%=)paO=}iUS1;;qLt-?wD7x(r=ud zYu_#x`|Hb+Gb`hd&x`$C_U`W9`r{eQe=0sbJv-lhe%#-xZ*TAJZeZwPI0VCHu*aAXxv+2F`7-(ujzslH@`6Sw{m17}|ICmWpk?O6<6 z1l?6Ox(NHb7`lpvr)+c;k8d$_lT2T-(M>x4h@fUw*_EvM(?2o37Gc=t*)>(B-^IxD z^S%|HGp0TYe8oTeRp2Hs?e$N(PJU~cxl&SRKZ~)?qAe-?-iGI0f}Iptql}la3S4qz zZ+>)zap%G(E-NOtoXFukKlK{p1F<%Tg&ZQ~|GkVt6piJz)Vo{%_!tLyK1@zitTHfS z=RbNP=BRm;^{HpHIj9uueYLZ_xY6>sV8Q)bg(#tH~TH^ z2#;rH5^D%be-s*;Iz6{XQjX!o^GhvR3Z1tap9yZg?6*-itG{v2(i36LH9VX#3}@zQ zhA_CfX0X+06n#-}Vz2tXFxh|B^vK%pz2|QArI>m|t=0JH5i^;iZ>7k@EtV_hv@nRi zh-;KEJCWF;B6h-~rS0kVuA0uqLoBxY3u=sma&M6PF=0JD;yx zc&_u;O9~ZQw`M+XF_6oc(PH7IalduP&mEb|cQf5sFzLVZqI8Cy6y64v8M>M$Q=7{& zJ??~wG~HBO-=DN=$(FaZyK=YB^}e}mMc|~FD(h^8X6N+0E8~3BaxLz}bssi$8{v47 zPeNYJEc!Jc4)ZESDek|&Y|p1X5ptZLo3kn&+}bhwmB_+9qDD(gE|)6>6;9Y>*jYMl z!Zw?-n@?v+D>v@EyQl4Z=_O(14U7`8OYU_ZdbVJ`sNBmR6HWY1d~G~5)3)m6BJ++3DYsR9oUc-Lt_}Qp@s=z~UXQdSw^8<5`l6)g;`Erd{kwcS)AI zy2H(E+r{4emSmZy7VcKpF7}llNtXM%!`<%N#r}Gh6a`jG4=1rp6WU!;ltf=1JKnN@ zJGP*MU*wa=6`f0yrhoCv&`6Ser^nNvdb>d<~aGxq0B+}Y0c$1&z3CX{Sh#^wC(ep_g_>^TbccbGY4q*?{fx^`um`O!?j(p|yxzFk>v&zcp` zYIWsTu9M2{AF_c{cZDo7Gj-fjkQH+O#=$bnBb`Af@7cO;~65 zBq!1J^_z7!Cal*>S(DkidS9Ag_%62%Ts)0hP6ZL+`@UUWU(cG8uzu&&$y-7T155Iv$r|gbo*-(zY+|*u`=v)m2pY%vYK0DdL;bntvQrsp;G3`)VpL ztCEWJSECbMj0Joy<}K}ql&(6SbA0M@|K_Z1URpaP4&7*WFjFjF%duSa)6M2Rp~q&$ zo#d#u5OAH`a)}|s#98cXvO)B%If3(5yW5^`Hh@tdd2GoHp9Hxxb=9n+oQJF%3Vm%(1n zx=EW43ztIQUmE9QQGA>6xRlM6P3hGb@9X@{vaj3g0~^#J*VA_-B@e z|IQ=qO0OoX%zUmJ_|r44PC!A6#osl(z-I{ZW6W#93dXNzaMo-M!kc|LpX3s?K9 zOVjUtS?*r@Ds+F-xQK+mF}2E8YM9x4Bm1cXzc5?_X!j{!&Ys zd+7LkWA>(iMh}sn=iBSPEbR|u^uNEmMzZJY*8P7EbX`}N`oyl%ocZJ{`6oXf%CG;- zx~Q`~MgH&m_W!=w!vDX{V%){VdFJm+{repU%5m(aFFC;8a)2X+aj_tEK4(^E9KDl8#f5>9Nn1109M}dPon{O;={;+TIjDvk0j_SgW z(=M1z*x@*NhEdxFBb{K5?#0FvKNz*G*eZU8-{CcfY0LUx4uz&ItrpWfg`G@O1ng(F$Z8)f{yD9`z(uTv^I$MX$m))@uXa!B zI5Ih4YenYPi4JB?duB8)Fm=1bZyddP{_2_S8jdZQ9db4tldC(zu56sLz;*f$mo|ZI ziLW`Dl`Yx=%oq~3^)ol52fO}laQ0py9Vx=$JI8fqfm>t4vE~~`+b6h9-QaRqVtbLY zRilTwcut3K$##(?yBh_LrONO}$8feQi?tQFuRmekbz@adjzwF6^FnFP#?`wM=a_Fx zJpLy^N5F~0aL%FD8}1A@)-=^{w&-+L)pS(5aQ?4Y!_l?cqUXbbMho`dV2(a*nSSGG zjaMdIX!MwF;JI|diIxqnpB%fc6moPoTZboi*tf_`I>K+G!*xQKV{T4|yiA9MfY;m; z*7IdJPJVW35jf>1(sd}>wBjJgQfrGjF#;XTr&c<5w2E}DzGK#+V4AsjVLQjJ$OoQN zew=FL@LtoxxqOaikAYC|nvRksUf(P{7h88^`*5l+5#1xwHPwe>F$=eD^zKO+)-z^% z?%aK{Ys2oHSNNoF9oyu?VgJy(<;L#5f-~-t9VbgTPWe zx}19wa_(u$xo0Kkp0}KPG3DILCFfpkIrsX=xi?qNy?t`--IsIkWxAwT&VN)n&oy)J zryQM{r2Rjg{nuzUf19)B@ngLoOV0n=a{kBc^S`g0|H~qfCB@sE;Q#N-%E#LFjHVZu zm-2sfxxkuwfvxlcyYHe$%@;VAUf|k#f&1tMo~svlpI+emdV!zy;C7kL<%*<*# zAKx+VY1ngd$t8o9F1b_=V;kp2oB5lp&0duYr|(GVyx!xtdG@u|fGcXY9DcQ(x4#@|{c&}%3Rg*P zSi6Sz%EPW*8kY+GcErEwNU}NB_(8h!;&rQF4&5l9*D}{9X+$(XIHPfOo8ObG(?U4& zXRdbo%JILg*0rVJ>UVif zQ!WTW;Eam^Wb9_a+VG41#)%5nY*=QSSApQRnL zwhGM#H(P$huJSqER&ag&0r!5<&i{Km8QeIT&biNYNLYO0tejNG>D3&HSshAAK{}Dz z-$T6`Z`|ZcTe0ilopl0!e157sL?5=TYT0}FwouqZ(X@wRWe>&M9!gAmD7oyR)V4%1 zv3}`m4`rV{l>3(0x}i})?2!T==eOSvm6s)QhI0IMel&sWg4(*J-$Ob+wXs zBxly#d|;gpcrShQqxA-A$^Sy^|94GzWQ4Yte%WKIZI7*wJ+`?9+DmW$>Gq@r2bNk~ zTZZ?G=BecomOwB#tL#QiM$q}dNXos>K6lX z|KMxqeLC#(I+C_=X2)`rpS<={QEbPX%TooOCYtp>`MO~0g|x{Bu6O+iw{~@F;dq|q z$I*E78Qa5c1-m8ZFm_Lras6WDTouRhyS76lt0TKE>*$Ku%iQS&;(<2vQfzTFox!RH%? zmtNld8@b;d-aX~x&SuVgIFU2p+I=UJ3MNo$KrcSHCUm40eufTXE#^jJ(MO&mJ#$R&XV( z(c?q2ALqJn?`Ll~;@{)4y{>acT}P2!N1Z4~!o>o1bB>a}59>4DNehLqXn0;B7FiV+ zRC)OM?_-yjN`9<6Y*ir>)pjFczQK$38y_dm`M5_wLHhcw#RVB1VjbP{GP>**c8J|R zvgd^Sd#;uHq8lF=pBC+$_>bezS`Jj!iD-HZJ?_o`@%#Aa;|;m~vMus$zp_dnm>o`WZ^ zB$SO|&y{;KHe~g$_|kIV)tY1XCBnZfjz}oG%DwR)N8o#o&2b%)3m*7g@4FXPn%4Nb zf5Pjq>0cw4e~sGyHTwA1nCo9-pMQ<}{xzQcTY~tvMD=e;=HEU9KWa5t`roEZNAhvn zc>%4qZy^)kWNt58c`K>;#iQ)!WlOa#4v{92O# zYgv8OkB+JZ^Q)Gv|Mh*xuleVHExKRz{l%{Z|EresSAUcEy;Q$?p?&oh|KD5Fe{T!# z-@?zZL!4pf{ObAg4SS#eW{_yuCEmcK(ZHk8q-?>Wbb{ev|LMJ3?RNB#Qu7XRse@5fp`E{?^IT)DOg>*7LC>(0x5;w|u@d3P-K4?wGN2OyuQszZ(UVKzO zF+s_Fl1}C)l~Yr+!Z+ne8aXt`u=wz-uw1~x$jZpVq4D7Ib4~?j2ayMw2HmHZcuhCT zef352%8H=nL2I+VYF%3sWq3%&v7zlOgJ99SH$N|@w=pm`Nw7AQXy4gU^!(D=Z0KJ4 zUhZI~MqV@ZUjhoJi#;Z6c45=e(0Y(@|HLHq;B`4ajh>yEW$xbE+1J1f1AC#v#b2`yR!n%8l+n}6@n%___E`=nf8%sZ?Bnud2wlZ z@cO*JR%J~G*w@Thl-78bF}3!aW6_e13G;I|Z_a=J&-TxcPtUVkGXMXpo%iee=jHGJ z+cz+BStvACJuFx7`J=fazLD4JheC^>m&L<;jz`-cG>K&GP;8g2`k|OB7T1wjuQ01Z zsY`R!jzwNd&)gr?=|J|AmC0;EnNKGA zdReMY4ZS5M0A3Ey4_OYsj=`Jd9#cC51B1GTQfXnFnz~|1LG1VMAG0&U3=A|hG?g{9 zRi8b37$4(Xm>aFDr)F<&Qj`~6kQ14i9{T9fT~9BUsZ;wOKfbqY`N9t$UWJ7EX=*8F zqy+2hYs5r(JJ_28q_wqv?z|bFKE1KFHr3KrD=x{+ z&C4h(%GS|Ux3n^@t|_ajEiWj{);G{{aI|S|sXcOJe{Ww$e}CuAo0q$L+SaUH_Vw%g z`}c3ooH?blvw82{?QQLi8#bd{R>4l2c+ewAGeA z)CH~U*H-cJwAIp9j*W}ZF;LpRV^ef=XiRK)$qdbm4vp~o8f!OYOD_JReoy1H7fTsgO5<)VX!c5mLimSGf-7y=yFmcw6knB%c=(a~-RW5{y& zeg$Xna`=;zHG<*G;ZM!+gfEBRy!`xphh{EWFZk7RD9hm^HfP;EwRQFN^$CZ&WWBeo zLAqM50C_q5>Fw+9?{8q{mh;)M;o;#9VQs{6c%Pk{o}QjzoPF=i&dtxyFL3Ub^WC-O z<>eK@tK-h@+WPwXhUC-pd?8oMy}oyL_xAVq4>WVj`|a8B@$ret+VSW1?EL)v!ea0F zetUO)eSKqd_Wg5vcYlBX;BfbUdH;QTetv#&d3F5xeS3d@|M2+qeEor@hWxZaz-Kzm z^?LmQHtjbXj)-Ny*?2;2^_xv+%wE6Qe8Elo?UpNH*>AVrNL&4O+nuu4Z?`{a(|)(( z$+YZuv*I62eYf+?w%6}=e>kT7e$SU{+3)xMc((fezCYhyzu(WmuJhpli+Ik5gB zJ{;mPfAit6fV8BACF3;ulaaPru@yv;|lFMpH8Su&-rvxWBHm-r*yWz`E=Ug zxX$M@Cf9R5pS5_t=JPq5?{7YzcVO53a=}GB_sc~O^|fCv`Ix``ayh_V_v@9A@Z7Ig zBhuG?y%tmc_UrY8cHM6`Ql{sc&CQv!_S>zT?Qg%`E;z3H{Z7gC-0ycQp0E9Wujc#z zx8LtKu=aVVnc|V`dNMHB!*_`rsKc6pX*ZcKi z$@IKmFIOyI_v_V~?eBiQ-f&#+_nR%(^M1eG@qFFycYD6S`~Cg^yZ)aKN5u30d_1AP z{?Df~u;uVyu7v0R{dxns9RBb32krX*K+EC({d}=}{l8y<>Ju1z-*b!D|AsDyKR;Xe z7ic+r?ksuGa`;6K3+b{Pex8tmh_K30%_zgn&^@$S4nO0}5~Stu$M3ice4qG9G00@8 z#`MWYLw5y5u-Bv}MrnFKys&B74x7um#V1c&y`7{X`QmADlIEGDqUY0(z2P&OeDX}1 z)#sTPdX||i_dJ^w^?BBfGt11jpFEpa^?CLKp5+$DJeV+H@%yPT$C;y+X`}KJ~18;_KD5qf4sr;GTma1+dTnx=}EepjPHC%WX zwRX+8w9rs-nS=SMi%ywa7Ax?sjC`SRY0|7OOVs~pcs=b5IKQQ2sX^~bpY*O})6I@9 zGda7`ul&^IdB46aci>$W(C&3*k<`}}9=@xBrk}d9%&6MKlfAT!Zl2)!x^dc7&NSoGH_ug>SkBwyf}7n-zZg*0o*Vwr=QMo0IN+`_}(k-?r^IyEd=<^zD1UzHL8%x*UG`={wJ+ zrEo_VtV3Q7uRE#jE$VXk7ryJOuAjd5ZP)j`A9~l(=*uKhCbN`+oZVzhB?? zGw^L_VE1{zB>m$6hu?-K@iPzDtY>5{tlf}*SK%R7w8gBp6?uxQxI4KgZ`&jnmfpg@ zrd?q6k0Tm>8@s~KJQCaeQ(^Ap7%H>-R6Gf`KouD=Rf3mVaZ)}AxCe^!u;+G zC+#SPcDFB!f1Y{are1YvqTH7yif3OiR#-8+crbCOJ$T6&GmC-0f`O4kfRRs!fr;h8 zmR#lsFGW2TFzmS3$kdncis8sj24)Ke7MXxoJUR~7Qro?;M+N={%Gf5FHd;=m|# zfq`*4+c!p;h6X;Hg&fibOq(*L8CYg4U~tedogI7Ob^PpIj8YM%j1mHkh3BW8wbD4i z?REBjPW3J3Pt&&VJ-sSt;)a=QtP>7!1RQu@#?5epxuNtx^4;fRe;BT_K5!IR^dPg| zJmJx5xg8O21BA?~XK{(FUU87Kz?Z2#Tl$Ge`C1u)q@ud|15B(d8csL!7EhcWCd6=n z`E2Ih4?Hmo7>quAXRNvxX4=uh!jfpr7Ife}r-%cib-dMyTEAPCJS~FLH8|F`FJRz4 zpulFn!htboLg}*IW$Y&M4g6R73KgF$c)YL9;{0~GXp0VqH%sR^icV=@5nN&YzW>~o z`Q~dYY>f9^npXE`jc#v+tNFk4GumnvtHwv43g35OdcE=U{gROOyDFspp3CgbBG1qU zX}|yY@kvcx@%#6WwssbG?_PiR?uDk7iiW20qepkOb<`XjtqqNIr%vtv@Zpt~w%XUP z@9*8av3c{_>guwh;v6@3M*{=xMT_Tb-MW6`rZp)kaR~|0F|pxE$+3_mSFT)cGo%EtZs z4jsID`_A2a_a8ib^!UlsXV14^pLTQhi+AroeEjtJ%hzw;f2?~o_06oG{~4IMWIRCI zIholtVpa$+?yoy6;00^H#-*Gnkab~{g127-3qw3K88`H6CPUk=Pr~>XY%xCIKEVRk zer*y^iQ19S=)@*%Wm3T@xbo_1Q2TY3e7`mb8%bPpk2J9b!IOe^n+!|+B?f^Al_3h@(*<$b# z)PT(k)>M48(bVw!@x7q-t9H}-6@RLJf!eR-+dpf6`jAFD%7b?RtDbK}dGkGF1JKYR969X)j;8?(fuSpNX8 zy5q;2nrqzL9oMg485rbKbL2>Te{Xn1U|6L2@#BY9tcbOuGDJJ$Z7UxuxNgCspAMwTY7^SXdbu8S5rbo3d?tO8KsxDQUL3c^Uim z?YMR8vYCa3M`|MEu5{Z#AG;9$lI>e_moN3n$!t1z?&ZsxghZQ$)2DJ*tvGNXBc`j} zH9q>!pVpSkmw*0j4k#|j$xSzNb#M!DK6x^?zQJqJ;^?&W#PjF#4a^KSZBCjzB_um1 zEp_(Hn>R}=JzbhsG&%U#I5_FvyI0mfAt=8;FMH|Yre>dzP_uXM>LR0pfB$ZI_^{&W zvFxH^mn&C_iZ*SmSy&UC7LeVMSySUVZ(iiLZ%v;*HH1`GxVY)nEvl{DyT>QiGd9-B z)X8?{tT1mM@N9TS82FyL!gFIkp~_yZ5A5&aSYrHNSrSQeK{uwT-rGV(jE&+8x`p ziY682=V#5op@Z7Tp5mC)a;RNE*-J#iweM(0kVnOg6M+is3JQ%SFFZCqactvLOuLg| zq;zVUoO4%;=j1dQq42CjF)Ok6u~qpw8W^@Ji!w&AifnXHPvm42?pUShnAFA~63W?D zF@a@a$SQ&TZK}VfJ-e|f{qnXLMFr>3ot)RVUG+xpV;?D%XWsGZu&cOW#Ag@Fip9J$ z7ju6S@>4j_czdOwb^WsLsPv32lXyRUGTA|RY#l(4_Md}pC!j{hym&5wlWh$YZF)6Gp zHC=1n19+L97zjv2HnvVs4N6UI5@n55U|{D-VRi3gUFs1am75moC?gf6a6phvRPlhC zu%*DW1rZ?{3{%6BGzDfvo-GxanK)1L>B7*Y(p1ON4^yYIPLxr3?vS_fi;~ag zx-uE0E@g`Gx}YSI@W0fN$=Yv9=8QQ)OIjFWMKm=y;@e)naA@M26}m7G+Q-g`3i7>h zjM-^{!U2y+t_B%LZw`jz4rV474oDx>CbQ|l|VW;te^@?O7J)q4y0z90ifrSKSIL8ccDEW*|<8)R~Y=IS_{ z(&oNkyqc0*^PROwavxGh?#uRBmQZM@N>+vdf-2 zIOW(1B(T|DOm&=a;Q#H_4ii@>91tno7juEz)oDYF0`u0D_Z=!Z8azC2OKvH-+=py+y}NfM=ZS>*I5HSui!w zktK`AB`;oP;ksWAYj)dBkclZvJuI#CpitmBTj;!R-|m#Z|NDKPXDg#)P2q&M+nAR! zSTo$`b zqf7%IL*Q+7hBXg#83aDb>AqZM<*4O1d7jBq?cB^4c2eg~L@KZc^k(sG5%8a(I$7a# z%Sx||tjmp0wlw&pE@xozn!qVyqU1LIoF$4xafOb-*xNjx?V}Gn5WCu zHgyQ57`41`P+(wUG+~VEVsSXcmDKCZ^DD|c)tq}5@aMX*XYoh9jl!IOq>i-{eWSFVaG2de4giG_xl+05cS$zVI zEV`Grxx#l{(e%@ImX??q76-3k&av>c?RPzCxFI-4eRF4xBH)&M!P0x0r|!dMeJ5Va7xT9}9&Bu_dP#f4#f9RIq7x;|_^q-o8ezYfLSh z?mS>+7hKFSQ8W1f=elEpCqHg4yOVs2@5y|D9Sk2kL=!t*8vmbS-D%`#P#|WZ8*=o! zFUQ1Qokw=Rf1W?9Y8dZ(flVQ$d>^wUBez&=guKoyRxeftP9KIQlLreJ?F1MEACxxe zEqTC~v}UH3_60`n2nIdF13j!l1uc>R2i8nsZHQ!PP@A#fot*cF26mNe=j*j*U1Tcw zvPfAs(<@r)@+`5nQ*0M4ju-#(skv$FPfzPJa7`( zlDMvED%X|STXBy2(zXo>}&3r^F+q}=W%PMw#nj(PanH| zn)#NyflVfg#bU)&mj=C(MZqolP8uHaN(-2OJh(I0N}S_Ns$X#nc+0tUa9%;1@C!$e z)u|V_?G|WEdhw9uyPF5|l4a7nZp*%R>~s`jIDfxmh3EU4{FC>Y^MyF(ER^Ye|LxJy z36(pm|9xJ-Uz;O0e+uu9lU1dvdtZc~|8;HmzjdqhxmeaYurW?x_{QY$=XLq{-}ip+ z%h@RJC9! zk!5V*TG-O_u-S4))1AXDIvlOuO07IAB*H9OEoQVvbqJIvimh5I!RO3k79n63!Ng#| zXk5{x=g}muA;FZ`qI;rESAryI{ zRo2m+=|5w;^p3WU86D1yog4={>>qaUH+C`|?3h*|Fz1KB{0M=ojKT|V=mb@C-C5Wb z&LJ9R(Uhan)aW4~Gef`Aur1Z2TmFZ9%7XT}8SQx|8gDDMZ}`z|!_g!1qw)H}cE$xg z=^xuS|7f}BA+RH{L!OCoN`z3iN2_k4^zo_E`z$)IMTit1?J{`St0LId6VZ3)hM-Vr zSJ#cc^vPYHG~}M$=<@y8^|hk&YeaWnY4@yY-OLZW>n#M1{^(}b?3wM_<6zMq+aYj{ zLwcV?@c9gp85ZGxO+|0c==)UB@3?isq#OQj2m3B}NXS(RsCWv$*O+vwbkhBYlYVrF z{PJkxx0u{KW5W9X8z)*vw12IbAlul@B-!aQsr#%2gG`frzq0_}CPsH7#Wsr$zLSmm zNeXE%`h{lpT1EFfzfRi^k| z6;pl+PG^&B^ja}(=Z>jNjw&1<6$Bqmd1A(3!qk;jz{F-WvGBx<`jb6%^zI zB)OY6luI}nxQ!TMcQz)>jL_K8Z+)_LC#vc<-;^?YU1 zMak|Pl9O8sdk#m={ld|+>;H_&eLFkLI_4ag6x<=vIn$D%r%5#NU=K5cW?E1-Q=-&6 z7KYYE&CMBFWlidwmJFvmriywBnFcU!O*c@V5G(kApE*&B;X(n!sWcWrHPh{l>l*A6 z0@>$QFuXa;%3P>Avr>EZB~3QV`EphQ=|Qufb28*M_12$gj8S4`_%Lr}hz^s2K;**t zqMsHD-qNaNXZWJYApU{%tViP`3x@wJ3>LE%Gb=KjXzH=}!78F4Al|@SFTki{vc$D& zNnys~;=<-XEgI7}cOtajzn5mJqbca?a zQwOu-BDwTM3Nnu~#l znIT@-jNOPK>Vce51BcWD#<&F`+c?EUoQ)o@F!4ETq`G6Z++#hRs^#xLGa6bkC<`zy zPFXGa*yjM3nZV)fOGZXw$^rofv3wI4co#4;39vW3@-^GBB-VHxC--WHim12=o+$y0 zGuuq~y%`0qH;Pto+}dTBB-Hoe)CN=LP4NdbL>nwGU8PI!%=aJ#znMh1tCV%aMl zc5JlKHmjA|Y-hY)W3kaUErFOK&Z}Gu*JrK0{c5Ak&s9-3R?NS(b<(b_=AA1Oq-UR) z(K7GX)@12b_bulxStYV8YVx(2b5t{@zTsTEu4~rh&h0XWt2;AViX5j@JyxB+xSQFa zM>b;3h7-*l$<4bCTMK4(^l7e@J*aBQsJJ*-RdeGG*&91<21}K_X34)S%CeAsZ!=pP zht2ZIRs~0583cA@R|NC#+{#eE!gPV5_O_hZv~;$QjTaRsWGC-Zm|@v_I4J*zS$M;e zA87*BODF7PoOLTwKp=oI#!_G@D}%>nHK~9-f(3gRxg-o;Td(-voqwr2l__xVo~f;8 ztS7KE?v<5bIyQTIk5~6qiwP<(7CwkxdU>JEYVNITt_DqC9lJe>O8po*MT!L1xilOlUca!>dS+|8|Nwg zS;PEcd$t6_`@`y`)_r@pC;4Ztkyvv`-XrMu;WeU?J6WxE`b8O73tM(BZC41%oW|1mv`wm>G_Wm>g}DI%1(J;47Ckke7QVzNBX{?$IGe=#x4{ zRWf5$#X9Q?3oU1DEMC*CIn$hBLUixt69Rv8h4-4YM4w;{iQ(_{oSEtIT)Y2ewt%4R zCDGUe)BopqPxR?ZHJQNw)^kD0`9&;SFL5*67KwhEbLvRX)|pagF8y4!&F0MdJAK=H zE(_(%iI={b)P35|u>I`I6Q4A^w_IV_D0XP=sw@02uh`GLa5Cr8Tn(QiDL!+5UgD9Q zYxBd0*WCB&ma}Vaoh{=QG%aA1J1D~x7_r6idPw&5z~x@Aa|Ci1v0sRpaqWjcd#VoS z*Xf5v7Cuio#NX-YXTT5}z#{r#ma9Oxo9i*|-i@+9{F}|$vNJfD?=Jk&cClp7Mb^Z` zL>>lqXX%xDZ>`-sEx~Z&dC`EGmA7MTdk>vhB0Tf9@rhf;2`9Z)T)33j>*WUFt`yBcEy0^hEf+O=)f|CnuVv4_szKL7X3smH!^RXOiH^xYD%Ry;~}<);~e(xv>e zqMgjUuBYU#nz44?u|MlithuIhqETaMP{hQ&j9ODf?_+~K7P#cu%rvWZAdi zDvJ@%^>*&7f*jE^Eu-JejOw)&SoH5~PTj+sZ^h@?H81%0urpSmW+Jzi&!c|dkbSCx z@)a+2^O|mdVVM@dSoDEiF2L0GxZTPrj}5G!{BsF;#mt`VadGYo^{eIrX@a-Q{yb+j zG_7D`$Z(N9`|pj4?$aqhVwN6do_X`_jXHsteQo#cnlI>GP1-lfS?=z`lGmJp51%zZ zyw&@>#qZwj6YtBVKNS6a@mu#rn(ZN3&kt<#pSRAt+R1(Y<=uV;?YN$}Iel^+Ya|$w zJ$C&6yJ_dE?q947Pfs<?vDOn^s3?SvlGpqWLJFJ zcr4NDPWa|`fvSEX!eW9|JK~?_Hc1CC#u~6FGa4)vE!3WNK{fx_sek@1WegRZ3{{_^ z85P`Cs0++=JFYta1sfx4<_fXeKi4Dd`=afS>G(W7{cS_miC+p6CaG$KQHu~{O8{LC$(P~@(*Tnzu?V( zkw5$03(ko$D^jiQy_n_yvuNMPlRAg)X)lYBWHtVgGSiNsn(cSt+NVioeKy-Z$*xEh z)DwtgV2C!m)7bIebpFGnWAk>)XK$?+SWuljF@o(V^OxnmA^B>Sg>L)Ql7Gwm|BxGu+-y!)e-nZ1;6MAQVF!Q_6sp6U|;8ZGeKb#*etke-; zP;_Ky;9=k~5-3P%IOr>)WML>Fc%VUuNlj-8$Abn24k1=8gB=GICU-D#rm+Y(sCqRs zvlR$jQ0nsTVHduX^TS}#DF*9GuNp~XF7IBMOuio(23%Z>9Y*&m5;q)UZI)rMG30P^ zI5`oJhOvp`L!k4v z|2Yh%Tzv@>qgVIe(J^UIO=NPBlHsl4PzWl1)WD$2awq!H!NVPUlERM(FdlGfQa0A` z5ty)GsW-zy_vv);!9;{fhYL`O;-@Ak+4soRh$3>7;Itvuk%#_-_SVT;oz4jE=; zJes#w>60OoLaR!Ul6WKoBg4I-$s1REVVEJnpv`b$(&=iyTiK=yGUgOH7}WC=ov_G? z>NU0dpR00VflOxC^+tuuDCH#NQ~?76zt!S$>u znUD26=^jeBhKZ!GNOSaviiEQyz?xv`_mLecl*w8I>c zTs%o)OBuh+-4-9M*_&_Y%h)kJs_Lz28AHic(-n6=F332zAXELpDPPX{Q#6>xS1nCo zTdl;jJ*wzz>GfEid5beS87mHS24`Gli7lyfkX1Cg;IFef^SXw0aZx~ zrlK8}?dQClViB_azu$_33q;K_of`yHq;|bntU77tt=#2nBLn+vZe6rrwS4a`UWRSw zg0Fm(@hgvIT*S8Eb!IQ0gJnkgk(sfbVx=oH`yIt1S9!(n(z>i4T(@<7uzMy&m5__s0H&{SSMDzua)JT&aHfF^gf? zew$7A>eru9Eqw9gLEFhBk3-*G=5LZMKh@Q%^W(&;1{>I*$3GBu6B)08BtA0!3 zn;;2iscQm>P8%8>lL|N)IT($uH1kLltZ@0w z>k6OqU}D1IhSI0%^{gR1Vzmcc|J(@3i#YOV!v&-*=Nt_l8V@-gCmfKl+i*m!Z7F!s z$YhRVmis>Bx4NV#iSG1pGrKggza>RQ)zZ@|?9!y^M^e;GcY6AjU79?fB~`=K(kp1% zr76o@Qnf;NdWCJfGobj^WA6oJQDV+KWk!fUy){Yb*Eq1 zH36pT>NxRbrA^0M9x!??;Azn^Rw+<3WdD?z?!aml(4_Za?&VKzF6$h0tE|*a_)a{( zsd4zc#=l}a)}tA2rn>@9?77VHy}{Wf!GW>TY>Od(?~B<=&Vd?HQx=1^oO{poWw`Nx zC7pwr)%I5_*OM(~(-$-{_;4|3sx*q#GN?) zqHEuRRXPh-njJnhW5u;E%j|kR0{d_IGfXjE9o^gEtr`?I^V-#Q<*`qgSPnE8L@dZ? z>RI6KtiYhkz`)Ox;1nP|i>)PKHPin>i7rPO1LLfRXBE~ZaBWo!XlLhKz!I}SOrYq+ z48^aCo0$|2&i>PNu16qOxbLEN{NG*Xjz-&}`g?QI?WJ#BlyX_eAaRgqPFFZ+%XvnR zu8dX!qn1Sj;~L&I3_c7D3Ktj{co#6Rh-6Pt_`$%U8NkG2pxB`3@`Qyq<3RSVhPW?H z!QAYV7?n&OFzRo~R2I%S%-nKd3SU7egYOF`sh|L6#sWtrc>xD;qoxGb!)5DFrLHTE zgkDH4JID3Y?s#rbmvxB@xfA=WlZ2*Av{kJ=!1zI6qQ)1oCOK9HK`n;H>In=Cw^rLCCK2?`G}?cf}_%e3;&(dV<&{QuP`xmp5>)SnlZ43X z8Algi-RPol;jz5-%#(s1{oaZS=Ur#qIGf-0ndPfjgz%vVnNKhI`ywA*UpP(uMB>9n zh7%X2_a-8`eozmQCKKu>>T}JrMs@~eYfGk zLeBSf<%?ApU7vR~au=Im6N8FDUNrLq7F)4ij{hzTbSi&G-q3LLm~?p2`AJLG8ah{9 zPF&ud!+7D4LcIXPwjDYRRhysOzr3p90O!1i=0{)7XJ6&OYIH1b+IE|BemmUHB=f!N zIr6P#L)!uNHBs4BUJsc>PB5w{8MXZLU|H(oxnraEyAQ73R}|XUZgZ&-2~xLFH!@4_ zJm08S(ku{rkH@^@q$_i)waxLXdhXS?9`<|{JY=POyS9O0ipoSj5nCm9`E3kcdkdB` zFUagl+~#sXp<$IL3orWu24ykD2AP=J^)8*i?W_DDdNf*FY?oBvdMMOjS!g48s)OkX-+Kp#NzHqUcCXO# z+#vgTzj%vd7Sn<7-R4scY;2i1t<}-CnPbjwN6xO5Vm*xeMQV1qNUzW2WQt1WRBhlD zXIXe$nM+25L3Yia55Wg_DjCRi9MpYsNbgPe!<|zfd(OKe*vwyGI3=UO^S9`KgD;27 zN)DSZS;DI@E3Nsk)t1B7HmV#un2a2BZN40~XF1~2#gt{)@R$3Dv&#_|oh9lW%(@!P zt}RDArX2BHa>Q%P5$_{Me6AeveR9O_%MpK;qX8mE167U&nH&vvIT{jjG&JRCSjo}w zmZK3WqnLwdE6D(?+nM1Hyw?QJQkCAEVAX8 z_9pe3LsO&PD9>+PzIej&y3ekiGmh=7ez`N$4+^;^Y5CUZK6=I zMAWY9Se1^-p4~jzKF4}2G#Edy&5Br2$)#}3!m2ohr?7=*8k2iU&4RKTo|+}@S370e zxAgokS#n~^#^XIH${i{0ekV)~U6b8Qwb&04j*Nh`%=?#>O|i}oCw`$}{A3dRMG+!ir4Y_)P*nxwV7 zY1JLYu9d&ECP_DJk2=ZlK}*DO=29!Jo{pxCNlNuUw?%JZJXq9`C0GoF*%pg%>dEoaQ*O zME%s1lk+rA{bZD7sG2@2WC4?s$~+a{(=&8VeR4d#ao)L}+5J=2t<_v3>b<6Jvu?8h z?}$!GT#M;FM9M`4hZt7UO@76SKhBa0W zTRJv0cqoWWKcLfjL+4jyW5)r0RS~}nQXChP_!t^At{iEa`Gx=3B#t{pXWreJ_WsGN z`&-UG-Qd@G;@m6=2Jagk9R`d7Jsb>EI~czz?0k9VT;SQWf26PFoV{$h_|lRKr!Cfh z@iO?9)!>qN_GD(jb(2QM73*G~(vw-d;gYcar$Zgwq58a~`adS=|C;6S=aPQ&3;jz> z3=F~sOplvpB^W$QF<7ZNjUj@8A%TG-d);%R4)GIxvKJae7}nZr^e|Se=jd4fbJhBe zgdoO(APv?A`x6FIPdD&+_=}wl_$KA{zuq#CJ2>$Fic8v413N1&OPswl?Zzd&-bKicqT+osq5b3?9vMH>}IJ%OUQ- zd@#poLqX?cp7}=%LO)4tPM&;CNt!>KwIOpVM|tRhG*j`6UXC><7<&@(ID) z=*#wq(;dk>Hl91gP|Uei(sAX)(w^iuTc&8-v|ZV`lDB)Vt=s%wj_b{OHJ;p(9vrK9 zZ_Iw{cEE!t{ipmM4&Q49H`>=;=wOv)UmDT#hTC73A@Z_ckSs&q?X7Xl3B_yGCI(7F12Nquw#;Nl-Lfg zb6;aR1Qzxh#Pld^|CkZAFqCKC*KP6M+)2W>58kz2bRp*Q(Wd|BTb&pLt}rJw-L*c( z&|&>B*QYs$ms2!oXYFxz)wvfn!xq}8Y~OnCs6<11P#k}0-1AtT-Dk}?3pj)R?r4zS z@o9#1(N-hI0EaC<^N4s` zfvD??br=j1Hg`^F>)!h&HT1^Y?tbQm3DP?jaW^b67E4IIzmFk0`{6XUyw$sAi;3Q7 zR56&&aHBz*l|dxzVUh01rqnAtYtOZbM!2@daqPV($H&cC#?ZWE-o_Vk+iXuY7Ie;G zKK=I6t_9LoUyh1@{rceB+HM)m&L62a_eF19@mttJqG8qU$xTOZ?&W%*bGZM%jKgD- zbBwwc2@6|IxC0)Wq$RVj>s-c|^fb0djqQf&#RNXF82dC%-R8#@agQY#nYA7;r3y0e z9^lw#^TcJIn48?~gAz%~^X7Vm-SClHu=8r7+_#7ReA_lHovM@;*FAL|!@YY}2-dkAY`PktfeZ-EdtK(}P~U)g!`h4{H@BI2|JLhUxxe3<*yD10x54w-xzPdZ z0$6jrH^)cso3E(YIW5Cx z^3;z1w@)|TxxIHwC?~@gLGcNR3vz82&Yi5fJGQs+L65^e#T(C#DA>lzG+y34ok8Qp zgu0g-PP~|Gc7lsx-Ik1#TnfiMuZ2{JC08DMSfv)7ke6Pr=liDkQ0LkkUA{Mz`2uU@ zqF%1%}^McgMH=|nXmwVwXVJuIVsXn zZ!Yu+soZia=G1hY^1r9z088Wqwu6H6Z%VYPb;a5;@LX|VoWb~i2`Aql2gN*jCDThr z%LEu2M0g(x+_Mw7pZ374P=x!Sz#FrzsdD?c*37t@$0KCpuv@y}UZ2B*vIB4H-kUKt zyx*7S+1bIb$oJTxZ`OtP0x#dYh>Ei1-s3lw^$An<=)H2e?73XeEUB;$oNJ>QcEsPz zThWqvuB!3TM-G{}KOLW6SkqG(zd_H5??6kgr_-~t&O@IXXF7Otcj>+|>p0xmF(ERt znZYSr@KDDGiH}v_2H>hrmth9UE|OyhZ` zaoG4whsl*gF9j8zF)|oRxLK)l{S*Acvgu?`!eM!}l0_LM(+o zuTjsx#)&#p zf6M#+EuZ~+!SLL)VN3u3rmE@1#}r_b_TOi*_=|UTADf zJ2uU{qx4DY)GwbK>VKNb^Dm0`l$gZK#*y3^aH46t2g|LW%pWTk?B_8(QU1`WabH4J zJm+skmZck)^SCru&a7A1+&@>bqv5*HvieJnk~11bBlhz?&lFwc(d_bjTMl!_v#BDJ zl9sm5WjtZd{o?2W@v7$H_{HvD)L#AGB75C_cF)T6h4o$zr{8~Bb^rKb|C(6MOY8Z& zJJyDr(*G56RpnB9&xz?B(m#H)2mQTP*u?SUX2LIZBh!xmf(5pM4z;V|7w&cUyjCuI zaQUCfeG3>FZr?Fg^maXQJe}v^^62ZPf0vanew#SMzUEtS{xj_>u2#u8l;3>>WC3<4|$ z2@H;=>c4snIs^{1@v^GBsZ?Be(90hzI@KKwF7Pp&C#$y+siIU5Y2viCraxySkyIoO8;5^66&&|iNV8X+5YXnrS_DHm5 zyHB$=_YiQ<&OXm*-|V+#SHY3Mrg-)}7Rd(3f~F?T%q!p$eSUON28<9wS}&( zn{sr7n9dk5WZaU8{G@VcW%OUS&`QZ{cUdN>eJ8X(8Q+;(>UV*2Vrj#p9l6o#STrxq zW?-Mi*`>ytpm2GeyI|ARtUDSxz1=^VG`zXh-!`q-%2#fgz{ntSwenl-t(k^z_bMJN ze$KOFLBgRnLG`e@I~AS6%kCSqZwUM3+w{G4*ZTc&sloT=y2m?CV0FFeEBLZSEc|!r zk{Mwi&u*XDAiA<7)S1DIL!?fu?8{USizjXhovO1clo-4?F1U&uwp3u?&^YB0&&N=5 z;i4_W9mh~v6VVh$71pZ(jFLsHh23W(cW7aK`j-w(!cfMruwtaLiJ0Zrh{C z;91#XSDwvg*b}j0;#95#9mlLTZiel`o!8j8k|#MtI6iAT{WfIQr_3hN-I`vRGcO*^ zobArc!gzp_-Icw8k6}afh26q}Qm+aaCuF_q(X-V~-O?y&sl%XoA?@9^yeyuB1*w__ zm;RUD?9|d(`lwG^cNN3@SGw~}CwH&e6lA1*X`cjp<|6I4eU^?(j`NvKJSn@^YQ@^k zOdCqp1Y6xTo@p;V_syoWVkVhqk4}qtJLP&9+ktt`|0OjpZxVAUJtoY0R{f$*`QJ}2 zTcv)rdIXsB9$4<)VN&QW;F92Uv{l;gfdJEof)G8XD<7UdoX8yTxcAkvhzs0G92=V1 zGz%CH$UAWrbh7Dk1TgX#xG=DU25>kuGIN?JM9J{0Dmci=$|@cZ5KG-x`TW$shwt~# zWP8ZWp{c>hthOinTYia)f)9(ZHBaB#I$je4xB1qrAGBmdBOF?pd4BL7ct59F@4$zU z%#BNUIx-$K{uh@LC~5lUxMs!PZ<0b!tXLTotZz+x!K^Jbm2r2$s)V&m+<14iGo%Cv zd|Sg(^GJFA&wrqMXZ#qpp1%6Rt9{*-wRw$wJLCU-J8u7{KnE|^VINsrAAJ}zg-9Rv;E*_09{vOz}Rq4)Wrlg)K#-i!Cxim zbDP0b@de%N76DA6Q6Cu2rtmSm624cF6};!x0>|Qs1~Z<{VrbC0#=sD(;=v@iL+Ru~ z|Kj|Vc=w_Owj8G#>XR0n6<=&|bmCMW2KComWm`7O{!uKPpnYUvM9Q;?9}A2+y;BnB z$4NLdo|&Lv`adTAh1ZvT97po&zB-@3$Ti6%oK>slvG)C+^RAudX1YAJjYm$Y@THT) zsRE^?A&LJzwj7oVdta5jx$)bM=ga3te3&k&qw*o)=ETTrlj^=HM{rI3ak7bFLNm(~ zRpy#b$Nj1sl)s9cWMOe|bo#WppyTnrAptPkZFj)hGSD)HBESapE$L&8LjjJFFj1v-Ve9JK=(lSNN@s$F0xTanS^vWQ9iK)=lW z6O@-Ub&weAy3%H=ed(}L%om&PWn z7Mj}CG;M@Bg;W_B_JOXi%m8(oyPQrREDh@6KJaJ9jKJ&fC%{yyTJWM$^uY z+#JoXKhNLM+36J!Cr~S#@>upf*BNf3mwg+eo~XU=SjO#?AK?Fln`uGr#KnH{pST!0 zLZ67ZvmUFJc94hI8!S=dQomJh6FSNvC4p|sI5nL(7XPiV>e z=}dcWYVtM2gj~NE(q6ITVcg4|$yNe_9~h|@t`75r$zTlKn+ z3_t3!1bG_F(i^pSAO3qJ9Y2AcWe#U|XUYBla(@qGzuxm~+TviAgMmEa3@heO*&6S- zL+*{@kvD=t{~YCSvWA!5jVqlP|9!4})fBN4u|XA*G5bwt|M)3?_~W#etj zKbOkga8&p|k;8XFTv*KvZp zC%E<;;C5)_=4jwPBDX!)=PbhkX#p4BmLmyFD(+UU1|_Z|5ZkIYTb6J)7~Ot~)c zq`Ky+wpzT$C!tvrWBmMBe6IC4URvONE5Xs{VRg%6m!8EQ332!4-1PgR;&yK;!xfba zf)8CTB)MxS`(?3u&uw)HTHB1` z4W`ZFms5@xYsofJcKmQlKIy#4zL>lj;sIvvC!X@f^rdB9igHXzbAJ+?>aZ*&=$XjN zrO#$t3L{qozW__AUz%gX^2rU1q6Lm~8?J_Qs1=Keef|5?DJ;;L z$)VDZC5Nve=hNgGt+e94Be{BF2i3UrZl@v^I_1WjJ7_tShesFFU3%?mQX*J z{G^3FpO!Nma7>h2=Jn?P1+PU*CHNSmcqF+)8aS6IOnTQ6^-qoe@0nu<8`4f3ll%7Y z^2^jzjVVri$3-Wdeeq%fgNMIk%**W$FQ%UAx!2p6^JQ@=o3i7P#wVFnrPK37lN%gm`|Vk|S(-Fx;#NlJ!+)!>j4hePj$`p^1j`F$GY;z&wJCXk_)_) z=L$VHZF|t(HfPbnhB>v1J#M`GD$24lwK{(OXhV+NIdgX=~)+ah12ZSVz*UKR;)batFV-bVQtxwwL&aQO+y@0 zI-8jqY#lOQdcN2g6yGZJbVbpESz$gRY5!SQR%kmmtiJT)LB~6n-RBlmG_7cz*RiV1 zWwn}W&$ZY6YO@$-tP0z+I!xf{!l=YWvmy^JV&CGF6~?h_i`&X8ya$dw^^;N&KIXNu zH{+P18H3}Ex!iwVI_GG{m1#1#C{LAZSS5R8xk65nD}ypaBg38*#!9$BqF3Oq3dwa>EjIMO|<0nx?~`G3~0KMzv_PqmJ%3hTIsQ zx9cyxy{9#+PgL$=n|k6d>EmDLFk~!y^lw$#hbjME)^42lUnTk^W2h*5otd8Fl@sR$ zSwwyMZcKXn@J-HEE6+xycP;{Y>f7f3`gtJItVMjn69$QOo@_l9Q=BbzICiluezz&5 z>s`*#oS3VtSRS8!7rAV0`n#5oud=(uj(nKLamkP6!K;^hSGjz7lpP`E{?+fut+JNe zzg84Bu)a+pG=-gT*&o51$U<jnl(WKbUy*TATOhale?^(eXHhy>Z|F1-6 zr$~w)k!(-rEpU~nxw>uYN9Qdcvwd5$XB-IeFi^^H6F;pR&Fdi3bWr2rb7^50nfFH= zGWY~P3(E(8VA%X_>pDZn8yh#tzHzoV8p+4-cw-FW6%b$%p z)kV79>lyBR@Ox3^a1ve_Jzu9$Lg#yMM^M)rz^|2z$MT^;QIZ)Q)`ljL)l#^JE9Wr1_| zkpndi8MXck8lKrnZ?$LsA}7aEAlG7-Uc&cvOCrrF5zEXtvwljY>E7RKGxgBHTsLY*KI~02d+De=a|wGo^N$cR_C0-z_Emp z&xGNv(Er9Xi7mYbK8A8Sve7*8X|gPa|8DXb+8tPu^#6TkYio4QAGYR>+oncf<&Y#wF4;>SL-=;LOM zSHAc@|KcaklK0vy|F@aZ`%iu=Omi;l7?d9=o^RTC#MHgo#3T8<$8?j*MO(buGr}g6 zmsXpVJ>KGX-Mm(IdsX_^K;|t!rQCy~9m5Xj->v=J=gR2I(YWG^Bg+ei#-+yEYd62% z<2ZrGf$hk{836})K1eaz%SI^A)}G+Cu%yc?Cvb6;d;4w0j$#H?AvuW}(WP@7dJ?uo z$j38loOF8VupsO|oAR07DL>Y_C$M`bCkL=jn{s5wWQFjhJ`Dj|Kk%72vPf|5lsVEV zeq^nNsifOf{)CO3p&BtWudi+~VwkgI?HVoPDpNathluw-J_hcbTFu+F?$adU?#a~~ zJ-+Oi(!nqxJFGXFt53Wv{Eov^cZO;HM-~)o_a!gSC~)}f;VBTod-H|`gUG?f#ft=9 z1TL*$oc8WmcYQ_2{Oo8R2bB&6<_BEPUb~jwndr5`qiJJVf8maM?{=!pf4j83dl|Em zoBO)MPEy%5H(hz2zUBM}R*epgFL`h+5i0H1mT?%#eeus`Tcs1wRP_9DIPm_>09p< zXqk2Y><;Pnu9nI$n@668JFZyHIb{Cb?}&rYoCb*u#l|a)vIPz1vpJ44YXZRt4YAm@w5=VdMzw{M$kb<@w~ z@0D_vbMCR%&G#O$-KR`<}@A-SPjw@2USkwh3LoV(p%n?|VL-L%HLC z{9KP`&tE+^{vpW|6c+OD<@SBA_y4oYstdDOweIk~x3}{z+~4=^vjj_w;y^7rxme?D*eb$S9ed(kKbR<$S!6xqag8c zyP$g5o*9M7$NLrCr`gObN`<&-)D}4_K}IN?$4l`c znEjuXUL zw>~~%xAEua7iyLaf&5FFAIUI1IGn%9ndjVhmgn7ue+_<~{>S{^xpQk{n1BLvvzI^u zQy)`{Mhp9-7b_07sfk?J!o;tVap;mzjKD&6wGy7aL=(YP-!JH#2%2qFy5dT3d{l#XYXWOa+miA~GCTQvwXBu@;z zw$Ryq(d0{0-mxfL&syKB5#hXhu35|sqtq*r39Mf?U!Iaznh`zI?a#GC#g$fO;!B^% zYItO3R{bwuSR$F{)4!hFSy$R@WH4h-Ho zN#E}D*_*v+<6qX%7}v#K@vujOt;3P=uH2~~3bR?Y-aeV~J^IQ~&ZQnr)9j|)$z|YJ zW})1}D00>!d4}k%1`}z&fGUN#fnhV_n!GF$)0)jLI5eovS+`>W!xfK=Ej`QES@AR$ zY};Yd#rUW4&VqJ5DU~_S2Nu|MTiaT_-2R#8WPumEhV-i@BeB^z%Xys^_X)q?IJn?2 zuY1O)Q|V{Q7N{^+Jj`xp*&Y?xGyh(d!Z!8=w_Y`s^);68?cJC3`q**3-wLLF3cnQ6 zZ`a*TVo>-Vb9s&Mt^aq5I_FGtV2Dy+-<@>*zFtT9ea=OjIP;Zmh_>FbJ z`~Cb~vC2z)%cm;r*{H5jbC8t}!+h=CNk;bHN9mvs_^B;A~*|W2DL&uu>zu&2U<@_G8J%n>`vYOz1Ob5y*VvF@f{O$G(q} z9yNKI0ts9XnBpyFD+i% z*mQX=^F>8|=O2e%07FnU&uG!$CgKG_%%vf!nQ zW=%+!PwKJdGiS_6@>(A;q3&OC8|$TX6%(QVEQ}uPiN>w|zO0u{C`+VFnkw>A>}F(8 zQ_YnShpX3JA36s#?g?Qq+^e;}C-OqPWXsYLpY*6U1qQh(&*Dr4{J18rWDz&(R#2U^ z+96JXiQ$a{vnIn+d9F}q#uz7N-4|Ls2?C4?4k`ha8Ycu<3|i(q4P~hLx|)F@db_uf z3WptoBi9rLW*-KJO#+Hc3?&XMYHt*n)C%VFN?m9$)HqShsG$s7QR!q2B z?nVwRY&H*Ac{!f2Y!uBBPm;d9$kCBOL?VQ_grULW%G+%_@8;$+erObM3fdEULFXCQ zrJLv5#Dph)jhvu%p^cp*vG1&wh#<>^TUY;Y3!AzxMm#6g`}RE3?TqJH9ZIHtnalNo zf!%9?6Sv$2@BcziSOp^rn&tmABr-8D9c4LS_>sLqtwfPma|I*A4hMlhucmKZXR6td z9_`Cp8oqr`tQLcYbj+E$$vXrM^opih3ouDb9AsX&u2i@omN7@%!Q|h%d~2x()j<+F zYX54t>YhnpceYTn?0CzSDiHgH^T^T#=PGt$;my?fA4sEXxuS-y^R*}i>C z#aW}aoi-C>n1At08BPx6jmQ+{X1M&2H_`Ew^h8nNS^xKQOMgxEwiVDfXE>82$FW5C zZswB(&z+jtocFMAkc zB5)vW^0bTeq@ou#K7`MF?9t4!<7eX zZZah#$^=cg^CI>3IynY@%Wfz4qq+=5*53D-3z=Az7~VEIIPqI5`z~n^KiTM0xRZ&K z(PaPg)m#BJ3gY4?M4SuO*>Erj&a%~S-KZhJv18hUxgrhR7aANVI6J7Y^*bE$G>+!@ zR2{=Nf740((v6Kaj0~0+1XQ+}EmY??@S3HOrGZIvEu+VS!}I?)ryg}Xz`)?(sNmQB zi(yG#(CX~DuZ))exMN_K*HjXtAkY7Er^mbFj46NpbmUK*Ru=f&86Klxwm+(uN9jkS zfE+`z{_hi-N>^Isj=Z13-tbiRebI#1YIhkTwmaN;yOv2x#Y0b`Lu6WAelP#OJFM#u zTxOqCzCbwT1(Sk>Bg40*1?+czoS4IKXSqjtp#J_J$KTuB@MPJ}7cgyGfVh3Kd+fR6vF0zJ+;iJO@-k`L8U5~{q zdI#8<9`c{dwZGTQ_(*~8m;>Y9h7~)`GAeGkqIMzDuVEXrp}!#XCiF`Sady|pByQ^(7`0x#L4zLW=TVrQHyDWO0>$l?~`=d zSd-Y;o7h<%1lB!&!lL?=tCg8$0SBKGM_+H(9{-~Z4eV@6LRt@)R<*ynmg*wqY1PBW zEab{y;h<9SK}g{p`|@)!Z3XsT&Y|yI*ccuh^U-^A>}kZ04@IZc({Jz{VOrpl#oEen zU?al=-p2xVU)C|m=Q(h3+CAxdZ+5|%&54t>iSy)wbgoBys%Z`@E^u)sv9mC6M;9clsi9D7+Gh8|Lk2{PszWh`I+lX)cFzV`pW{xiqC7*vnyx?J4amf&#Dc|n*%*`=1Q z7b_IMH?y)l;5@~^Z7@l2j=~?O4NM-3`B@Tpbkx>fS+BUpfuSiuK`!AWTa%Kmkn%viWz$|lsaT5bW!2`u(@3>#MvP!Ju&s1SkJ{PX^;4Z@fRed96^PoRl zTp8XiEoNYN>a#9j(^)13PwsD8-1Au#InJ?9I`>tjmnXL%b{?yG=_Ga52kJj{J(wCz z&%9-JQPTLY$j4A{WXXk1#eGGNY%U_IPyI~ZFw8ihn4KLHcF92YQx0380#{+6*O4y_ z4Ws+v>WQByy%B)N(u9LQ0^8dy)>D#RQ&p$S5YJbv9HqvSg zVvx#Gu$Y{Dqey-81KrgdCDB~5{QZHe2NwH*u&jK39h@0KWZh%9qq@Vr_W*s;>2r`Pjyko(U` zeCikZ78V#(r!iY8*o7ppPjWC-ZwcTP4K#gX$f#iSbFIsdrH{Ho{3DzFtvB@QJ?Qm1&$FQ>fr1y4quE;KRoO&M8WD zlfT3WC`N@YPul9r%H+nH-vN_6=0falFcQ55^5sHLIam$j|9 zA4Ol@>bGCZ>97A9jV}soKI(WW3v3EyG@BCP=kIRcujaDslTMjJ**T`72g#0R?0Yty zjVWQ666%&&qBzZgp(;grZcDPSYKmi7%5Ni&r4N`EaK7P2b|3CxR4u(}G2l%gEQg~;U|8VisN0V+SY<{aY zwSaNKBL)*!&MwniWgCrpOky_WbL7{9QLO4 z!<#Mh`O_zcD@-ZB^rp0s@j=B&v#My${8)2|sbOj1-xYJV$DIsiSRu}^O^jjJv_uw% z)o)IQ23@b_Rf?D$p0oaX!hgX;=AshuYYI}=bUc`OMJBLn9bj3LFRdw7{+at~no{y) z(?;t+hJ*!Sp5I)xFC~?UD;?nA`}lgxG=ZjGb&vnqVTWTv6}Yyh3oG$$m>jo8!0X|Y zu+0JQmQCSQ-cb^GIdi=c*XAGvj;=WNL)yukSvQusU3kEt(I6S@eUm5s`jV?0o@ZSiYMJ9UyCGkeiD{37gPP_Yh6O&ng+`o*ruzBp=9*%< zrXu+Nmf+H2hm;D%fXyYWle;(fwzDp>Xxvevd#rW0K$D_VkLKG_$uF&fi~8d?Z^|<- z*Z-k7PqeW2ZJ&8k7q?O$Yf>loq0Wi^HnuYr93&a8?3l{3p!ebAPVb!x0y{aaB-lKh zcvv2!3bq*?^q6{bc}M?`Bw44)oK2GrXDU9~J~^{oA!=vOf6gTDPuJzxCM6y<*7a!S zl-1^C;%)tvGm~`z1y184~*$=Tb6ohjA%nH65dGBX4cO?JXOY%zIT$4o^?5-wV@R-KDvv@_r8;J%c zDdCpqm9>`7=AE53J+SuG zXJ9btjhv>i=Ut$a)FTh6qChE=qy6viRVvO1VEZz|BxF|i$_)!8PflQtY_h$q&}XHT zCKZtwzGg{~c>C7QC9~#8&v;#8o+`R%WjLz>>!VeskCuPGDaXBYo_oXM|J+P#xtlnj z&RVDb)@#E}&W}}#Ki*W>WHsmFMdc?9Pb4zdSMK8EPFhsFV3GbU#XC_7O;u}MwXYRN~KFNeq30tgG1huAI8HsZwE*!xm8sHHip? ztlQiTT3pXK1YbO5+n3zryR9j3Tcl)@Qg|6F*P-o|c@8bR)tbNXu`uwRJIegvaEl-l zlODsvIZInwz9nU`h^SBR_J6;9VfBuS<=uUS3a1*}eVe(W8M+sh1upC0H)otR=RvFa zbdz-qkt_{wtK8;2ZQ1o#V)xtYi#-qD*zxryRy=jv=e{C+%KI3d<19bI z4*j3nui*3`?&sTu%pnT@^mk`1NIK;3u4C1~_k8^=ReiN?W$oKO)k&9K`Tdy1fp_lH zy`tw2E&sBQU1`5^!v5vEME%XH^J4t3{5~x2e?(bnbEAb~ON>ItofAi;8c+V3BYo)5 zWvTkyInN9BH0nM0%fN7q{m=nUrh`+joaS~q%ieT$qUKT7q@ybX6&}PWJo$6qA?C>3 z-G5D7_bMy7ygu3RLWbc@3_Ih4{byU=svJ5ReoF3t%^BvhiJxT{zQrg=aV|P5w1xeV z_3hsZcVra9!WfihYv(wyYdF|@Ff%<_w|Bj-LW#&6@g2AI(ymS3y4(5z-;4&17zHMU zS#vZk+;;9!JfOe&KTi|0UP460-Rq69yRyyL&KzM9dccv^z$E6fTabynbOEEu0Va(D zN4r{CPt>~AHr$DHDERp{V|~cYnR~C-&%L}+*ZtE24wDC*_ZB?;wwRUSf!wqM%r*%u zT&~%S3QRH%%=;3~zG%I>eu~L97lw+=1N+1LmfQ_l_4n3oGr`Mz6+O8OUQ2K9x4n~D zvUwis-LtZHSFbeOJo)ZI=$t$ zdl+dnNqfhdiPef{_B~bHa>L>GyPa|OBp*GVANNFj*`t+rZ*8>QVBGig;=bx-e;--L z$HWS}ocb?<-RZNZ{o}84&wlQE&hGSS?%YrEhh{}8$nrCMy%|};{^;S_1|=Q)CyV9E zr`NvDwy)bB^+k8y=h%9MqJ_Jf>R#Nmtk2)UWOaZ^ry>5y`f2C?-Szr=WvdbwmkWo& zO8$~1i<4^KxqaOh@06m@x$EA6RYnRf>`hE*4w9X>=bWulWLe$8$kcG4k-=z(KtljS ztE3DYTZPAmM24mW2@ZjXCoCL{oE%kuI1(J1xy1jwK8R3MXm)Vp3sQ10?= z7dUAo8ey1ttXGy*j)5WZ0RtzKh>2*V6A-2(qrQm>wsfWrD<*)PJ?Ea+mu)BSI+Fh^6gmW$2 z(n4Qu8f9ER;y#({fYXP}Ln{TDPh8n$`Yoq%YpMK`v%v|^T4p;|eV1@K(EdI`vW9(u zjN<1;Q$3C+3J*FD^g5ld56O}Fd4QSe5#JK)S*2EA)9$+~|5w}+?j;i0av@6QZn#Wx zhM`77b1q}RtxV39&jO=(v%V}S^UYvm_Peg=lF+E&s?<~|pW1PDq0wYndBLfdb1h103Y=#$ zUU6h+FPd?)fx+g^Pu00eTV_6=m$&MNx<~q)1;^Ra?tREyanIAyU4Btt=u8Ru8xLZa zf2FI)5cf8;H-t>1QX ztuDV-mA+*Qol|-}uAcW>d62S8=?&)gh4XJ_tv_3K%KykhSIOMXdrXg( zp6@NcR~7!J>`wK6-iilJ{C*V=+vNKy9(C!Tt9aaJ&sX_mlD}W&(`oU2mCt77pR0U6 z?|(gC)r&>_epN4*&F`yvwQBvjs@LoG^Hsmubl$J}?Y8@U)$ew_KUe*J-+#WE4~O{u zYd#*6@2~lEO8>mgL8A!|@@7P?ui0FF*}Pjiuy8`aR`;L@4;+tPXFj!cGouTWJD(~0 zug^bNcHgi0^GRI(5OZeJk@@wn=evHt`{eWciNEgZ``i@f@TyXoAe5t-@NRV{!&~P4 zzM-icf;U~>R1#-LlpgrKrIAOP zMIkAQ!;w#IwU%E81FzqT!!s9ti2oq1#L?g3a`B-+{a?mKyur&hzgn5mnbx$hN#WW7 z#(=`4P)P@NmV|@<{~Dg{h~P;QI^S{ZY;FRxl)wR@YdhSUW*D$Y>=4;*XV5C~ho3=E z=OCxZ1zUrof(&LB2PF@EnCK|>X+rtVle`}!n8O$oLYWsVmi>6t&HT{CIHr|T`4kOU z-HsI~%og!JqSm>_Rq2!6gg+<3{&1YITe}f-<$O5Pf;QnVid9SQIQWKWPH?PJ;rjMU ziO=oE@($LEwE`2B`V2g#`MnY_NXha0X`x}5;dQw_^UX4I_2&&YRaA2SXflcmF}39I zF5%Pg>|jkx5nEGxL{x*pOZMC4BmZqO6`pc7vrcnXxovP@K7%Zmb?GO+)q9T4X%=*_ zVi!7h$brrKW6Luo4TBlnD*qFvFfcTyGZ-*>+AW#?Kg8dGu^^!Q(B|$hDkoUpaW)i~ zl`P7XZcx29>7sr^%M#wb2P*zmw)89L^u+dbb1qwc$o8NAytp7mhPkVJmX&F){J15} zHTOk`ab5B17|}bNQWqLNlrXMII4fGO1{!!=I8RpL1h+?U(Aq!WsGP*dh zbzEp*-?M1$c}j)b$#<3)3w>64$-Wi zu5OstvxZkdJcQi|w8ogj=Y}JTPl2mbQz=ih(8^+k**A`wl_^Y{svXOkaNUnjVSV-6 z*YV8U4HvqmZrRz?){lCrClIs8~^F$_Ar3L%vFKJXT5jYTTwd3q&i--G5 z6gX7AC`2@geA_5$(Qt@Gh_#f7L0fd60fW&QcSd0e26i@v`j~{}j6cK=n9D4TSu`u5 zamqp_!2ss)4C&}~8U{<0o^EJuXG&`9s8C?l``D!Hz`ojM$5EA@J_nsejI&!F>~DOs zxL@C;3gTO<9**uO6njPyy&+fh=;Xk#0UzdKc)zdSdH_hC0Hs+zx)~fq9 zuPbwZ9#v=KXcD?VC!vwWvW=mx<3TQ83p>+-{}0Q3R-9+Zl~7c@r@7QINl#ByilM`7 zBZGm#Gza6I;U!`m!Yl=y8$B2mIam(#wI@xzEhTX+OmfRI_M{hn#goP_pP6{;9&=g${cOpy^+8+r=BA4Yp0C#1 zzH|Py^z9r90xWS-3=snJjS>>?^%OXTom-R9xIjhxdE*ubwVc@;A3kklV&~*$_`p(m z`8KEV!E}XVK@S?Psoec}t~`C;0WHxZWg6CHo2Gs}rRKTM`rhYbPJ7?4&1ZbF=z4ji z(&``u2JSyr>#YsS4mt{TaQsM6$dz$&+3|^i@kGO|S9iC~`TuclTwYr5t&C?O)$hHs z^20yh30eQ^l*YUKL+^sw9=V*5p0Lii+u_H>pMSpFu>wt+qUa%{(Pe~(_>#R z{-TR-&`NY90PBy7DQ* zGWF00%W_kW*m+;CifL}}PxmcXD_!4SE$q?Ay|}vBG_fa4$bm>a;XgY-`DD*zSQY& zuQwJC|5l!VJ3UF{0EgFNJNt5BZv_U+10{a$@g_Ucu3l?Qe^#~idWp;lAAyL*)QmRK z$NWqWihWude=n*3bF}ftv5dU$vXKl%%nzAwv^Sl7E*r+cP;kRT*P}dUVGYBCwrq`} zD2e8k$3)EzWc5DD+Ui=dePVfjhJ3L_OFKs=1A~0Nq1gW|O-x6dAc(?3R8WH*(5(hNIrhHPbXJQl&NH!A;w5kwp zzTP}#hL3z%kKDuFvlglg+(a%)^f3waeAr&$o*+E?Lp;xO0gV~u39%0#03CtEu2i3Zt>iJRGz_i0R0zNuqh$nX7tQ7$3uWO|4Miv=gJyDwn$|G;*Fm0{-sf#e0O&I(Kp3)*kIkgdKUs>eCm$aAu^ z1jEnG|3%Bp85k2LX{?;Y-{I)AAc}VZqnHEZ22~N|15D{V1?>u^v8P9T;1Ke=$!KUf z+0;|Oa_8j6uai3(r!o~x(zMiOUQjRifI;d5>*cHJ+gW9Gma8&7Xy@%@^n8)Vx}$2f zdgJG#JsXz$CKW|J3=5sH(s!f#q=lNZo;S)1J<810$lTqibThC!hFOMFQHFV=irFKT z>o01imCf#0ILqOZXTD*Fsh|{NlJHW`Ku$Jat4-n?4hqR%6}tMc`J;xy4M7#AkF&%D zXKx6b#jrr$^rHx~p=fAhW#>y-(;{Wwlcm8Ex@T90r!Slrv7+Qg+MI1WLK=&VuRLj( zY&q-a%K3kpbW=C|*Y5lzxMGnO)8+Z`lV(nTXm_coWEN)|>np+kk!q)fN*$Nz-9N}7 zT993&)+lRI>fx^T>1UV1uKCJdi{!2>l&@N(_1RGFo1j;5(4R?*RJ9fxdoA9?VKDQg ziL0>jeL>Fe47KLF7Mf};arRoWlVh>PFXQCRWuaki2@y;Dxt1DBEx9DTSmUy}l7^k1 z)Y9lvOJiRxjptgHsI@HFYgua6vh=QHnX8s%pIVmtYFR$l@f#xmGl4t!S1qOJv|}KeZtAmd>vPmfl+{ge4c5g|PKm8RR`!;r4*zwPw0m zAm^6=9#$pZoT{IJ_owInLa`K{EtZCWdKtXe&>%Wz*5L(K%Pl?H1>JOz$L zF`V#PpL&UNuhtx~lF3P6XbM<+eb(BvB^>vEtxHYfT{U6VJFAT=++AK(>2G~y z@Mcyn2lx6qt@Rue)`%sq_fXhm@n}7RbbIcj_3WqD-!o*8HsCsT!1I3M+8evpJr~^g zVArOEA}+Robz;ry)}Pv#{di;G@h!@ym!&@7-tgc*cf>0}dj{@e1|ikcn)VO4KTp`q zJ9*PB3D#uqZHI1%GF;${F5p-nu=V(>3GD?O=iO#1cndHKY?h4Pema4n;e+f<2d-NU z9@f?3iXXX`IB@-(AYIr}e~2Z!wR*?iZ<{N_g&7mrraoXl)8xs}z*ZN)x!7xS6*tF) zl{1%w1xj@}a&R@4oSv!_HL){m*OSE?H?ga|)!ZGeF>{4%BX<`2GrQ zlRvoT>2HoDN7!u-tXUMm%Y1Ru+ywUhT3jDC?0OTt?@ZOc`=Xn#vHfpjcHn0V;JkN` zcTEBVTLMRu!Vc#|wrf!bRvBV0*ycyW!w{h3(~noU0OeWGYK0NzUi|5x1Rt{Y^xwBj4Cjb4}d#`dc_`cbDhQ8mJhV7~dy@mt?gR#L?JDL2JZu3x;+?+pR9wB*%saT}@OR0T|1Qrn zdo$C$XUS*H&@H=Hvud0<=5xmTPWK@OzI_cIsSLb3SMf11a-Y1-w@+d3+24D1t>U|U znuEoV{ZKc<^*=m&C#=3{Ah5yV{FgsGCx7!K$1tS65&Ze;{I@8EPz8aa4P5_Uaq@rU z>N~(*_-FN$30$EMj!$co0mV=k{d_@d;CG5K;m=7MhXdrOc;nFn&0nIZ! zY0_*eb1pAp|IhF~f#Jvj_h^nu&#Q9ZWTtH@pUgI+B@*Wv=P-Di2$e7e0Y zM%dx6U|j;k315LjXZhw%IdsHUpy|x^fL?Ak18%lgr&qLJjoi_&;qI*JHM`hfbZyK| z&%K))^20ROoH-W$>UOpP}<7`T})9_0u)sychm z=MRFFy$@m%xes>lJg9Os^p5J;fPJk2tP4MI*lu8z3%pq>y;dfUq4j|0q7SQ=9$^3Q z;m|)Xj%8bpu|D9FQ{=B+@YwpDY*E7_EjyX@d)G4y^0GPbD>Po(@jy`J%;q}`_hvFY z4annFI4iQrm)~sRhD!;ees?FW9i% zV7GkclBcrk-kzA%nywemZELPNTIGGHje4BBI0s{H#|&@dtV*d z!xMMz9yjkvk(UoR89wwdMEeNb?qPUtP+n**

%@@>vBrt40>#li5-7JwUq3(2g9rvp4-NFa= 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�-!`d?M|ZCqd|#r(3(d#&RHBO_(5>70kfJH7m0?m5hG#35D7GhEYe>ev2v zSETQBZ8O;R&3o;uE9o(vM;w}cj*B&W%+X8u-0UvI&(O-T!XZF$LZXLy=KKjOj;vDL z=$KHV5VpBlcY%m3v!0)V=@gH}7ZMvHR&>NP1+*H?II=Bun zmW!?~`C;=?Zf=_Mi&Iy3D=@vd|EfyT(!@EbmE*nxqeF)VhsqR&1u6^z+zh@R$Fo`@ z9=}&BGxe|V7ZK8Cm4EQiYhsjG-0$cR6CMZt^Fm(Bl6%gJpFPI=JnhgSv2ASUPHm5@ zI>455se!jOy)cm{yJE|%ZvVLxe)cvA9A=no@J|1cb5}x`m~q1HR^I;_v2XHT&;8b- zUH1Nl-^RG@yYIVhYCdEgceS!tXkCc@Lm^Flh8vCwogL?$xj&pd{C4_=U(ycRJWBnR zA~&YYk1lLxE$UvM^nOlSva!U|9EPkZ`dr5nTvb>;rQJAEdCplU&~_Hi|KD`aEks@+RP! z=*OuOnP+ZtSi{4h)FT`qXDds+u^VllNYQnjjMT`?- zWV@#xPc0Q?SgC!Uxo_%;`Ee&Ey4x1~p7QI;1!;#%E{S|swSp9MML4F;R-EuF?%BRc zXG|G#E^>xGH@6FX!J@Tf8ke-P_01&RHpZZ5ISd|$83d;FwXi-aDl?IJxJEQrr+K5& zEdS;IA6`1i-c`unU?P0vs6pBm#uOb{DdWS(7#^5OzvBIHDscLm%uw|+92rjn-p_sz zUmw806L-D9qChnIK-?5VjH{r>rMPs6!=bK?sx7fU{pDwkaB z|L$_+vR>uIy@4~|-7kB4ZNu7TtD8*h)$e92m+hBKk(SavU|?eS=b?I1Q|If(l3V|} zLOGrY@=lF%k$<#t_xXqWSuKwAu{~sa%$y+o`K#%J%p3V@+}UT`N~ly>_A%&X!S2-3 zE+-=%fnN20hvH)YFEZGkUAXYa`ThUC_w&!bq$ua8JZD$WilEk&T{BnhTE*DGvbM|i zQ&MZ@1m?zM_0^}%Z*G=&Tcz!=Xs^HE+?AL23a0eAI?6V`Sm9Nq@Z8$YZBpMhX$Fa+ z1^tq2r>tazcJWBcuxJUjx+}GaZfQ2vS{nT80J9WB$|JUE(hOx2RAV~Wq7SJWD~Q-@ zEDla!cI0S_2xxuuYSI)YrKAUfS~+XA&m7WyGl@|_EzF|Tb4H8LjAdC&Eg2`&m~SkT zc%_y$fz?c4d2qnoBB_SUvs%Izb#Ncqa^vzA-_KiYyj=WN>j{+{`E79Uo;HVn#RAC` zN7qv`#Ct3>I9qLJ%#d?vWt;QgPDZAIw_piVg*d|nRt~KOrwDdqY);g1dn4J9!N8Wnu&73XL!U|6 zuxch~z-*JOoD_qZa;u$;%fZ73u0LMv%e+Y`N3@!I$GYkx6)G;ylQZ~Ji|z*&UoDR4ABM+q&Z0ntiKIArg^OuIHgm;qtJR`dzqkP`IO@`OZckpte5ZMs5!iMl0oa= ztT}U*tnpdEb|U%YA_32~1sm2n^)K@I-!*s1$>lCQ;gQX@3%pjvc$W5X#;!PJd&7Fc z6uu-0R{Mlg3oX1_J6IBSv|ilEwY=rjwl$t>u1s@n>Dp9sdY6pj&K|BkEnJxvCcD3! z-p_L8fXJDHDrXLvoH^`r=19nyqbX;Om7F==a^}R8GbfjvIkn}?=_6;(Tsd?0$(eIs z&YWjCdqL#vMU}IcOwL|*IeTS~Pk85^<^{}GEI2+fGDurA8lTX=dc^nY8G)A^lbZz? zgf}!bMKCZXG#DJ1cyR{<>&dfEZO-1^({rzekzoac+yO?_1x;cV3=dWOELJdZFJNL% zXi!c#_fh36&rLx~PNCNf4Kf<@85&srN}l7gV6c(s(Ae;w@zW9i3x6hA%$z)9A|s=K zf3ix)LlFkm6X%&l&;E5eKckX?(Skv(VDbaWj)y%B9WEERullgQJ@0q3fzNV!zGXN;ybjOew zd&wyFObi19mjp9|1e2h}#4jq0!VHZj2N)R&f|M@!DVtulH9f;v(Pa0Lk@bbIVg}PC z0S^5J#%2jW+ozY^czxb2XtwiM-@K#In1R98z|8&XmBT5geZOAW|K|S{f6=Skc&-MT zhE~d)4i3En$N`XHWjjmF{|N`WueDIh__k*V;4OC!V;LGTF7k^(xxSS(0gBg)R|)!w>t3_>+Cy!S^?Fy+#LL^n;tXS&aH)BbUVf z51YJb*6G5%Yfd}V3)?i6-da2PR?6BNHxJKVmg>E>_g3GUU5d=N-9m1KeA*>D`KC*! zgu7CQ^8|^U8x!a0Gz3U=@Fpyj)M*gEB)^BLLAQd%X~K-n(Z`!})n7k~T2XrAV5~Op zl+*RWM{+b{N_>tS^1Z%gN;@`?Fb+3>QK8&iC5 z3w}JZUz%gPF2jz!JUf?0pMG&lRA#9}((TUGD)Ec&oT>H9uD#`YBxZ|f+;%G$|Lz#) zBa0vS#;sX<=b@`hTJ4<|PY5#>dG0jdgvP%QiuT?sExB0&Ivz!_#Pxdc&Rr{7ZI7wm zS9-Sn_1+jpqXgA;kKTNZQ+$@hGWpgtU8jb_4?eiwo9vp%J10U^Z}N`@cJWQEZPoEF zXFSw+agd2)1LN)qt|t=>leJX;J+u#t7N(;UNNj;*+OA`@!@Tg5~R%-G|c`^o$+S(Q@3+Z75dV0 zo~7|_i}TnP#d=IVwJj+|EdH`@TGF;Bhwt7?Sohr7EN#Z0M_I@2s69)~HG6Dm_W1MP zG;PLKrW1E>q^@B!T))%Sd4jNIBSVC3U3!Mkiz#dwnQ1Sts3yCVJ>&OFQMY^O^UkW~ z-809yC(6^(A0B<;H0@=p-to47TLk_@trGqp-f5Sd=l8fKxzWJz!>;S{ebG0M zpDcaO&X&eGPrY95X`e~l>R$DFyQmje-xO_qnOydoukJxwZ${m*wB7q6&W66`e`B(A z-mPWpl48sv50_1lXNcMF)KS2DN2cznT+0Hj)9V=$ZaZh3y*@AfTwI!GUG@dnJLmu1 z$u-Tr@Ga&5Tm0LjdGXWo-1uIcU7NRw?`EIs{pMqt+Uw%Jzx$t)!uC#!@p|ixHko&g zrZW;lby^!O)`zQb>}$>Y_VMM*zL?$19AzHUpn-FN-H zSq68@>UO;d-uEANyX7BT_g?Aab*2qZt0fsGShJk;>Sz}6Xu6X#hvR0kYRas%7yYUk z`uDQE?md@19zN}F?zekSHJ)Wpo0{IC_eNNMQr9YL;b+|ILyM$8K4S}i+3)b|>%30w z<(!Mx6{+V>;LW%{nW-m0`%@`zah2(H)9rhCpMBD6zd7&5Elcs@?LMEEw07Fqr(N6j z`N)S)*5AGDp1+=9n-(Km49(>|Kc(Ii|6t$UgDul2fp}R|KhX#{};dg zlYQAseZGGQRG%EcUK-?Hs%`ky*Z*sn`J~Y6CE?S*Hcn{%cIld{dPkHv2OmRI96QsK z0?xSar3vL6vGN_V3XMkg9GVJ@{4+Qro_~of|H@m)dhstumNUt}1(Ef}0x86Ncfd}QOt z=y9(3N3fy=$3lCK4d%VvKbTqySVatY8D}(DNpzSbH0)mAU{UakbL!95i0WpG?{*u0 zUsPbUU~Jx<|GkOh_tlKv-y$5V)>nD<_Z#hC(2r31{-Ek!jbLNPxtD9sy*_i!=BeL% zmh%j%9A}^Z*(U#|sey@c0Ry{71DnNn3j+>afd-BVj4l@#_&+f5N^~fEU=;9RRBd4N z5ol2CsH}JAxPEdq__Xne=LB|^9UdA-6p~|Mzb9L# zF&ur^8sj8gqQKCh^=3j#A!p%{X#v7vGh*EpI!)T#rg0cFJL|ZLT;UYw3~1y~3RrNn zS~KXyks3*>mUafU7suyEGZ%6kXs~m&P@NhYRjE2HGHa*m^!2J2?zT!~&A2xC0xtub zXv`mt2DZdJ6$WPK+LyB3A1uEta=UjXVljhxlgd$6ktYnEPR1_gWolT$ z@7zLE8WbFa^NK{4 z2RLvPWCeUvStVFrP$Pb?;wj_T1_lGGFAvlBer7#)-}Px$WG!c-q66aMC?3V8b)P3CFmYr) zxX{4QBv80{pM30X*TDF&3yrK|CMWY*_%c4UdKTuWJFryBEIcTj&%xrrqf|2efS_@J zf#VTQ&2u{*U*l@n5uhe(;K)_};?}#pIxp;2^Y7aH!Ls;{-1E0LvZU*6KAqIw|0h?L zVZ!O#7dQTLakA40SSH}xz_Cc&V2Z_swT`tJI)OfSHZQZ~+c`3GO& zw&T=sqp1fKg*JA$*(9wmdk zju}qc*pp_XoVTRonCYgCy?HgtGLDOmSzOxKSGGr4Zld{dn@=12>;5P!?A~(RL1@#2 zHX9YCMB@`KMw=$~)u^Z_Yo7EB+B9j}9u+m?l_!0RHcg)QM@7R~^HkuZO;h??7?~v; zCNV7xnmRA*sg|$i>Bvh$T4p~QMB_HNE@oLUow2}6#6#gs;0PHf?FOJ%J+U2)`p+hTyQO=`*Nh0^T@BBk@6O2@s|G1MG8kIF=x}NLm zSW&Ir4ofb-Z)II`x+g2}@~Uf!=e!ui1)2*!6tuUkddO0HAiUkFqM1L0ovCESd}p%_ zjT$@(Lh=^OaZA~hmNYKmQ@3DNHW6Yy*cHOv83%~ zcbl0o%#!8ED}60+R_Xily}ddfZWq|2Y7|&b`gS;;%PQFD zoh9SM!JygD!6kN9{s_y1#ytj%E_w}z++82cYgv-IN}?g!sqaIaz{CY@%#N`(S6>S_ zpFKa@)muxVM1|>vstQ~EjX3rl$_@5w#O4T`Jz(n~(x`tzj6vjHT*1Eb{lYp27Zqop za1gQC&sLwptn)*oL+yYzhkJz}U*Y?2S_1JO*bpJQ5eEU|@4I zU=R~bluuz{aOqnf>BSW7o~yq@ ztEy``zbxS9J-|`_?gF=u3BxU!^K8>*T;aAUU6J_5*75k{3!I9Fzvax?ke_9x@x;`4 z(`4Iq!a4e?Z&)2Ta`v>SJZU(cIYYlgPq6v-S4R#7t>X^wc+~4v9Nf<}U!A{Hy=_U> zLoR&*&AAx|S=4G~@qA7@w1we9du4scEWS*Wj)sCJ_8T`M{@suhT{b~NATjFl<1b~k zdp{-$91OYt=i2|}J=>Qzv1vGR8^1WctNhBl^5zadX2HVpH4|E_Qyvz7T4sLq{n^zS z>XUC>TetO?<-5X|_p>?w_7%oC#WhYm9IYz0_JAbEr&hz5j5%v{3oWMVeqGu9`T>)G z7P{lCO{?K0AD+~^9#fNit>ANIqsjx74^d49ets2JU zE^Ec}_xrbB6U6iyGL}tbyzF3ix1e`h$)kHM4t3h|Cge@}S~o-Dt-~RKtX=#^-p!b8 z!eFP{%Yd^wDb?|SAqo|;VtgScY8D4P2ENx}eNc7%%}1)J%bysSAleri_v68BmWMz7>rUgi#Lel|FQYfXo996O8Gn`ojtYO` zu3SvG|8Rkd-=n4lH`l4iGyG6!WPK4wf8mbgGF}$pRSSgWX1H-gw?s0DwoMgH z5?%c#_D?8-cvFY?zUzh$T03;_`OZ}ASdbX?Vb+tMa~*#2boekvu1vCtWO6jQZ5O&g z?ihE+9tZg*jy-qyjV4{aeI_nW<1v$Aa?}M!b{9pp1s8a(B`kAQQeCHP{mPAD$#jMS zxhCEDzBcjdVh;tQ5`?%I4xVW2ZImx@koc*>@>_;EFk))@$wf{%iBTmBKQ$`EZ4uS~ zb>HIPW61|c8JcFz)OaG#g9ylG86`lPnjfVEdoXWez99i$rA|H+FY1mB^!V z3^@!EHjL9RCRz#2wtAOh{ZA#})-i@HS6M$qMzuJY*fMsMG(_<*@HBATXzch>nPk`Y z=v#v{gGS@xMBk{Grk2bj4b%T(!ZlZ1nj$R( z=P_6~Je$d~;vuX1tOtgZLL=%}BHQFTo-`KbFgRW4j;!kcav=4(t?IT9o$mXV6cnUH z)Sc(&YmjL^n$`+9> zRk4(zpt0=Pg{W&ue+6554I5YwJnr~9KUR(9h^qthg(mJCexKCkrA5ojqtXo-8@zXQ z7O4prTd9{=xk%;k^Hv<@e8Qks!x!h1UK*!f*~F21OHGI=EwxLaHc!3dPP){SfO@9m z^>*ncubwM)F!DTf;W39R`=l#rWE4uAmqaHMv+lexGJYy}g3{?@uBZVE5|XsmRbz_9vjS_{KmqZ%Bg&-8Ol5Mjt@_@*MtewBcm)_xYjn{$g0z>?z7Uv9x zC5;~3XQntO98mpnV3y6xxsNm%0yG8t)K_0%;=SU)?r?DKRTrzEl#tYhKM8!@YZuON zlbHD`J>lKt6?y?Hy{?Hr5$`BrOgPB3YSpW7zLv#mkxSZ6*3})^a4dME+Uq|$uN~er zY;HQi#qeaE&=rS?X$!Zl-Yvu$r{f?rLm*Ang?q1n4xj6~x@(dR0l^)I*>8w0G;sCR zJbL@XtO|`*35^3x7On^DSPpRI1mqmxo$L5(jfT~yY22mD4%^8xxa7$5tZ|ERw6qC3 z{NL=l{!G#CecGqDy$Q&fyi3Y;-L+$frH(2oFcsD^*tkuOxbh}^qxMve`=@s4TolXQ zbu1_Fj85(koj{hxE>7w9TiGsa9lc<5Vq@sqi)m|jvuOosyq#k4mT9Gf`~$&jS!-|3 z%AKKkl-uT@aErp!69*+T4k~SE5U62rouGSR-r9Tbbnky#d;g#A1GaS!`1Br%t$Qe^ z_egEsBd-tv({+#S^q#n_d*Y|}G;H0|IK5|S>z?K5Juh4LyiV^$Ti!FhclWy1y_~1_ zYT3G1>-1i4TladO-kW23%O%aKve>7TuO~_$Nki&uvdEfH%84DaaTk<(;944*P`_ZNU zbD8Ehw;A7p9Q=1M$^OXvd5)j?0^=!8hOf`o|9hAJudG$(&f1(m`avfcI8~;7op{ zr{;61Y~*y05d8gtgV}+z`GjCTKUW7MpT!O(<*0i%k7sJ}~t5g&`9wbY{t4!k#J_`l(pZrH$bhT#ay zraC(ob@dH$%?8g(8d(Y$Cwy&LevyG!%)Dq;4v&DZ?h%K=)H}o3{W%|~atU8|SaNWMmLx;H zDRWEd^ogbnR~j>O`dJ&|oMw0P&2Ersajg4z#QFUBM$a#PYaD#-7$kWb1!5eNe;jd( zKFIc@NkG9#!Ga-S7L#&Lcf-pl`PLsq3 z2GJ`5Ki#&L*Khxl<|-M}AkI+s!QsLllT6kR415}lqFWfwH}TIo&=?fh$ZWu{SnWu~ z^zRXF2dcJzuRi|W$Hzh1ra@ohirfF+|pmDxe$$bpcz9Lx#t1^R#ZDR1U0VcYaK3^*Az#nbUu!Mk-%M%ZXFvtTGIH{!f|L-E+kKgyr01 zkHGsbEG8#iLXNnum^JrtWuf5oKQYmfpIAG%w=Hryz_y{^dG?QQ3=CcGU2gRrEcpD< z&%}`7Li{Yhs-@2>GT*a^H}q*`y;Ayeq$sD*CUWN=NB-pBhEs!!mjv!w`rXBEkHq}y z!_%1=O5?3!a{T%JHqO$w-uzlG><_Ece#@%!t#+F@mPE59WV8r9{l3j$TIL4X02j9F zHD9-8vuv*Qb-KgO>r&Nm-d~32fP|9ivV8tb12e`C3@;iEBx-D25&n^LfAyaJZGFs} z*cli^bS6A~;^hBiLWKI~tC0*mOBj?CoN7-n6uhpO`oDVdx&ps57Aqbd+#p`v`M>{F zN<+!!`8KDv>xG>-ZX14TkAiox%kGi@_P`B$+z#w1W;p7j@T>mC*S&MxtJb(zpV`C6 z&thcjD4EcB$=GSJDBtdWFQ(uFOe_rlLd%n+H{0B-X7yoQt>d6q@Vxu@0mbt-uY~Vi z$NxwA_I*K}3+Ypw{Zm|4sv7gIImM83fTPDDo%i5T>%wD`Z5d|lU4P!XhE8p<@!&!&*2EPvGb_tI2LJld`FGb6OW*;C;C5}pDoa{ z?fy$?o4-3$J_ztM+>zPm`KDm6zlkr0qx_wRvfq!m_1kuQD0{QG%5!;b>;_wg9k%`l z{wfMHF#kWnD7C>s_|1p37kj59?^(xO|5ME9(Q|e&iG6$KTQJWGx}Yq4%cK0 zmzg{)vsQ3+SX`WKVe7HLK48oLSr!*V`TdI+x)yY-SvbSaK}X;KgM(u;>t~J)6Pgnb z%S7?HO|h7mSvTb*vx5|) zd3YUz0n4k%l?M6SL@#_S|zTs9@4%bm2%|yX_Wp z!v3j`Uai~rq2iFX*^CGVhW7nT(mKly@il91oa>Z*@u+xWPv9}h%rzI?jx9Qz)z-CX z#%l%nmenhm7~L#ZZ0jz0l5s+b`_5`$L z;U+an(lzS!o6y&5cfPyzdcC?dFAw9c4I1K%8WPUkiY^zlBZYhz6nSN&7$$M(>Pqc? z)AeB5?7ZETkHvNlq4%S~(W%4*z`C^8KA+qtKx2 zc6NUih6WKfkGX6=R+D;Ua7?D_hKK#} z|9-w?&oz0%vgHNmjGBN0x0_lnu*|PeEbd#)@lQwS0ONnLf@puEkO>S7Y-|UXaHx0m z?&K+2(v@<6)o$Sd9*Yl_f_)QOR81bbau_f(W?*&ORH;lQN#;AN|}r_2)t{e(@E{?9mS^32fxhIgvo zxYqtO3zK6_jQZ9`s11YweKd+kKgs&o>3~G@ztvNtfns<1y4bHn$^pbMx(sFTQO#;gh?k?)1b{*R*#m zmdtbO;$}E=Z2|Au+;<{2LA$v(IB;6dSTNnJiCKZ`z?QvJH6(9rjkrR? zxg{pPWToiLjsGj3YfoGvCARIOX-7XJL$bo|>)TqczOB}*Il-MSp`svW=;{?CAhLRg zlJ~U@j&p1tb-0+ZNPKwgvSb2F)R%>8*gK7ag7!RWzVm=Nc*0cIH95}&&&)hmJkMjA z`k_?)c$IT(k{>+Icrb?`PmSAhfr!lXHzhgUod` zo+D8wS+5ACtWt{H<1A+y;{Wz>@au{z_S3R@UGHXv@$bAM;`!Av?CmR=<5l~19y48A zc{Vxzf7SI4HMPatbu2U-C!|hWH$`;ImCP9pvy@Ksc`U7MdU;@K1GfRA(`uecYmSlMDS6~u-z{oenp;gT0z(xCYyfRt|j9L~A zjP46Qu6>xDHDh_yMuY37Nz=JrC!GFvEO6@1^|^A{O5dw)=<9F0m?>S74r3h zJYdlEj1@WH`+2`u<+DTgcb?0PyDIxy^x6^jvVeNOFSCw+zZ$-_uJ3Qx?bpfmzwE

0|cOpluHKmX68#OS=P6`I`O|B%K{nRMbi38 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

Z?<%p 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

eEQB^V3)t3GsDiDg%7ts7D|lEfBfT}?R=MY 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�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�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

*(qtRZOL4U_ZmV)qq z!Hj2TFi8bONEtMC?KxKQ^lC=|;MhUMtv~;QH^441)eWE_6*o!X+l=<7hAHcxW&>*eL z@M-t#%}bcMb#5*0jSybI%x2MKd*s%#+FQJhW|n@E_6gNZQdJrJ$Ao|!8~Dydrxc| zbv7KhcsFd$!-mX8hMP<8Ufmme+SF%#Y2>A^w>tzP_wJ2(qw7D%;?9xQyGNHE&M%4S zR%ke(D&V;w=A&=OoRx96O9L((z5j=IukId3rWLofOy+1R2v}&|5i)FON@%=RdzbOW z{r`8JncWiZ@ZRq-2>;H?8EYBszSiRtH%s3g#|aq^p7(O}+}Y1Q?IOpt`-fQ)|BEKR zXT4*~lfb0-KtwO*U_zv@TtjN=9if=}3=1NUDomKYG_jVYlUc2S<=TCfut#UB9n}>Y z3^WcqTFCsH&8UCWZsLXW4{Kx9+aBfaeKb+xQI|oO&WsQ-j!N8k@~Wp2)X-R4uX#p1;r0e{?Bvnsfpha z?voRE85#H;nYYSJbmL{Pxj0$)Jy;yp=$>G&6ewU2IH_1KvxV(N*|t}! zmn}GOSuA#EV!lt~Bg;q39wDtSr?o|fH%<##mlv{WndoM>OznT7QG(N&CS;T?&B*DQ z8rdlveex<}K(>XN#44Rr3<<9-3bSqgy|#Uq{Nwj4i$unaaxq1^4;U9TElBiM{&2;n zgHep(^%fomDGP6=gci=2=`(vy7whFPS>&uqdwZ=+ejhi(vP5V9CynX>EM6uL*Zq|G ze`jBO@5J2CS93Qsy1sn5Z*F9Zwd}hsiW8=H&a7I~alh^Hx0NpI1>c?fnmc=D?&0LX z+t1$KTPMO~*r>jtdGeQcM;`BA5qRiRTmQ>@Z=aOC{eJGrjoq_ve|>Rw_ItB;dw;LX zKYRK8i#E`uTlPJ+=Po*5R4(}QY%lZu_h*6&{_}lcZ!Zvy*~hUQbndarybs*hKkz;; z;5hq%kNu;7_(!on9|X-m3cD9R)BY%u{!y&F(1FK>dD2J8Ud+1UNFN%&{U|DR0DKbyCIwwV6ea`|Vg?VsiHKU-h_Z2SDP-S^M- z>|Y$}<<#xHSs%pC{LrMH(YLVWlau`yh5knM7yheQirm8+6#T!q>d&x0U*aYH#h?9a zfOzRw#gbK5u1HMa?9d2stN*mwrc`nL1w)I|UglpJ9ZD6#Oa0$}j!FL-`2A}tFU}1wFMR&J?)!Ib_3sud8F&?# zCOVWe2{5r3FmI^qoMXfCpM`^or&D-l0>i`xW^u&^GY7`gVhwqL%t8u`hdU>?>Cb4? zuPA?C(U{(%!olP_y|Z1V(ZC=%YGP-^d$FS_3_0Z$9n&kOh%>NB++M(6m81SM&#>J2aN= znLTBFvz>x~!2;$f@?N|8e|=MZ-;vN1;P7jTJ9GIQ2JH=uG7}nRO)o2Z*~D1EGFP2p zKRf3E@juf!TEAs8ZhS9x>if?>ox=aG^>bX`{+sbY_1@>dCDm&VyVo2oFV~W2@I3Ds zE5anzU;A$M-?r<2I}8|9eZSrB@7TM)cE|I7@4nYb@>fXAV36Gp@9yj>|NQRl@9$Zy z-i$mN2Mt~`IB|)EbqE}AKEz_f=8&jyq_V9))mWfmQca={50lUm)y z6z4qUvHh~eSGvO4VtRSv!~h&pM>r(#XiW<>S3}W`zwQ z^2{8Q0z{Z~9E6?qc|Nq3G3$tnvv8lRY>#7hahlGaRj;h1#d_7h5xh+BhK^;udXKv{G%#MK5dJtyiO}b+;`p+^M_$Zq;wy z9S?s!Q)O)A5jeh#Gc)vH(94Mv0yvl@oUZdTH!O^0;bt{FAjR!y&>+Ax<$@58vBViC zRpuOr6+2%jMQN~3p7ZgTbP~^oL+;5u2Ar{%|Ee>1w?*i1#xfnTe*Zt{>pgD`F2)ld zm0NjC=e$c%znraK^v3APx>VUG-Us&m75b2WfF(qLf%j8q!|GL&b+3Lpy=vC(1I#NY z?abTFyl1xV_1NmarZ*D1ZKv%>on32oD|5B&?CD%F0uHJs*-sA!@fpk#D2%!=^%%pn z4D*9dxqcoDLYkZl-UN24`<-mgJ3Lp9QNyP&gjuFw!9fP^8kS^^62Tva-pmgK9GQi3 zW_`a`JKM`a)y|-hV`|a-kb}8AX?d|{n z{d)WU?CIV&qCdUctN+FN9@_%*J1g}RPjJs^nUQW`8JNh;SMxwD=!3%F#>RTl84YY9 z44W6G>P0epFvcn+T7ZgF5rgTR1_g6&8>*Bq`{lrQ#o4$mU_$-m#D`8XH|)PKzE_@V zz$nm|(fU|5zp};nj?)wa2K5bj3~CCO`I|GE6!ZES45lQ$;ZSH6(okY@pD0-L$DM)U z(E6S<8)d1>6-$0^+}N8}v-noaWQOj8etCNyEAC;t&@p?h4+DEh98>>_N&jjT10|wP z$gl?-|31SzgJ-29yKqqxCVXA!N9$0!{S?>X_J?goaCAQh|!j(fx|&aS@PY8jK%b7wKF^IjLqL{Vds#99j<&v4&Q@B5NKNC8{u-1lQVwtq!3BR2JEIbbEiVZ9ZC5lXL4bL5zH$>@vY2Z*hkkv3PX^OIj zgQC|F#tc{QTm65ov3cy!E4#fw$(*g(DL&F6MUjs*ycpJ` ztm?k|rtS%6@C9apFb0Mx3=SJDT6G$jbsjKsFWAIpXVA2Lses3^1=~`c($YBvnAggr zGEH7^^1eVt)N?@xrj~#hmRgNtg_;D-~nZ83zqxHyL-xK9aHwnmv|2Xt-ZT9&FEsvteL>j}e0k#e8VTqRd&sQ>YELw1A+1E*mxd|*> zr#3uqIZ}B}Rjq-EPcY->iY!fu8^uvv0W+=}@s zrkKUS%*B@&VYhte)pd1Wf8Wu09eH_{DU*O}&$*YTG2&Ynn0QTLWjfI8E#G;4SDU=^ zGOGs1A5z!O)tPNkjDDRNJo_wD#g=8Bwz~gwX`J${Y&HUVq7y>jpU_}98lU^^fbhBxt;yQ=`RXf7 zzWcIk_b>|aMKE)2nfrmIN0HmU!Eu+Q-lvI^Ydi()El<4;|1@>;o~L^CJ2QjyKF^%a z`^;>=<+6sWvTJrm#>|zt}NF3x-xk0tFZl6 z*EX;Fy0&=l>$v|`HxBE4+c2gtTbI{;+q!x0+q`<~JCF6g@4USCUDr@vE` zKFm@+!S*A#X>WGNeW{0=r~F(SXqVID|NCX|{$B@H9>|)rU)n1omSfLMo3;E8b>F>b z`*Y3S{@3dMng-0ymv(2?AKM^_x{QMZeOvV<-9TeALD_4H{Jd(ozEzz zaL3hwVbesWb$5TSJ;t!9?aSHoEQj1=Gv-gTS&-%OAS*6>j_$|Ecm?(Pc7=O@0vAl=UiVJU6B>oLy%xze>W5UC~5f8=r z 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
PUH8jfzW!&r>#wOV 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
*eE4I7rD48;-Qcb$2Y+~b^t!&clYmrOFb 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 V{{KH*{X@PV4FVF4k%Aly)&OMDFRlOp literal 0 HcmV?d00001 diff --git a/plugins/z/z.plugin.zsh b/plugins/z/z.plugin.zsh index 60a630624..a41a4ae25 100644 --- a/plugins/z/z.plugin.zsh +++ b/plugins/z/z.plugin.zsh @@ -100,20 +100,30 @@ With no ARGUMENT, list the directory history in ascending rank. } # Load zsh/datetime module, if necessary -(( $+EPOCHSECONDS )) || zmodload zsh/datetime - -# Load zsh/files, if necessary -[[ ${builtins[zf_chown]} == 'defined' && - ${builtins[zf_mv]} == 'defined' && - ${builtins[zf_rm]} == 'defined' ]] || - zmodload -F zsh/files b:zf_chown b:zf_mv b:zf_rm - -# Load zsh/system, if necessary -[[ ${modules[zsh/system]} == 'loaded' ]] || zmodload zsh/system &> /dev/null +(( ${+EPOCHSECONDS} )) || zmodload zsh/datetime # Global associative array for internal use typeset -gA ZSHZ +# Fallback utilities in case Zsh lacks zsh/files (as is the case with MobaXterm) +ZSHZ[CHOWN]='chown' +ZSHZ[MV]='mv' +ZSHZ[RM]='rm' +# Try to load zsh/files utilities +if [[ ${builtins[zf_chown]-} != 'defined' || + ${builtins[zf_mv]-} != 'defined' || + ${builtins[zf_rm]-} != 'defined' ]]; then + zmodload -F zsh/files b:zf_chown b:zf_mv b:zf_rm &> /dev/null +fi +# Use zsh/files, if it is available +[[ ${builtins[zf_chown]-} == 'defined' ]] && ZSHZ[CHOWN]='zf_chown' +[[ ${builtins[zf_mv]-} == 'defined' ]] && ZSHZ[MV]='zf_mv' +[[ ${builtins[zf_rm]-} == 'defined' ]] && ZSHZ[RM]='zf_rm' + + +# Load zsh/system, if necessary +[[ ${modules[zsh/system]-} == 'loaded' ]] || zmodload zsh/system &> /dev/null + # Make sure ZSHZ_EXCLUDE_DIRS has been declared so that other scripts can # simply append to it (( ${+ZSHZ_EXCLUDE_DIRS} )) || typeset -gUa ZSHZ_EXCLUDE_DIRS @@ -145,7 +155,7 @@ is-at-least 5.3.0 && ZSHZ[PRINTV]=1 zshz() { # Don't use `emulate -L zsh' - it breaks PUSHD_IGNORE_DUPS - setopt LOCAL_OPTIONS NO_KSH_ARRAYS NO_SH_WORD_SPLIT EXTENDED_GLOB + setopt LOCAL_OPTIONS NO_KSH_ARRAYS NO_SH_WORD_SPLIT EXTENDED_GLOB UNSET (( ZSHZ_DEBUG )) && setopt LOCAL_OPTIONS WARN_CREATE_GLOBAL local REPLY @@ -277,7 +287,7 @@ zshz() { if (( ret != 0 )); then # Avoid clobbering the datafile if the write to tempfile failed - zf_rm -f "$tempfile" + ${ZSHZ[RM]} -f "$tempfile" return $ret fi @@ -285,16 +295,17 @@ zshz() { owner=${ZSHZ_OWNER:-${_Z_OWNER}} if (( ZSHZ[USE_FLOCK] )); then - zf_mv "$tempfile" "$datafile" 2> /dev/null || zf_rm -f "$tempfile" + ${ZSHZ[MV]} "$tempfile" "$datafile" 2> /dev/null || ${ZSHZ[RM]} -f "$tempfile" if [[ -n $owner ]]; then - zf_chown ${owner}:"$(id -ng ${owner})" "$datafile" + ${ZSHZ[CHOWN]} ${owner}:"$(id -ng ${owner})" "$datafile" fi else if [[ -n $owner ]]; then - zf_chown "${owner}":"$(id -ng "${owner}")" "$tempfile" + ${ZSHZ[CHOWN]} "${owner}":"$(id -ng "${owner}")" "$tempfile" fi - zf_mv -f "$tempfile" "$datafile" 2> /dev/null || zf_rm -f "$tempfile" + ${ZSHZ[MV]} -f "$tempfile" "$datafile" 2> /dev/null || + ${ZSHZ[RM]} -f "$tempfile" fi # In order to make z -x work, we have to disable zsh-z's adding @@ -306,7 +317,7 @@ zshz() { } ############################################################ - # Read the curent datafile contents, update them, "age" them + # Read the current datafile contents, update them, "age" them # when the total rank gets high enough, and print the new # contents to STDOUT. # @@ -884,6 +895,9 @@ alias ${ZSHZ_CMD:-${_Z_CMD:-z}}='zshz 2>&1' # ZSHZ ############################################################ _zshz_precmd() { + # Protect against `setopt NO_UNSET' + setopt LOCAL_OPTIONS UNSET + # Do not add PWD to datafile when in HOME directory, or # if `z -x' has just been run [[ $PWD == "$HOME" ]] || (( ZSHZ[DIRECTORY_REMOVED] )) && return @@ -931,7 +945,7 @@ add-zsh-hook chpwd _zshz_chpwd # Completion ############################################################ -# Standarized $0 handling +# Standardized $0 handling # https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html 0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" 0="${${(M)0:#/*}:-$PWD/$0}" @@ -958,7 +972,7 @@ ZSHZ[FUNCTIONS]='_zshz_usage # Enable WARN_NESTED_VAR for functions listed in # ZSHZ[FUNCTIONS] ############################################################ -(( ZSHZ_DEBUG )) && () { +(( ${+ZSHZ_DEBUG} )) && () { if is-at-least 5.4.0; then local x for x in ${=ZSHZ[FUNCTIONS]}; do From fa770f9678477febe0ed99566d9f3331f3714eca Mon Sep 17 00:00:00 2001 From: Jordan Galby Date: Sun, 31 Dec 2023 11:17:37 +0100 Subject: [PATCH 441/441] fix(clipboard): remove clippaste additional newline on wayland (#12140) So clippaste behaves the same as on X11 (xsel, xclip). --- lib/clipboard.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/clipboard.zsh b/lib/clipboard.zsh index 4b37abc9b..5d149f056 100644 --- a/lib/clipboard.zsh +++ b/lib/clipboard.zsh @@ -62,7 +62,7 @@ function detect-clipboard() { function clippaste() { powershell.exe -noprofile -command Get-Clipboard; } elif [ -n "${WAYLAND_DISPLAY:-}" ] && (( ${+commands[wl-copy]} )) && (( ${+commands[wl-paste]} )); then function clipcopy() { cat "${1:-/dev/stdin}" | wl-copy &>/dev/null &|; } - function clippaste() { wl-paste; } + function clippaste() { wl-paste --no-newline; } elif [ -n "${DISPLAY:-}" ] && (( ${+commands[xsel]} )); then function clipcopy() { cat "${1:-/dev/stdin}" | xsel --clipboard --input; } function clippaste() { xsel --clipboard --output; }

f=CWdPA=9AaOYMPj`A?N47g{?n)P??- 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%0D5oZ=+P}y>x1~(3fWb_GQQk3k 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