#!/usr/bin/python3

# setup script will insert local DAMARIS installation path behind import sys statement
# this must happen before any damaris stuff is called!
import sys
import os, argparse
import sqlite3
# for numpy-1.1 and later: check the environment for LANG and LC_NUMERIC
# see: http://projects.scipy.org/scipy/numpy/ticket/902
if os.environ.get("LANG", "").startswith("de") or os.environ.get("LC_NUMERIC", "").startswith("de"):
    os.environ["LC_NUMERIC"] = "C"

parser = argparse.ArgumentParser(description='DArmstadt MAgnetic Resonance Instrumentation Software')

parser.add_argument("--run", action="store_true", help="run DAMARIS immediately with given scripts")
parser.add_argument("--clean", action="store_true", help="cleanup DAMARIS run files")

parser.add_argument("--debug", action="store_true", help="run DAMARIS with DEBUG flag set")
parser.add_argument("--mpl", help="run DAMARIS with matplotlib backend",
                    choices=["GTK3Agg","GTK3Cairo"], default="GTK3Agg")

parser.add_argument("exp_script", help="experiment script", nargs="?", metavar="EXP.py")
parser.add_argument("res_script", help="result script", nargs="?", metavar="RES.py")
#parser.add_argument("exp_res_script", help="(NOT IMPLEMENTED) further experiment and result script pairs", nargs=argparse.REMAINDER, metavar="EXPn.py RESn.py")


args = parser.parse_args()

import matplotlib
if args.mpl:
    matplotlib.use(args.mpl)

import damaris.gui.DamarisGUI

lockfile = os.path.expanduser('~/.damaris.lockdb')
if args.clean:
    if os.path.exists(lockfile):
        print("Removing lockfile: %s"%lockfile)
        os.remove(lockfile)
    else:
        print("Lockfile does not exists: %s"%lockfile)
lockdb = sqlite3.connect(lockfile)

c = lockdb.cursor()
c.execute("CREATE TABLE IF NOT EXISTS damaris (uuid text, status text)")
lockdb.commit()

if args.debug:
    damaris.gui.DamarisGUI.debug = True
    print("debug flag set")
    try:
        import resource
        resource.setrlimit(resource.RLIMIT_CORE, (-1, -1))
    except ImportError:
        pass
print(args)
d = damaris.gui.DamarisGUI.DamarisGUI(args.exp_script, args.res_script, start_immediately=args.run)
d.run()

#for exp_script, res_script in args.exp_res_script:
#    print "here"
#    d = damaris.gui.DamarisGUI.DamarisGUI(exp_script, res_script, start_immediatly=args.run)
#    d.run()

sys.stdout = sys.__stdout__
sys.stderr = sys.__stderr__

#lockdb.close()
