blob: 6bf36b28cd53566d0cf4817a780cca1b5ec42f9f [file] [log] [blame]
#!/usr/bin/env bash
#
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
# Helper script that cleans up the input from stdin (presumed to be the output
# of e.g. clang -E) which removes extraneous metadata, such as line-number
# directives, which is not particularly useful for readers; also, hits the output
# with clang-format (if available as the $CLANG_FORMAT variable).
set -e
# The first regular expression removes any line starting with `# 123`, which
# the preprocessor inserts as a sort of "context string" (this is a GCC-specific
# extension that Clang also implements). We then shove it into clang-format.
perl -pe 's/# \d+.+$//g' \
| perl -0777pe 's/\n{2,}/\n\n/g' \
| "${CLANG_FORMAT:-cat}"