blob: cbb0126d9a9ed02b59e7a9000909430f38a5cfa8 [file] [log] [blame]
#!/usr/bin/env python3
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
"""Erlang formatter for CouchDB
Warning: this file needs to run from the CouchDB repo root.
USAGE: ERLFMT_PATH=<path_to_erlfmt> python3 dev/format_check.py
"""
import os
import subprocess
import sys
from format_lib import get_source_paths, get_erlang_version
if __name__ == "__main__":
if get_erlang_version() < 21:
print("Erlang version is < 21. Skipping format check")
sys.exit(0)
exit_code = 0
for path in get_source_paths():
run_result = subprocess.run(
[os.environ["ERLFMT_PATH"], "-c", path],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
)
rc = run_result.returncode
if rc != 0:
print("\n %s error for %s" % (rc, path))
stderr_lines = run_result.stderr.decode("utf-8").split("\n")
for line in stderr_lines:
print(" > %s" % line, file=sys.stderr)
exit_code = 1
sys.exit(exit_code)