Browse Source

chore: auto-format GN and python files in our precommit (#16722)

* chore: auto-format GN files in our precommit

* chore: update python linting errors and auto-lint python files

* chore: add trick for CHROMIUM_BUILDTOOLS_PATH

* chore: apply suggestions from code review

Co-Authored-By: MarshallOfSound <[email protected]>
Samuel Attard 6 years ago
parent
commit
b29e8d18a8
2 changed files with 30 additions and 0 deletions
  1. 8 0
      package.json
  2. 22 0
      script/run-gn-format.py

+ 8 - 0
package.json

@@ -82,6 +82,14 @@
     ],
     "*.md": [
       "remark -qf"
+    ],
+    "*.{gn,gni}": [
+      "python script/run-gn-format.py",
+      "git add"
+    ],
+    "*.py": [
+      "node script/lint.js --py --fix --only --",
+      "git add"
     ]
   }
 }

+ 22 - 0
script/run-gn-format.py

@@ -0,0 +1,22 @@
+import os
+import subprocess
+import sys
+
+SOURCE_ROOT = os.path.dirname(os.path.dirname(__file__))
+
+# Helper to run gn format on multiple files
+# (gn only formats a single file at a time)
+def main():
+  new_env = os.environ.copy()
+  new_env['DEPOT_TOOLS_WIN_TOOLCHAIN'] = '0'
+  new_env['CHROMIUM_BUILDTOOLS_PATH'] = os.path.realpath(
+    os.path.join(SOURCE_ROOT, '..', 'buildtools')
+  )
+  for gn_file in sys.argv[1:]:
+    subprocess.check_call(
+      ['gn', 'format', gn_file],
+      env=new_env
+    )
+
+if __name__ == '__main__':
+  sys.exit(main())