#!/bin/bash -eu # # script/format # mas # # Linting checks for development and CI. # # Automatically formats and fixes style violations using various tools. # # Please keep in sync with script/lint. # mas_dir="$(readlink -fn "$(dirname "${BASH_SOURCE:-"${0}"}")/..")" if ! cd -- "${mas_dir}"; then printf $'Error: Could not cd into mas directory: %s\n' "${mas_dir}" >&2 exit 1 fi printf $'==> 🚨 Formatting mas\n' for LINTER in markdownlint prettier shfmt swift-format swiftformat swiftlint yamllint; do if [[ ! -x "$(command -v ${LINTER})" ]]; then printf $'error: %s is not installed. Run \'script/bootstrap\' or \'brew install %s\'.\n' "${LINTER}" "${LINTER}" exit 1 fi done for SOURCE in Package.swift Sources Tests; do printf -- $'--> 🕊 %s swift-format\n' "${SOURCE}" swift-format format --in-place --recursive "${SOURCE}" printf -- $'--> 🕊 %s swiftformat\n' "${SOURCE}" swiftformat "${SOURCE}" printf -- $'--> 🕊 %s swiftlint\n' "${SOURCE}" swiftlint --fix --strict "${SOURCE}" done printf -- $'--> 📜 Bash shfmt\n' shfmt \ --write \ --list \ --indent 2 \ --case-indent \ contrib/ script/ printf -- $'--> 〽️ Markdown\n' markdownlint --config .markdownlint.json --fix .github . printf -- $'--> 🖊 YAML\n' # shellcheck disable=SC2046 prettier --write $(yamllint --list-files .)