2021-08-30 02:56:28 +03:00
|
|
|
include "internal";
|
2021-10-30 02:17:14 +03:00
|
|
|
include "options";
|
2021-12-04 19:20:12 +03:00
|
|
|
include "decode";
|
2020-06-08 03:29:51 +03:00
|
|
|
|
2022-07-16 19:39:57 +03:00
|
|
|
def _display_default_opts:
|
|
|
|
options({depth: 1});
|
|
|
|
|
2022-06-01 17:55:55 +03:00
|
|
|
def _todisplay:
|
|
|
|
( format as $f
|
|
|
|
# TODO: not sure about the error check here
|
|
|
|
| if $f == null or ._error != null then error("value is not a format root or has errors") end
|
|
|
|
| _format_func($f; "_todisplay")
|
|
|
|
);
|
2022-07-16 19:39:57 +03:00
|
|
|
|
2023-05-11 15:11:51 +03:00
|
|
|
def display($opts; $explicit_call):
|
2022-06-01 17:55:55 +03:00
|
|
|
( . as $c
|
|
|
|
| options($opts) as $opts
|
|
|
|
| try _todisplay catch $c
|
2023-04-28 19:44:24 +03:00
|
|
|
| if $opts.value_output then tovalue end
|
2023-05-11 15:11:51 +03:00
|
|
|
| if _can_display then
|
|
|
|
_display(
|
|
|
|
( $opts
|
|
|
|
# don't output raw binary if d/display was call explicitly
|
|
|
|
| if $explicit_call then .raw_output = false end
|
|
|
|
)
|
|
|
|
)
|
2022-07-16 19:39:57 +03:00
|
|
|
else
|
|
|
|
( if _is_string and $opts.raw_string then print
|
|
|
|
else _print_color_json($opts)
|
|
|
|
end
|
|
|
|
, ( $opts.join_string
|
|
|
|
| if . then print else empty end
|
|
|
|
)
|
|
|
|
)
|
|
|
|
end
|
|
|
|
| error("unreachable")
|
|
|
|
);
|
2023-05-11 15:11:51 +03:00
|
|
|
def display($opts): display($opts; true);
|
2022-07-16 19:39:57 +03:00
|
|
|
def display: display({});
|
2020-06-08 03:29:51 +03:00
|
|
|
|
2023-05-11 15:11:51 +03:00
|
|
|
def display_implicit($opts): display($opts; false);
|
|
|
|
|
2021-12-05 18:24:52 +03:00
|
|
|
def d($opts): display($opts);
|
|
|
|
def d: display({});
|
2022-01-28 20:21:44 +03:00
|
|
|
def da($opts): display({array_truncate: 0} + $opts);
|
|
|
|
def da: da({});
|
|
|
|
def dd($opts): display({array_truncate: 0, display_bytes: 0} + $opts);
|
|
|
|
def dd: dd({});
|
|
|
|
def dv($opts): display({array_truncate: 0, verbose: true} + $opts);
|
|
|
|
def dv: dv({});
|
|
|
|
def ddv($opts): display({array_truncate: 0, display_bytes: 0, verbose: true} + $opts);
|
|
|
|
def ddv: ddv({});
|
2021-12-05 18:24:52 +03:00
|
|
|
|
2022-07-16 19:39:57 +03:00
|
|
|
def hexdump($opts): _hexdump(options({display_bytes: 0} + $opts));
|
|
|
|
def hexdump: hexdump({display_bytes: 0});
|
|
|
|
def hd($opts): hexdump($opts);
|
|
|
|
def hd: hexdump;
|