#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
    utilitaire permettant de vérifier que la version est supérieure ou égal à 2.42
    Usage :
        ./verify_version <modele_xml>
        renvoie

        - 0 : le modèle est à jour
        - 1 : le modèle n'est pas à jour
        - -1 : erreur

   ce script est utilise par le service **bastion**
"""

import sys
from xml.etree import ElementTree as ET
import types

base_version = 2.42

def main():
    """
        parsing linge de commande est parsing du fichier xml
    """
    if len(sys.argv) != 2:
        print("Erreur : un modele xml est necessaire")
        print(__doc__)
        print()
        sys.exit(-1)
    else:
        parse_xml(sys.argv[1])

def parse_xml(model_file):
    tree = ET.parse(model_file)
    root = tree.getroot()
    xml_version = root.get('version')
    if xml_version is None:
        sys.exit(1)
    xml_version = float(xml_version)
    # absence d'attribut version <=> le modèle n'est pas à jour
    if xml_version >= base_version:
        sys.exit(0)
    else:
        sys.exit(1)

if __name__ == '__main__':
    try:
        main()
    except Exception:
        sys.exit(-1)
