#!/bin/bash
# Copyright 2019–2020 Sebastian Wiesnser <sebastian@swsnr.de>

# 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.

set -euxo pipefail

git describe --dirty

# Check formatting
cargo fmt -- --check

# Build and lint; we deliberately disable word splitting because
# we intend to allow multiple arguments in CARGOFLAGS.
# shellcheck disable=SC2086
cargo build --locked --all-targets ${CARGOFLAGS:-}
# shellcheck disable=SC2086
cargo clippy --locked --all-targets ${CARGOFLAGS:-}
# shellcheck disable=SC2086
cargo test --locked --all-targets ${CARGOFLAGS:-}

# Vulnerabilities
cargo audit

# Build manpage
asciidoctor -b manpage -a reproducible mdcat.1.adoc

# Check shellscripts
shellcheck -S style -o all scripts/*
shfmt -i 4 -l -d scripts/*