1
0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2025-12-12 15:34:50 +08:00

Compare commits

...

5 Commits

Author SHA1 Message Date
Patrik Wehrli
04ae27c366
Merge 4e3fed007a into f84341c574 2025-12-11 19:47:19 +01:00
tDwtp
f84341c574
fix(git): git_status_prompt should respect spaces in prefixes (#13478) 2025-12-11 15:05:23 +01:00
Tanzim Hossain Romel
92aed2e936
feat(extract): add unar as fallback for RAR extraction (#13472)
Add unar as a fallback when unrar is not available for extracting
RAR files. This addresses the issue where unrar has been removed
from Homebrew due to licensing issues.

The extraction now:
- Prefers unrar if available (backward compatible)
- Falls back to unar if unrar is not found
- Shows helpful error message if neither tool is installed
2025-12-09 20:14:31 +01:00
Patrik Wehrli
4e3fed007a
Merge branch 'ohmyzsh:master' into features/rke-plugin 2022-10-19 13:43:00 +02:00
Patrik Wehrli
0fc24e62cf Add rke command completion 2020-10-13 21:37:47 +02:00
4 changed files with 188 additions and 2 deletions

View File

@ -117,7 +117,7 @@ function _omz_git_prompt_status() {
fi
# For each status prefix, do a regex comparison
for status_prefix in ${(k)prefix_constant_map}; do
for status_prefix in "${(@k)prefix_constant_map}"; do
local status_constant="${prefix_constant_map[$status_prefix]}"
local status_regex=$'(^|\n)'"$status_prefix"

View File

@ -77,7 +77,15 @@ EOF
(*.lzma) unlzma "$full_path" ;;
(*.z) uncompress "$full_path" ;;
(*.zip|*.war|*.jar|*.ear|*.sublime-package|*.ipa|*.ipsw|*.xpi|*.apk|*.aar|*.whl|*.vsix|*.crx|*.pk3|*.pk4) unzip "$full_path" ;;
(*.rar) unrar x -ad "$full_path" ;;
(*.rar)
if (( $+commands[unrar] )); then
unrar x -ad "$full_path"
elif (( $+commands[unar] )); then
unar -o . "$full_path"
else
echo "extract: cannot extract RAR files: install unrar or unar" >&2
success=1
fi ;;
(*.rpm)
rpm2cpio "$full_path" | cpio --quiet -id ;;
(*.7z | *.7z.[0-9]* | *.pk7) 7za x "$full_path" ;;

9
plugins/rke/README.md Normal file
View File

@ -0,0 +1,9 @@
# RKE plugin
This plugin adds auto-completion for [rke](https://rancher.com/products/rke/).
To use it add `rke` to the plugins array in your zshrc file.
```zsh
plugins=(... rke)
```

169
plugins/rke/_rke Normal file
View File

@ -0,0 +1,169 @@
#compdef rke
typeset -A opt_args
_arguments -C \
'1:cmd:->cmds' \
'2:subcmd:->subcmds' \
'*:: :->args' \
&& ret=0
case "$state" in
(cmds)
local commands; commands=(
'up:Bring the cluster up'
'remove:Teardown the cluster and clean cluster nodes'
'version:Show cluster Kubernetes version'
'config:Setup cluster configuration'
'etcd:etcd snapshot save/restore operations in k8s cluster'
'cert:Certificates management for RKE cluster'
'encrypt:Manage cluster encryption provider keys'
'help:Shows a list of commands or help for one command'
)
_describe -t commands 'command' commands && ret=0
;;
(subcmds)
case $line[1] in
(up)
local ups; ups=(
'--config:Specify an alternate cluster YAML file (default: "cluster.yml") $RKE_CONFIG'
'--local:Deploy Kubernetes cluster locally'
'--dind:Deploy Kubernetes cluster in docker containers (experimental)'
'--dind-storage-driver:Storage driver for the docker in docker containers (experimental)'
'--dind-dns-server:DNS resolver to be used by docker in docker container. Useful if host is running systemd-resovld (default: "8.8.8.8")'
'--update-only:Skip idempotent deployment of control and etcd plane'
'--disable-port-check:Disable port check validation between nodes'
'--init:Initiate RKE cluster'
'--cert-dir:Specify a certificate dir path'
'--custom-certs:Use custom certificates from a cert dir'
'--ssh-agent-auth:Use SSH Agent Auth defined by SSH_AUTH_SOCK'
'--ignore-docker-version:Disable Docker version check'
)
_describe -t ups 'up' ups && ret=0
;;
(remove)
local removes; removes=(
'--config:Specify an alternate cluster YAML file (default: "cluster.yml") $RKE_CONFIG'
'--force:Force removal of the cluster'
'--local:Remove Kubernetes cluster locally'
'--dind:Remove Kubernetes cluster deplozed in dind mode'
'--ssh-agent-auth:Use SSH Agent Auth defined by SSH_AUTH_SOCK'
'--ignore-docker-version:Disable Docker version check'
)
_describe -t removes 'remove' removes && ret=0
;;
(version)
local versions; versions=(
'--config:Specify an alternate cluster YAML file (default: "cluster.yml") $RKE_CONFIG'
)
_describe -t versions 'version' versions && ret=0
;;
(config)
local configs; configs=(
'--name:Name of the configuration file (default: "cluster.yml")'
'-n:Name of the configuration file (default: "cluster.yml")'
'--empty:Generate Empty configuration file'
'-e:Generate Empty configuration file'
'--print:Print configuration'
'-p:Print configuration'
'--system-images:Generate the default system images'
'-s:Generate the default system images'
'--list-version:List the default kubernetes version'
'-l:List the default kubernetes version'
'--all:Used with -s and -l, get all available versions'
'-a:Used with -s and -l, get all available versions'
'--version:Generate the default system images for specific k8s versions'
)
_describe -t configs 'config' configs && ret=0
;;
(etcd)
local etcds; etcds=(
'snapshot-save:Take snapshot on all etcd hosts'
'snapshot-restore:Restore existing snapshot'
)
_describe -t etcds 'etcd' etcds && ret=0
;;
(cert)
local certs; certs=(
'rotate:Rotate RKE cluster certificates'
'generate-csr:Generate certificate sign requests for k8s components'
)
_describe -t certs 'cert' certs && ret=0
;;
(encrypt)
local encrypts; encrypts=(
'rotate-key:Rotate cluster encryption provider key'
)
_describe -t encrypts "encrypts" encrypts && ret=0
;;
esac
;;
(args)
case $line[2] in
(snapshot-save)
local saveopts; saveopts=(
'--name:Specify snapshot name'
'--config:Specify an alternate cluster YAML file (default: "cluster.yml") $RKE_CONFIG'
'--s3:Enabled backup to s3'
'--s3-endpoint:Specify s3 endpoint url (default: "s3.amazonaws.com")'
'--s3-endpoint-ca:Specify a custom CA cert to connect to S3 endpoint'
'--access-key:Specify s3 accessKey'
'--secret-key:Specify s3 secretKey'
'--bucket-name:Specify s3 bucket name'
'--region:Specify the s3 bucket location (optional)'
'--folder:Specify s3 folder name'
'--ssh-agent-auth:Use SSH Agent Auth defined by SSH_AUTH_SOCK'
'--ignore-docker-version:Disable Docker version check'
)
_describe -t saveopts 'snapshot-save' saveopts && ret=0
;;
(snapshot-restore)
local restoreopts; restoreopts=(
'--name:Specify snapshot name'
'--config:Specify an alternate cluster YAML file (default: "cluster.yml") $RKE_CONFIG'
'--s3:Enabled backup to s3'
'--s3-endpoint:Specify s3 endpoint url (default: "s3.amazonaws.com")'
'--s3-endpoint-ca:Specify a custom CA cert to connect to S3 endpoint'
'--access-key:Specify s3 accessKey'
'--secret-key:Specify s3 secretKey'
'--bucket-name:Specify s3 bucket name'
'--region:Specify the s3 bucket location (optional)'
'--folder:Specify s3 folder name'
'--cert-dir value:Specify a certificate dir path'
'--custom-certs:Use custom certificates from a cert dir'
'--use-local-state:Use local state file (do not check or use snapshot archive for state file)'
'--ssh-agent-auth:Use SSH Agent Auth defined by SSH_AUTH_SOCK'
'--ignore-docker-version:Disable Docker version check'
)
_describe -t restoreopts 'snapshot-restore' restoreopts && ret=0
;;
(rotate)
local rotateopts; rotateopts=(
'--config:Specify an alternate cluster YAML file (default: "cluster.yml") $RKE_CONFIG'
'--service:Specify a k8s service to rotate certs, (allowed values: kube-apiserver, kube-controller-manager, kube-scheduler, kubelet, kube-proxy, etcd)'
'--rotate-ca:Rotate all certificates including CA certs'
'--ssh-agent-auth:Use SSH Agent Auth defined by SSH_AUTH_SOCK'
'--ignore-docker-version:Disable Docker version check'
)
_describe -t rotateopts 'rotate' rotateopts && ret=0
;;
(generate-csr)
local generatecsropts; generatecsropts=(
'--config:Specify an alternate cluster YAML file (default: "cluster.yml") $RKE_CONFIG'
'--cert-dir: Specify a certificate dir path'
)
_describe -t generatecsropts 'generate-csr' generatecsropts && ret=0
;;
(rotate-key)
local rotatekeyopts; rotatekeyopts=(
'--config:Specify an alternate cluster YAML file (default: "cluster.yml") $RKE_CONFIG'
'--ssh-agent-auth:Use SSH Agent Auth defined by SSH_AUTH_SOCK'
'--ignore-docker-version:Disable Docker version check'
)
_describe -t rotatekeyopts 'rotate-key' rotatekeyopts && ret=0
;;
esac
;;
esac
return ret