69 lines
2.2 KiB
Python
69 lines
2.2 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
DAMARISi3 command-line interface.
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
import 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"
|
|
|
|
|
|
def main():
|
|
"""Main entry point for DAMARIS."""
|
|
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")
|
|
|
|
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()
|
|
|
|
sys.stdout = sys.__stdout__
|
|
sys.stderr = sys.__stderr__
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|