From feef1aa28e4326eb85b191dab5791bebdecd89e3 Mon Sep 17 00:00:00 2001 From: Thomas Smits Date: Tue, 16 Sep 2025 17:08:49 +0200 Subject: [PATCH] Initialized --- .gitignore | 10 +++++++ bin/submit.sh | 65 ++++++++++++++++++++++++++++++++++++++++++ bin/update.sh | 60 ++++++++++++++++++++++++++++++++++++++ README.md => readme.md | 0 4 files changed, 135 insertions(+) create mode 100644 .gitignore create mode 100755 bin/submit.sh create mode 100755 bin/update.sh rename README.md => readme.md (100%) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ba23038 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +.assignments/ +sources/lib/ +sources/target/ +out/ +.project +.classpath +.metadata/ +.settings +.idea/ +.DS_Store diff --git a/bin/submit.sh b/bin/submit.sh new file mode 100755 index 0000000..6633e06 --- /dev/null +++ b/bin/submit.sh @@ -0,0 +1,65 @@ +#!/usr/bin/bash + +# Fail on first error +set -e + +# check how we have been called +if [ ! "$0" == "bin/submit.sh" ]; then + echo -e "\e[31m" + echo "💣 Das Skript muss aus dem Hauptverzeichnis des Projektes" + echo "💣 mit bin/submit.sh aufgerufen werden." + echo -e "\e[0m" + exit 1 +fi + +echo "***************************************************************" +echo "Abgabe einreichen" +echo "***************************************************************" +echo "" +cd sources + +# Test, if project builds +echo "------------------------------------------------------------------" +echo "Build..." +echo "" +if ! mvn; then + echo -e "\e[31m" + echo "💣 Projekt baut nicht und kann deswegen nicht abgegeben werden." + echo "💣 Bitte beheben Sie alle gemeldeten Fehler und versuchen Sie " + echo "💣 es dann erneut " + echo -e "\e[0m" + exit 1 +else + echo -e "\e[32m" + echo "✅ Projekt gebaut " + echo -e "\e[0m" +fi + +# Test, if all changes are committed +echo "------------------------------------------------------------------" +echo "Teste git-Staus..." +if ! git status | grep -q "nothing to commit" && ! git status | grep -q "nichts zu committen" ; then + echo -e "\e[31m" + echo "💣 Bitte checken Sie alle Änderungen per git ein. " + echo -e "\e[0m" + exit 1 +else + echo -e "\e[32m" + echo "✅ Alle Dateien eingecheckt " + echo -e "\e[0m" +fi + +# Submit +echo "------------------------------------------------------------------" +echo "Sende Lösung..." +if ! git push origin main; then + echo -e "\e[31m" + echo "💣 Push nicht erfolgreich. Bitte beheben Sie den Fehler und " + echo "💣 starten Sie das Skript erneut. " + echo -e "\e[0m" + exit 1 +else + echo -e "\e[32m" + echo "✅ Aktuelle Lösungen eingereicht " + echo -e "\e[0m" +fi diff --git a/bin/update.sh b/bin/update.sh new file mode 100755 index 0000000..0513b22 --- /dev/null +++ b/bin/update.sh @@ -0,0 +1,60 @@ +#!/usr/bin/bash + +# Fail on first error +set -e + +# check how we have been called +if [ ! "$0" == "bin/update.sh" ]; then + echo -e "\e[31m" + echo "💣 Das Skript muss aus dem Hauptverzeichnis des Projektes" + echo "💣 mit bin/update.sh oder bash bin/update.sh aufgerufen werden." + echo -e "\e[0m" + exit 1 +fi + +# Check the integrity of the .assignments directory +if [ -d ".assignments" ] && [ ! -d ".assignments/.git" ]; then + echo -e "\e[31m" + echo "Nicht korrektes .assignments-Verzeichnis. Wird gelöscht." + echo "Bitte achten Sie darauf, das .assignments-Verzeichnis nicht" + echo "einzuchecken." + echo -ne "\e[0m" + rm -rf ".assignments" +fi + +# Sync exercises with local directory +echo -e "\e[32m" +echo "---------------------------------------------------------------" +echo "Hole neue Aufgaben und Quelltexte " +echo "---------------------------------------------------------------" +echo -ne "\e[0m" +rm -rf .assignments +git clone https://gitty.informatik.hs-mannheim.de/pr2-lecture/assignments.git .assignments +mkdir -p sources/src/main/java + +# Copy everything new into students workspace +rsync --ignore-existing -raz .assignments/sources/ sources/ + +for dir in .assignments/Assignment_*; do + rsync --ignore-existing -raz "$dir" ./ +done + +# Assignment files +rsync --ignore-existing -raz --include='Assignment_*' --exclude='*' .assignments/* ./ + +# Libraries +rsync -raz .assignments/sources/lib/ ./sources/lib + +# Main readme +cp .assignments/readme.md README.md + +# Update scripts +cp .assignments/bin/submit.sh bin/submit.sh + +if [ -f .assignments/bin/update.sh ]; then + # Remove myself + rm bin/update.sh + + # Copy the new version at the old location + cp .assignments/bin/update.sh bin/update.sh +fi diff --git a/README.md b/readme.md similarity index 100% rename from README.md rename to readme.md