Merge branch 'master' of ssh://git.onelab.eu/git/sfa
[sfa.git] / config / sfa-config-tty
index 26f4892..0b708e2 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/env python
+#!/usr/bin/env python
 
 import os
 import sys
@@ -9,6 +9,8 @@ import types
 import readline
 from StringIO import StringIO
 from optparse import OptionParser
+
+from sfa.util.version import version_tag
 from sfa.util.config import Config
 
 def validator(validated_variables):
@@ -44,10 +46,6 @@ configuration={ \
 
 # GLOBAL VARIABLES
 #
-release_id = "$Id$"
-release_rev = "$Revision$"
-release_url = "$URL$"
-
 g_configuration=None
 usual_variables=None
 config_dir=None
@@ -155,8 +153,8 @@ def print_name_comments (config, cid, vid):
 ####################
 def list_categories (config):
     result=[]
-    for (category_id, (category, variables)) in config.variables().iteritems():
-        result += [category_id]
+    for section in config.sections():
+        result += [section]
     return result
 
 def print_categories (config):
@@ -167,10 +165,10 @@ def print_categories (config):
 ####################
 def list_category (config, cid):
     result=[]
-    for (category_id, (category, variables)) in config.variables().iteritems():
-        if (cid == category_id):
-            for variable in variables.values():
-                result += ["%s_%s" %(cid,variable['id'])]
+    for section in config.sections():
+        if section == cid.lower():
+            for (name,value) in config.items(section):
+                result += ["%s_%s" %(cid,name)]    
     return result
 
 def print_category (config, cid, show_comments=True):
@@ -258,6 +256,7 @@ def prompt_variable (cdef, cread, cwrite, category, variable,
         else:
             if cdef.validate_type(variable_type, answer):
                 cwrite.set(category_id, variable_id, answer)
+                return
             else:
                 print "Not a valid value"
 
@@ -462,7 +461,7 @@ def check_dir (config_file):
 
 ####################
 def optParserSetup(configuration):
-    parser = OptionParser(usage=usage(), version="%prog " + release_rev + release_url )
+    parser = OptionParser(usage=usage(), version="%prog " + version_tag )
     parser.set_defaults(config_dir=configuration['config_dir'],
                         service=configuration['service'],
                         usual_variables=configuration['usual_variables'])
@@ -515,15 +514,10 @@ def main(command,argv,configuration):
 
     # local settings only, will be modified & saved
     config_filename = "%s/sfa_config" % config.config_dir
-    try:
-        cwrite=Config(config_filename)
-    except ConfigParser.MissingSectionHeaderError:
-        # remove legacy config 
-        os.unlink(config_filename)
-        cwrite=Config(config_filename)
-
+    cwrite=Config(config_filename)
     try:
         cread.load(site_config)
+        cwrite.load(default_config)
         cwrite.load(site_config)
     except:
         cwrite = Config()