#!/usr/bin/python
# -*- coding: iso-8859-1 -*-

import getopt
import sys
import os

os.chdir('/var/scripts/sql_generator/fl-network')

import generate

def usage():
	print """usage : python fli_sql.py [OPTIONS] MODE

Utilitaire permettant la génération / l'exécution de code SQL sur les serveurs FLN 

OPTIONS
	-h --help : afffiche l'aide
	-c --config : préciser le fichier de config à utiliser (par défaut, celui fourni dans le répertoire : config.ini)

MODE
	-d --display : genère le code sql et l'affiche
	-s --sql : genère le code sql et place tout dans le répertoire sql/
	-e --execute : genère le code sql et l'exécute directement sur les serveurs parametrés dans le fichier de config
"""


def main():
	try:
		#opts, args = getopt.getopt(sys.argv[1:], "ho:v", ["help", "output="])
		opts, args = getopt.getopt(sys.argv[1:], "hc:sed", ["help", "config", "sql", "execute", "display"])
	except getopt.GetoptError, err:
		# print help information and exit:
		print str(err) # will print something like "option -a not recognized"
		usage()
		sys.exit(2)
	config = 'config.ini'
	display = False
	sql = False
	execute = False
	for o, a in opts:
		if o in ("-h", "--help"):
			usage()
			sys.exit()
		elif o in ("-c", "--config"):
			config = a
		elif o in ("-s", "--sql"):
			sql = True
		elif o in ("-e", "--execute"):
                        execute = True
		elif o in ("-d", "--display"):
                        display = True
		else:
			assert False, "unhandled option"

	if not sql and not execute and not display:
		usage()
		sys.exit()

	if sql:
		generate.main(config, 'sql')
	elif display:
		generate.main(config, 'display')
	elif execute:
		generate.main(config, 'execute')

if __name__ == "__main__":
    main()
