101 lines
1.6 KiB
Bash
Executable File
101 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
set -u
|
|
trap "exit" INT
|
|
|
|
NORMAL=$(tput sgr0)
|
|
GREEN=$(tput setaf 2; tput bold)
|
|
YELLOW=$(tput setaf 3)
|
|
RED=$(tput setaf 1)
|
|
|
|
function echo_red() {
|
|
echo -e "$RED$*$NORMAL"
|
|
}
|
|
|
|
function echo_green() {
|
|
echo -e "$GREEN$*$NORMAL"
|
|
}
|
|
|
|
function echo_yellow() {
|
|
echo -e "$YELLOW$*$NORMAL"
|
|
}
|
|
|
|
|
|
#
|
|
# Some vars
|
|
#
|
|
NXF_CMD=${NXF_CMD:-nextflow}
|
|
NXF_SYNTAX_PARSER=v1
|
|
REPORT=$PWD/.report
|
|
WITH_DOCKER=${WITH_DOCKER:=''}
|
|
|
|
#
|
|
# Clean scratch dir
|
|
#
|
|
export NXF_WORK=$PWD/scratch
|
|
rm -rf $NXF_WORK
|
|
|
|
|
|
function run_checks() {
|
|
NXF_SCRIPT="../../$1"
|
|
NXF_RUN="$NXF_CMD -q run $NXF_SCRIPT"
|
|
export NXF_SCRIPT
|
|
export NXF_CMD
|
|
export NXF_RUN
|
|
set +e
|
|
|
|
if [ -f $1/.checks ]; then
|
|
cd $basename;
|
|
rm -rf *
|
|
bash -ex .checks &> checks.out
|
|
else
|
|
mkdir -p $1
|
|
cd $1
|
|
$NXF_RUN > checks.out
|
|
fi
|
|
|
|
ret=$?
|
|
set -e
|
|
if [[ $ret != 0 ]]; then
|
|
echo "~ Test '$1' run failed" >> $REPORT
|
|
# dump error output
|
|
[[ -s checks.out ]] && cat checks.out | sed 's/^/ /'>> $REPORT
|
|
echo '' >> $REPORT
|
|
# dump nextflow log file
|
|
[[ -f .nextflow.log ]] && cat .nextflow.log >> $REPORT
|
|
echo '' >> $REPORT
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
|
|
rm -rf $REPORT
|
|
|
|
list=${1:-'../*.nf'}
|
|
|
|
function can_run() {
|
|
if [[ $(grep -c "$1" .PARSER-V1) != 0 ]]; then
|
|
echo 'yes'
|
|
else
|
|
echo 'no'
|
|
fi
|
|
}
|
|
|
|
for x in $list; do
|
|
basename=$(basename $x)
|
|
if [[ $(can_run $basename) == 'yes' ]]; then
|
|
echo "> Running test: $basename"
|
|
( set -e;
|
|
run_checks $basename
|
|
)
|
|
else
|
|
echo "- Ignoring test: $basename"
|
|
fi
|
|
done
|
|
|
|
if [[ -s $REPORT ]]; then
|
|
echo -e "$RED"
|
|
cat $REPORT
|
|
echo -e "$NORMAL"
|
|
exit 1
|
|
fi
|