It seems pre-commit exits with code 0 if everything is fine, and exit code 1 if any checks Fail - regardless of reason.
Is there a way (programmatically) to differentiate between failures that resulted in files being modified (thereby fixing the problem) vs a problem that requires a user (like "E501 line too long")?