#!/bin/sh -x

dn=$(dirname $0)
if [ "${dn}" = "." ]; then
  echo "Run the build in a subdirectory or in an out-of-source directory"
  exit 1
fi

topdir=$(readlink -f ${dn})
builddir=$(readlink -f .)
papersdir=${builddir}/papers
latex_templates=${topdir}/instructions/LaTeXTemplates.zip

die() {
    echo >&2 "$1"
    exit 1
}

build_from_source() {
    local project project_dir main_tex_file other_files bib_file ok
    project_dir="$1"
    project=$(echo ${project_dir} | tr '/' '_')
    main_tex_file="$2"
    [ -f "${topdir}/contributions/${project_dir}/${main_tex_file}" ] || die "invalid call to build_from_source()"
    shift; shift;
    other_files="$@"

    if [ ! -d ${project_dir} ]; then
	mkdir -p ${project_dir}
	cd ${project_dir}

	cp ${topdir}/contributions/${project_dir}/${main_tex_file} ./${project}.tex \
	    && for f in ${other_files}; do \
	           cp -a ${topdir}/contributions/${project_dir}/${f} .; done \
	    && unzip ${latex_templates} \
	    && pdflatex ${project} \
	    && if grep bibdata ${project}.aux; then
	           unzip -j BibTeX/iopart-num.zip iopart-num/iopart-num.bst
		   bibtex ${project}
		   pdflatex ${project}
	       fi \
	    && pdflatex ${project} \
	    && ln -sf ${builddir}/${project_dir}/${project}.pdf ${papersdir}

	cd -
    fi
}

link_pdf() {
    local project project_dir pdf_file
    project_dir="$1"
    project=$(echo ${project_dir} | tr '/' '_')
    pdf_file="$2"
    [ -f "${topdir}/contributions/${project_dir}/${pdf_file}" ] || die "invalid call to link_pdf()"

    ln -s "${topdir}/contributions/${project_dir}/${pdf_file}" ${papersdir}/${project}.pdf
}

if [ ! -d ${papersdir} ]; then
    mkdir -p ${papersdir}
fi

cd ${builddir}

# prepare cover
#link_pdf cover cover.pdf
#link_pdf experiment experiment.pdf
#link_pdf datacenter datacenter.pdf
#link_pdf research research.pdf
#link_pdf transfer transfer.pdf
#link_pdf additional additional.pdf

#build_from_source user_support user_support.tex Tape_Usage.png  Used_CPU.png  Used_Disk.png
#build_from_source ams      ams.tex AMS_nuovo.pdf  contributors.pdf  He-MC.pdf  input_output.jpg
#link_pdf alice alice.pdf
build_from_source atlas    atlas.tex
#build_from_source auger    auger.tex  Mass.PNG  Spectrum-1.PNG
#build_from_source borexino borexino.tex
build_from_source cms report-cms-feb-2018.tex cms-jobs.eps tier-1-sr-2017.eps
#build_from_source cnmon    cnmon_annual_report.tex arch.png dash1.png dash2.png lemon1.png
#build_from_source cta      cta.tex  CPU.eps  CTA_ProjectTimeline_Jan2017.eps
#build_from_source cuore    cuore.tex cuore.bib
build_from_source cupid    cupid.tex cupid.bib 
#build_from_source dampe    dampe.tex CNAF_HS06_2016.png dampe_layout_2.jpg PastedGraphic-1.pdf
link_pdf darkside ds.pdf
#build_from_source eee eee.tex  EEEarch.eps  EEEmonitor.eps  EEErun2.PNG
#build_from_source enubet   enubet.tex  img00.png  img01.png  setup.png  UCM.png
build_from_source famu famu.tex  fig1.eps fig2.eps
#build_from_source gerda    gerda.tex G16-07_EnrBEGe-orig-bwindow.png  phaseII_bgm_fit_enrBEGe_poisson575_5315.png
#build_from_source glast 	glast.tex CPU_days_per_site.png  norm_cpu_used_by_site.png
link_pdf juno juno.pdf
link_pdf km3net  km3net.pdf
#link_pdf          lhcb     LHCb_CNAFAnnualReport_2016.pdf # sic
build_from_source lhcf  lhcf.tex
#build_from_source mwsoftware        mw-software.tex
#build_from_source mwinfrastructure  mw-infrastructure.tex kube-diagram.png
#link_pdf indigo-iam iam.pdf
#build_from_source na62	 na62.tex
link_pdf padme padme.pdf
#build_from_source pamela pamela.tex
#build_from_source sysinfo  sysinfo.tex
#build_from_source xenon xenon.tex
#link_pdf virgo virgo.pdf

#build_from_source tier1 AR-Tier1-2016.tex  AR-Tier1-2016.bib  farm-2016-completo.png  HSM-T1.png  T1-trend.png  trend-consumi.png  trend-spazi.png
#build_from_source farming farming.tex
#build_from_source fshareadjust fshareadjust-AR2016.tex  fshareadjust-AR2016.bib  *.png
#build_from_source storage storage.tex Backup-schema.png  cms_cancellation_2016.png  Picture1.png  rack-DDN.png  schema-server-storm.png  schema-storage.png 
#build_from_source backup backup.tex Backup-schema.png
#build_from_source dataclient dataclient.tex
#build_from_source rete rete.tex *.png
#build_from_source run3 run3.tex *.png
#build_from_source helix HNSciCloudPCP.tex  HNSCICLOUD_project_phases.png  Loghi_HNSciCloud.png
#build_from_source infra infra.tex  SBO.png
#build_from_source chiller chiller.tex  Energy-breakdown.png  SBO.png  simulated-scenario.png
#build_from_source ssnn SSNN_Infra.tex Schema_Infra_SSNN.jpg

#build_from_source cloud_cnaf cloud_cnaf.tex *.png
#build_from_source sq sq.tex sq.bib hist1.dat hist2.dat hist3.dat
#build_from_source uq uq.tex uq.bib arch1.png arch2.png
#build_from_source lseb lseb.tex benchmark.pdf eb.pdf layers.png plot.pdf switch.pdf
#build_from_source ocp ocp.tex AutomaticOCP_NEW.png  NetworkOCP_NEW.png
#build_from_source tridas tridas.tex detector.pdf floor.pdf network.pdf plot.pdf tridas1.pdf
#build_from_source nginx_voms nginx_voms.tex *.png
#build_from_source xrf xrf.tex *.png *.jpg
#build_from_source euclid euclid.tex *.png *.jpg
#build_from_source dynpart dynpart-AR2016.tex  dynpart-AR2016.bib
#build_from_source cosa cosa.tex biblio.bib
#build_from_source pett pett.tex *.png
pdflatex ${topdir}/cnaf-annual-report-2017.tex \
&& pdflatex ${topdir}/cnaf-annual-report-2017.tex 2> /dev/null \
&& pdflatex ${topdir}/cnaf-annual-report-2017.tex 2> /dev/null