rewrite bash 4 ;;& operator (two step)

master
DrVanScott 10 years ago
parent 66b4a94bdf
commit 904b82bb58
  1. 21
      gitstatus.sh

@ -26,17 +26,26 @@ num_conflicts=0
num_untracked=0
while IFS='' read -r line || [[ -n "$line" ]]; do
status=${line:0:2}
while true
while [[ -n $status ]]
do
case "$status" in
#two fixed character matches, loop finished
\#\#) branch_line="${line/\.\.\./^}"; break ;;
?M) ((num_changed++)); status=${status:0:1}"_" ;;
?D) ((num_changed++)); status=${status:0:1}"_" ;;
U?) ((num_conflicts++)); break ;;
\?\?) ((num_untracked++)); break ;;
\ ?) break ;;
*) ((num_staged++)); break ;;
U?) ((num_conflicts++)); break;;
?U) ((num_conflicts++)); break;;
DD) ((num_conflicts++)); break;;
AA) ((num_conflicts++)); break;;
#two character matches, first loop
?M) ((num_changed++)) ;;
?D) ((num_changed++)) ;;
?\ ) ;;
#single character matches, second loop
U) ((num_conflicts++)) ;;
\ ) ;;
*) ((num_staged++)) ;;
esac
status=${status:0:-1}
done
done <<< "$gitstatus"

Loading…
Cancel
Save