forked from pr2-lecture-STG/assignments
67 lines
1.9 KiB
Bash
Executable File
67 lines
1.9 KiB
Bash
Executable File
#!/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
|
|
|
|
# Clone repo if not already present
|
|
if [ ! -d ".assignments" ]; then
|
|
echo -e "\e[32m"
|
|
echo "Clone Repository mit den Aufgaben"
|
|
echo -ne "\e[0m"
|
|
git clone gitea@gitty.informatik.hs-mannheim.de:pr2-lecture-STG/assignments.git .assignments
|
|
mkdir -p sources/src/main/java
|
|
fi
|
|
|
|
# Sync exercises with local directory
|
|
echo -e "\e[32m"
|
|
echo "---------------------------------------------------------------"
|
|
echo "Hole neue Aufgaben und Quelltexte "
|
|
echo "---------------------------------------------------------------"
|
|
echo -ne "\e[0m"
|
|
|
|
(cd .assignments && git pull origin main)
|
|
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
|