#!/usr/bin/env python # -*- coding: utf-8 -*- # ***************************************************************************** # NICOS, the Networked Instrument Control System of the MLZ # Copyright (c) 2009-2019 by the NICOS contributors (see AUTHORS) # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the Free Software Foundation, Inc., # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # Module authors: # Georg Brandl # Markus Zolliker # # ***************************************************************************** import argparse import sys from os import path, environ, chdir root = path.dirname(path.dirname(path.dirname(path.realpath(__file__)))) nicos_root = path.join(root, 'nicos') sys.path.insert(0, nicos_root) # above packages: sys.path.insert(1, root) parser = argparse.ArgumentParser() parser.add_argument('-d', '--daemon', dest='daemon', action='store_true', help='daemonize the cache process') parser.add_argument('-D', '--systemd', dest='daemon', action='store_const', const='systemd', help='run in systemd service mode') parser.add_argument('-S', '--setup', action='store', dest='setupname', default='cache', help="name of the setup, default is 'cache'") parser.add_argument('--clear', dest='clear', action='store_true', default=False, help='clear the whole cache') parser.add_argument('-I', '--instrument', action='store', type=str, default='', help='instrument as .\n', ) parser.add_argument('args', nargs=argparse.REMAINDER, help=argparse.SUPPRESS) opts = parser.parse_args() if opts.clear: opts.args.append('clear') if opts.instrument: environ['INSTRUMENT'] = opts.instrument from nicos.core.sessions.simple import NoninteractiveSession NoninteractiveSession.run(opts.setupname, 'Server', setupname=opts.setupname, daemon=opts.daemon, start_args=opts.args)