1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-06-21 00:19:42 +02:00

timestamp working on standard and streaming parsers. updates existing _jc_meta if exists

This commit is contained in:
Kelly Brazil
2022-08-04 07:44:25 -07:00
parent c57d3416b7
commit 5c9cd4e4cd
2 changed files with 16 additions and 13 deletions

View File

@ -442,21 +442,21 @@ def combined_exit_code(program_exit=0, jc_exit=0):
def add_timestamp_to(list_or_dict, runtime, magic_exit_code):
"""This function mutates a list or dict in place"""
run_iso = runtime.isoformat()
run_timestamp = runtime.timestamp()
timestamp_obj = {
'_jc_meta': {
'run_timestamp': run_timestamp,
'run_iso': run_iso
}
}
timestamp_obj = {'timestamp': run_timestamp}
if isinstance(list_or_dict, dict):
list_or_dict.update(timestamp_obj)
if '_jc_meta' in list_or_dict:
list_or_dict['_jc_meta'].update(timestamp_obj)
else:
list_or_dict['_jc_meta'] = timestamp_obj
elif isinstance(list_or_dict, list):
for item in list_or_dict:
item.update(timestamp_obj)
if '_jc_meta' in item:
item['_jc_meta'].update(timestamp_obj)
else:
item['_jc_meta'] = timestamp_obj
else:
utils.error_message(['Parser returned an unsupported object type.'])
@ -545,9 +545,6 @@ def main():
utils._safe_print(zsh_completion())
sys.exit(0)
if timestamp:
run_dt_utc = datetime.now(timezone.utc)
# if magic syntax used, try to run the command and error if it's not found, etc.
magic_stdout, magic_stderr, magic_exit_code = None, None, 0
if run_command:
@ -623,7 +620,12 @@ def main():
raw=raw,
quiet=quiet,
ignore_exceptions=ignore_exceptions)
for line in result:
if timestamp:
run_dt_utc = datetime.now(timezone.utc)
add_timestamp_to(line, run_dt_utc, magic_exit_code)
safe_print_out(line,
pretty=pretty,
env_colors=jc_colors,
@ -650,6 +652,7 @@ def main():
quiet=quiet)
if timestamp:
run_dt_utc = datetime.now(timezone.utc)
add_timestamp_to(result, run_dt_utc, magic_exit_code)
safe_print_out(result,

View File

@ -10,7 +10,7 @@ long_options_map: Dict[str, List[str]] = {
'--pretty': ['p', 'pretty print output'],
'--quiet': ['q', 'suppress warnings (double to ignore streaming errors)'],
'--raw': ['r', 'raw output'],
'--timestamp': ['t', 'add timestamp information to output'],
'--timestamp': ['t', 'add UTC Unix timestamp information to output'],
'--unbuffer': ['u', 'unbuffer output'],
'--version': ['v', 'version info'],
'--yaml-out': ['y', 'YAML output'],