1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
#!/bin/bash
set -euo pipefail
autotools() {
autoreconf -i -Wall
}
clean() {
git clean -fdx
autotools
}
scan_build_run() {
scan-build --use-analyzer=/usr/bin/clang "${@}"
}
scan_build() {
clean
scan_build_run ./configure "${@}"
scan_build_run make
}
static_analysis() {
coverity-submit
scan_build "${@}"
}
full() {
static_analysis "${@}"
clean
./configure "${@}"
make
make distcheck
}
run_action() {
local action="${1}"
shift
local configure_args=(
--prefix=/usr
--sysconfdir=/etc
--enable-applet
--enable-appstream-util
--enable-gnome-shell-extension
--enable-introspection
--enable-unity
--enable-vala
--enable-x-keybinder
)
case "${action}" in
configure-full|cf)
./configure "${configure_args[@]}" "${@}"
;;
coverity|cov)
coverity-submit
;;
scan-build|sb)
scan_build "${configure_args[@]}" "${@}"
;;
static-analysis|sa)
static_analysis "${configure_args[@]}" "${@}"
;;
full)
full "${configure_args[@]}" "${@}"
;;
esac
}
main() {
autotools
[[ "${#}" == 0 ]] || run_action "${@}"
}
main "${@}"
|