#!/bin/bash

ncache="/var/mobile/Library/CSources2"
oldcache="/private/var/mobile/Media/CSources2"
prevcache="/var/mobile/Library/Caches/com.dirtybeans.CSources2/SRCCache"
newCache="/var/mobile/Library/CSources2/SRCCache"
maincslist="/Applications/CSources2.app/csources.list"
csourceslist="/private/etc/apt/sources.list.d/csources.list"
osourcesclist="/var/mobile/Library/Caches/com.dirtybeans.CSources2/sourcesc.list"
nsourcesclist="/var/mobile/Library/CSources2/sourcesc.list"
csourceslistbk="/private/etc/apt/sources.list.d/csources.list.backup"
sourcesclistbk="/var/mobile/Library/Caches/com.dirtybeans.CSources2/sourcesc.list.backup"
nsourcesclistbk="/var/mobile/Library/CSources2/sourcesc.list.backup"
csourceslistold="/private/etc/apt/sources.list.d/csources.list.old"
nsourcesclistold="/var/mobile/Library/CSources2/sourcesc.list.old"
#***********************************************************************************
if [[ ! -d "$ncache" ]]; then
	mkdir "$ncache"
fi
if [[ -d "$oldcache" ]]; then
	OLDDATE=$(stat -c %y "$oldcache")
	OLDDATE=${OLDDATE%% *}
	echo "old Cache = $OLDDATE"
fi
if [[ -d "$prevcache" ]]; then
	PREVDATE=$(stat -c %y "$prevcache")
	PREVDATE=${PREVDATE%% *}
	echo "Prev Cache = $PREVDATE"
fi
if [[ -d "$newCache" ]]; then
	NEWDATE=$(stat -c %y "$newCache")
	NEWDATE=${NEWDATE%% *}
	echo "new Cache = $NEWDATE"
fi
if [[ -d "$oldcache" ]] && [[ ! -d "$prevcache" ]] && [[ ! -d "$newCache" ]]; then
	mkdir "$newCache"
	cp -r "$oldcache"/* "$newCache"
	echo "Applied - CS2 Cache cp d!! o-n"
	#echo "102"
elif [[ -d "$oldcache" ]] && [[ -d "$prevcache" ]] && [[ ! -d "$newCache" ]]; then
	mkdir -p "$newCache"

	if [[ "$prevcache" -nt "$oldcache" ]]; then
		echo "prev cache is newer than old cache"
		cp -r "$prevcache"/* "$newCache"
		echo "Applied - CS2 Cache cp dd! p-n"
		#echo "103a"
	elif [[ "$oldcache" -nt "$prevcache" ]]; then
		echo "old cache is newer than prev cache"
		cp -r "$oldcache"/* "$newCache"
		echo "Applied - CS2 Cache cp dd! o-n"
		#echo "103b"
	fi
elif [[ -d "$oldcache" ]] && [[ -d "$prevcache" ]] && [[ -d "$newCache" ]]; then 

	if [[ "$newCache" -nt "$prevcache" ]] && [[ "$newCache" -nt "$oldcache" ]]; then
		echo "Cache nt prev & old"
		#do nothing,
	elif [[ "$prevcache" -nt "$newCache" ]]; then
		#echo "prev cache is newer than Cache"
		cp -r "$prevcache"/* "$newCache"
	elif [[ "$oldcache" -nt "$newCache" ]]; then
		#echo "old Cache is newer than Cache"
		cp -r "$oldcache"/* "$newCache"
	fi
elif [[ ! -d "$oldcache" ]] && [[ -d "$prevcache" ]] && [[ ! -d "$newCache" ]]; then
	mkdir "$newCache"
	cp -r "$prevcache"/* "$newCache"
elif [[ ! -d "$oldcache" ]] && [[ ! -d "$prevcache" ]] && [[ ! -d "$newCache" ]]; then
	mkdir "$ncache"
	mkdir "$newCache"
	mkdir "$newCache/tmp"
fi
echo "Checking Cache Perm"
if [[ -d "$newCache" ]]; then
	chmod 755 "$ncache"
	chown -R mobile:mobile "$ncache"
fi
#***********************************************************************************
# -nt newerthan -ot olderthan
#move or create csources.list v680-690
if [[ -f "$csourceslist" ]] && [[ ! -f "$osourcesclist" ]] && [[ ! -f "$nsourcesclist" ]]; then
	mv "$csourceslist" "$nsourcesclist"
	ln -sf "$nsourcesclist" "$csourceslist"
elif [[ -f "$csourceslist" ]] && [[ -f "$osourcesclist" ]] && [[ -L "$csourceslist" ]]; then
	mv "$osourcesclist" "$nsourcesclist"
	rm -f "$csourceslist"
	ln -sf "$nsourcesclist" "$csourceslist"
elif [[ -f "$csourceslist" ]] && [[ -f "$osourcesclist" ]] && [[ ! -L "$csourceslist" ]]; then
	mv "$osourcesclist" "$nsourcesclist"
	rm -f "$csourceslist"
	ln -sf "$nsourcesclist" "$csourceslist"
elif [[ ! -f "$csourceslist" ]]; then
	if [[ -f "$osourcesclist" ]]; then
		mv "$osourcesclist" "$nsourcesclist"
		ln -sf "$nsourcesclist" "$csourceslist"
	fi
elif [[ ! -f "$osourcesclist" ]]; then
	if [[ -f "$csourceslistbk" ]] || [[ -f "$sourcesclistbk" ]]; then
		if [[ -f "$csourceslistbk" ]]; then
			mv "$csourceslistbk" "$nsourcesclist"
			ln -sf "$nsourcesclist" "$csourceslist"
		elif [[ -f "$sourcesclistbk" ]]; then
			mv "$sourcesclistbk" "$nsourcesclist"
			ln -sf "$nsourcesclist" "$csourceslist"
		fi
	elif [[ -f "$csourceslistold" ]] || [[ -f "$osourcesclist" ]]; then
		if [[ -f "$csourceslistold" ]]; then
			mv "$csourceslistold" "$nsourcesclist"
			ln -sf "$nsourcesclist" "$csourceslist"
		elif [[ -f "$osourcesclist" ]]; then
			mv "$osourcesclist" "$nsourcesclist"
			ln -sf "$nsourcesclist" "$csourceslist"
		fi
	fi
fi
#***********************************************************************************
if [[ ! -f "$nsourcesclistold" ]]; then
	if [[ -f "$csourceslistold" ]] ; then
		mv "$csourceslistold" "$nsourcesclistold"
	elif [[ -f "$osourcesclist" ]] ; then
		mv "$osourcesclist" "$nsourcesclistold"
	fi
fi
#***********************************************************************************
if [[ ! -f "$nsourcesclistbk" ]]; then
	if [[ -f "$csourceslistbk" ]]; then
		mv "$csourceslistbk" "$nsourcesclistbk"
	elif [[ -f "$sourcesclistbk" ]]; then
		mv "$sourcesclistbk" "$nsourcesclistbk"
	fi
fi
#***********************************************************************************
# perform additional checks
if [[ -f "$nsourcesclist" ]] && [[ -f "$csourceslist" ]] && [[ ! -L "$csourceslist" ]]; then
	if [[ "$nsourcesclist" -ot "$csourceslist" ]]; then
		rm -f "$nsourcesclist"
		cp -f "$csourceslist" "$nsourcesclist"
		ln -sf "$nsourcesclist" "$csourceslist"
	elif [[ "$csourceslist" -ot "$nsourcesclist" ]]; then
		rm -f "$csourceslist"
		ln -sf "$nsourcesclist" "$csourceslist"
	fi
elif [[ -f "$nsourcesclist" ]] && [[ ! -f "$csourceslist" ]]; then
	ln -sf "$nsourcesclist" "$csourceslist"
elif [[ ! -f "$nsourcesclist" ]] && [[ ! -f "$csourceslist" ]] && [[ -f "$nsourcesclistbk" ]]; then
	cp -f "$nsourcesclistbk" "$nsourcesclist"
	ln -sf "$nsourcesclist" "$csourceslist"
elif [[ ! -f "$nsourcesclist" ]] && [[ ! -f "$csourceslist" ]] && [[ -f "$nsourcesclistold" ]]; then
	cp -f "$nsourcesclistold" "$nsourcesclist"
	ln -sf "$nsourcesclist" "$csourceslist"
elif [[ ! -f "$nsourcesclist" ]] && [[ ! -f "$csourceslist" ]]; then
	cp -f "$maincslist" "$nsourcesclist"
	ln -sf "$nsourcesclist" "$csourceslist"
fi
#***********************************************************************************

exit 0
