From 2da4310088fd76c157620ac69de81af4b7c54b23 Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Tue, 26 Jan 2021 16:53:51 -0500 Subject: Begin creating match statement for porcelain status --- src/git.rs | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/src/git.rs b/src/git.rs index 3e86ef21a..1efac7c2c 100644 --- a/src/git.rs +++ b/src/git.rs @@ -306,17 +306,34 @@ fn parse_porcelain_output>(porcelain: S) -> GitStatus { characters.next().unwrap_or(' '), ); - // TODO: Revisit conflict and staged logic - if letter_codes.0 == letter_codes.1 { - vcs_status.conflicted += 1 - } else { - increment_git_status(&mut vcs_status, letter_codes.1); - } + + // // TODO: Revisit conflict and staged logic + // if letter_codes.0 == letter_codes.1 { + // vcs_status.conflicted += 1 + // } else { + // increment_git_status(&mut vcs_status, letter_codes.1); + // } }); vcs_status } +fn check_porcelain_line(vcs_status: &mut GitStatus, letter_codes: (char, char)) { + match letter_codes { + // Check for untracked files + ('?', '?') => vcs_status.untracked += 1, + + // Check for staged files + ('A', _) => vcs_status.added += 1, + ('M', ' ') => vcs_status.added += 1, + ('M', 'M') => vcs_status.added += 1, + ('M', 'D') => vcs_status.added += 1, + ('U', 'A') => vcs_status.added += 1, + + (_, _) => (), + } +} + /// Update the cumulative git status, given the "short format" letter of a file's status /// https://git-scm.com/docs/git-status#_short_format fn increment_git_status(vcs_status: &mut GitStatus, letter: char) { -- cgit v1.2.3