@@ -48,6 +48,10 @@ def add_args(parser):
4848 help = "path to Kayobe configuration. "
4949 "(default=$%s or %s)" %
5050 (CONFIG_PATH_ENV , DEFAULT_CONFIG_PATH ))
51+ parser .add_argument ("-D" , "--diff" , action = "store_true" ,
52+ help = "when changing (small) files and templates, show "
53+ "the differences in those files; works great "
54+ "with --check" )
5155 parser .add_argument ("--environment" , default = default_environment ,
5256 help = "specify environment name (default=$%s or None)" %
5357 ENVIRONMENT_ENV )
@@ -161,7 +165,7 @@ def _get_vars_files(vars_paths):
161165
162166def build_args (parsed_args , playbooks ,
163167 extra_vars = None , limit = None , tags = None , verbose_level = None ,
164- check = None , ignore_limit = False , list_tasks = None ):
168+ check = None , ignore_limit = False , list_tasks = None , diff = None ):
165169 """Build arguments required for running Ansible playbooks."""
166170 cmd = ["ansible-playbook" ]
167171 if verbose_level :
@@ -193,6 +197,8 @@ def build_args(parsed_args, playbooks,
193197 cmd += ["--become" ]
194198 if check or (parsed_args .check and check is None ):
195199 cmd += ["--check" ]
200+ if diff or (parsed_args .diff and diff is None ):
201+ cmd += ["--diff" ]
196202 if not ignore_limit and (parsed_args .limit or limit ):
197203 limit_arg = utils .intersect_limits (parsed_args .limit , limit )
198204 cmd += ["--limit" , limit_arg ]
@@ -227,13 +233,14 @@ def _get_environment(parsed_args):
227233def run_playbooks (parsed_args , playbooks ,
228234 extra_vars = None , limit = None , tags = None , quiet = False ,
229235 check_output = False , verbose_level = None , check = None ,
230- ignore_limit = False , list_tasks = None ):
236+ ignore_limit = False , list_tasks = None , diff = None ):
231237 """Run a Kayobe Ansible playbook."""
232238 _validate_args (parsed_args , playbooks )
233239 cmd = build_args (parsed_args , playbooks ,
234240 extra_vars = extra_vars , limit = limit , tags = tags ,
235241 verbose_level = verbose_level , check = check ,
236- ignore_limit = ignore_limit , list_tasks = list_tasks )
242+ ignore_limit = ignore_limit , list_tasks = list_tasks ,
243+ diff = diff )
237244 env = _get_environment (parsed_args )
238245 try :
239246 utils .run_command (cmd , check_output = check_output , quiet = quiet , env = env )
@@ -269,7 +276,7 @@ def config_dump(parsed_args, host=None, hosts=None, var_name=None,
269276 run_playbook (parsed_args , playbook_path ,
270277 extra_vars = extra_vars , tags = tags , check_output = True ,
271278 verbose_level = verbose_level , check = False ,
272- list_tasks = False )
279+ list_tasks = False , diff = False )
273280 hostvars = {}
274281 for path in os .listdir (dump_dir ):
275282 LOG .debug ("Found dump file %s" , path )
0 commit comments