44 lines
		
	
	
	
		
			968 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
	
		
			968 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/sh
 | |
| # Came from here: https://raw.githubusercontent.com/PlatyPew/dotfiles/master/configs/git/git-st
 | |
| IFS=
 | |
| status="$(git -c color.status=always status -sb)"
 | |
| if [ $? -ne 0 ]
 | |
| then
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| diff="$(git diff --color --stat HEAD 2> /dev/null | sed '$d; s/^ //' | cut -d '|' -f 2)"
 | |
| 
 | |
| IFS=$'\n' status=($status)
 | |
| IFS=$'\n' diff=($diff)
 | |
| 
 | |
| len=-1
 | |
| for i in $(seq 1 $(( ${#status[@]} - 1)))
 | |
| do
 | |
|     if [ ${#status[i]} -gt $len ]
 | |
|     then
 | |
|         len=${#status[i]}
 | |
|     fi
 | |
| done
 | |
| (( len *= -1 ))
 | |
| 
 | |
| for i in $(seq 0 $(( ${#status[@]} - 1)))
 | |
| do
 | |
|     currStatus=${status[i]}
 | |
|     if [ $i -eq 0 ]
 | |
|     then
 | |
|         echo "${status[0]}" | cut -d ' ' -f 2-
 | |
|     else
 | |
|         if [ ! -z ${diff[i - 1]} ]
 | |
|         then
 | |
|             currDiff="|${diff[i - 1]}"
 | |
|         else
 | |
|             currDiff=""
 | |
|         fi
 | |
|         printf "%*s  %s\n" $len "${currStatus}" "${currDiff}"
 | |
|     fi
 | |
| done
 | |
| if [ $(( ${#status[@]} - 1)) -eq 0 ]
 | |
| then
 | |
|     printf "\033[93mNothing to commit, working tree clean\033[0m\n"
 | |
| fi
 |