X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plc_config.py;h=420386245318dcd07d7c6c21d1c4ca845bdde6a9;hb=1e0e4007e306ca111f0d538c073fd51380abcd99;hp=a13a11a758a25f8ee2bbd25a34b18a164a0ccbf5;hpb=190736f49e79d0524c224d097e564a0604343fa5;p=myplc.git diff --git a/plc_config.py b/plc_config.py index a13a11a..4203862 100644 --- a/plc_config.py +++ b/plc_config.py @@ -7,8 +7,6 @@ # Mark Huang # Copyright (C) 2006 The Trustees of Princeton University # -# $Id$ -# import codecs import os @@ -840,9 +838,16 @@ DO NOT EDIT. This file was automatically generated at return True except: return False + def email_validator(val): + return re.match('\A[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9._\-]+\.[a-zA-Z]+\Z', val) + + def boolean_validator (val): + return val in ['true', 'false'] + validators = { - 'email' : lambda val: re.match('[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-_]+\.[a-zA-Z]+', val), - 'ip': ip_validator + 'email' : email_validator, + 'ip': ip_validator, + 'boolean': boolean_validator, } # validate it if not a know type. @@ -868,10 +873,6 @@ class TrimTextElement(xml.dom.minidom.Element): #################### # GLOBAL VARIABLES # -release_id = "$Id$" -release_rev = "$Revision$" -release_url = "$URL$" - g_configuration=None usual_variables=None config_dir=None @@ -899,8 +900,9 @@ def init_configuration (): mainloop_usage= """Available commands: Uppercase versions give variables comments, when available u/U\t\t\tEdit usual variables - w/W\t\t\tWrite / Write & reload - r\t\t\tRestart %s service + w\t\t\tWrite + r\t\t\tRestart %(service)s service + R\t\t\tReload %(service)s service (rebuild config files for sh, python....) q\t\t\tQuit (without saving) h/?\t\t\tThis help --- @@ -909,10 +911,10 @@ def init_configuration (): e/E [|]\tEdit variables (all, in category, single) --- c\t\t\tList categories - v/V [|]List Variables (all, in category, single) + v/V [|]\tList Variables (all, in category, single) --- Typical usage involves: u, [l,] w, r, q -""" % service +""" % globals() def usage (): command_usage="%prog [options] [default-xml [site-xml [consolidated-xml]]]" @@ -1186,7 +1188,6 @@ def mainloop (cdef, cread, cwrite, default_config, site_config, consolidated_con continue show_comments=command.isupper() - command=command.lower() mode='ALL' if arg: @@ -1207,10 +1208,10 @@ def mainloop (cdef, cread, cwrite, default_config, site_config, consolidated_con print "%s: no such category or variable" % arg continue - if (command in "qQ"): + if command in "qQ": # todo check confirmation return - elif (command == "w"): + elif command == "w": try: # Confirm that various constraints are met before saving file. validate_variables = g_configuration.get('validate_variables',{}) @@ -1229,7 +1230,7 @@ def mainloop (cdef, cread, cwrite, default_config, site_config, consolidated_con consolidate(default_config, site_config, consolidated_config) print ("You might want to type 'r' (restart %s), 'R' (reload %s) or 'q' (quit)" % \ (service,service)) - elif (command == "u"): + elif command in "uU": global usual_variables try: for varname in usual_variables: @@ -1239,13 +1240,13 @@ def mainloop (cdef, cread, cwrite, default_config, site_config, consolidated_con except Exception, inst: if (str(inst) != 'BailOut'): raise - elif (command == "r"): + elif command == "r": restart_service() - elif (command == "R"): + elif command == "R": reload_service() - elif (command == "c"): + elif command == "c": print_categories(cread) - elif (command in "eE"): + elif command in "eE": if mode == 'ALL': prompt_variables_all(cdef, cread, cwrite,show_comments) elif mode == 'CATEGORY': @@ -1255,12 +1256,12 @@ def mainloop (cdef, cread, cwrite, default_config, site_config, consolidated_con prompt_variable (cdef,cread,cwrite,category,variable, show_comments,False) except Exception, inst: - if (str(inst) != 'BailOut'): + if str(inst) != 'BailOut': raise - elif (command in "vVsSlL"): + elif command in "vVsSlL": show_value=(command in "sSlL") (c1,c2,c3) = (cdef, cread, cwrite) - if (command in "lL"): + if command in "lL": (c1,c2,c3) = (cwrite,cwrite,cwrite) if mode == 'ALL': show_variables_all(c1,c2,c3,show_value,show_comments) @@ -1290,7 +1291,7 @@ def check_dir (config_file): #################### def optParserSetup(configuration): - parser = OptionParser(usage=usage(), version="%prog " + release_rev + release_url ) + parser = OptionParser(usage=usage()) parser.set_defaults(config_dir=configuration['config_dir'], service=configuration['service'], usual_variables=configuration['usual_variables'])