Make install command beta.

This commit is contained in:
Darko Poljak 2016-10-13 21:35:41 +02:00
parent acf94abe26
commit 750f90db4c
2 changed files with 20 additions and 6 deletions

View File

@ -59,16 +59,24 @@ class UnresolvableRequirementsError(cdist.Error):
class CdistBetaRequired(cdist.Error):
"""Beta functionality is used but beta is not enabled"""
def __init__(self, command, arg):
def __init__(self, command, arg=None):
self.command = command
self.arg = arg
def __str__(self):
err_msg = ("\'{}\' argument of \'{}\' command is beta, but beta is "
"not enabled. If you want to use it please enable beta "
"functionalities by using the -b/--enable-beta command "
"line flag.")
return err_msg.format(self.arg, self.command)
if self.arg is None:
err_msg = ("\'{}\' command is beta, but beta is "
"not enabled. If you want to use it please enable beta "
"functionalities by using the -b/--enable-beta command "
"line flag.")
fmt_args = [self.command, ]
else:
err_msg = ("\'{}\' argument of \'{}\' command is beta, but beta "
"is not enabled. If you want to use it please enable "
"beta functionalities by using the -b/--enable-beta "
"command line flag.")
fmt_args = [self.arg, self.command, ]
return err_msg.format(*fmt_args)
class CdistObjectError(Error):

View File

@ -22,6 +22,8 @@
#
# list of beta sub-commands
BETA_COMMANDS = ['install', ]
# list of beta arguments for sub-commands
BETA_ARGS = {
'config': ['jobs', ],
@ -49,6 +51,10 @@ def check_beta(args_dict):
# raise error.
if not args_dict['beta']:
cmd = args_dict['command']
# first check if command is beta
if cmd in BETA_COMMANDS:
raise cdist.CdistBetaRequired(cmd)
# then check if command's argument is beta
if cmd in BETA_ARGS:
for arg in BETA_ARGS[cmd]:
if arg in args_dict and args_dict[arg]: