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): class CdistBetaRequired(cdist.Error):
"""Beta functionality is used but beta is not enabled""" """Beta functionality is used but beta is not enabled"""
def __init__(self, command, arg): def __init__(self, command, arg=None):
self.command = command self.command = command
self.arg = arg self.arg = arg
def __str__(self): def __str__(self):
err_msg = ("\'{}\' argument of \'{}\' command is beta, but beta is " if self.arg is None:
err_msg = ("\'{}\' command is beta, but beta is "
"not enabled. If you want to use it please enable beta " "not enabled. If you want to use it please enable beta "
"functionalities by using the -b/--enable-beta command " "functionalities by using the -b/--enable-beta command "
"line flag.") "line flag.")
return err_msg.format(self.arg, self.command) 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): class CdistObjectError(Error):

View file

@ -22,6 +22,8 @@
# #
# list of beta sub-commands
BETA_COMMANDS = ['install', ]
# list of beta arguments for sub-commands # list of beta arguments for sub-commands
BETA_ARGS = { BETA_ARGS = {
'config': ['jobs', ], 'config': ['jobs', ],
@ -49,6 +51,10 @@ def check_beta(args_dict):
# raise error. # raise error.
if not args_dict['beta']: if not args_dict['beta']:
cmd = args_dict['command'] 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: if cmd in BETA_ARGS:
for arg in BETA_ARGS[cmd]: for arg in BETA_ARGS[cmd]:
if arg in args_dict and args_dict[arg]: if arg in args_dict and args_dict[arg]: