diff --git a/files/ini_file.py b/files/ini_file.py index 82d4621dfbb..2dd021ad27c 100644 --- a/files/ini_file.py +++ b/files/ini_file.py @@ -99,6 +99,22 @@ import ConfigParser import sys import os +# ============================================================== +# match_opt + +def match_opt(option, line): + option = re.escape(option) + return re.match('%s *=' % option, line) \ + or re.match('# *%s *=' % option, line) \ + or re.match('; *%s *=' % option, line) + +# ============================================================== +# match_active_opt + +def match_active_opt(option, line): + option = re.escape(option) + return re.match('%s *=' % option, line) + # ============================================================== # do_ini @@ -141,9 +157,7 @@ def do_ini(module, filename, section=None, option=None, value=None, state='prese if within_section and option: if state == 'present': # change the existing option line - if re.match('%s *=' % option, line) \ - or re.match('# *%s *=' % option, line) \ - or re.match('; *%s *=' % option, line): + if match_opt(option, line): newline = '%s = %s\n' % (option, value) changed = ini_lines[index] != newline ini_lines[index] = newline @@ -154,14 +168,14 @@ def do_ini(module, filename, section=None, option=None, value=None, state='prese line = ini_lines[index] if line.startswith('['): break - if re.match('%s *=' % option, line): + if match_active_opt(option, line): del ini_lines[index] else: index = index + 1 break else: # comment out the existing option line - if re.match('%s *=' % option, line): + if match_active_opt(option, line): ini_lines[index] = '#%s' % ini_lines[index] changed = True break