summaryrefslogtreecommitdiffstats
path: root/src/lib/Client/Toolset.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Client/Toolset.py')
-rw-r--r--src/lib/Client/Toolset.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/lib/Client/Toolset.py b/src/lib/Client/Toolset.py
index fbf4ae7c4..7aa6a420f 100644
--- a/src/lib/Client/Toolset.py
+++ b/src/lib/Client/Toolset.py
@@ -555,7 +555,7 @@ class Toolset(object):
self.logger.info("Packages to remove:")
self.logger.info(self.pkgwork['remove'])
if [entry for entry in self.states if not (self.states[entry] or entry.tag == 'Package')]:
- self.logger.info("Entries to update:")
+ self.logger.info("Entries are incorrect:")
self.logger.info(["%s: %s" % (entry.tag, entry.get('name'))
for entry in self.states if not (self.states[entry]
or entry.tag == 'Package')])
@@ -563,6 +563,22 @@ class Toolset(object):
self.logger.info("Services to remove:")
self.logger.info(self.extra_services)
+ def PromptUser(self):
+ '''Prompts user for each entry in interactive mode'''
+ #get list of entries that need to be updated
+ #ask user for each entry
+ work = self.pkgwork['add'] + self.pkgwork['update']
+ work += [ent for ent in self.states if ent.tag != 'Package' and not self.states[ent]]
+ self.iinst = [];
+ for entry in work:
+ try:
+ if raw_input("Would you like to install %s%s? (y/N): " % (entry.tag, entry.get('name'))) in ['y','Y']:
+ self.iinst.append((entry.tag, entry.get('name')))
+ except:
+ continue
+ self.logger.info("You chose to install:")
+ self.logger.info(['%s:%s' % item for item in self.iinst])
+
def Install(self):
'''Correct detected misconfigurations'''
if self.setup['dryrun']:
@@ -585,6 +601,9 @@ class Toolset(object):
# add non-package entries
work += [ent for ent in self.states if ent.tag != 'Package' and not self.states[ent]]
+ if self.setup['interactive']:
+ work = [entry for entry in work if (entry.tag, entry.get('name')) in self.iinst]
+
# Counters
## Packages left to install
left = len(work) + len(self.pkgwork['remove'])