#!/usr/bin/env python
# -*- coding: utf-8 -*-
###########################################################################
# 
# Eole NG  
# Copyright Pole de Competence Eole  (Ministere Education - Academie Dijon)
# Licence CeCill  http://www.cecill.info/licences/Licence_CeCILL_V2-fr.html
# eole@ac-dijon.fr 
#  
###########################################################################

"""
Era Editeur de Regles pour Amon
Framework generation de regles iptables

%prog [-f era_model_file.xml]

"""
# ____________________________________________________________
# global imports
from os.path import dirname, abspath, join, normpath
from optparse import OptionParser
import os, sys
import gtk, gtk.glade
# ____________________________________________________________
# local imports
from era.noyau import fwobjects
from era.ihm import matrix
from era.noyau.initialize import initialize_app
import era.noyau.translation
from era import era_version
from era.noyau.path import APP, APP_DIR, RC_FILE

def parse_command_line():
    """
        construit le parseur d'options de la ligne de commande,
        parse la ligne de commande, et retourne
        le couple (options, fichier_modele_era.xml)
    """
    parser = OptionParser(__doc__, version = era_version)
    parser.add_option("-f", "--file", dest = "model_file",
                      default=None,
                      help="model filename",
                      metavar = "MODEL_FILE")
 
    options, args = parser.parse_args()
    if len(args) != 0:
        parser.error("script does not accept any cmd line attribute")
        parser.print_help()
    return options

def run_application():
    """
        lancement de l'application
    """
    
    # internationalisation et style
    gtk.glade.bindtextdomain(APP, APP_DIR)
    gtk.rc_parse(RC_FILE)
    # ligne de commande
    options = parse_command_line()
    # chargement du modele
    try:
        model = initialize_app()
    except Exception, e:
        print e
        sys.exit(1)
    # lancement de l'interface gtk
    matrix.main(model, options.model_file)
    
if __name__ == '__main__':
    run_application()

