#!/bin/bash

# prend en argument le path et le nom d'un fichier param (argument de la commande
# ccc_archive avec option ipsl_pack) 
# ex : ./find_directory_simul.job  fichier_param_test1.txt liste_fichier_dmnfs
# ex : find_directory_simul.job param_SL.txt /cscratch/cont003/labetoul/FROM_CCRT_INFORMATIONS_DMNFS/information_dmnfs_2012-03-21

#-------------------------------
# A modifier avant utilisation : 
#--------------------------------

LISTE_SIMUL=${1}
LISTE_DMNFS=${2}

# ----
export JOB_DIR=${JOB_DIR:-${PWD}}
export IGCM_DEM=${IGCM_DEM:-${SCRATCHDIR}/IGCM_DEM}
export IGCM_TMP=${IGCM_TMP:-${IGCM_DEM}/tmp}
mkdir -p ${IGCM_DEM}
mkdir -p ${IGCM_TMP}
clean_tmp=${clean_tmp:-yes}
EXE_DIR=$(dirname ${0})
SCRIPT_NAME=$(basename ${0} )
source ${EXE_DIR}/DEM_utilities.sh
DEM_log -0 "Demmarrage de ${SCRIPT_NAME}"
cd ${JOB_DIR}
# ----

LISTE_SIMUL=${1}
LISTE_DMNFS=${2}

LISTE_SIMUL_NAME=$(basename ${LISTE_SIMUL} )



# Pour tous les fichiers ou repertoires contenus dans le fichier de parametres 
for DIR in $( awk '{print $0}' ${LISTE_SIMUL} ) ; do 
    DEM_log -1 ${SCRIPT_NAME} - Inspection de ${DIR}"/"
    # trouve la liste des répertoires restart sous l'arborescence
    grep ${DIR}"/" ${LISTE_DMNFS} | grep Restart | awk '{print $3}' | sed 's%/Restart.*%%'  >> ${IGCM_TMP}/${$}.liste_Restart.txt

done
 
# On cherche le path (deux crans au dessus des repertoires Restart) 
DEM_log -1 "Recherche du path"

for DIR in  $( awk '{print $0}' ${IGCM_TMP}/${$}.liste_Restart.txt ) ; do 
    DEM_log -3 ${SCRIPT_NAME} - Recherche path : ${DIR}

#gestion des cas particulier tels que la creation de l'etat initial avec lmdz (JobName/ATM/Output/Restart/ au lieu de JobName/ATM/Restart/) 
    PATH_SIM=$( dirname ${DIR} ) 
    lastdir=$( echo $PATH_SIM | sed -e "s%.*/%%") 
    if [ $lastdir != "ATM" ]; then
	dirname ${DIR} >> ${IGCM_TMP}/${$}.path_simul.txt
    else
	dirname ${PATH_SIM} >> ${IGCM_TMP}/${$}.path_simul.txt
    fi 

done

# On retire les doublons pour avoir la liste des simulations a tester
DEM_log -1 "Suppression des doublons"

awk '{if (x[$0] != "") next ; print $0 ; x[$0]=$0}' <${IGCM_TMP}/${$}.path_simul.txt  >> liste_simul_${LISTE_SIMUL_NAME}
awk '{if (x[$0] != "") next ; print $0 ; x[$0]=$0}' <liste_simul_${LISTE_SIMUL_NAME}  >> liste_simul_${LISTE_SIMUL_NAME}.tmp${$}
mv liste_simul_${LISTE_SIMUL_NAME}.tmp${$} liste_simul_${LISTE_SIMUL_NAME}

DEM_log -1 "Fichier cree : liste_simul_${LISTE_SIMUL_NAME}"

[[ "${clean_tmp}" = "yes" ]] && rm -f ${IGCM_TMP}/${$}.path_simul.txt
[[ "${clean_tmp}" = "yes" ]] && rm -f ${IGCM_TMP}/${$}.liste_Restart.txt

DEM_log -0 "Fin de ${SCRIPT_NAME}"
