1
0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2026-04-10 16:32:00 +00:00

Compare commits

..

2 Commits

Author SHA1 Message Date
Evgenii Orlov
f92a185ed5 Merge a2b5bfd435 into 9e2c1548c3 2026-04-01 17:24:28 +02:00
Evgenii Orlov
a2b5bfd435 Fixes #13112 Consolidate symfony, symfony2, and symfony6 plugins into a single Symfony plugin 2025-06-19 16:55:23 +02:00
16 changed files with 250 additions and 54 deletions

View File

@@ -30,7 +30,7 @@ dependencies:
plugins/kube-ps1:
repo: jonmosco/kube-ps1
branch: master
version: e19c9ee867c5655814c384a6bf543e330e6ef1b7
version: 9b41c091d5dd4a99e58cf58b5d98a4847937b1bb
precopy: |
set -e
find . ! -name kube-ps1.sh ! -name LICENSE ! -name README.md -delete

View File

@@ -13,7 +13,7 @@ jobs:
contents: write # this is needed to push commits and branches
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1
uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0
with:
egress-policy: audit

View File

@@ -1,7 +1,7 @@
certifi==2026.2.25
charset-normalizer==3.4.7
charset-normalizer==3.4.6
idna==3.11
PyYAML==6.0.3
requests==2.33.1
requests==2.33.0
semver==3.0.4
urllib3==2.6.3

View File

@@ -26,7 +26,7 @@ jobs:
- macos-latest
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1
uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0
with:
egress-policy: audit
@@ -47,7 +47,7 @@ jobs:
- test
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1
uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0
with:
egress-policy: audit

View File

@@ -24,7 +24,7 @@ jobs:
if: github.repository == 'ohmyzsh/ohmyzsh'
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1
uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0
with:
egress-policy: audit

View File

@@ -17,7 +17,7 @@ jobs:
if: github.repository == 'ohmyzsh/ohmyzsh'
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1
uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0
with:
egress-policy: audit
- name: Authenticate as @ohmyzsh

View File

@@ -36,7 +36,7 @@ jobs:
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1
uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0
with:
egress-policy: audit

View File

@@ -55,17 +55,7 @@ _kube_ps1_shell_type() {
_kube_ps1_init() {
[[ -f "${_KUBE_PS1_DISABLE_PATH}" ]] && KUBE_PS1_ENABLED=off
# Detect shell type once and cache it
_KUBE_PS1_SHELL="$(_kube_ps1_shell_type)"
# Check tput availability once
if tput setaf 1 &> /dev/null; then
_KUBE_PS1_TPUT_AVAILABLE=true
else
_KUBE_PS1_TPUT_AVAILABLE=false
fi
case "${_KUBE_PS1_SHELL}" in
case "$(_kube_ps1_shell_type)" in
"zsh")
_KUBE_PS1_OPEN_ESC="%{"
_KUBE_PS1_CLOSE_ESC="%}"
@@ -106,10 +96,10 @@ _kube_ps1_color_fg() {
if [[ "${_KUBE_PS1_FG_CODE}" == "default" ]]; then
_KUBE_PS1_FG_CODE="${_KUBE_PS1_DEFAULT_FG}"
return
elif [[ "${_KUBE_PS1_SHELL}" == "zsh" ]]; then
elif [[ "$(_kube_ps1_shell_type)" == "zsh" ]]; then
_KUBE_PS1_FG_CODE="%F{$_KUBE_PS1_FG_CODE}"
elif [[ "${_KUBE_PS1_SHELL}" == "bash" ]]; then
if [[ "${_KUBE_PS1_TPUT_AVAILABLE}" == "true" ]]; then
elif [[ "$(_kube_ps1_shell_type)" == "bash" ]]; then
if tput setaf 1 &> /dev/null; then
_KUBE_PS1_FG_CODE="$(tput setaf "${_KUBE_PS1_FG_CODE}")"
elif [[ $_KUBE_PS1_FG_CODE -ge 0 ]] && [[ $_KUBE_PS1_FG_CODE -le 256 ]]; then
_KUBE_PS1_FG_CODE="\033[38;5;${_KUBE_PS1_FG_CODE}m"
@@ -139,15 +129,15 @@ _kube_ps1_color_bg() {
if [[ "${_KUBE_PS1_BG_CODE}" == "default" ]]; then
_KUBE_PS1_FG_CODE="${_KUBE_PS1_DEFAULT_BG}"
return
elif [[ "${_KUBE_PS1_SHELL}" == "zsh" ]]; then
elif [[ "$(_kube_ps1_shell_type)" == "zsh" ]]; then
_KUBE_PS1_BG_CODE="%K{$_KUBE_PS1_BG_CODE}"
elif [[ "${_KUBE_PS1_SHELL}" == "bash" ]]; then
if [[ "${_KUBE_PS1_TPUT_AVAILABLE}" == "true" ]]; then
elif [[ "$(_kube_ps1_shell_type)" == "bash" ]]; then
if tput setaf 1 &> /dev/null; then
_KUBE_PS1_BG_CODE="$(tput setab "${_KUBE_PS1_BG_CODE}")"
elif [[ $_KUBE_PS1_BG_CODE -ge 0 ]] && [[ $_KUBE_PS1_BG_CODE -le 256 ]]; then
_KUBE_PS1_BG_CODE="\033[48;5;${_KUBE_PS1_BG_CODE}m"
else
_KUBE_PS1_BG_CODE="${_KUBE_PS1_DEFAULT_BG}"
_KUBE_PS1_BG_CODE="${DEFAULT_BG}"
fi
fi
echo "${_KUBE_PS1_OPEN_ESC}${_KUBE_PS1_BG_CODE}${_KUBE_PS1_CLOSE_ESC}"
@@ -184,7 +174,7 @@ _kube_ps1_symbol() {
symbol="$(_kube_ps1_color_fg ${oc_symbol_color})${oc_glyph}${KUBE_PS1_RESET_COLOR}"
;;
*)
case "${_KUBE_PS1_SHELL}" in
case "$(_kube_ps1_shell_type)" in
bash)
if ((BASH_VERSINFO[0] >= 4)) && [[ $'\u2388' != "\\u2388" ]]; then
symbol="$(_kube_ps1_color_fg $custom_symbol_color)${symbol_default}${KUBE_PS1_RESET_COLOR}"
@@ -222,7 +212,7 @@ _kube_ps1_file_newer_than() {
local file=$1
local check_time=$2
if [[ "${_KUBE_PS1_SHELL}" == "zsh" ]]; then
if [[ "$(_kube_ps1_shell_type)" == "zsh" ]]; then
# Use zstat '-F %s.%s' to make it compatible with low zsh version (eg: 5.0.2)
mtime=$(zstat -L +mtime -F %s.%s "${file}")
elif stat -c "%s" /dev/null &> /dev/null; then
@@ -302,13 +292,13 @@ _kube_ps1_get_ns() {
_kube_ps1_get_context_ns() {
# Set the command time
if [[ "${_KUBE_PS1_SHELL}" == "bash" ]]; then
if [[ "$(_kube_ps1_shell_type)" == "bash" ]]; then
if ((BASH_VERSINFO[0] >= 4 && BASH_VERSINFO[1] >= 2)); then
_KUBE_PS1_LAST_TIME=$(printf '%(%s)T')
else
_KUBE_PS1_LAST_TIME=$(date +%s)
fi
elif [[ "${_KUBE_PS1_SHELL}" == "zsh" ]]; then
elif [[ "$(_kube_ps1_shell_type)" == "zsh" ]]; then
_KUBE_PS1_LAST_TIME=$EPOCHREALTIME
fi
@@ -335,7 +325,7 @@ Toggle kube-ps1 prompt on
Usage: kubeon [-g | --global] [-h | --help]
With no arguments, turn on kube-ps1 status for this shell instance (default).
With no arguments, turn oon kube-ps1 status for this shell instance (default).
-g --global turn on kube-ps1 status globally
-h --help print this message

View File

@@ -30,20 +30,14 @@ function tofu_version_prompt_info() {
alias tt='tofu'
alias tta='tofu apply'
alias tta!='tofu apply -auto-approve'
alias ttap='tofu apply -parallelism=1'
alias ttapp='tofu apply tfplan'
alias ttc='tofu console'
alias ttd='tofu destroy'
alias ttd!='tofu destroy -auto-approve'
alias ttf='tofu fmt'
alias ttfr='tofu fmt -recursive'
alias tti='tofu init'
alias ttir='tofu init -reconfigure'
alias ttiu='tofu init -upgrade'
alias ttiur='tofu init -upgrade -reconfigure'
alias tto='tofu output'
alias ttp='tofu plan'
alias ttpo='tofu plan -out tfplan'
alias ttv='tofu validate'
alias tts='tofu state'
alias ttsh='tofu show'

View File

@@ -1,9 +1,49 @@
# Symfony
This plugin provides completion for [Symfony](https://symfony.com/).
This plugin provides unified completion and aliases for [Symfony](https://symfony.com/) across all versions (Symfony 1.x, 2.x, 3.x, 4.x, 5.x, and 6+).
To use it add symfony to the plugins array in your zshrc file.
The plugin automatically detects your Symfony version and console location, using:
- Native completion for Symfony 6.2+ when available
- Legacy completion for older Symfony versions
- Automatic console detection (`bin/console`, `app/console`, `console`, or `symfony`)
To use it add `symfony` to the plugins array in your zshrc file.
```bash
plugins=(... symfony)
```
## Aliases
| Alias | Command | Description |
|---------------|------------------------------|-------------------------------|
| `sf` | Auto-detected console path | Start the symfony console |
| `sfcl` | sf cache:clear | Clear the cache |
| `sfsr` | sf server:run -vvv | Run the dev server |
| `sfcw` | sf cache:warmup | Use the Bundles warmer |
| `sfroute` | sf debug:router | Show the different routes |
| `sfcontainer` | sf debug:container | List the different services |
| `sfgb` | sf generate:bundle | Generate a bundle |
| `sfgc` | sf generate:controller | Generate a controller |
| `sfgcom` | sf generate:command | Generate a command |
| `sfge` | sf doctrine:generate:entity | Generate an entity |
| `sfsu` | sf doctrine:schema:update | Update the schema in Database |
| `sfdc` | sf doctrine:database:create | Create the Database |
| `sfdev` | sf --env=dev | Update environment to `dev` |
| `sfprod` | sf --env=prod | Update environment to `prod` |
## Supported Commands
The plugin provides completion for all of the following console commands:
- `sf` (alias)
- `bin/console`
- `app/console`
- `console`
- `php bin/console`
- `php app/console`
- `php console`
- `php symfony`
## Migration from other Symfony plugins
This unified plugin replaces the need for separate `symfony2` and `symfony6` plugins. If you were previously using either of those plugins, you can simply replace them with this `symfony` plugin in your `.zshrc` file.

View File

@@ -1,13 +1,141 @@
# symfony basic command completion
# Unified Symfony plugin for all versions
# Supports Symfony 2, 3, 4, 5, and 6+ with automatic version detection
_symfony_get_command_list () {
php symfony | sed "1,/Available tasks/d" | awk 'BEGIN { cat=null; } /^[A-Za-z]+$/ { cat = $1; } /^ :[a-z]+/ { print cat $1; }'
_symfony_console_path() {
if [[ -f "bin/console" ]]; then
echo "bin/console"
elif [[ -f "app/console" ]]; then
echo "app/console"
elif [[ -f "console" ]]; then
echo "console"
elif [[ -f "symfony" ]]; then
echo "symfony"
else
return 1
fi
}
_symfony () {
if [ -f symfony ]; then
compadd `_symfony_get_command_list`
fi
_symfony_console_command() {
local console_path
console_path=$(_symfony_console_path)
if [[ -n "$console_path" ]]; then
if [[ "$console_path" == "symfony" ]]; then
echo "php symfony"
else
echo "php $console_path"
fi
else
return 1
fi
}
compdef _symfony symfony
_symfony_supports_native_completion() {
local console_cmd
console_cmd=$(_symfony_console_command)
if [[ -n "$console_cmd" ]]; then
$console_cmd _complete --no-interaction -szsh -a1 -c1 >/dev/null 2>&1
return $?
fi
return 1
}
_symfony_legacy_completion() {
local console_cmd commands
console_cmd=$(_symfony_console_command)
if [[ -n "$console_cmd" ]]; then
if [[ "$console_cmd" == *"symfony"* ]]; then
commands=$(php symfony 2>/dev/null | sed "1,/Available tasks/d" | awk 'BEGIN { cat=null; } /^[A-Za-z]+$/ { cat = $1; } /^ :[a-z]+/ { print cat $1; }')
else
commands=$($console_cmd --no-ansi 2>/dev/null | sed "1,/Available commands/d" | awk '/^ ?[^ ]+ / { print $1 }')
fi
compadd ${(f)commands}
fi
}
_symfony_native_completion() {
local lastParam flagPrefix requestComp out comp
local -a completions
words=("${=words[1,CURRENT]}") lastParam=${words[-1]}
setopt local_options BASH_REMATCH
if [[ "${lastParam}" =~ '-.*=' ]]; then
flagPrefix="-P ${BASH_REMATCH}"
fi
local console_cmd
console_cmd=$(_symfony_console_command)
if [[ -z "$console_cmd" ]]; then
return 1
fi
requestComp="$console_cmd _complete --no-interaction -szsh -a1 -c$((CURRENT-1))" i=""
for w in ${words[@]}; do
w=$(printf -- '%b' "$w")
quote="${w:0:1}"
if [ "$quote" = \' ]; then
w="${w%\'}"
w="${w#\'}"
elif [ "$quote" = \" ]; then
w="${w%\"}"
w="${w#\"}"
fi
if [ ! -z "$w" ]; then
i="${i}-i${w} "
fi
done
if [ "${i}" = "" ]; then
requestComp="${requestComp} -i\" \""
else
requestComp="${requestComp} ${i}"
fi
out=$(eval ${requestComp} 2>/dev/null)
while IFS='\n' read -r comp; do
if [ -n "$comp" ]; then
comp=${comp//:/\\:}
local tab=$(printf '\t')
comp=${comp//$tab/:}
completions+=${comp}
fi
done < <(printf "%s\n" "${out[@]}")
eval _describe "completions" completions $flagPrefix
return $?
}
_symfony() {
if _symfony_supports_native_completion; then
_symfony_native_completion
else
_symfony_legacy_completion
fi
}
# Aliases
alias sf='$(_symfony_console_command)'
alias sfcl='sf cache:clear'
alias sfsr='sf server:run -vvv'
alias sfcw='sf cache:warmup'
alias sfroute='sf debug:router'
alias sfcontainer='sf debug:container'
alias sfgb='sf generate:bundle'
alias sfgc='sf generate:controller'
alias sfgcom='sf generate:command'
alias sfge='sf doctrine:generate:entity'
alias sfsu='sf doctrine:schema:update'
alias sfdc='sf doctrine:database:create'
alias sfdev='sf --env=dev'
alias sfprod='sf --env=prod'
# Completions for all supported console commands
compdef _symfony sf
compdef _symfony 'php app/console'
compdef _symfony 'php bin/console'
compdef _symfony 'php console'
compdef _symfony 'php symfony'
compdef _symfony 'app/console'
compdef _symfony 'bin/console'
compdef _symfony console

View File

@@ -1,5 +1,10 @@
# Symfony2
> **⚠️ DEPRECATION WARNING**
> This plugin is deprecated and will be removed in a future release.
> **Please migrate to the unified [`symfony`](../symfony/) plugin** which supports all Symfony versions (2.x through 6+).
> Simply change `symfony2` to `symfony` in your `.zshrc` plugins list.
This plugin provides completion for [Symfony 2](https://symfony.com/), as well as aliases for frequent Symfony commands.
To use it add symfony2 to the plugins array in your zshrc file.
@@ -8,6 +13,16 @@ To use it add symfony2 to the plugins array in your zshrc file.
plugins=(... symfony2)
```
## Migration
**Recommended:** Use the unified [`symfony`](../symfony/) plugin instead:
```bash
plugins=(... symfony) # Replace symfony2 with symfony
```
The unified plugin provides the same functionality plus automatic version detection and support for all Symfony versions.
## Aliases
| Alias | Command | Description |

View File

@@ -1,4 +1,11 @@
# Symfony2 basic command completion
#
# DEPRECATION WARNING: This plugin is deprecated and will be removed in a future release.
# Please migrate to the unified 'symfony' plugin which supports all Symfony versions.
# Simply change 'symfony2' to 'symfony' in your .zshrc plugins list.
#
echo "⚠️ WARNING: The 'symfony2' plugin is deprecated. Please use the unified 'symfony' plugin instead." >&2
echo " Change 'symfony2' to 'symfony' in your .zshrc plugins list." >&2
_symfony_console () {
echo "php $(find . -maxdepth 2 -mindepth 1 -name 'console' -type f | head -n 1)"

View File

@@ -1,5 +1,10 @@
# Symfony
> **⚠️ DEPRECATION WARNING**
> This plugin is deprecated and will be removed in a future release.
> **Please migrate to the unified [`symfony`](../symfony/) plugin** which supports all Symfony versions (2.x through 6+).
> Simply change `symfony6` to `symfony` in your `.zshrc` plugins list.
This plugin provides native completion for [Symfony](https://symfony.com/), but requires at least Symfony 6.2.
To use it add `symfony6` to the plugins array in your zshrc file.
@@ -7,3 +12,13 @@ To use it add `symfony6` to the plugins array in your zshrc file.
```bash
plugins=(... symfony6)
```
## Migration
**Recommended:** Use the unified [`symfony`](../symfony/) plugin instead:
```bash
plugins=(... symfony) # Replace symfony6 with symfony
```
The unified plugin provides the same native completion functionality plus automatic version detection and support for all Symfony versions.

View File

@@ -7,6 +7,14 @@
# For the full copyright and license information, please view
# https://symfony.com/doc/current/contributing/code/license.html
#
# DEPRECATION WARNING: This plugin is deprecated and will be removed in a future release.
# Please migrate to the unified 'symfony' plugin which supports all Symfony versions.
# Simply change 'symfony6' to 'symfony' in your .zshrc plugins list.
#
echo "⚠️ WARNING: The 'symfony6' plugin is deprecated. Please use the unified 'symfony' plugin instead." >&2
echo " Change 'symfony6' to 'symfony' in your .zshrc plugins list." >&2
#
# zsh completions for console
#

View File

@@ -4,21 +4,21 @@ function tf_prompt_info() {
# check if in terraform dir and file exists
[[ -d "${TF_DATA_DIR:-.terraform}" && -r "${TF_DATA_DIR:-.terraform}/environment" ]] || return
local workspace="$(<"${TF_DATA_DIR:-.terraform}/environment")"
local workspace="$(< "${TF_DATA_DIR:-.terraform}/environment")"
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-]}"
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 tfa!='terraform apply -auto-approve'
alias tfap='terraform apply -parallelism=1'
alias tfapp='terraform apply tfplan'
alias tfc='terraform console'
alias tfd='terraform destroy'
alias tfd!='terraform destroy -auto-approve'
@@ -31,7 +31,6 @@ alias tfiu='terraform init -upgrade'
alias tfiur='terraform init -upgrade -reconfigure'
alias tfo='terraform output'
alias tfp='terraform plan'
alias tfpo='terraform plan -out tfplan'
alias tfv='terraform validate'
alias tfs='terraform state'
alias tft='terraform test'