| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #!/usr/bin/env bash
-
- # This file needs to be run from the git root directory!
-
- # Exit script on the first error
- set -o errexit -o nounset
-
- current_hw=$(find . -type d -name 'hw*' | sort | tail -n1)
-
- while IFS= read -r -d '' taskdir; do
-
- echo ""
- echo "=== Suche bats File in $taskdir"
- for batsfile in $taskdir/tests/*.bats; do
- if [ -e "$batsfile" ]; then
- echo "=== bats File gefunden"
- echo ""
- echo "=== Führe Lösung von Aufgabe in $taskdir aus"
- manifest="$taskdir/Cargo.toml"
- if [ -e "$manifest" ]; then
- echo "=== Cargo-Manifest gefunden in '$manifest' -> Cargo-Modus"
- cargo run --manifest-path "$manifest" || true
- elif [ "$(find "$taskdir" -maxdepth 1 -type f -name '*.rs' | wc -l)" -ne 0 ]; then
- echo "=== Sourcedatei(en) gefunden -> rustc-Modus"
- for srcfile in $taskdir/*.rs; do
- echo "=== Kompiliere '$srcfile'..."
- rustc "$srcfile"
- done
- else
- echo ""
- echo "!!! Falsch konfigurierter Aufgabenordner oder ungelöste Aufgabe"
- echo "!!! Bitte .rs-Dateien in '$taskdir' ablegen"
- echo "!!! Oder ein Cargo-Projekt mit 'cargo init' darin erzeugen"
- echo "!!! Alternativ den Ordner löschen"
- exit 1
- fi
- echo "=== bats File gefunden, teste output"
- bats "$batsfile"
- else
- echo "=== keine output Tests via bats ausgeführt"
- fi
- done
-
- done < <(find "$current_hw" -mindepth 1 -maxdepth 1 -type d -name 'task*' -print0)
|