# env/bin/bash sh
# vérifie si lors de l'utilisation le l'algorithme dans le fichier nb_rues_avec_attr si nous n'utilisons que les arrêtes
# possédants l'attribut nom. Elle permet de savoir si il est util de récupérer les osmid des arrêtes avec l'attribut
# name pour trouver les autres arrêtes sans atributs names mais avec les attributs recherché

function get_key_id() {
  clef=$1
  chemin_vers_fichier=$2
  return "$(cat "$chemin_vers_fichier" | grep "name=\"$clef" | grep -o 'id="[^ ]*' | grep -o '[0-9]*' | head -n 1)"
}

function affiche_utilite() {
    #prend en paramètre une liste d'identifiant osm_id
    liste_id=("$@")
    #echo "ll : $( echo "$liste_id" | sed -z 's/\n/|/g')**"
    declare tab
    for i in $liste_id
    do
      tab+=("$i")
    done

    pat=$(echo "${tab[@]}" | tr " " "|")
    #echo "################"
    #echo "$pat"
    #echo "$bloques_edges" | grep -Ew "$pat" | grep 'd11'
    echo "$bloques_edges" | grep "d$key_name" | grep -Ew --color "$pat"
    echo "nous avons ajouté $(echo "$bloques_edges" | grep -Ew "$pat" | grep "d$key_name" | wc -l) valeurs avec l'osm_id sans noms"
}

chemin_fichier=$1
shift

i=0
for var in "$@"
do
    get_key_id "$var" "$chemin_fichier"
    clef=$?
    echo "$var  :  $clef"
    if [ $i == 1 ]
    then
      grep_expression_variable_a_garder=$grep_expression_variable_a_garder"\|<data key=\"d$clef\">[^ ]*"
    else
      grep_expression_variable_a_garder=$grep_expression_variable_a_garder"<data key=\"d$clef\">[^ ]*"
    fi
    i=1
done

get_key_id name "$chemin_vers_fichier"
key_name=$?

get_key_id osmid "$chemin_vers_fichier"
key_id_osm_id=$?


echo "clef osm_id : $key_id_osm_id   clef name : $key_name"

echo "exp : $grep_expression_variable_a_garder"

bloques_edges=$(cat "$chemin_fichier" | sed -n -e "/<edge/,/<\/edge>/ p" | tr -d "\n" | sed -s 's+</edge>+</edge>\n+g')
osm_id_sans_nom=$(cat "$chemin_fichier" | sed -n -e "/<edge/,/<\/edge>/ p" | tr -d "\n" | sed -s 's+</edge>+</edge>\n+g'| grep -v "d$key_name" | grep "$grep_expression_variable_a_garder")


osm_id_liste=$(echo "$osm_id_sans_nom" | grep -o "<data key=\"d$key_id_osm_id\">[^<]*" | cut -d '>' -f 2 | cut -d '<' -f 1 | sed -s 's/\[\|\]//g' | sed -s 's/, /\n/g' | sort --uniq)


target_osm=$(echo "$osm_id_sans_nom" | grep -o 'target[^ ]*' | cut -d '"' -f 2 | sort --uniq)
source_osm=$(echo "$osm_id_sans_nom" | grep -o 'source[^ ]*' | cut -d '"' -f 2 | sort --uniq)

echo "comp : osm_id_san_nom : $(echo "$osm_id_liste" | wc -l)      ma tech : $(echo "$bloques_edges" | grep -o '<data key="d$key_id_osm_id">[^<data]*' | cut -d '>' -f 2 | cut -d '<' -f 1 | sed -s 's/\[\|\]//g' | sed -s 's/, /\n/g' | sort --uniq | wc -l)"
#echo "liste : $osm_id_liste"
affiche_utilite "$osm_id_liste"
echo "utilisation osmid de la target des edges"
affiche_utilite "$target_osm"
echo "utiliation osmid de la source des edges"
affiche_utilite "$source_osm"