mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-01-25 01:47:25 +08:00
Compare commits
No commits in common. "fcb6fa78a1304f9a8eff2a7563658de04a13d499" and "3b1699b59527ee8095397b9909a37d55689a0481" have entirely different histories.
fcb6fa78a1
...
3b1699b595
@ -3,7 +3,7 @@
|
|||||||
This plugin provides completion support for [awscli](https://docs.aws.amazon.com/cli/latest/reference/index.html)
|
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 and display them in the prompt.
|
||||||
|
|
||||||
To use it, make sure [jq](https://stedolan.github.io/jq/download/) is installed, and add `aws` to the plugins array in your zshrc file.
|
To use it, add `aws` to the plugins array in your zshrc file.
|
||||||
|
|
||||||
```zsh
|
```zsh
|
||||||
plugins=(... aws)
|
plugins=(... aws)
|
||||||
|
|||||||
@ -5,7 +5,7 @@ function agp() {
|
|||||||
# AWS profile selection
|
# AWS profile selection
|
||||||
function asp() {
|
function asp() {
|
||||||
if [[ -z "$1" ]]; then
|
if [[ -z "$1" ]]; then
|
||||||
unset AWS_DEFAULT_PROFILE AWS_PROFILE AWS_EB_PROFILE AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN
|
unset AWS_DEFAULT_PROFILE AWS_PROFILE AWS_EB_PROFILE
|
||||||
echo AWS profile cleared.
|
echo AWS profile cleared.
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
@ -18,61 +18,9 @@ function asp() {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local exists="$(aws configure get aws_access_key_id --profile $1)"
|
|
||||||
local role_arn="$(aws configure get role_arn --profile $1)"
|
|
||||||
local aws_access_key_id=""
|
|
||||||
local aws_secret_access_key=""
|
|
||||||
local aws_session_token=""
|
|
||||||
if [[ -n $exists || -n $role_arn ]]; then
|
|
||||||
if [[ -n $role_arn ]]; then
|
|
||||||
local mfa_serial="$(aws configure get mfa_serial --profile $1)"
|
|
||||||
local mfa_token=""
|
|
||||||
local mfa_opt=""
|
|
||||||
if [[ -n $mfa_serial ]]; then
|
|
||||||
echo "Please enter your MFA token for $mfa_serial:"
|
|
||||||
read mfa_token
|
|
||||||
echo "Please enter the session duration in seconds (900-43200; default: 3600, which is the default maximum for a role):"
|
|
||||||
read sess_duration
|
|
||||||
if [[ -z $sess_duration ]]; then
|
|
||||||
sess_duration = 3600
|
|
||||||
fi
|
|
||||||
mfa_opt="--serial-number $mfa_serial --token-code $mfa_token --duration-seconds $sess_duration"
|
|
||||||
fi
|
|
||||||
|
|
||||||
local ext_id="$(aws configure get external_id --profile $1)"
|
|
||||||
local extid_opt=""
|
|
||||||
if [[ -n $ext_id ]]; then
|
|
||||||
extid_opt="--external-id $ext_id"
|
|
||||||
fi
|
|
||||||
|
|
||||||
local profile=$1
|
|
||||||
local source_profile="$(aws configure get source_profile --profile $1)"
|
|
||||||
if [[ -n $source_profile ]]; then
|
|
||||||
profile=$source_profile
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Assuming role $role_arn using profile $profile"
|
|
||||||
local assume_cmd=(aws sts assume-role "--profile=$profile" "--role-arn $role_arn" "--role-session-name "$profile"" "$mfa_opt" "$extid_opt")
|
|
||||||
local JSON="$(eval ${assume_cmd[@]})"
|
|
||||||
|
|
||||||
aws_access_key_id="$(echo $JSON | jq -r '.Credentials.AccessKeyId')"
|
|
||||||
aws_secret_access_key="$(echo $JSON | jq -r '.Credentials.SecretAccessKey')"
|
|
||||||
aws_session_token="$(echo $JSON | jq -r '.Credentials.SessionToken')"
|
|
||||||
else
|
|
||||||
aws_access_key_id="$(aws configure get aws_access_key_id --profile $1)"
|
|
||||||
aws_secret_access_key="$(aws configure get aws_secret_access_key --profile $1)"
|
|
||||||
aws_session_token=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
export AWS_DEFAULT_PROFILE=$1
|
export AWS_DEFAULT_PROFILE=$1
|
||||||
export AWS_PROFILE=$1
|
export AWS_PROFILE=$1
|
||||||
export AWS_EB_PROFILE=$1
|
export AWS_EB_PROFILE=$1
|
||||||
export AWS_ACCESS_KEY_ID=$aws_access_key_id
|
|
||||||
export AWS_SECRET_ACCESS_KEY=$aws_secret_access_key
|
|
||||||
[[ -z "$aws_session_token" ]] && unset AWS_SESSION_TOKEN || export AWS_SESSION_TOKEN=$aws_session_token
|
|
||||||
|
|
||||||
echo "Switched to AWS Profile: $1";
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function aws_change_access_key() {
|
function aws_change_access_key() {
|
||||||
@ -93,7 +41,7 @@ function aws_change_access_key() {
|
|||||||
|
|
||||||
function aws_profiles() {
|
function aws_profiles() {
|
||||||
[[ -r "${AWS_CONFIG_FILE:-$HOME/.aws/config}" ]] || return 1
|
[[ -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:]]*([-_[:alnum:]\.@]+)\][[:space:]]*$/\2/g'
|
grep '\[profile' "${AWS_CONFIG_FILE:-$HOME/.aws/config}"|sed -e 's/.*profile \([a-zA-Z0-9@_\.-]*\).*/\1/'
|
||||||
}
|
}
|
||||||
|
|
||||||
function _aws_profiles() {
|
function _aws_profiles() {
|
||||||
|
|||||||
@ -2,24 +2,25 @@
|
|||||||
|
|
||||||
# zsh completion wrapper for git
|
# zsh completion wrapper for git
|
||||||
#
|
#
|
||||||
# Copyright (c) 2012-2020 Felipe Contreras <felipe.contreras@gmail.com>
|
# Copyright (c) 2012-2013 Felipe Contreras <felipe.contreras@gmail.com>
|
||||||
#
|
#
|
||||||
# The recommended way to install this script is to make a copy of it as a
|
# You need git's bash completion script installed somewhere, by default it
|
||||||
# file named '_git' inside any directory in your fpath.
|
# would be the location bash-completion uses.
|
||||||
#
|
#
|
||||||
# For example, create a directory '~/.zsh/', copy this file to '~/.zsh/_git',
|
# If your script is somewhere else, you can configure it on your ~/.zshrc:
|
||||||
# and then add the following to your ~/.zshrc file:
|
#
|
||||||
|
# zstyle ':completion:*:*:git:*' script ~/.git-completion.zsh
|
||||||
|
#
|
||||||
|
# The recommended way to install this script is to copy to '~/.zsh/_git', and
|
||||||
|
# then add the following to your ~/.zshrc file:
|
||||||
#
|
#
|
||||||
# fpath=(~/.zsh $fpath)
|
# fpath=(~/.zsh $fpath)
|
||||||
#
|
|
||||||
# You need git's bash completion script installed. By default bash-completion's
|
complete ()
|
||||||
# location will be used (e.g. pkg-config --variable=completionsdir bash-completion).
|
{
|
||||||
#
|
# do nothing
|
||||||
# If your bash completion script is somewhere else, you can specify the
|
return 0
|
||||||
# location in your ~/.zshrc:
|
}
|
||||||
#
|
|
||||||
# zstyle ':completion:*:*:git:*' script ~/.git-completion.bash
|
|
||||||
#
|
|
||||||
|
|
||||||
zstyle -T ':completion:*:*:git:*' tag-order && \
|
zstyle -T ':completion:*:*:git:*' tag-order && \
|
||||||
zstyle ':completion:*:*:git:*' tag-order 'common-commands'
|
zstyle ':completion:*:*:git:*' tag-order 'common-commands'
|
||||||
@ -29,17 +30,16 @@ if [ -z "$script" ]; then
|
|||||||
local -a locations
|
local -a locations
|
||||||
local e
|
local e
|
||||||
locations=(
|
locations=(
|
||||||
"$(dirname ${funcsourcetrace[1]%:*})"/git-completion.bash
|
"$(dirname ${funcsourcetrace[1]%:*})/git-completion.bash"
|
||||||
"$HOME/.local/share/bash-completion/completions/git"
|
'/etc/bash_completion.d/git' # fedora, old debian
|
||||||
"$(pkg-config --variable=completionsdir bash-completion)"/git
|
'/usr/share/bash-completion/completions/git' # arch, ubuntu, new debian
|
||||||
'/usr/share/bash-completion/completions/git'
|
'/usr/share/bash-completion/git' # gentoo
|
||||||
'/etc/bash_completion.d/git' # old debian
|
|
||||||
)
|
)
|
||||||
for e in $locations; do
|
for e in $locations; do
|
||||||
test -f $e && script="$e" && break
|
test -f $e && script="$e" && break
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
GIT_SOURCING_ZSH_COMPLETION=y . "$script"
|
ZSH_VERSION='' . "$script"
|
||||||
|
|
||||||
__gitcomp ()
|
__gitcomp ()
|
||||||
{
|
{
|
||||||
@ -50,35 +50,13 @@ __gitcomp ()
|
|||||||
case "$cur_" in
|
case "$cur_" in
|
||||||
--*=)
|
--*=)
|
||||||
;;
|
;;
|
||||||
--no-*)
|
|
||||||
local c IFS=$' \t\n'
|
|
||||||
local -a array
|
|
||||||
for c in ${=1}; do
|
|
||||||
if [[ $c == "--" ]]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
c="$c${4-}"
|
|
||||||
case $c in
|
|
||||||
--*=|*.) ;;
|
|
||||||
*) c="$c " ;;
|
|
||||||
esac
|
|
||||||
array+=("$c")
|
|
||||||
done
|
|
||||||
compset -P '*[=:]'
|
|
||||||
compadd -Q -S '' -p "${2-}" -a -- array && _ret=0
|
|
||||||
;;
|
|
||||||
*)
|
*)
|
||||||
local c IFS=$' \t\n'
|
local c IFS=$' \t\n'
|
||||||
local -a array
|
local -a array
|
||||||
for c in ${=1}; do
|
for c in ${=1}; do
|
||||||
if [[ $c == "--" ]]; then
|
|
||||||
c="--no-...${4-}"
|
|
||||||
array+=("$c ")
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
c="$c${4-}"
|
c="$c${4-}"
|
||||||
case $c in
|
case $c in
|
||||||
--*=|*.) ;;
|
--*=*|*.) ;;
|
||||||
*) c="$c " ;;
|
*) c="$c " ;;
|
||||||
esac
|
esac
|
||||||
array+=("$c")
|
array+=("$c")
|
||||||
@ -93,57 +71,35 @@ __gitcomp_direct ()
|
|||||||
{
|
{
|
||||||
emulate -L zsh
|
emulate -L zsh
|
||||||
|
|
||||||
|
local IFS=$'\n'
|
||||||
compset -P '*[=:]'
|
compset -P '*[=:]'
|
||||||
compadd -Q -S '' -- ${(f)1} && _ret=0
|
compadd -Q -- ${=1} && _ret=0
|
||||||
}
|
}
|
||||||
|
|
||||||
__gitcomp_nl ()
|
__gitcomp_nl ()
|
||||||
{
|
{
|
||||||
emulate -L zsh
|
emulate -L zsh
|
||||||
|
|
||||||
|
local IFS=$'\n'
|
||||||
compset -P '*[=:]'
|
compset -P '*[=:]'
|
||||||
compadd -Q -S "${4- }" -p "${2-}" -- ${(f)1} && _ret=0
|
compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
|
||||||
}
|
}
|
||||||
|
|
||||||
__gitcomp_nl_append ()
|
__gitcomp_nl_append ()
|
||||||
{
|
{
|
||||||
emulate -L zsh
|
emulate -L zsh
|
||||||
|
|
||||||
compset -P '*[=:]'
|
local IFS=$'\n'
|
||||||
compadd -Q -S "${4- }" -p "${2-}" -- ${(f)1} && _ret=0
|
compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
|
||||||
}
|
|
||||||
|
|
||||||
__gitcomp_file_direct ()
|
|
||||||
{
|
|
||||||
emulate -L zsh
|
|
||||||
|
|
||||||
compadd -f -- ${(f)1} && _ret=0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
__gitcomp_file ()
|
__gitcomp_file ()
|
||||||
{
|
{
|
||||||
emulate -L zsh
|
emulate -L zsh
|
||||||
|
|
||||||
compadd -f -p "${2-}" -- ${(f)1} && _ret=0
|
local IFS=$'\n'
|
||||||
}
|
compset -P '*[=:]'
|
||||||
|
compadd -Q -p "${2-}" -f -- ${=1} && _ret=0
|
||||||
_git_zsh ()
|
|
||||||
{
|
|
||||||
__gitcomp "v1.0"
|
|
||||||
}
|
|
||||||
|
|
||||||
__git_complete_command ()
|
|
||||||
{
|
|
||||||
emulate -L zsh
|
|
||||||
|
|
||||||
local command="$1"
|
|
||||||
local completion_func="_git_${command//-/_}"
|
|
||||||
if (( $+functions[$completion_func] )); then
|
|
||||||
emulate ksh -c $completion_func
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
__git_zsh_bash_func ()
|
__git_zsh_bash_func ()
|
||||||
@ -152,12 +108,14 @@ __git_zsh_bash_func ()
|
|||||||
|
|
||||||
local command=$1
|
local command=$1
|
||||||
|
|
||||||
__git_complete_command "$command" && return
|
local completion_func="_git_${command//-/_}"
|
||||||
|
declare -f $completion_func >/dev/null && $completion_func && return
|
||||||
|
|
||||||
local expansion=$(__git_aliased_command "$command")
|
local expansion=$(__git_aliased_command "$command")
|
||||||
if [ -n "$expansion" ]; then
|
if [ -n "$expansion" ]; then
|
||||||
words[1]=$expansion
|
words[1]=$expansion
|
||||||
__git_complete_command "$expansion"
|
completion_func="_git_${expansion//-/_}"
|
||||||
|
declare -f $completion_func >/dev/null && $completion_func
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -182,11 +140,9 @@ __git_zsh_cmd_common ()
|
|||||||
push:'update remote refs along with associated objects'
|
push:'update remote refs along with associated objects'
|
||||||
rebase:'forward-port local commits to the updated upstream head'
|
rebase:'forward-port local commits to the updated upstream head'
|
||||||
reset:'reset current HEAD to the specified state'
|
reset:'reset current HEAD to the specified state'
|
||||||
restore:'restore working tree files'
|
|
||||||
rm:'remove files from the working tree and from the index'
|
rm:'remove files from the working tree and from the index'
|
||||||
show:'show various types of objects'
|
show:'show various types of objects'
|
||||||
status:'show the working tree status'
|
status:'show the working tree status'
|
||||||
switch:'switch branches'
|
|
||||||
tag:'create, list, delete or verify a tag object signed with GPG')
|
tag:'create, list, delete or verify a tag object signed with GPG')
|
||||||
_describe -t common-commands 'common commands' list && _ret=0
|
_describe -t common-commands 'common commands' list && _ret=0
|
||||||
}
|
}
|
||||||
@ -194,9 +150,8 @@ __git_zsh_cmd_common ()
|
|||||||
__git_zsh_cmd_alias ()
|
__git_zsh_cmd_alias ()
|
||||||
{
|
{
|
||||||
local -a list
|
local -a list
|
||||||
list=(${${(0)"$(git config -z --get-regexp '^alias\.*')"}#alias.})
|
list=(${${${(0)"$(git config -z --get-regexp '^alias\.')"}#alias.}%$'\n'*})
|
||||||
list=(${(f)"$(printf "%s:alias for '%s'\n" ${(f@)list})"})
|
_describe -t alias-commands 'aliases' list $* && _ret=0
|
||||||
_describe -t alias-commands 'aliases' list && _ret=0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
__git_zsh_cmd_all ()
|
__git_zsh_cmd_all ()
|
||||||
@ -234,13 +189,10 @@ __git_zsh_main ()
|
|||||||
|
|
||||||
case $state in
|
case $state in
|
||||||
(command)
|
(command)
|
||||||
_tags common-commands alias-commands all-commands
|
_alternative \
|
||||||
while _tags; do
|
'alias-commands:alias:__git_zsh_cmd_alias' \
|
||||||
_requested common-commands && __git_zsh_cmd_common
|
'common-commands:common:__git_zsh_cmd_common' \
|
||||||
_requested alias-commands && __git_zsh_cmd_alias
|
'all-commands:all:__git_zsh_cmd_all' && _ret=0
|
||||||
_requested all-commands && __git_zsh_cmd_all
|
|
||||||
let _ret || break
|
|
||||||
done
|
|
||||||
;;
|
;;
|
||||||
(arg)
|
(arg)
|
||||||
local command="${words[1]}" __git_dir
|
local command="${words[1]}" __git_dir
|
||||||
@ -275,8 +227,6 @@ _git ()
|
|||||||
emulate ksh -c __${service}_main
|
emulate ksh -c __${service}_main
|
||||||
elif (( $+functions[_${service}] )); then
|
elif (( $+functions[_${service}] )); then
|
||||||
emulate ksh -c _${service}
|
emulate ksh -c _${service}
|
||||||
elif (( $+functions[_${service//-/_}] )); then
|
|
||||||
emulate ksh -c _${service//-/_}
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
let _ret && _default && _ret=0
|
let _ret && _default && _ret=0
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -70,15 +70,6 @@
|
|||||||
# state symbols by setting GIT_PS1_STATESEPARATOR. The default separator
|
# state symbols by setting GIT_PS1_STATESEPARATOR. The default separator
|
||||||
# is SP.
|
# is SP.
|
||||||
#
|
#
|
||||||
# When there is an in-progress operation such as a merge, rebase,
|
|
||||||
# revert, cherry-pick, or bisect, the prompt will include information
|
|
||||||
# related to the operation, often in the form "|<OPERATION-NAME>".
|
|
||||||
#
|
|
||||||
# When the repository has a sparse-checkout, a notification of the form
|
|
||||||
# "|SPARSE" will be included in the prompt. This can be shortened to a
|
|
||||||
# single '?' character by setting GIT_PS1_COMPRESSSPARSESTATE, or omitted
|
|
||||||
# by setting GIT_PS1_OMITSPARSESTATE.
|
|
||||||
#
|
|
||||||
# By default, __git_ps1 will compare HEAD to your SVN upstream if it can
|
# By default, __git_ps1 will compare HEAD to your SVN upstream if it can
|
||||||
# find one, or @{upstream} otherwise. Once you have set
|
# find one, or @{upstream} otherwise. Once you have set
|
||||||
# GIT_PS1_SHOWUPSTREAM, you can override it on a per-repository basis by
|
# GIT_PS1_SHOWUPSTREAM, you can override it on a per-repository basis by
|
||||||
@ -97,8 +88,7 @@
|
|||||||
# If you would like a colored hint about the current dirty state, set
|
# 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
|
# GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on
|
||||||
# the colored output of "git status -sb" and are available only when
|
# the colored output of "git status -sb" and are available only when
|
||||||
# using __git_ps1 for PROMPT_COMMAND or precmd in Bash,
|
# using __git_ps1 for PROMPT_COMMAND or precmd.
|
||||||
# but always available in Zsh.
|
|
||||||
#
|
#
|
||||||
# If you would like __git_ps1 to do nothing in the case when the current
|
# 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
|
# directory is set up to be ignored by git, then set
|
||||||
@ -296,37 +286,6 @@ __git_eread ()
|
|||||||
test -r "$1" && IFS=$'\r\n' read "$2" <"$1"
|
test -r "$1" && IFS=$'\r\n' read "$2" <"$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
# see if a cherry-pick or revert is in progress, if the user has committed a
|
|
||||||
# conflict resolution with 'git commit' in the middle of a sequence of picks or
|
|
||||||
# reverts then CHERRY_PICK_HEAD/REVERT_HEAD will not exist so we have to read
|
|
||||||
# the todo file.
|
|
||||||
__git_sequencer_status ()
|
|
||||||
{
|
|
||||||
local todo
|
|
||||||
if test -f "$g/CHERRY_PICK_HEAD"
|
|
||||||
then
|
|
||||||
r="|CHERRY-PICKING"
|
|
||||||
return 0;
|
|
||||||
elif test -f "$g/REVERT_HEAD"
|
|
||||||
then
|
|
||||||
r="|REVERTING"
|
|
||||||
return 0;
|
|
||||||
elif __git_eread "$g/sequencer/todo" todo
|
|
||||||
then
|
|
||||||
case "$todo" in
|
|
||||||
p[\ \ ]|pick[\ \ ]*)
|
|
||||||
r="|CHERRY-PICKING"
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
revert[\ \ ]*)
|
|
||||||
r="|REVERTING"
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# __git_ps1 accepts 0 or 1 arguments (i.e., format string)
|
# __git_ps1 accepts 0 or 1 arguments (i.e., format string)
|
||||||
# when called from PS1 using command substitution
|
# when called from PS1 using command substitution
|
||||||
# in this mode it prints text to add to bash PS1 prompt (includes branch name)
|
# in this mode it prints text to add to bash PS1 prompt (includes branch name)
|
||||||
@ -431,13 +390,6 @@ __git_ps1 ()
|
|||||||
return $exit
|
return $exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local sparse=""
|
|
||||||
if [ -z "${GIT_PS1_COMPRESSSPARSESTATE}" ] &&
|
|
||||||
[ -z "${GIT_PS1_OMITSPARSESTATE}" ] &&
|
|
||||||
[ "$(git config --bool core.sparseCheckout)" = "true" ]; then
|
|
||||||
sparse="|SPARSE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
local r=""
|
local r=""
|
||||||
local b=""
|
local b=""
|
||||||
local step=""
|
local step=""
|
||||||
@ -446,7 +398,11 @@ __git_ps1 ()
|
|||||||
__git_eread "$g/rebase-merge/head-name" b
|
__git_eread "$g/rebase-merge/head-name" b
|
||||||
__git_eread "$g/rebase-merge/msgnum" step
|
__git_eread "$g/rebase-merge/msgnum" step
|
||||||
__git_eread "$g/rebase-merge/end" total
|
__git_eread "$g/rebase-merge/end" total
|
||||||
r="|REBASE"
|
if [ -f "$g/rebase-merge/interactive" ]; then
|
||||||
|
r="|REBASE-i"
|
||||||
|
else
|
||||||
|
r="|REBASE-m"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
if [ -d "$g/rebase-apply" ]; then
|
if [ -d "$g/rebase-apply" ]; then
|
||||||
__git_eread "$g/rebase-apply/next" step
|
__git_eread "$g/rebase-apply/next" step
|
||||||
@ -461,8 +417,10 @@ __git_ps1 ()
|
|||||||
fi
|
fi
|
||||||
elif [ -f "$g/MERGE_HEAD" ]; then
|
elif [ -f "$g/MERGE_HEAD" ]; then
|
||||||
r="|MERGING"
|
r="|MERGING"
|
||||||
elif __git_sequencer_status; then
|
elif [ -f "$g/CHERRY_PICK_HEAD" ]; then
|
||||||
:
|
r="|CHERRY-PICKING"
|
||||||
|
elif [ -f "$g/REVERT_HEAD" ]; then
|
||||||
|
r="|REVERTING"
|
||||||
elif [ -f "$g/BISECT_LOG" ]; then
|
elif [ -f "$g/BISECT_LOG" ]; then
|
||||||
r="|BISECTING"
|
r="|BISECTING"
|
||||||
fi
|
fi
|
||||||
@ -509,7 +467,6 @@ __git_ps1 ()
|
|||||||
local i=""
|
local i=""
|
||||||
local s=""
|
local s=""
|
||||||
local u=""
|
local u=""
|
||||||
local h=""
|
|
||||||
local c=""
|
local c=""
|
||||||
local p=""
|
local p=""
|
||||||
|
|
||||||
@ -542,11 +499,6 @@ __git_ps1 ()
|
|||||||
u="%${ZSH_VERSION+%}"
|
u="%${ZSH_VERSION+%}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "${GIT_PS1_COMPRESSSPARSESTATE}" ] &&
|
|
||||||
[ "$(git config --bool core.sparseCheckout)" = "true" ]; then
|
|
||||||
h="?"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then
|
if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then
|
||||||
__git_ps1_show_upstream
|
__git_ps1_show_upstream
|
||||||
fi
|
fi
|
||||||
@ -567,8 +519,8 @@ __git_ps1 ()
|
|||||||
b="\${__git_ps1_branch_name}"
|
b="\${__git_ps1_branch_name}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local f="$h$w$i$s$u"
|
local f="$w$i$s$u"
|
||||||
local gitstring="$c$b${f:+$z$f}${sparse}$r$p"
|
local gitstring="$c$b${f:+$z$f}$r$p"
|
||||||
|
|
||||||
if [ $pcmode = yes ]; then
|
if [ $pcmode = yes ]; then
|
||||||
if [ "${__git_printf_supports_v-}" != yes ]; then
|
if [ "${__git_printf_supports_v-}" != yes ]; then
|
||||||
|
|||||||
@ -1,8 +1,9 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
url="https://raw.githubusercontent.com/felipec/git-completion"
|
url="https://git.kernel.org/pub/scm/git/git.git/plain/contrib/completion"
|
||||||
version="1.0"
|
version="2.16.0"
|
||||||
|
|
||||||
curl -s -o _git "${url}/v${version}/git-completion.zsh" &&
|
curl -s -o _git "${url}/git-completion.zsh?h=v${version}" &&
|
||||||
curl -s -o git-completion.bash "${url}/v${version}/git-completion.bash" &&
|
curl -s -o git-completion.bash "${url}/git-completion.bash?h=v${version}" &&
|
||||||
curl -s -o git-prompt.sh "${url}/v${version}/git-prompt.sh"
|
curl -s -o git-prompt.sh "${url}/git-prompt.sh?h=v${version}" &&
|
||||||
|
git apply updates.patch
|
||||||
|
|||||||
56
plugins/gitfast/updates.patch
Normal file
56
plugins/gitfast/updates.patch
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
diff --git b/plugins/gitfast/_git a/plugins/gitfast/_git
|
||||||
|
index e2554130..a2e3bef5 100644
|
||||||
|
--- b/plugins/gitfast/_git
|
||||||
|
+++ a/plugins/gitfast/_git
|
||||||
|
@@ -30,7 +30,7 @@ if [ -z "$script" ]; then
|
||||||
|
local -a locations
|
||||||
|
local e
|
||||||
|
locations=(
|
||||||
|
- $(dirname ${funcsourcetrace[1]%:*})/git-completion.bash
|
||||||
|
+ "$(dirname ${funcsourcetrace[1]%:*})/git-completion.bash"
|
||||||
|
'/etc/bash_completion.d/git' # fedora, old debian
|
||||||
|
'/usr/share/bash-completion/completions/git' # arch, ubuntu, new debian
|
||||||
|
'/usr/share/bash-completion/git' # gentoo
|
||||||
|
@@ -214,8 +214,10 @@ _git ()
|
||||||
|
|
||||||
|
if (( $+functions[__${service}_zsh_main] )); then
|
||||||
|
__${service}_zsh_main
|
||||||
|
- else
|
||||||
|
+ elif (( $+functions[__${service}_main] )); then
|
||||||
|
emulate ksh -c __${service}_main
|
||||||
|
+ elif (( $+functions[_${service}] )); then
|
||||||
|
+ emulate ksh -c _${service}
|
||||||
|
fi
|
||||||
|
|
||||||
|
let _ret && _default && _ret=0
|
||||||
|
diff --git b/plugins/gitfast/git-completion.bash a/plugins/gitfast/git-completion.bash
|
||||||
|
index 9c8f7380..14012cab 100644
|
||||||
|
--- b/plugins/gitfast/git-completion.bash
|
||||||
|
+++ a/plugins/gitfast/git-completion.bash
|
||||||
|
@@ -2915,6 +2915,6 @@ __git_complete gitk __gitk_main
|
||||||
|
# when the user has tab-completed the executable name and consequently
|
||||||
|
# included the '.exe' suffix.
|
||||||
|
#
|
||||||
|
-if [ Cygwin = "$(uname -o 2>/dev/null)" ]; then
|
||||||
|
+if [[ "$OSTYPE" = cygwin* ]]; then
|
||||||
|
__git_complete git.exe __git_main
|
||||||
|
fi
|
||||||
|
diff --git b/plugins/gitfast/git-prompt.sh a/plugins/gitfast/git-prompt.sh
|
||||||
|
index 97eacd78..c1de34eb 100644
|
||||||
|
--- b/plugins/gitfast/git-prompt.sh
|
||||||
|
+++ a/plugins/gitfast/git-prompt.sh
|
||||||
|
@@ -502,9 +502,11 @@ __git_ps1 ()
|
||||||
|
|
||||||
|
local z="${GIT_PS1_STATESEPARATOR-" "}"
|
||||||
|
|
||||||
|
- # NO color option unless in PROMPT_COMMAND mode
|
||||||
|
- if [ $pcmode = yes ] && [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
|
||||||
|
- __git_ps1_colorize_gitstring
|
||||||
|
+ # 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
|
||||||
|
fi
|
||||||
|
|
||||||
|
b=${b##refs/heads/}
|
||||||
Loading…
Reference in New Issue
Block a user