git info bash plugin refactor; now first check the existance of the HEAD refs instead of running git status right away
This commit is contained in:
		
							parent
							
								
									c9809b7a45
								
							
						
					
					
						commit
						61d88eeddb
					
				
					 1 changed files with 15 additions and 18 deletions
				
			
		
							
								
								
									
										33
									
								
								bashplugins
									
										
									
									
									
								
							
							
						
						
									
										33
									
								
								bashplugins
									
										
									
									
									
								
							| 
						 | 
					@ -40,33 +40,30 @@ gdf()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
git_prompt()
 | 
					git_prompt()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    local staged_count unstaged_count untracked_count unmerged_count
 | 
					 | 
				
			||||||
    local git_status branch_info full_status IFS=
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    prompt_command
 | 
					    prompt_command
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ! raw_status="$(git status --porcelain -bu 2>/dev/null)"; then
 | 
					    if [[ ! -r ./.git/HEAD ]] || ! local raw_status="$(git status --porcelain -bu 2>/dev/null)"; then
 | 
				
			||||||
        return
 | 
					        return
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					    local branch_info full_status IFS=
 | 
				
			||||||
    git_status=''
 | 
					    local git_status=''
 | 
				
			||||||
    staged_count=0
 | 
					    local staged_count=0
 | 
				
			||||||
    unstaged_count=0
 | 
					    local unstaged_count=0
 | 
				
			||||||
    untracked_count=0
 | 
					    local untracked_count=0
 | 
				
			||||||
    unmerged_count=0
 | 
					    local unmerged_count=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    while read line; do
 | 
					    while read line; do
 | 
				
			||||||
        [[ "${line:0:2}" == '##' ]] && branch_info="${line:3}"
 | 
					        [[ "${line:0:2}" == '##'                 ]] && branch_info="${line:3}"
 | 
				
			||||||
        [[ "${line:0:2}" =~ .[MD] ]] && (( unstaged_count++ ))
 | 
					        [[ "${line:0:2}" =~ .[MD]                ]] && (( unstaged_count++ ))
 | 
				
			||||||
        [[ "${line:0:2}" =~ [MDARC]. ]] && (( staged_count++ ))
 | 
					        [[ "${line:0:2}" =~ [MDARC].             ]] && (( staged_count++ ))
 | 
				
			||||||
        [[ "${line:0:2}" == '??' ]] && (( untracked_count++ ))
 | 
					        [[ "${line:0:2}" == '??'                 ]] && (( untracked_count++ ))
 | 
				
			||||||
        [[ "${line:0:2}" =~ (U[ADU]|A[AU]|D[DU]) ]] && (( unmerged_count++ ))
 | 
					        [[ "${line:0:2}" =~ (U[ADU]|A[AU]|D[DU]) ]] && (( unmerged_count++ ))
 | 
				
			||||||
    done <<< "${raw_status}"
 | 
					    done <<< "${raw_status}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    (( $unstaged_count > 0 )) && git_status+="${ppurple}~${unstaged_count}"
 | 
					    (( unstaged_count     )) && git_status+="${ppurple}~${unstaged_count}"
 | 
				
			||||||
    (( $staged_count > 0 )) && git_status+="${pblue}+${staged_count}"
 | 
					    (( staged_count       )) && git_status+="${pblue}+${staged_count}"
 | 
				
			||||||
    (( $untracked_count > 0 )) && git_status+="${pred}-${untracked_count}"
 | 
					    (( untracked_count    )) && git_status+="${pred}-${untracked_count}"
 | 
				
			||||||
    (( $unmerged_count > 0 )) && git_status+="${porange}*${unmerged_count}"
 | 
					    (( unmerged_count     )) && git_status+="${porange}*${unmerged_count}"
 | 
				
			||||||
    [[ -z "${git_status}" ]] && git_status="${pgreen}ok"
 | 
					    [[ -z "${git_status}" ]] && git_status="${pgreen}ok"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    full_status="{ ${pgray3}${branch_info}${preset} | ${git_status}${preset} }"
 | 
					    full_status="{ ${pgray3}${branch_info}${preset} | ${git_status}${preset} }"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue