#!/bin/sh set -eu usage() { cat <<-'EOF' Usage: check.sh check.sh -h EOF } help() { cat <<-'EOF' Options: -h, --help show this message EOF } for flag in "$@"; do case "$flag" in --) break ;; --help) usage help exit ;; *) ;; esac done while getopts 'h' flag; do case "$flag" in h) usage help exit ;; *) usage >&2 exit 2 ;; esac done shift $((OPTIND - 1)) cd -- "$(dirname -- "$0")" cd -- "$(git rev-parse --show-toplevel)" git ls-files | xargs awk 'FNR==1 && /^#!\/bin\/sh$/ { print FILENAME }' | xargs shellcheck -x git ls-files | xargs awk 'FNR==1 && /^#!\/usr\/bin\/env perl$/ { print FILENAME }' | xargs perlcritic if git grep FIXME -- ":(exclude)$0"; then printf 'Leftover FIXME markers\n' >&2 exit 1 fi if ! git diff --quiet || ! git diff --quiet --staged; then printf 'Dirty tilde repository.\n' >&2 exit 1 fi PRIV="$XDG_CONFIG_HOME/../var/lib/private/tilde" if ! git -C "$PRIV" diff --quiet || ! git -C "$PRIV" diff --quiet --staged; then printf 'Dirty private tilde repository.\n' >&2 exit 1 fi for f in opt/tests/*; do sh "$f" done # FIXME: # verify that the expiry date on the GPG key is greater than 1 year # assert git pushed