#!/bin/bash # Copyright (C) 2017 Lars Wirzenius # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . set -eu title() { printf '\n%s\n' "$@" for i in $(seq 77) do printf '%c' - done printf '\n' } run_yarns() { yarn yarns/*.yarn \ -s yarns/lib.py --shell python2 --shell-arg '' --cd-datadir "$@" } title "Remote or local yarns?" remote=no if [ "$#" -gt 0 ] then case "$1" in http*://*) remote=yes remote_url="$1" shift 1 ;; local) remote=no shift 1 ;; *) echo "Don't understand args: $@" 1>&2 exit 1 ;; esac fi if [ "$remote" = no ] then echo "Run yarns against a locally managed instance" else echo "Run yarns against remote instance $remote_url" fi title "Unit tests" python3 -m CoverageTestRunner --ignore-missing-from=without-tests qvisqve qvisqve_secrets title "Code style" pycodestyle qvisqve qvisqve_secrets if command -v pylint3 > /dev/null then title "Static checking" # pylint3 -j0 --rcfile pylint.conf qvisqve qvisqve_secrets fi title "Run yarns" if [ "$remote" = no ] then impl=yarns/900-local.yarn args="" else impl=yarns/900-remote.yarn args="--env API_URL=$remote_url" fi yarn yarns/[^9]*.yarn yarns/900-implements.yarn "$impl" \ --shell python2 \ --shell-arg '' \ --shell-library yarns/lib.py \ --cd-datadir \ $args \ "$@" title OK echo All tests pass.