@@ -125,38 +125,42 @@ def process_configs(
125125 raise click .ClickException (
126126 f"Unknown platform: { platform_str } . "
127127 f"Use 'list-platforms' to see available platforms."
128- )
128+ ) from None
129129
130130 try :
131131 logger .info (f"Reading running config from: { running_config_path } " )
132132 running_config_text = read_text_from_file (running_config_path )
133133 except FileNotFoundError :
134- raise click .ClickException (f"Running config file not found: { running_config_path } " )
134+ raise click .ClickException (
135+ f"Running config file not found: { running_config_path } "
136+ ) from None
135137 except PermissionError :
136138 raise click .ClickException (
137139 f"Permission denied reading running config: { running_config_path } "
138- )
140+ ) from None
139141 except Exception as e :
140- raise click .ClickException (f"Error reading running config: { e } " )
142+ raise click .ClickException (f"Error reading running config: { e } " ) from e
141143
142144 try :
143145 logger .info (f"Reading generated config from: { generated_config_path } " )
144146 generated_config_text = read_text_from_file (generated_config_path )
145147 except FileNotFoundError :
146- raise click .ClickException (f"Generated config file not found: { generated_config_path } " )
148+ raise click .ClickException (
149+ f"Generated config file not found: { generated_config_path } "
150+ ) from None
147151 except PermissionError :
148152 raise click .ClickException (
149153 f"Permission denied reading generated config: { generated_config_path } "
150- )
154+ ) from None
151155 except Exception as e :
152- raise click .ClickException (f"Error reading generated config: { e } " )
156+ raise click .ClickException (f"Error reading generated config: { e } " ) from e
153157
154158 try :
155159 logger .info ("Parsing configurations" )
156160 running_hconfig = get_hconfig (platform_enum , running_config_text )
157161 generated_hconfig = get_hconfig (platform_enum , generated_config_text )
158162 except Exception as e :
159- raise click .ClickException (f"Error parsing configuration: { e } " )
163+ raise click .ClickException (f"Error parsing configuration: { e } " ) from e
160164
161165 try :
162166 logger .info (f"Generating { operation } configuration" )
@@ -170,7 +174,7 @@ def process_configs(
170174 else workflow .rollback_config
171175 )
172176 except Exception as e :
173- raise click .ClickException (f"Error generating { operation } : { e } " )
177+ raise click .ClickException (f"Error generating { operation } : { e } " ) from e
174178
175179 return result , platform_enum
176180
@@ -248,7 +252,8 @@ def remediation(
248252 generated config.
249253
250254 Example:
251- hier-config-cli remediation --platform ios --running-config running.conf --generated-config intended.conf
255+ hier-config-cli remediation --platform ios \\
256+ --running-config running.conf --generated-config intended.conf
252257 """
253258 result , platform_enum = process_configs (
254259 platform , running_config , generated_config , "remediation"
@@ -257,14 +262,14 @@ def remediation(
257262 try :
258263 output = format_output (result , platform_enum , output_format )
259264 except ValueError as e :
260- raise click .ClickException (str (e ))
265+ raise click .ClickException (str (e )) from e
261266
262267 if output_file :
263268 try :
264269 Path (output_file ).write_text (output )
265270 click .echo (f"Remediation configuration written to: { output_file } " , err = True )
266271 except Exception as e :
267- raise click .ClickException (f"Error writing output file: { e } " )
272+ raise click .ClickException (f"Error writing output file: { e } " ) from e
268273 else :
269274 click .echo ("\n === Remediation Configuration ===" )
270275 click .echo (output )
@@ -286,21 +291,22 @@ def rollback(
286291 procedures before making changes.
287292
288293 Example:
289- hier-config-cli rollback --platform ios --running-config running.conf --generated-config intended.conf
294+ hier-config-cli rollback --platform ios \\
295+ --running-config running.conf --generated-config intended.conf
290296 """
291297 result , platform_enum = process_configs (platform , running_config , generated_config , "rollback" )
292298
293299 try :
294300 output = format_output (result , platform_enum , output_format )
295301 except ValueError as e :
296- raise click .ClickException (str (e ))
302+ raise click .ClickException (str (e )) from e
297303
298304 if output_file :
299305 try :
300306 Path (output_file ).write_text (output )
301307 click .echo (f"Rollback configuration written to: { output_file } " , err = True )
302308 except Exception as e :
303- raise click .ClickException (f"Error writing output file: { e } " )
309+ raise click .ClickException (f"Error writing output file: { e } " ) from e
304310 else :
305311 click .echo ("\n === Rollback Configuration ===" )
306312 click .echo (output )
@@ -321,21 +327,22 @@ def future(
321327 the generated configuration to the running configuration.
322328
323329 Example:
324- hier-config-cli future --platform ios --running-config running.conf --generated-config intended.conf
330+ hier-config-cli future --platform ios \\
331+ --running-config running.conf --generated-config intended.conf
325332 """
326333 result , platform_enum = process_configs (platform , running_config , generated_config , "future" )
327334
328335 try :
329336 output = format_output (result , platform_enum , output_format )
330337 except ValueError as e :
331- raise click .ClickException (str (e ))
338+ raise click .ClickException (str (e )) from e
332339
333340 if output_file :
334341 try :
335342 Path (output_file ).write_text (output )
336343 click .echo (f"Future configuration written to: { output_file } " , err = True )
337344 except Exception as e :
338- raise click .ClickException (f"Error writing output file: { e } " )
345+ raise click .ClickException (f"Error writing output file: { e } " ) from e
339346 else :
340347 click .echo ("\n === Future Configuration ===" )
341348 click .echo (output )
0 commit comments