2
0
mirror of https://gitlab.com/apparmor/apparmor synced 2025-08-31 06:16:03 +00:00

aa.py / ask_the_question() - simplify duplicate option prevention

add a add_to_options() helper function to aa.py which
- adds newpath to options if it's not already there
- returns the updated options and the index of newpath

This removes duplicated code for CMD_GLOB and CMD_GLOBEXT in 
ask_the_question()

It also adds duplicate prevention to CMD_NEW.


Acked-by: Kshitij Gupta <kgupta8592@gmail.com>
This commit is contained in:
Christian Boltz
2014-08-25 22:49:29 +02:00
parent 4608322da9
commit a620f18cf0

View File

@@ -1921,30 +1921,19 @@ def ask_the_questions():
continue
user_globs.append(ans)
options.append(ans)
default_option = len(options)
options, default_option = add_to_options(options, ans)
elif ans == 'CMD_GLOB':
newpath = options[selected].strip()
if not re_match_include(newpath):
newpath = glob_path(newpath)
if newpath not in options:
options.append(newpath)
default_option = len(options)
else:
default_option = options.index(newpath) + 1
options, default_option = add_to_options(options, newpath)
elif ans == 'CMD_GLOBEXT':
newpath = options[selected].strip()
if not re_match_include(newpath):
newpath = glob_path_withext(newpath)
if newpath not in options:
options.append(newpath)
default_option = len(options)
else:
default_option = options.index(newpath) + 1
options, default_option = add_to_options(options, newpath)
elif re.search('\d', ans):
default_option = ans
@@ -2039,6 +2028,13 @@ def ask_the_questions():
else:
done = False
def add_to_options(options, newpath):
if newpath not in options:
options.append(newpath)
default_option = options.index(newpath) + 1
return (options, default_option)
def glob_path(newpath):
"""Glob the given file path"""
if newpath[-1] == '/':