# -*- coding: iso-8859-1 -*- # #------------------------------------------------------------------------------- # Code_Saturne version 1.3 # ------------------------ # # # This file is part of the Code_Saturne User Interface, element of the # Code_Saturne CFD tool. # # Copyright (C) 1998-2007 EDF S.A., France # # contact: saturne-support@edf.fr # # The Code_Saturne User Interface 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. # # The Code_Saturne User Interface 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 the Code_Saturne Kernel; if not, write to the # Free Software Foundation, Inc., # 51 Franklin St, Fifth Floor, # Boston, MA 02110-1301 USA # #------------------------------------------------------------------------------- """ This module describes what to do when the line command is parsed. This module defines the following functions: - usage - process_cmd_line """ #------------------------------------------------------------------------------- # Library modules import #------------------------------------------------------------------------------- import os, sys, types, string, getopt #------------------------------------------------------------------------------- # Application modules import #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # Usage/help message #------------------------------------------------------------------------------- def usage(): """ Usage of Code_Saturne GUI. """ txt=""" Usage:\n\nics [options]... [xml file name] Valid options are one or more of the following: -f [xml file name] --file [xml file name] Upload a previous case at the interface start. -n --new Open a new case. None effect if '-f' option is used. -l [language] --lang [language] Language, actually avalaible : [english] and [french] ([en], [anglais] idem as [english] and [fr], [francais], [français] idem as [french]). Other Language can be added, ask to the development team. The default language depends on the value of the LANG environment variable. -v --version Prints the Code_Saturne GUI version. -h --help Prints this help message. -m --matisse Load matisse version -b [batchfile] --batch (batchfile] Set batchrunning window with batch file -f or --file option is mandatory -t --no-tree No tree window loaded Examples: ics.py name_of_file.xml ics.py -n -l french ics.py --file name_of_file.xml --lang english ---------------------------------------------------------------------- """ return txt #------------------------------------------------------------------------------- # Processes the passed command line arguments #------------------------------------------------------------------------------- def process_cmd_line (arg): """ Processes the passed command line arguments. Input Argument: arg -- This can be either a list of arguments as in sys.argv[1:] or a string that is similar to the one passed on the command line. If it is a string the string is split to create a list of arguments. Returned Values: case -- Name of the file. If the variable case is set to "new case" SaturneGUI is open with a new case. lang -- user defined language """ # The "-n" option has none effect when "-f" is used # if ( ('-n' in arg) or ('--new' in arg) ) and \ ( ('-f' in arg) or ('--file' in arg) ): try: del arg[arg.index('-n')] except: del arg[arg.index('--new')] # When xml file name is the only one argument # if type(arg) is types.StringType: arg = string.split(arg) options = "f:l:b:mntr" long_opts = ['file=', 'lang=', 'batch=', 'matisse', 'new', 'no-tree', 'read-only'] try: opts, args = getopt.getopt(arg, options, long_opts) except getopt.error, msg: print "\nWarning:\n", msg print usage() print "Warning:\n", msg, "\n" sys.exit(1) if (opts and args) or len(args)>1 : print usage() sys.exit(1) case = "" lang = "" matisse = False batch_window = False batch_file = 'lance' tree_window = True read_only = False if not opts and args : case = args[0] for o, a in opts: if o in ('-l', '--lang'): if a in ('fr', 'french', 'francais', 'français'): lang = "fr" elif a in ('en', 'english', 'anglais'): lang = "en" else: print usage() sys.exit(1) if o in ('-f', '--file'): case = a if o in ('-n', '--new'): case = "new case" if o in ('-m', '--matisse'): matisse = True if o in ('-b', '--batch'): batch_window = True batch_file = os.path.basename(a) if not case: print usage() sys.exit(1) if o in ('-t', '--no-tree'): tree_window = False if o in ('-r', '--read-only'): read_only = True return case, lang, matisse, batch_window, batch_file, tree_window, read_only #------------------------------------------------------------------------------- # End #-------------------------------------------------------------------------------