#!/bin/bash
# Das Script überprueft den git pull nach Dateien, die sowohl auf dem Server als auf im remote-repositoy geaendert wurden.
# Werden solche Dateien (Bilder) gefunden, werden diese gelöscht und ein erneuter git pull wird ausgefuehrt.

start1='error: Your local changes to the following files would be overwritten by checkout:'
start2='error: The following untracked working tree files would be overwritten by checkout:'
ende1='Please, commit your changes or stash them before you can switch branches.'
ende2='Please move or remove them before you can switch branches.'

echo "Übergabeparameter ist '$1'"

if [ "$1" = "" ]
	then
		read -p "Möchtest du master auschecken?" answer
		
		case "$answer" in
			No|no|N|n|Nein|nein|Nö|nö|"") 
				echo "...dann halt nicht, Bye!"
				exit 1
				;;
			*)
				echo "Es wird master ausgecheckt!"
				branch="master"
				;;
		esac
	else
		branch="$1"
fi

echo "git checkout $branch wird ausgefuehrt..."

liste=$(git checkout $branch > gitcheckout.txt 2>&1)
while read line; do
    error=1
    echo "$line"

    if [ "$line" = "$ende1" ] || [ "$line" = "$ende2" ]
        then
            entfernen=0
    fi
    if [ "$entfernen" = 1 ]
        then
            geloescht=1
            rm "$line"
            echo "Die Datei $(tput setaf 2)$line$(tput sgr 0) wurde $(tput setaf 1)geloescht!$(tput sgr 0)"
    fi
    if [ "$line" = "$start1" ] || [ "$line" = "$start2" ]
        then
            entfernen=1
    fi
done < gitcheckout.txt

if [ "$geloescht" = 1 ]
    then
        echo $(tput setaf 2)"Alle überflüssigen Dateien wurden $(tput setaf 1)geloescht."$(tput sgr 0)
        echo $(tput setaf 3)"git pull erneut ausfuehren, um die Version auszurollen!"$(tput sgr 0)
        git checkout $branch
#    else
#        while read line; do
#            echo $line
#        done < gitpull.txt
fi
