#!/bin/sh

# script to run update, setting properties, for all projects

# main entry point for Callisto update
updateSite=${HOME}/downloads/webtools/testUpdates
mainSiteFileName=siteWTPCallisto.xml

updateToolsDir=org.eclipse.wtp.releng.webupdatesite


 
eclipseLocation=${HOME}/eclipse-ppc-33M7



if [ "$1" == "-clean" ] ; then

	 echo "   Removing ${updateSite}/features/"
	 rm -fr ${updateSite}/features/
	
	 echo "   Removing ${updateSite}/plugins/"
	 rm -fr ${updateSite}/plugins/
	
	 echo "   Removing index and site xml files"
	 rm -fr ${updateSite}/*
	
	 echo "   Updating index and web site files, but not site xml files (yet)"
	    cp ${HOME}/${updateToolsDir}/WebContent/index.html  ${updateSite}
	    cp ${HOME}/${updateToolsDir}/WebContent/*.jpg  ${updateSite} > /dev/null
	    cp ${HOME}/${updateToolsDir}/WebContent/*.gif  ${updateSite} > /dev/null
	    cp -r ${HOME}/${updateToolsDir}/WebContent/web ${updateSite} > /dev/null

fi


ant  -f updateCallistoMirrorAll.xml -Declipse.home=${eclipseLocation} -DlocalUpdateSitePath=${updateSite}

# merge authored site.xml files with the most recent auto generated one
./runUpdateSiteXmlFiles.sh $mainSiteFileName ${updateSite}

#ant  -f createPack200s.xml     -Declipse.home=${eclipseLocation} -DupdateSite=${updateSite}
 
# run create Digests now, it's a good check if all is well
ant  -f createDigests.xml      -Declipse.home=${eclipseLocation} -DupdateSite=${updateSite}  -DmainSiteFileName=${mainSiteFileName}

