Fail on changed files before commit

To prevent accidental left-over changes that were generated during the
presubmit, make sure we explicitly check that no more changes are
pending.

Change-Id: Ic8f6ae76110babe69597e69009760cf451136e41
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2000787
Commit-Queue: Tim van der Lippe <[email protected]>
Reviewed-by: Peter Marshall <[email protected]>
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 7ea91de..4d2046a 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -219,6 +219,17 @@
     return results
 
 
+def _CheckNoUncheckedFiles(input_api, output_api):
+    results = []
+    process = input_api.subprocess.Popen(['git', 'diff', '--exit-code'],
+                                         stdout=input_api.subprocess.PIPE,
+                                         stderr=input_api.subprocess.STDOUT)
+    out, _ = process.communicate()
+    if process.returncode != 0:
+        return [output_api.PresubmitError('You have changed files that need to be committed.')]
+    return []
+
+
 def _CommonChecks(input_api, output_api):
     """Checks common to both upload and commit."""
     results = []
@@ -238,6 +249,7 @@
     results.extend(_CheckCSSViolations(input_api, output_api))
     results.extend(_CheckChangesAreExclusiveToDirectory(input_api, output_api))
     results.extend(_CheckUnitTests(input_api, output_api))
+    results.extend(_CheckNoUncheckedFiles(input_api, output_api))
     return results