diff options
Diffstat (limited to 'test')
568 files changed, 14128 insertions, 2803 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index df39caa..fc5fc38 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -2,6 +2,7 @@ enable_testing() include_directories( . ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src/fmtlib + ${CMAKE_SOURCE_DIR}/src/third-party/date/include ${CMAKE_CURRENT_BINARY_DIR}/../src ${CMAKE_CURRENT_BINARY_DIR}) add_executable(test_abbrev test_abbrev.cc test_stubs.cc) @@ -35,7 +36,8 @@ target_link_libraries(test_bookmarks diag) add_test(NAME test_bookmarks COMMAND test_bookmarks) add_executable(test_date_time_scanner test_date_time_scanner.cc) -target_link_libraries(test_date_time_scanner base lnavdt) +target_include_directories(test_date_time_scanner PUBLIC ../src/third-party/doctest-root) +target_link_libraries(test_date_time_scanner base lnavdt diag) add_test(NAME test_date_time_scanner COMMAND test_date_time_scanner) add_executable(test_grep_proc2 test_grep_proc2.cc) @@ -84,5 +86,8 @@ target_link_libraries(drive_sql_anno diag) add_executable(drive_data_scanner drive_data_scanner.cc test_stubs.cc) target_link_libraries(drive_data_scanner diag logfmt) +add_executable(drive_doc_discovery drive_doc_discovery.cc test_stubs.cc) +target_link_libraries(drive_doc_discovery diag logfmt) + add_executable(scripty scripty.cc test_stubs.cc) target_link_libraries(scripty diag) diff --git a/test/Makefile.am b/test/Makefile.am index a92ceb8..f7d83f7 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -12,17 +12,29 @@ AM_LIBS = $(CODE_COVERAGE_LIBS) AM_CFLAGS = $(CODE_COVERAGE_CFLAGS) AM_CXXFLAGS = $(CODE_COVERAGE_CXXFLAGS) +if HAVE_CARGO +RUST_DEPS_CPPFLAGS = -I$(top_srcdir)/src/third-party/prqlc-c -DHAVE_RUST_DEPS=1 +PRQLC_DIR = ../src/third-party/prqlc-c/target +RUST_DEPS_LIBS = $(PRQLC_DIR)/release/libprqlc_c.a +else +RUST_DEPS = +RUST_DEPS_CPPFLAGS = +RUST_DEPS_LIBS = +endif + AM_CPPFLAGS = \ -Wall \ -I$(top_srcdir)/src \ -I$(top_srcdir)/src/fmtlib \ -I$(top_srcdir)/src/third-party \ + -I$(top_srcdir)/src/third-party/date/include \ -I$(top_srcdir)/src/third-party/scnlib/include \ $(CODE_COVERAGE_CPPFLAGS) \ $(LIBARCHIVE_CFLAGS) \ $(READLINE_CFLAGS) \ $(PCRE_CFLAGS) \ - $(SQLITE3_CFLAGS) + $(SQLITE3_CFLAGS) \ + $(RUST_DEPS_CPPFLAGS) # AM_CFLAGS = -fprofile-arcs -ftest-coverage # AM_CXXFLAGS = -fprofile-arcs -ftest-coverage @@ -51,6 +63,7 @@ DUMMY_OBJS = \ check_PROGRAMS = \ drive_data_scanner \ + drive_doc_discovery \ drive_line_buffer \ drive_grep_proc \ drive_listview \ @@ -113,13 +126,15 @@ LDADD = \ $(top_builddir)/src/base/libbase.a \ $(top_builddir)/src/pugixml/libpugixml.a \ $(top_builddir)/src/third-party/base64/lib/libbase64.a \ + $(top_builddir)/src/third-party/date/src/libdatepp.a \ $(top_builddir)/src/third-party/scnlib/src/libscnlib.a \ $(READLINE_LIBS) \ $(CURSES_LIB) \ $(LIBARCHIVE_LIBS) \ $(SQLITE3_LIBS) \ $(PCRE_LIBS) \ - $(LIBCURL) + $(LIBCURL) \ + $(RUST_DEPS_LIBS) test_ansi_scrubber_SOURCES = test_ansi_scrubber.cc @@ -162,6 +177,9 @@ drive_shlexer_SOURCES = drive_shlexer.cc drive_data_scanner_SOURCES = \ drive_data_scanner.cc +drive_doc_discovery_SOURCES = \ + drive_doc_discovery.cc + drive_mvwattrline_SOURCES = drive_mvwattrline.cc drive_view_colors_SOURCES = drive_view_colors.cc @@ -188,6 +206,7 @@ dist_noinst_SCRIPTS = \ test_events.sh \ test_format_installer.sh \ test_format_loader.sh \ + test_gantt.sh \ test_grep_proc.sh \ test_json_format.sh \ test_line_buffer.sh \ @@ -195,6 +214,7 @@ dist_noinst_SCRIPTS = \ test_logfile.sh \ test_meta.sh \ test_mvwattrline.sh \ + test_prql.sh \ test_regex101.sh \ test_remote.sh \ test_scripts.sh \ @@ -226,7 +246,10 @@ dist_noinst_DATA = \ expected/test_tailer.sh_12f539e535df04364316699f9edeac461aa9f9de.err \ expected/test_tailer.sh_12f539e535df04364316699f9edeac461aa9f9de.out \ ansi-colors.0.in \ + bad-config/formats/invalid-file-format/format.json \ bad-config/formats/invalid-json-format/format.json \ + bad-config/formats/invalid-name/format.json \ + bad-config/formats/invalid-no-tscap/format.json \ bad-config/formats/invalid-properties/format.json \ bad-config/formats/invalid-regex/format.json \ bad-config/formats/invalid-sample/format.json \ @@ -235,12 +258,15 @@ dist_noinst_DATA = \ bad-config/formats/invalid-sql/init2.sql \ bad-config/formats/no-regexes/format.json \ bad-config/formats/no-samples/format.json \ + bad-config2/configs/invalid-annotation/config.json \ + bad-config2/configs/invalid-theme/config.json \ bad-config2/formats/invalid-config/config.json \ bad-config2/formats/invalid-config/config.bad-schema.json \ bad-config2/formats/invalid-config/config.malformed.json \ bad-config2/formats/invalid-config/config.truncated.json \ bad-config-json/formats/invalid-json/format.json \ bad-config-json/formats/invalid-key/format.json \ + books.json \ books.xml \ file_for_dot_read.sql \ datafile_simple.0 \ @@ -269,7 +295,11 @@ dist_noinst_DATA = \ datafile_xml.0 \ dhcp.pcapng \ dhcp-trunc.pcapng \ + example.patch \ + example.toml \ expected_help.txt \ + gharchive_log.jsonl \ + invalid-books.xml \ listview_output.0 \ listview_output.1 \ listview_output.2 \ @@ -324,10 +354,13 @@ dist_noinst_DATA = \ logfile_logfmt.0 \ logfile_multiline.0 \ logfile_nested_json.json \ + logfile_nextcloud.0 \ logfile_openam.0 \ + logfile_partitions.0 \ logfile_plain.0 \ logfile_pretty.0 \ logfile_procstate.0 \ + logfile_regexp_access_log.0 \ logfile_rollover.0 \ logfile_rollover.1 \ logfile_strace_log.0 \ @@ -357,15 +390,20 @@ dist_noinst_DATA = \ logfile_w3c.6 \ logfile_w3c_big.0 \ logfile_with_a_really_long_name_to_test_a_bug_with_long_names.0 \ + logfile_with_zones.0 \ logfile_xml_msg.0 \ + man_echo.txt \ multiline.lnav \ - nested.lnav \ mvwattrline_output.0 \ + nested.lnav \ + pyfile_0.py \ textfile_0.md \ textfile_ansi.0 \ textfile_ansi_expanding.0 \ textfile_json_indented.0 \ textfile_json_one_line.0 \ + textfile_nonl.txt \ + textfile_plain.0 \ textfile_quoted_json.0 \ toplevel.lnav \ UTF-8-test.txt \ @@ -375,6 +413,10 @@ dist_noinst_DATA = \ vt52_curses_output.0 \ vt52_curses_output.1 \ xpath_tui.0 \ + configs/installed/anno-test.json \ + configs/installed/anno-test.sh \ + configs/installed/hw-url-handler.json \ + configs/installed/hw-url-handler.lnav \ formats/collision/format.json \ formats/customlevel/format.json \ formats/jsontest/format.json \ @@ -384,15 +426,41 @@ dist_noinst_DATA = \ formats/jsontest3/format.json \ formats/jsontest-subsec/format.json \ formats/nestedjson/format.json \ + formats/partitions/format.json \ formats/scripts/multiline-echo.lnav \ formats/scripts/redirecting.lnav \ formats/scripts/nested-redirecting.lnav \ formats/sqldir/init.sql \ formats/timestamp/format.json \ formats/xmlmsg/format.json \ - log-samples/sample-27353a72ba4025448f261dcfa6ea16e474187795.txt \ - log-samples/sample-70c906b3c1a1cf03f15bde92ee78edfa6f9b7960.txt \ - log-samples/sample-ad31f12d2adabd07e3ddda3ad5b0dbf6b49c4c99.txt \ + log-samples/sample-057d6c669632ef9d07b6adec605f6bdeae19af27.txt \ + log-samples/sample-06aaa6f48a801f592558575d886864d6c3ab9ed4.txt \ + log-samples/sample-1aeb47c0a97d19bb7418f0172480e05e49c6e53e.txt \ + log-samples/sample-27353a72ba4025448f261dcfa6ea16e474187795.txt \ + log-samples/sample-3856ad0f551a04fde41a020158d6b33ef97c870a.txt \ + log-samples/sample-45364b3fd51af92a4ad8a309b5f4fd88.txt \ + log-samples/sample-500c9e492e04f5f58862c8086ca301de0dd976ce.txt \ + log-samples/sample-55ac97afae4b0650ccb62e2dbc8d89bb.txt \ + log-samples/sample-6049d4309f26eefb1a3406d937a9ba8a0df592a7.txt \ + log-samples/sample-62315d884afdc4155b35f905415c74bfcfd39fc2.txt \ + log-samples/sample-70c906b3c1a1cf03f15bde92ee78edfa6f9b7960.txt \ + log-samples/sample-9cf7fbb3546c676c686fac0ed096d026f46c875f.txt \ + log-samples/sample-a74570613c082c7fe283672031e18e54e8887ffb.txt \ + log-samples/sample-aca2878a2e50779c6697c0747ab1f60e4b368dcb.txt \ + log-samples/sample-ad31f12d2adabd07e3ddda3ad5b0dbf6b49c4c99.txt \ + log-samples/sample-bc6f6cf689fa5455616b4d9fbe121a48d3c9de59.txt \ + log-samples/sample-c15acd32844669d23d0cbc88ec548129ed2c592e.txt \ + log-samples/sample-c23f22c1b932b904203e018f78dead95fb89b15d.txt \ + log-samples/sample-d0d6b3fc6766caac5ac3fac4a3754ceaab785eb8.txt \ + log-samples/sample-d4a0aedc8350f64b22403eeef4eca71fbf749d2b.txt \ + log-samples/sample-d714b5e8cd354321f376ed1c0a70ec9a2f58076d.txt \ + log-samples/sample-dd7d406352ec6a11d966b6f015a9482b060f2b29.txt \ + log-samples/sample-e779d1771e34f5203ae73e85802e78002be63db6.txt \ + log-samples/sample-eef32793daf841a576d8a5cd27239d5d.txt \ + log-samples/sample-f2fba0d0b1e57f9a707ea96a8a4efcdc.txt \ + log-samples/sample-f5afbee90a8c054061c4e9ffe673293cce7761de.txt \ + log-samples/sample-fc8923633e57bacd641d80dde3ff878212230552.txt \ + naughty_files.py \ remote-log-dir/logfile_access_log.0 \ remote-log-dir/logfile_access_log.1 \ tui-captures/tui_echo.0 \ @@ -415,6 +483,7 @@ TESTS = \ test_listview.sh \ test_meta.sh \ test_mvwattrline.sh \ + test_gantt.sh \ test_grep_proc.sh \ test_grep_proc2 \ test_json_format.sh \ @@ -445,6 +514,10 @@ TESTS = \ test_view_colors.sh \ test_vt52_curses.sh +if HAVE_CARGO +TESTS += test_prql.sh +endif + DISABLED_TESTS = \ test_regex101.sh \ test_remote.sh \ @@ -507,8 +580,12 @@ distclean-local: $(RM_V)rm -rf remote remote-tmp not:a:remote:dir $(RM_V)rm -rf sessions $(RM_V)rm -rf tmp + $(RM_V)rm -rf piper-tmp $(RM_V)rm -rf rotmp $(RM_V)rm -rf meta-sessions + $(RM_V)rm -rf mgmt-config + $(RM_V)rm -rf naughty + $(RM_V)rm -rf piper-config $(RM_V)rm -rf nested $(RM_V)rm -rf test-config $(RM_V)rm -rf .lnav diff --git a/test/bad-config/formats/invalid-file-format/format.json b/test/bad-config/formats/invalid-file-format/format.json new file mode 100644 index 0000000..cca2b47 --- /dev/null +++ b/test/bad-config/formats/invalid-file-format/format.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://lnav.org/schemas/format-v1.schema.json", + "bad_file_format1": { + "title": "bad file format", + "regex": { + "std": { + "pattern": "(?<timestamp>\\d+): (?<body>.*)$" + } + }, + "converter": { + "header": { + "expr": { + "default": ":header REGEXP 'foobar" + }, + "size": 8 + } + }, + "timestamp-format": [ + "%i" + ], + "sample": [ + { + "line": "1234: abcd" + } + ] + } +}
\ No newline at end of file diff --git a/test/bad-config/formats/invalid-no-tscap/format.json b/test/bad-config/formats/invalid-no-tscap/format.json new file mode 100644 index 0000000..5e8eb14 --- /dev/null +++ b/test/bad-config/formats/invalid-no-tscap/format.json @@ -0,0 +1,32 @@ +{ + "$schema": "https://lnav.org/schemas/format-v1.schema.json", + "no_tscap_log": { + "title": "Sample with no captured timestamp", + "multiline": true, + "ordered-by-time": false, + "regex": { + "std": { + "pattern": "^(?<container>[\\w-]+)\\s+\\|( (?<timestamp>\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{9}[+-]\\d{2}:\\d{2}))?( (?<body>.*))?$" + } + }, + "level-field": "timestamp", + "module-field": "container", + "value": { + "container": { + "kind": "string", + "identifier": true + } + }, + "sample": [ + { + "line": "gitea | 2023-09-24T22:15:55.346526305+02:00 2023/09/24 22:15:55 cmd/web.go:223:runWeb() [I] Starting Gitea on PID: 7" + }, + { + "line": "gitea | 2023/09/24 22:15:55 cmd/web.go:223:runWeb() [I] Starting Gitea on PID: 7" + }, + { + "line": "gitea-db-1 | 2023-09-24T22:15:37.981051393+02:00 [migrations] started" + } + ] + } +}
\ No newline at end of file diff --git a/test/bad-config2/configs/invalid-annotation/config.json b/test/bad-config2/configs/invalid-annotation/config.json new file mode 100644 index 0000000..9fae7de --- /dev/null +++ b/test/bad-config2/configs/invalid-annotation/config.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://lnav.org/schemas/config-v1.schema.json", + "log": { + "annotations": { + "org.lnav.test.no-handler": { + "description": "annotation without a handler" + }, + "org.lnav.test.no-condition": { + "description": "annotation without a condition", + "handler": "my-handler" + } + } + } +}
\ No newline at end of file diff --git a/test/bad-config2/configs/invalid-theme/config.json b/test/bad-config2/configs/invalid-theme/config.json new file mode 100644 index 0000000..cfbeda5 --- /dev/null +++ b/test/bad-config2/configs/invalid-theme/config.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://lnav.org/schemas/config-v1.schema.json", + "ui": { + "theme-defs": { + "invalid-theme": { + "styles": { + "text": { + "color": "InvalidColor", + "bad-property": "abc" + } + }, + "highlights": { + "foobar": { + "pattern": "abc(" + } + } + } + } + } +}
\ No newline at end of file diff --git a/test/books.json b/test/books.json new file mode 100644 index 0000000..c885559 --- /dev/null +++ b/test/books.json @@ -0,0 +1,14 @@ +{ + "catalog": [ + { + "author": "Gambardella, Matthew", + "title": "XML Developer's Guide", + "description": "An in-depth look at creating applications with XML." + }, + { + "author": "Ralls, Kim", + "title": "Midnight Rain", + "description": "A former architect battles corporate zombies, an evil sorceress, and her own childhood to become queen of the world." + } + ] +}
\ No newline at end of file diff --git a/test/books.xml b/test/books.xml index 19c4f73..62158fa 100644 --- a/test/books.xml +++ b/test/books.xml @@ -1,5 +1,8 @@ <?xml version="1.0"?> <catalog> + <!-- + - A comment for testing. + --> <book id="bk101"> <author>Gambardella, Matthew</author> <title>XML Developer's Guide</title> @@ -7,7 +10,8 @@ <price>44.95</price> <publish_date>2000-10-01</publish_date> <description>An in-depth look at creating applications - with XML.</description> + with XML. + </description> </book> <book id="bk102"> <author>Ralls, Kim</author> @@ -17,7 +21,8 @@ <publish_date>2000-12-16</publish_date> <description>A former architect battles corporate zombies, an evil sorceress, and her own childhood to become queen - of the world.</description> + of the world. + </description> </book> <book id="bk103"> <author>Corets, Eva</author> @@ -27,7 +32,8 @@ <publish_date>2000-11-17</publish_date> <description>After the collapse of a nanotechnology society in England, the young survivors lay the - foundation for a new society.</description> + foundation for a new society. + </description> </book> <book id="bk104"> <author>Corets, Eva</author> @@ -38,7 +44,8 @@ <description>In post-apocalypse England, the mysterious agent known only as Oberon helps to create a new life for the inhabitants of London. Sequel to Maeve - Ascendant.</description> + Ascendant. + </description> </book> <book id="bk105"> <author>Corets, Eva</author> @@ -48,7 +55,8 @@ <publish_date>2001-09-10</publish_date> <description>The two daughters of Maeve, half-sisters, battle one another for control of England. Sequel to - Oberon's Legacy.</description> + Oberon's Legacy. + </description> </book> <book id="bk106"> <author>Randall, Cynthia</author> @@ -57,7 +65,8 @@ <price>4.95</price> <publish_date>2000-09-02</publish_date> <description>When Carla meets Paul at an ornithology - conference, tempers fly as feathers get ruffled.</description> + conference, tempers fly as feathers get ruffled. + </description> </book> <book id="bk107"> <author>Thurman, Paula</author> @@ -66,7 +75,8 @@ <price>4.95</price> <publish_date>2000-11-02</publish_date> <description>A deep sea diver finds true love twenty - thousand leagues beneath the sea.</description> + thousand leagues beneath the sea. + </description> </book> <book id="bk108"> <author>Knorr, Stefan</author> @@ -75,7 +85,8 @@ <price>4.95</price> <publish_date>2000-12-06</publish_date> <description>An anthology of horror stories about roaches, - centipedes, scorpions and other insects.</description> + centipedes, scorpions and other insects. + </description> </book> <book id="bk109"> <author>Kress, Peter</author> @@ -85,7 +96,8 @@ <publish_date>2000-11-02</publish_date> <description>After an inadvertant trip through a Heisenberg Uncertainty Device, James Salway discovers the problems - of being quantum.</description> + of being quantum. + </description> </book> <book id="bk110"> <author>O'Brien, Tim</author> @@ -94,7 +106,8 @@ <price>36.95</price> <publish_date>2000-12-09</publish_date> <description>Microsoft's .NET initiative is explored in - detail in this deep programmer's reference.</description> + detail in this deep programmer's reference. + </description> </book> <book id="bk111"> <author>O'Brien, Tim</author> @@ -104,7 +117,8 @@ <publish_date>2000-12-01</publish_date> <description>The Microsoft MSXML3 parser is covered in detail, with attention to XML DOM interfaces, XSLT processing, - SAX and more.</description> + SAX and more. + </description> </book> <book id="bk112"> <author>Galos, Mike</author> @@ -115,6 +129,7 @@ <description>Microsoft Visual Studio 7 is explored in depth, looking at how Visual Basic, Visual C++, C#, and ASP+ are integrated into a comprehensive development - environment.</description> + environment. + </description> </book> </catalog> diff --git a/test/configs/installed/anno-test.json b/test/configs/installed/anno-test.json new file mode 100644 index 0000000..24806c5 --- /dev/null +++ b/test/configs/installed/anno-test.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://lnav.org/schemas/config-v1.schema.json", + "log": { + "annotations": { + "org.lnav.test": { + "description": "test annotation", + "condition": ":c_ip IS NOT NULL AND $TEST_ANNO = '1'", + "handler": "anno-test.sh" + } + } + } +}
\ No newline at end of file diff --git a/test/configs/installed/anno-test.sh b/test/configs/installed/anno-test.sh new file mode 100755 index 0000000..7633240 --- /dev/null +++ b/test/configs/installed/anno-test.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +echo 'Hello, <span style="color: #f00">World</span>!' diff --git a/test/configs/installed/hw-url-handler.json b/test/configs/installed/hw-url-handler.json new file mode 100644 index 0000000..f1d3c73 --- /dev/null +++ b/test/configs/installed/hw-url-handler.json @@ -0,0 +1,10 @@ +{ + "$schema": "https://lnav.org/schemas/config-v1.schema.json", + "tuning": { + "url-scheme": { + "hw": { + "handler": "hw-url-handler" + } + } + } +}
\ No newline at end of file diff --git a/test/configs/installed/hw-url-handler.lnav b/test/configs/installed/hw-url-handler.lnav new file mode 100644 index 0000000..dcf9ec1 --- /dev/null +++ b/test/configs/installed/hw-url-handler.lnav @@ -0,0 +1,10 @@ +# +# @synopsis: hw-url-handler +# @description: Hello, World! URL handler +# + +;SELECT jget(url, '/host') AS hostname, + jget(url, '/path') AS upath + FROM (SELECT parse_url($1) AS url) + +:sh echo "Hello, $upath at $hostname!" diff --git a/test/datafile_c.0 b/test/datafile_c.0 new file mode 100644 index 0000000..9a99dd4 --- /dev/null +++ b/test/datafile_c.0 @@ -0,0 +1,11 @@ +/* + * 📂 HELLO, WORLD! + */ + +#include <stdio.h> + +int +main() +{ + printf("Hello, World!\n"); +} diff --git a/test/datafile_simple.1 b/test/datafile_simple.1 index 48bb61a..ed595e3 100644 --- a/test/datafile_simple.1 +++ b/test/datafile_simple.1 @@ -1,13 +1,15 @@ current speed: 38 mph - key 0:0 key 0:13 ^-----------^ current speed -pair 0:13 ^-----------^ current speed - key 15:15 ^ num 15:17 ^^ 38 -pair 15:17 ^^ 38 + val 15:17 ^^ 38 +pair 0:17 ^---------------^ current speed: 38 + key 18:18 ^ +word 18:21 ^-^ mph + val 18:21 ^-^ mph +pair 18:21 ^-^ mph msg :current speed: 38 mph -format :#: # mph +format :current speed: # # { - "col_0": "current speed", - "col_1": 38 + "current speed": 38, + "col_0": "mph" } diff --git a/test/datafile_simple.14 b/test/datafile_simple.14 index 4c548b9..03bdf90 100644 --- a/test/datafile_simple.14 +++ b/test/datafile_simple.14 @@ -1,8 +1,5 @@ FSChange(Direction.DOWNLOAD, Action.CREATE, name=Fanime 2015, route=[CloudEntry(doc_id=1g5Yho6JmysVGRO-Xmfurra_cQRFb0nTIfZRhGompweg,filename=Baby Names)]) - key 0:0 - sym 0:8 ^------^ FSChange -pair 0:8 ^------^ FSChange - key 9:9 ^ + key 0:8 ^------^ FSChange key 9:9 ^ sym 9:27 ^----------------^ Direction.DOWNLOAD val 9:27 ^----------------^ Direction.DOWNLOAD @@ -13,19 +10,17 @@ pair 9:27 ^----------------^ pair 29:42 ^-----------^ Action.CREATE key 44:48 ^--^ name word 49:55 ^----^ Fanime -wspc 55:56 ^ num 56:60 ^--^ 2015 val 49:60 ^---------^ Fanime 2015 pair 44:60 ^--------------^ name=Fanime 2015 key 62:67 ^---^ route key 69:79 ^--------^ CloudEntry key 80:86 ^----^ doc_id - sym 87:131 ^------------------------------------------^ 1g5Yho6JmysVGRO-Xmfurra_cQRFb0nTIfZRhGompweg + id 87:131 ^------------------------------------------^ 1g5Yho6JmysVGRO-Xmfurra_cQRFb0nTIfZRhGompweg val 87:131 ^------------------------------------------^ 1g5Yho6JmysVGRO-Xmfurra_cQRFb0nTIfZRhGompweg pair 80:131 ^-------------------------------------------------^ doc_id=1g5Yho6JmysVGRO-Xmfurra_cQRFb0nTIfZRhGompweg key 132:140 ^------^ filename word 141:145 ^--^ Baby -wspc 145:146 ^ word 146:151 ^---^ Names val 141:151 ^--------^ Baby Names pair 132:151 ^-----------------^ filename=Baby Names @@ -36,12 +31,12 @@ pair 69:151 val 69:151 ^--------------------------------------------------------------------------------^ CloudEntry(doc_id=1g5Yho6JmysVGRO-Xmfurra_cQRFb0nTIfZRhGompweg,filename=Baby Names pair 62:151 ^---------------------------------------------------------------------------------------^ route=[CloudEntry(doc_id=1g5Yho6JmysVGRO-Xmfurra_cQRFb0nTIfZRhGompweg,filename=Baby Names grp 9:151 ^--------------------------------------------------------------------------------------------------------------------------------------------^ Direction.DOWNLOAD, Action.CREATE, name=Fanime 2015, route=[CloudEntry(doc_id=1g5Yho6JmysVGRO-Xmfurra_cQRFb0nTIfZRhGompweg,filename=Baby Names -pair 9:151 ^--------------------------------------------------------------------------------------------------------------------------------------------^ Direction.DOWNLOAD, Action.CREATE, name=Fanime 2015, route=[CloudEntry(doc_id=1g5Yho6JmysVGRO-Xmfurra_cQRFb0nTIfZRhGompweg,filename=Baby Names + val 9:151 ^--------------------------------------------------------------------------------------------------------------------------------------------^ Direction.DOWNLOAD, Action.CREATE, name=Fanime 2015, route=[CloudEntry(doc_id=1g5Yho6JmysVGRO-Xmfurra_cQRFb0nTIfZRhGompweg,filename=Baby Names +pair 0:151 ^-----------------------------------------------------------------------------------------------------------------------------------------------------^ FSChange(Direction.DOWNLOAD, Action.CREATE, name=Fanime 2015, route=[CloudEntry(doc_id=1g5Yho6JmysVGRO-Xmfurra_cQRFb0nTIfZRhGompweg,filename=Baby Names msg :FSChange(Direction.DOWNLOAD, Action.CREATE, name=Fanime 2015, route=[CloudEntry(doc_id=1g5Yho6JmysVGRO-Xmfurra_cQRFb0nTIfZRhGompweg,filename=Baby Names)]) -format :#(#)]) +format :FSChange(#)]) { - "col_0": "FSChange", - "col_1": { + "FSChange": { "col_0": "Direction.DOWNLOAD", "col_1": "Action.CREATE", "name": "Fanime 2015", diff --git a/test/datafile_simple.15 b/test/datafile_simple.15 index f0e053d..d921d60 100644 --- a/test/datafile_simple.15 +++ b/test/datafile_simple.15 @@ -1,5 +1,5 @@ Worker successfully completed [ImmutableChange(Direction.UPLOAD, Action.CREATE, ino=LocalID(inode=5567236), path=u'/Users/stack/Google Drive', name=u'pyjsonpath1.patch', parent_ino=LocalID(inode=46166734), is_folder=False)] - key 31:31 ^ + key 0:29 ^---------------------------^ Worker successfully completed key 31:46 ^-------------^ ImmutableChange key 47:47 ^ sym 47:63 ^--------------^ Direction.UPLOAD @@ -10,15 +10,17 @@ pair 47:63 ^--------------^ val 65:78 ^-----------^ Action.CREATE pair 65:78 ^-----------^ Action.CREATE key 80:83 ^-^ ino - sym 84:91 ^-----^ LocalID +quot 84:84 ^ + val 84:84 ^ +pair 80:84 ^--^ ino= + key 84:91 ^-----^ LocalID key 92:97 ^---^ inode num 98:105 ^-----^ 5567236 val 98:105 ^-----^ 5567236 pair 92:105 ^-----------^ inode=5567236 grp 92:105 ^-----------^ inode=5567236 + val 92:105 ^-----------^ inode=5567236 pair 84:105 ^-------------------^ LocalID(inode=5567236 - val 84:105 ^-------------------^ LocalID(inode=5567236 -pair 80:105 ^-----------------------^ ino=LocalID(inode=5567236 key 108:112 ^--^ path quot 115:140 ^-----------------------^ /Users/stack/Google Drive val 115:140 ^-----------------------^ /Users/stack/Google Drive @@ -28,15 +30,17 @@ quot 150:167 val 150:167 ^---------------^ pyjsonpath1.patch pair 143:167 ^----------------------^ name=u'pyjsonpath1.patch key 170:180 ^--------^ parent_ino - sym 181:188 ^-----^ LocalID +quot 181:181 ^ + val 181:181 ^ +pair 170:181 ^---------^ parent_ino= + key 181:188 ^-----^ LocalID key 189:194 ^---^ inode num 195:203 ^------^ 46166734 val 195:203 ^------^ 46166734 pair 189:203 ^------------^ inode=46166734 grp 189:203 ^------------^ inode=46166734 + val 189:203 ^------------^ inode=46166734 pair 181:203 ^--------------------^ LocalID(inode=46166734 - val 181:203 ^--------------------^ LocalID(inode=46166734 -pair 170:203 ^-------------------------------^ parent_ino=LocalID(inode=46166734 key 206:215 ^-------^ is_folder cnst 216:221 ^---^ False val 216:221 ^---^ False @@ -45,31 +49,46 @@ pair 206:221 val 47:221 ^----------------------------------------------------------------------------------------------------------------------------------------------------------------------------^ Direction.UPLOAD, Action.CREATE, ino=LocalID(inode=5567236), path=u'/Users/stack/Google Drive', name=u'pyjsonpath1.patch', parent_ino=LocalID(inode=46166734), is_folder=False pair 31:221 ^--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------^ ImmutableChange(Direction.UPLOAD, Action.CREATE, ino=LocalID(inode=5567236), path=u'/Users/stack/Google Drive', name=u'pyjsonpath1.patch', parent_ino=LocalID(inode=46166734), is_folder=False grp 31:221 ^--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------^ ImmutableChange(Direction.UPLOAD, Action.CREATE, ino=LocalID(inode=5567236), path=u'/Users/stack/Google Drive', name=u'pyjsonpath1.patch', parent_ino=LocalID(inode=46166734), is_folder=False -pair 31:221 ^--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------^ ImmutableChange(Direction.UPLOAD, Action.CREATE, ino=LocalID(inode=5567236), path=u'/Users/stack/Google Drive', name=u'pyjsonpath1.patch', parent_ino=LocalID(inode=46166734), is_folder=False + val 31:221 ^--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------^ ImmutableChange(Direction.UPLOAD, Action.CREATE, ino=LocalID(inode=5567236), path=u'/Users/stack/Google Drive', name=u'pyjsonpath1.patch', parent_ino=LocalID(inode=46166734), is_folder=False +pair 0:221 ^---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------^ Worker successfully completed [ImmutableChange(Direction.UPLOAD, Action.CREATE, ino=LocalID(inode=5567236), path=u'/Users/stack/Google Drive', name=u'pyjsonpath1.patch', parent_ino=LocalID(inode=46166734), is_folder=False msg :Worker successfully completed [ImmutableChange(Direction.UPLOAD, Action.CREATE, ino=LocalID(inode=5567236), path=u'/Users/stack/Google Drive', name=u'pyjsonpath1.patch', parent_ino=LocalID(inode=46166734), is_folder=False)] format :Worker successfully completed [#)] -[ - { - "ImmutableChange": { - "col_0": "Direction.UPLOAD", - "col_1": "Action.CREATE", - "ino": { - "LocalID": [ - { - "inode": 5567236 - } - ] - }, - "path": "/Users/stack/Google Drive", - "name": "pyjsonpath1.patch", - "parent_ino": { - "LocalID": [ - { - "inode": 46166734 - } - ] - }, - "is_folder": false +{ + "Worker successfully completed": [ + { + "ImmutableChange": [ + "Direction.UPLOAD", + "Action.CREATE", + { + "ino": "" + }, + { + "LocalID": [ + { + "inode": 5567236 + } + ] + }, + { + "path": "/Users/stack/Google Drive" + }, + { + "name": "pyjsonpath1.patch" + }, + { + "parent_ino": "" + }, + { + "LocalID": [ + { + "inode": 46166734 + } + ] + }, + { + "is_folder": false + } + ] } - } -] + ] +} diff --git a/test/datafile_simple.18 b/test/datafile_simple.18 index 55f125b..aff90b1 100644 --- a/test/datafile_simple.18 +++ b/test/datafile_simple.18 @@ -1,5 +1,5 @@ list [foo(bar=1)] - key 6:6 ^ + key 0:4 ^--^ list key 6:9 ^-^ foo key 10:13 ^-^ bar num 14:15 ^ 1 @@ -9,15 +9,18 @@ pair 10:15 ^---^ bar=1 val 10:15 ^---^ bar=1 pair 6:15 ^-------^ foo(bar=1 grp 6:15 ^-------^ foo(bar=1 -pair 6:15 ^-------^ foo(bar=1 + val 6:15 ^-------^ foo(bar=1 +pair 0:15 ^-------------^ list [foo(bar=1 msg :list [foo(bar=1)] format :list [#)] -[ - { - "foo": [ - { - "bar": 1 - } - ] - } -] +{ + "list": [ + { + "foo": [ + { + "bar": 1 + } + ] + } + ] +} diff --git a/test/datafile_simple.19 b/test/datafile_simple.19 index ce58fc9..4ba0ba4 100644 --- a/test/datafile_simple.19 +++ b/test/datafile_simple.19 @@ -1,5 +1,5 @@ list [foo(bar=1), foo(bar=2), foo(bar=3)] - key 6:6 ^ + key 0:4 ^--^ list key 6:9 ^-^ foo key 10:13 ^-^ bar num 14:15 ^ 1 @@ -25,29 +25,32 @@ pair 34:39 ^---^ bar=3 val 34:39 ^---^ bar=3 pair 30:39 ^-------^ foo(bar=3 grp 6:39 ^-------------------------------^ foo(bar=1), foo(bar=2), foo(bar=3 -pair 6:39 ^-------------------------------^ foo(bar=1), foo(bar=2), foo(bar=3 + val 6:39 ^-------------------------------^ foo(bar=1), foo(bar=2), foo(bar=3 +pair 0:39 ^-------------------------------------^ list [foo(bar=1), foo(bar=2), foo(bar=3 msg :list [foo(bar=1), foo(bar=2), foo(bar=3)] format :list [#)] -[ - { - "foo": [ - { - "bar": 1 - } - ] - }, - { - "foo": [ - { - "bar": 2 - } - ] - }, - { - "foo": [ - { - "bar": 3 - } - ] - } -] +{ + "list": [ + { + "foo": [ + { + "bar": 1 + } + ] + }, + { + "foo": [ + { + "bar": 2 + } + ] + }, + { + "foo": [ + { + "bar": 3 + } + ] + } + ] +} diff --git a/test/datafile_simple.20 b/test/datafile_simple.20 index ea81659..76d5463 100644 --- a/test/datafile_simple.20 +++ b/test/datafile_simple.20 @@ -1,5 +1,5 @@ list ["abc", "def", "ghi"] - key 7:7 ^ + key 0:4 ^--^ list quot 7:10 ^-^ abc val 7:10 ^-^ abc quot 14:17 ^-^ def @@ -7,11 +7,14 @@ quot 14:17 ^-^ def quot 21:24 ^-^ ghi val 21:24 ^-^ ghi grp 7:24 ^---------------^ abc", "def", "ghi -pair 7:24 ^---------------^ abc", "def", "ghi + val 7:24 ^---------------^ abc", "def", "ghi +pair 0:24 ^----------------------^ list ["abc", "def", "ghi msg :list ["abc", "def", "ghi"] format :list [#] -[ - "abc", - "def", - "ghi" -] +{ + "list": [ + "abc", + "def", + "ghi" + ] +} diff --git a/test/datafile_simple.21 b/test/datafile_simple.21 index e570241..3206184 100644 --- a/test/datafile_simple.21 +++ b/test/datafile_simple.21 @@ -13,6 +13,7 @@ quot 59:71 ^------- quot 74:78 ^--^ test val 74:78 ^--^ test grp 2:78 ^--------------------------------------------------------------------------^ correctProperty":"test", "incorrectProperty": "test\"", "nextProperty":"test + val 2:78 ^--------------------------------------------------------------------------^ correctProperty":"test", "incorrectProperty": "test\"", "nextProperty":"test pair 2:78 ^--------------------------------------------------------------------------^ correctProperty":"test", "incorrectProperty": "test\"", "nextProperty":"test msg :{"correctProperty":"test", "incorrectProperty": "test\"", "nextProperty":"test"} format :{#} diff --git a/test/datafile_simple.23 b/test/datafile_simple.23 index d649941..c2b457d 100644 --- a/test/datafile_simple.23 +++ b/test/datafile_simple.23 @@ -1,88 +1,78 @@ 2022-06-02T12:26:22.072Z info vpxd[47413] [Originator@6876 sub=vpxLro opID=21fa61e9-3e] [VpxLRO] -- BEGIN lro-954041 -- AuthorizationManager -- vim.AuthorizationManager.hasUserPrivilegeOnEntities -- 52768da7-4006-3d4a-4917-ee027373630f(522e0475-8901-e8b8-1eb8-07ec729ac50c) - key 23:23 ^ - sym 23:24 ^ Z -pair 23:24 ^ Z - key 30:30 ^ - sym 30:34 ^--^ vpxd -pair 30:34 ^--^ vpxd - key 35:35 ^ + key 0:0 + dt 0:23 ^---------------------^ 2022-06-02T12:26:22.072 + val 0:23 ^---------------------^ 2022-06-02T12:26:22.072 +pair 0:23 ^---------------------^ 2022-06-02T12:26:22.072 + key 30:34 ^--^ vpxd num 35:40 ^---^ 47413 val 35:40 ^---^ 47413 grp 35:40 ^---^ 47413 -pair 35:40 ^---^ 47413 + val 35:40 ^---^ 47413 +pair 30:40 ^--------^ vpxd[47413 + key 43:43 ^ key 43:43 ^ - key 43:62 ^-----------------^ Originator@6876 sub + id 43:58 ^-------------^ Originator@6876 + val 43:58 ^-------------^ Originator@6876 +pair 43:58 ^-------------^ Originator@6876 + key 59:62 ^-^ sub sym 63:69 ^----^ vpxLro val 63:69 ^----^ vpxLro -pair 43:69 ^------------------------^ Originator@6876 sub=vpxLro +pair 59:69 ^--------^ sub=vpxLro key 70:74 ^--^ opID - sym 75:86 ^---------^ 21fa61e9-3e + id 75:86 ^---------^ 21fa61e9-3e val 75:86 ^---------^ 21fa61e9-3e pair 70:86 ^--------------^ opID=21fa61e9-3e grp 43:86 ^-----------------------------------------^ Originator@6876 sub=vpxLro opID=21fa61e9-3e + val 43:86 ^-----------------------------------------^ Originator@6876 sub=vpxLro opID=21fa61e9-3e pair 43:86 ^-----------------------------------------^ Originator@6876 sub=vpxLro opID=21fa61e9-3e key 89:89 ^ sym 89:95 ^----^ VpxLRO val 89:95 ^----^ VpxLRO grp 89:95 ^----^ VpxLRO + val 89:95 ^----^ VpxLRO pair 89:95 ^----^ VpxLRO - key 97:97 ^ - sym 97:99 ^^ -- -pair 97:99 ^^ -- - key 100:100 ^ - sym 100:105 ^---^ BEGIN -pair 100:105 ^---^ BEGIN - key 106:106 ^ - sym 106:116 ^--------^ lro-954041 -pair 106:116 ^--------^ lro-954041 - key 117:117 ^ - sym 117:119 ^^ -- -pair 117:119 ^^ -- + key 100:105 ^---^ BEGIN + id 106:116 ^--------^ lro-954041 + val 106:116 ^--------^ lro-954041 +pair 100:116 ^--------------^ BEGIN lro-954041 key 120:120 ^ sym 120:140 ^------------------^ AuthorizationManager + val 120:140 ^------------------^ AuthorizationManager pair 120:140 ^------------------^ AuthorizationManager - key 141:141 ^ - sym 141:143 ^^ -- -pair 141:143 ^^ -- key 144:144 ^ sym 144:195 ^-------------------------------------------------^ vim.AuthorizationManager.hasUserPrivilegeOnEntities + val 144:195 ^-------------------------------------------------^ vim.AuthorizationManager.hasUserPrivilegeOnEntities pair 144:195 ^-------------------------------------------------^ vim.AuthorizationManager.hasUserPrivilegeOnEntities - key 196:196 ^ - sym 196:198 ^^ -- -pair 196:198 ^^ -- key 199:199 ^ uuid 199:235 ^----------------------------------^ 52768da7-4006-3d4a-4917-ee027373630f + val 199:235 ^----------------------------------^ 52768da7-4006-3d4a-4917-ee027373630f pair 199:235 ^----------------------------------^ 52768da7-4006-3d4a-4917-ee027373630f key 236:236 ^ uuid 236:272 ^----------------------------------^ 522e0475-8901-e8b8-1eb8-07ec729ac50c val 236:272 ^----------------------------------^ 522e0475-8901-e8b8-1eb8-07ec729ac50c grp 236:272 ^----------------------------------^ 522e0475-8901-e8b8-1eb8-07ec729ac50c + val 236:272 ^----------------------------------^ 522e0475-8901-e8b8-1eb8-07ec729ac50c pair 236:272 ^----------------------------------^ 522e0475-8901-e8b8-1eb8-07ec729ac50c msg :2022-06-02T12:26:22.072Z info vpxd[47413] [Originator@6876 sub=vpxLro opID=21fa61e9-3e] [VpxLRO] -- BEGIN lro-954041 -- AuthorizationManager -- vim.AuthorizationManager.hasUserPrivilegeOnEntities -- 52768da7-4006-3d4a-4917-ee027373630f(522e0475-8901-e8b8-1eb8-07ec729ac50c) -format :2022-06-02T12:26:22.072# info #[#] [#] [#] # # # # # # # # #(#) +format :#Z info vpxd[#] [#] [#] -- BEGIN # -- # -- # -- #(#) { - "col_0": "Z", - "col_1": "vpxd", - "col_2": [ + "col_0": "2022-06-02T12:26:22.072", + "vpxd": [ 47413 ], - "col_3": { - "Originator@6876 sub": "vpxLro", + "col_1": { + "col_0": "Originator@6876", + "sub": "vpxLro", "opID": "21fa61e9-3e" }, - "col_4": [ + "col_2": [ "VpxLRO" ], - "col_5": "--", - "col_6": "BEGIN", - "col_7": "lro-954041", - "col_8": "--", - "col_9": "AuthorizationManager", - "col_10": "--", - "col_11": "vim.AuthorizationManager.hasUserPrivilegeOnEntities", - "col_12": "--", - "col_13": "52768da7-4006-3d4a-4917-ee027373630f", - "col_14": [ + "BEGIN": "lro-954041", + "col_3": "AuthorizationManager", + "col_4": "vim.AuthorizationManager.hasUserPrivilegeOnEntities", + "col_5": "52768da7-4006-3d4a-4917-ee027373630f", + "col_6": [ "522e0475-8901-e8b8-1eb8-07ec729ac50c" ] } diff --git a/test/datafile_simple.24 b/test/datafile_simple.24 new file mode 100644 index 0000000..213fb83 --- /dev/null +++ b/test/datafile_simple.24 @@ -0,0 +1,52 @@ + LoadResources path (./locale/) locale (en) removeable (false) resMap (00007f9ee4195fa0) extKeys (0000000000000000) + key 0:18 ^----------------^ LoadResources path + key 20:20 ^ +path 20:30 ^--------^ ./locale/) + val 20:30 ^--------^ ./locale/) +pair 20:30 ^--------^ ./locale/) + key 31:37 ^----^ locale +word 39:41 ^^ en + val 39:41 ^^ en + grp 39:41 ^^ en + val 39:41 ^^ en +pair 31:41 ^--------^ locale (en + key 43:53 ^--------^ removeable +cnst 55:60 ^---^ false + val 55:60 ^---^ false + grp 55:60 ^---^ false + val 55:60 ^---^ false +pair 43:60 ^---------------^ removeable (false + key 62:68 ^----^ resMap + hex 70:86 ^--------------^ 00007f9ee4195fa0 + val 70:86 ^--------------^ 00007f9ee4195fa0 + grp 70:86 ^--------------^ 00007f9ee4195fa0 + val 70:86 ^--------------^ 00007f9ee4195fa0 +pair 62:86 ^----------------------^ resMap (00007f9ee4195fa0 + key 88:95 ^-----^ extKeys + cc 97:113 ^--------------^ 0000000000000000 + val 97:113 ^--------------^ 0000000000000000 + grp 97:113 ^--------------^ 0000000000000000 + val 97:113 ^--------------^ 0000000000000000 +pair 88:113 ^-----------------------^ extKeys (0000000000000000 + grp 20:113 ^-------------------------------------------------------------------------------------------^ ./locale/) locale (en) removeable (false) resMap (00007f9ee4195fa0) extKeys (0000000000000000 + val 20:113 ^-------------------------------------------------------------------------------------------^ ./locale/) locale (en) removeable (false) resMap (00007f9ee4195fa0) extKeys (0000000000000000 +pair 0:113 ^---------------------------------------------------------------------------------------------------------------^ LoadResources path (./locale/) locale (en) removeable (false) resMap (00007f9ee4195fa0) extKeys (0000000000000000 +msg :LoadResources path (./locale/) locale (en) removeable (false) resMap (00007f9ee4195fa0) extKeys (0000000000000000) +format :LoadResources path (#) +{ + "LoadResources path": { + "col_0": "./locale/)", + "locale": [ + "en" + ], + "removeable": [ + false + ], + "resMap": [ + "00007f9ee4195fa0" + ], + "extKeys": [ + "0000000000000000" + ] + } +} diff --git a/test/datafile_simple.25 b/test/datafile_simple.25 new file mode 100644 index 0000000..db330d1 --- /dev/null +++ b/test/datafile_simple.25 @@ -0,0 +1,15 @@ + a=1 b=2 + key 0:1 ^ a + num 2:3 ^ 1 + val 2:3 ^ 1 +pair 0:3 ^-^ a=1 + key 4:5 ^ b + num 6:7 ^ 2 + val 6:7 ^ 2 +pair 4:7 ^-^ b=2 +msg :a=1 b=2 +format :a=# b=# +{ + "a": 1, + "b": 2 +} diff --git a/test/datafile_simple.7 b/test/datafile_simple.7 index 3c0810f..90dc6e5 100644 --- a/test/datafile_simple.7 +++ b/test/datafile_simple.7 @@ -1,5 +1,5 @@ func(arg1="a", arg2="b") - key 5:5 ^ + key 0:4 ^--^ func key 5:9 ^--^ arg1 quot 11:12 ^ a val 11:12 ^ a @@ -9,10 +9,13 @@ quot 21:22 ^ b val 21:22 ^ b pair 15:22 ^-----^ arg2="b grp 5:22 ^---------------^ arg1="a", arg2="b -pair 5:22 ^---------------^ arg1="a", arg2="b + val 5:22 ^---------------^ arg1="a", arg2="b +pair 0:22 ^--------------------^ func(arg1="a", arg2="b msg :func(arg1="a", arg2="b") format :func(#) { - "arg1": "a", - "arg2": "b" + "func": { + "arg1": "a", + "arg2": "b" + } } diff --git a/test/datafile_simple.8 b/test/datafile_simple.8 index c6363c3..5119ec9 100644 --- a/test/datafile_simple.8 +++ b/test/datafile_simple.8 @@ -1,22 +1,30 @@ Succeeded authorizing right 'system.privilege.taskport.debug' by client '/usr/libexec/taskgated' [76339] for authorization created by '/usr/libexec/taskgated' [77395] (100003,1) - key 29:29 ^ +word 22:27 ^---^ right + key 22:27 ^---^ right quot 29:60 ^-----------------------------^ system.privilege.taskport.debug -pair 29:60 ^-----------------------------^ system.privilege.taskport.debug - key 73:73 ^ + val 29:60 ^-----------------------------^ system.privilege.taskport.debug +pair 22:60 ^------------------------------------^ right 'system.privilege.taskport.debug +word 65:71 ^----^ client + key 65:71 ^----^ client quot 73:95 ^--------------------^ /usr/libexec/taskgated -pair 73:95 ^--------------------^ /usr/libexec/taskgated + val 73:95 ^--------------------^ /usr/libexec/taskgated +pair 65:95 ^----------------------------^ client '/usr/libexec/taskgated key 98:98 ^ num 98:103 ^---^ 76339 val 98:103 ^---^ 76339 grp 98:103 ^---^ 76339 + val 98:103 ^---^ 76339 pair 98:103 ^---^ 76339 - key 135:135 ^ +word 131:133 ^^ by + key 131:133 ^^ by quot 135:157 ^--------------------^ /usr/libexec/taskgated -pair 135:157 ^--------------------^ /usr/libexec/taskgated + val 135:157 ^--------------------^ /usr/libexec/taskgated +pair 131:157 ^------------------------^ by '/usr/libexec/taskgated key 160:160 ^ num 160:165 ^---^ 77395 val 160:165 ^---^ 77395 grp 160:165 ^---^ 77395 + val 160:165 ^---^ 77395 pair 160:165 ^---^ 77395 key 168:168 ^ num 168:174 ^----^ 100003 @@ -24,20 +32,21 @@ pair 160:165 num 175:176 ^ 1 val 175:176 ^ 1 grp 168:176 ^------^ 100003,1 + val 168:176 ^------^ 100003,1 pair 168:176 ^------^ 100003,1 msg :Succeeded authorizing right 'system.privilege.taskport.debug' by client '/usr/libexec/taskgated' [76339] for authorization created by '/usr/libexec/taskgated' [77395] (100003,1) format :Succeeded authorizing right # by client # [#] for authorization created by # [#] (#) { - "col_0": "system.privilege.taskport.debug", - "col_1": "/usr/libexec/taskgated", - "col_2": [ + "right": "system.privilege.taskport.debug", + "client": "/usr/libexec/taskgated", + "col_0": [ 76339 ], - "col_3": "/usr/libexec/taskgated", - "col_4": [ + "by": "/usr/libexec/taskgated", + "col_1": [ 77395 ], - "col_5": [ + "col_2": [ 100003, 1 ] diff --git a/test/document.sections.tests.cc b/test/document.sections.tests.cc index 8e88b75..ccafe7e 100644 --- a/test/document.sections.tests.cc +++ b/test/document.sections.tests.cc @@ -141,6 +141,59 @@ DESCRIPTION }); } +TEST_CASE("lnav::document::sections::doc for diff") +{ + attr_line_t INPUT = R"( +[sql] add json_group_object aggregate function + +diff --git a/NEWS b/NEWS +index d239d2f..7a06070 100644 +--- a/NEWS ++++ b/NEWS +@@ -4,6 +4,8 @@ lnav v0.8.1: + * Log formats can now create SQL views and execute other statements + by adding '.sql' files to their format directories. The SQL scripts + will be executed on startup. ++ * Added a 'json_group_object' aggregate SQL function that collects values ++ from a GROUP BY query into an JSON object. + + Interface Changes: + * The 'o/O' hotkeys have been reassigned to navigate through log +diff --git a/configure.ac b/configure.ac +index 718a2d4..10f5580 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -39,8 +39,8 @@ AC_PROG_CXX + + CPPFLAGS="$CPPFLAGS -D_ISOC99_SOURCE -D__STDC_LIMIT_MACROS" + +-# CFLAGS=`echo $CFLAGS | sed 's/-O2//g'` +-# CXXFLAGS=`echo $CXXFLAGS | sed 's/-O2//g'` ++CFLAGS=`echo $CFLAGS | sed 's/-O2//g'` ++CXXFLAGS=`echo $CXXFLAGS | sed 's/-O2//g'` + + AC_ARG_VAR(SFTP_TEST_URL) +)"; + + auto meta = lnav::document::discover_structure(INPUT, line_range{0, -1}); + + meta.m_sections_tree.visit_all([](const auto& intv) { + auto ser = intv.value.match( + [](const std::string& name) { return name; }, + [](const size_t index) { return fmt::format("{}", index); }); + printf("interval %d:%d %s\n", intv.start, intv.stop, ser.c_str()); + }); + lnav::document::hier_node::depth_first( + meta.m_sections_root.get(), [](const auto* node) { + printf("node %p %d\n", node, node->hn_start); + for (const auto& pair : node->hn_named_children) { + printf(" child: %p %s\n", pair.second, pair.first.c_str()); + } + }); + + CHECK(meta.m_sections_root->hn_named_children.size() == 2); +} + TEST_CASE("lnav::document::sections::sql") { attr_line_t INPUT diff --git a/test/drive_data_scanner.cc b/test/drive_data_scanner.cc index a7a0fb7..63e7579 100644 --- a/test/drive_data_scanner.cc +++ b/test/drive_data_scanner.cc @@ -37,6 +37,7 @@ #include <stdio.h> #include <stdlib.h> +#include "base/injector.bind.hh" #include "base/injector.hh" #include "config.h" #include "data_parser.hh" @@ -51,6 +52,9 @@ const char* TMP_NAME = "scanned.tmp"; +static auto bound_file_options_hier + = injector::bind<lnav::safe_file_options_hier>::to_singleton(); + int main(int argc, char* argv[]) { @@ -190,11 +194,12 @@ main(int argc, char* argv[]) string_attrs_t sa; if (format.get() != nullptr) { - format->annotate(0, sa, ll_values); + format->annotate(0, sa, ll_values, false); body = find_string_attr_range(sa, &SA_BODY); } data_parser::TRACE_FILE = fopen("scanned.dpt", "w"); + setvbuf(data_parser::TRACE_FILE, nullptr, _IONBF, 0); data_scanner ds(sub_line, body.lr_start); diff --git a/test/drive_doc_discovery.cc b/test/drive_doc_discovery.cc new file mode 100644 index 0000000..d12f231 --- /dev/null +++ b/test/drive_doc_discovery.cc @@ -0,0 +1,120 @@ +/** + * Copyright (c) 2024, Timothy Stack + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Timothy Stack nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ''AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <stdlib.h> + +#include "base/fs_util.hh" +#include "document.sections.hh" +#include "fmt/color.h" + +int +main(int argc, char* argv[]) +{ + int retval = EXIT_SUCCESS; + + if (argc < 2) { + fprintf(stderr, "error: expecting file to discover\n"); + retval = EXIT_FAILURE; + } else { + const auto fn = ghc::filesystem::path(argv[1]); + auto read_res = lnav::filesystem::read_file(fn); + if (read_res.isErr()) { + fprintf(stderr, + "error: unable to read %s -- %s\n", + fn.c_str(), + read_res.unwrapErr().c_str()); + retval = EXIT_FAILURE; + } else { + auto content = attr_line_t(read_res.unwrap()); + const auto& content_sf + = string_fragment::from_str(content.get_string()); + auto tf = detect_text_format(content_sf, fn); + auto lr = line_range{0, static_cast<int>(content.length())}; + auto meta = lnav::document::discover_structure(content, lr, tf); + + auto remaining = content_sf; + while (!remaining.empty()) { + auto line_pair + = remaining.split_when(string_fragment::tag1{'\n'}); + auto line_sf = line_pair.first; + fmt::print(FMT_STRING("{}\n"), line_sf); + size_t indent = 0; + meta.m_sections_tree.visit_overlapping( + line_sf.sf_begin, + line_sf.sf_end, + [&line_sf, &indent](const auto& iv) { + if (iv.start < line_sf.sf_begin) { + return; + } + auto this_indent = iv.start - line_sf.sf_begin; + if (this_indent < indent) { + return; + } + auto indent_diff = this_indent - indent; + indent = this_indent; + fmt::print(FMT_STRING("{}^"), + std::string(indent_diff, ' ')); + if (iv.stop >= line_sf.sf_end + 1) { + fmt::print(FMT_STRING(" [{}:{}) - {}"), + iv.start, + iv.stop, + iv.value); + return; + } + auto dot_len = iv.stop - iv.start - 1; + fmt::print(FMT_STRING("{}^"), + std::string(dot_len, '-')); + fmt::print(FMT_STRING(" [{}:{})"), iv.start, iv.stop); + }); + fmt::print(FMT_STRING("\nPath for line[{}:{}): "), + line_sf.sf_begin, + line_sf.sf_end); + meta.m_sections_tree.visit_overlapping( + line_sf.sf_begin, + line_sf.sf_end, + [&line_sf](const auto& iv) { + fmt::print( + fmt::fg(iv.start < line_sf.sf_begin + ? fmt::terminal_color::yellow + : fmt::terminal_color::green), + FMT_STRING("\uff1a{}"), + iv.value.match( + [](const std::string& str) { return str; }, + [](size_t ind) { + return fmt::format(FMT_STRING("[{}]"), ind); + })); + }); + fmt::print(FMT_STRING("\n")); + remaining = line_pair.second; + } + } + } + + return retval; +} diff --git a/test/drive_grep_proc.cc b/test/drive_grep_proc.cc index 4118f43..d90cde4 100644 --- a/test/drive_grep_proc.cc +++ b/test/drive_grep_proc.cc @@ -89,7 +89,7 @@ public: void grep_match(grep_proc<vis_line_t>& gp, vis_line_t line, int start, - int end) + int end) override { printf("%d:%d:%d\n", (int) line, start, end); } @@ -98,12 +98,21 @@ public: vis_line_t line, int start, int end, - char* capture) + const string_fragment& capture) override { - fprintf(stderr, "%d(%d:%d)%s\n", (int) line, start, end, capture); + fprintf(stderr, + "%d(%d:%d)%.*s\n", + (int) line, + start, + end, + capture.length(), + capture.data()); } - void grep_end(grep_proc<vis_line_t>& gp) { this->ms_finished = true; } + void grep_end(grep_proc<vis_line_t>& gp) override + { + this->ms_finished = true; + } bool ms_finished; }; diff --git a/test/drive_listview.cc b/test/drive_listview.cc index 76d3df8..96fe459 100644 --- a/test/drive_listview.cc +++ b/test/drive_listview.cc @@ -41,12 +41,9 @@ static listview_curses lv; class my_source : public list_data_source { public: - my_source() : ms_rows(2){}; + my_source() : ms_rows(2) {} - size_t listview_rows(const listview_curses& lv) - { - return this->ms_rows; - }; + size_t listview_rows(const listview_curses& lv) { return this->ms_rows; } void listview_value_for_rows(const listview_curses& lv, vis_line_t row, @@ -67,12 +64,12 @@ public: } ++row; } - }; + } size_t listview_size_for_row(const listview_curses& lv, vis_line_t row) { return 100; - }; + } bool attrline_next_token(const view_curses& vc, int line, @@ -80,7 +77,7 @@ public: int& attrs_out) { return false; - }; + } int ms_rows; }; @@ -90,9 +87,14 @@ main(int argc, char* argv[]) { int c, retval = EXIT_SUCCESS; bool wait_for_input = false, set_height = false; + const char* keys = nullptr; my_source ms; WINDOW* win; + setenv("DUMP_CRASH", "1", 1); + log_install_handlers(); + lnav_log_crash_dir = "/tmp"; + win = initscr(); lv.set_data_source(&ms); lv.set_window(win); @@ -111,15 +113,9 @@ main(int argc, char* argv[]) lv.set_height(vis_line_t(atoi(optarg))); set_height = true; break; - case 'k': { - // Treats the string argument as sequence of key presses (only - // individual characters supported as key input) - for (char* ptr = optarg; ptr != nullptr && *ptr != '\0'; ++ptr) - { - lv.handle_key(static_cast<int>(*ptr)); - } + case 'k': + keys = optarg; break; - } case 't': lv.set_selection(vis_line_t(atoi(optarg))); break; @@ -141,6 +137,19 @@ main(int argc, char* argv[]) lv.set_height(vis_line_t(height - lv.get_y())); } + if (keys != nullptr) { + // Treats the string argument as sequence of key presses (only + // individual characters supported as key input) + for (const char* ptr = keys; ptr != nullptr && *ptr != '\0'; ++ptr) { + lv.do_update(); + if (wait_for_input) { + getch(); + refresh(); + } + lv.handle_key(static_cast<int>(*ptr)); + } + } + lv.do_update(); refresh(); if (wait_for_input) { diff --git a/test/drive_logfile.cc b/test/drive_logfile.cc index 2da37dd..52f8baa 100644 --- a/test/drive_logfile.cc +++ b/test/drive_logfile.cc @@ -37,6 +37,7 @@ #include <sys/types.h> #include <unistd.h> +#include "base/injector.bind.hh" #include "base/injector.hh" #include "base/opt_util.hh" #include "config.h" @@ -54,6 +55,9 @@ typedef enum { MODE_LEVELS, } dl_mode_t; +static auto bound_file_options_hier + = injector::bind<lnav::safe_file_options_hier>::to_singleton(); + time_t time(time_t* _unused) { diff --git a/test/drive_shlexer.cc b/test/drive_shlexer.cc index fe6f15f..ffbfc32 100644 --- a/test/drive_shlexer.cc +++ b/test/drive_shlexer.cc @@ -35,7 +35,7 @@ using namespace std; const char* ST_TOKEN_NAMES[] = { - "err", + "eof", "wsp", "esc", "dst", @@ -47,6 +47,22 @@ const char* ST_TOKEN_NAMES[] = { "til", }; +static void +put_underline(FILE* file, string_fragment frag) +{ + for (int lpc = 0; lpc < frag.sf_end; lpc++) { + if (lpc == frag.sf_begin) { + fputc('^', stdout); + } else if (lpc == (frag.sf_end - 1)) { + fputc('^', stdout); + } else if (lpc > frag.sf_begin) { + fputc('-', stdout); + } else { + fputc(' ', stdout); + } + } +} + int main(int argc, char* argv[]) { @@ -56,39 +72,44 @@ main(int argc, char* argv[]) } shlex lexer(argv[1], strlen(argv[1])); - string_fragment cap; - shlex_token_t token; + bool done = false; printf(" %s\n", argv[1]); - while (lexer.tokenize(cap, token)) { - int lpc; + while (!done) { + auto tokenize_res = lexer.tokenize(); + if (tokenize_res.isErr()) { + auto te = tokenize_res.unwrapErr(); + + printf("err "); + put_underline(stdout, te.te_source); + printf(" -- %s\n", te.te_msg); + break; + } - printf("%s ", ST_TOKEN_NAMES[(int) token]); - for (lpc = 0; lpc < cap.sf_end; lpc++) { - if (lpc == cap.sf_begin) { - fputc('^', stdout); - } else if (lpc == (cap.sf_end - 1)) { - fputc('^', stdout); - } else if (lpc > cap.sf_begin) { - fputc('-', stdout); - } else { - fputc(' ', stdout); - } + auto tr = tokenize_res.unwrap(); + if (tr.tr_token == shlex_token_t::eof) { + done = true; } + printf("%s ", ST_TOKEN_NAMES[(int) tr.tr_token]); + put_underline(stdout, tr.tr_frag); printf("\n"); } lexer.reset(); std::string result; - if (lexer.eval(result, map<string, string>())) { + std::map<std::string, scoped_value_t> vars; + if (lexer.eval(result, scoped_resolver{&vars})) { printf("eval -- %s\n", result.c_str()); } lexer.reset(); - std::vector<std::string> sresult; - if (lexer.split(sresult, map<string, string>())) { + auto split_res = lexer.split(scoped_resolver{&vars}); + if (split_res.isOk()) { + auto sresult = split_res.unwrap(); printf("split:\n"); for (size_t lpc = 0; lpc < sresult.size(); lpc++) { - printf(" %zu -- %s\n", lpc, sresult[lpc].c_str()); + printf("% 3zu ", lpc); + put_underline(stdout, sresult[lpc].se_origin); + printf(" -- %s\n", sresult[lpc].se_value.c_str()); } } diff --git a/test/drive_view_colors.cc b/test/drive_view_colors.cc index f7b38c1..e806192 100644 --- a/test/drive_view_colors.cc +++ b/test/drive_view_colors.cc @@ -38,7 +38,7 @@ class test_colors : public view_curses { public: test_colors() : tc_window(nullptr) {} - void do_update() override + bool do_update() override { auto& vc = view_colors::singleton(); int lpc; @@ -68,7 +68,9 @@ public: al.with_attr( {line_range{8, 11}, VC_STYLE.value(text_attrs{A_REVERSE})}); test_colors::mvwattrline(this->tc_window, lpc, 0, al, lr); - }; + + return true; + } WINDOW* tc_window; }; diff --git a/test/example.patch b/test/example.patch new file mode 100644 index 0000000..fe03d05 --- /dev/null +++ b/test/example.patch @@ -0,0 +1,102 @@ +[tests] fix export session test + +diff --git a/test/Makefile.am b/test/Makefile.am +index aad96a87..07afe2d5 100644 +--- a/test/Makefile.am ++++ b/test/Makefile.am +@@ -483,6 +483,7 @@ distclean-local: + $(RM_V)rm -rf .lnav + $(RM_V)rm -rf regex101-home + $(RM_V)rm -rf events-home ++ $(RM_V)rm -rf support-dump + $(RM_V)rm -rf ../installer-test-home + + expected: +diff --git a/test/expected/expected.am b/test/expected/expected.am +index 99823624..2fa3d9fd 100644 +--- a/test/expected/expected.am ++++ b/test/expected/expected.am +@@ -414,6 +414,8 @@ EXPECTED_FILES = \ + $(srcdir)/%reldir%/test_sessions.sh_b932b33dd087b94d4306dd179c5d4f9ddd394960.out \ + $(srcdir)/%reldir%/test_sessions.sh_ddf45811e9906de9f3930fe802ac7b2cc6e48106.err \ + $(srcdir)/%reldir%/test_sessions.sh_ddf45811e9906de9f3930fe802ac7b2cc6e48106.out \ ++ $(srcdir)/%reldir%/test_sessions.sh_e39648f425c3f291c9d1c0d14595a019abd0cb48.err \ ++ $(srcdir)/%reldir%/test_sessions.sh_e39648f425c3f291c9d1c0d14595a019abd0cb48.out \ + $(srcdir)/%reldir%/test_shlexer.sh_14dd967cb2af90899c9e5e45d00b676b5a3163aa.err \ + $(srcdir)/%reldir%/test_shlexer.sh_14dd967cb2af90899c9e5e45d00b676b5a3163aa.out \ + $(srcdir)/%reldir%/test_shlexer.sh_2781f5dd570580cbe746ad91b58a28b8371283b3.err \ +diff --git a/test/expected/test_sessions.sh_8732dad5481be991ca7f291d9c5451c7b016cea7.out b/test/expected/test_sessions.sh_8732dad5481be991ca7f291d9c5451c7b016cea7.out +index 7b4c3036..a1e2e6f2 100644 +--- a/test/expected/test_sessions.sh_8732dad5481be991ca7f291d9c5451c7b016cea7.out ++++ b/test/expected/test_sessions.sh_8732dad5481be991ca7f291d9c5451c7b016cea7.out +@@ -11,6 +11,7 @@ + + ;INSERT OR IGNORE INTO environ (name, value) VALUES ('LOG_DIR_0', '{top_srcdir_parent}') + :open $LOG_DIR_0/lnav/test/logfile_access_log.0 ++ + :rebuild + + +diff --git a/test/expected/test_sessions.sh_e39648f425c3f291c9d1c0d14595a019abd0cb48.err b/test/expected/test_sessions.sh_e39648f425c3f291c9d1c0d14595a019abd0cb48.err +new file mode 100644 +index 00000000..e69de29b +diff --git a/test/expected/test_sessions.sh_e39648f425c3f291c9d1c0d14595a019abd0cb48.out b/test/expected/test_sessions.sh_e39648f425c3f291c9d1c0d14595a019abd0cb48.out +new file mode 100644 +index 00000000..6cc4bc8c +--- /dev/null ++++ b/test/expected/test_sessions.sh_e39648f425c3f291c9d1c0d14595a019abd0cb48.out +@@ -0,0 +1,33 @@ ++#!lnav -Nf ++# This file is an export of an lnav session. You can type ++# '|/path/to/this/file' in lnav to execute this file and ++# restore the state of the session. ++ ++;SELECT raise_error('This session export was made with a newer version of lnav, please upgrade to ' || '0.11.0' || ' or later') ++ WHERE lnav_version() < '0.11.0' COLLATE naturalcase ++ ++# The files loaded into the session were: ++ ++ ++;INSERT OR IGNORE INTO environ (name, value) VALUES ('LOG_DIR_0', '{builddir}') ++:open $LOG_DIR_0/support-dump/logfile_access_log.0 ++ ++:rebuild ++ ++ ++# The following SQL statements will restore the bookmarks, ++# comments, and tags that were added in the session. ++ ++;SELECT total_changes() AS before_mark_changes ++;UPDATE all_logs SET log_mark = 1, log_comment = NULL, log_tags = NULL WHERE log_time_msecs = 1248130769000 AND log_format = 'access_log' AND log_line_hash = 'v1:b05c1bdfe75cde41e151c89087e31951' ++ ++;SELECT 1 - (total_changes() - $before_mark_changes) AS failed_mark_changes ++;SELECT echoln(printf('%sERROR%s: failed to restore %d bookmarks', ++ $ansi_red, $ansi_norm, $failed_mark_changes)) ++ WHERE $failed_mark_changes != 0 ++ ++ ++# The following commands will restore the state of the LOG view. ++ ++:switch-to-view log ++:goto 1 +diff --git a/test/test_sessions.sh b/test/test_sessions.sh +index a2c59bbe..31d6d376 100644 +--- a/test/test_sessions.sh ++++ b/test/test_sessions.sh +@@ -26,11 +26,15 @@ run_cap_test ${lnav_test} -nq \ + -c ":save-session" \ + ${test_dir}/logfile_access_log.0 + ++mkdir -p support-dump ++echo 'Hello' > support-dump/readme ++cp ${test_dir}/logfile_access_log.0 support-dump/ ++ + run_cap_test ${lnav_test} -nq \ + -c ";update access_log set log_mark = 1 where sc_bytes > 60000" \ + -c ":goto 1" \ + -c ":export-session-to -" \ +- ${test_dir}/logfile_access_log.0 ++ support-dump/logfile_access_log.0 + + run_cap_test ${lnav_test} -nq \ + -c ";update access_log set log_mark = 1 where sc_bytes > 60000" \ diff --git a/test/example.toml b/test/example.toml new file mode 100644 index 0000000..909e5b4 --- /dev/null +++ b/test/example.toml @@ -0,0 +1,38 @@ +# This is a TOML document + +title = "TOML Example" + +[owner] +name = "Tom Preston-Werner" +dob = 1979-05-27T07:32:00-08:00 + +[database] +enabled = true +ports = [ + 8000, + 8001, + 8002, + 8003, + 8004, + 8005, + 8006, + 8007, + 8008, + 8009, + 8010, + 8011, + 8012, + 8013, +] +data = [["delta", "phi"], [3.14]] +temp_targets = { cpu = 79.5, case = 72.0 } + +[servers] + +[servers.alpha] +ip = "10.0.0.1" +role = "frontend" + +[servers.beta] +ip = "10.0.0.2" +role = "backend" diff --git a/test/expected/expected.am b/test/expected/expected.am index 6a88ee8..bedc4dc 100644 --- a/test/expected/expected.am +++ b/test/expected/expected.am @@ -1,15 +1,35 @@ EXPECTED_FILES = \ + $(srcdir)/%reldir%/test_cli.sh_0b3639753916f71254e8c9cce4ebb8bfd9978d3e.err \ + $(srcdir)/%reldir%/test_cli.sh_0b3639753916f71254e8c9cce4ebb8bfd9978d3e.out \ + $(srcdir)/%reldir%/test_cli.sh_108c6922cde063429f76abc3fdb8a81ad9a2f671.err \ + $(srcdir)/%reldir%/test_cli.sh_108c6922cde063429f76abc3fdb8a81ad9a2f671.out \ + $(srcdir)/%reldir%/test_cli.sh_10c33e465ef7681c6b5519d05d557426b26cd43d.err \ + $(srcdir)/%reldir%/test_cli.sh_10c33e465ef7681c6b5519d05d557426b26cd43d.out \ $(srcdir)/%reldir%/test_cli.sh_17a68b798354f9a6cdfab372006caeb74038d15c.err \ $(srcdir)/%reldir%/test_cli.sh_17a68b798354f9a6cdfab372006caeb74038d15c.out \ + $(srcdir)/%reldir%/test_cli.sh_3114508cf42fb2608ef77f4bc294a84885c97a79.err \ + $(srcdir)/%reldir%/test_cli.sh_3114508cf42fb2608ef77f4bc294a84885c97a79.out \ + $(srcdir)/%reldir%/test_cli.sh_4327033cfae0d4c170a38a3c4a570520bfabb493.err \ + $(srcdir)/%reldir%/test_cli.sh_4327033cfae0d4c170a38a3c4a570520bfabb493.out \ $(srcdir)/%reldir%/test_cli.sh_5524542b1a6954ff9741155101497270a2f0c557.err \ $(srcdir)/%reldir%/test_cli.sh_5524542b1a6954ff9741155101497270a2f0c557.out \ + $(srcdir)/%reldir%/test_cli.sh_76aa57821598962e59063a40c20171040c95a731.err \ + $(srcdir)/%reldir%/test_cli.sh_76aa57821598962e59063a40c20171040c95a731.out \ $(srcdir)/%reldir%/test_cli.sh_97e19b9ff3775d84074455a2e8993a0611b1c269.err \ $(srcdir)/%reldir%/test_cli.sh_97e19b9ff3775d84074455a2e8993a0611b1c269.out \ - $(srcdir)/%reldir%/test_cli.sh_a1a09f890f4604309d0a81bbbec8e50fb7d5e887.err \ - $(srcdir)/%reldir%/test_cli.sh_a1a09f890f4604309d0a81bbbec8e50fb7d5e887.out \ + $(srcdir)/%reldir%/test_cli.sh_af3ace7762b4cc150fcdcac86083b379bded7b32.err \ + $(srcdir)/%reldir%/test_cli.sh_af3ace7762b4cc150fcdcac86083b379bded7b32.out \ + $(srcdir)/%reldir%/test_cli.sh_c69c835a3c43210225cf62564b3e9584c899af20.err \ + $(srcdir)/%reldir%/test_cli.sh_c69c835a3c43210225cf62564b3e9584c899af20.out \ + $(srcdir)/%reldir%/test_cli.sh_cc06341dd560f927512e92c7c0985ed8b25827ae.err \ + $(srcdir)/%reldir%/test_cli.sh_cc06341dd560f927512e92c7c0985ed8b25827ae.out \ $(srcdir)/%reldir%/test_cli.sh_f2e41555f1a5f40f54ce241207af602ed1503a2b.err \ $(srcdir)/%reldir%/test_cli.sh_f2e41555f1a5f40f54ce241207af602ed1503a2b.out \ + $(srcdir)/%reldir%/test_cli.sh_ff7da172f4350a2adb74b8764575823d798ed8b6.err \ + $(srcdir)/%reldir%/test_cli.sh_ff7da172f4350a2adb74b8764575823d798ed8b6.out \ + $(srcdir)/%reldir%/test_cmds.sh_015ffe79a08f4c9f0cd1cb84c6afa4398f879fc7.err \ + $(srcdir)/%reldir%/test_cmds.sh_015ffe79a08f4c9f0cd1cb84c6afa4398f879fc7.out \ $(srcdir)/%reldir%/test_cmds.sh_017b495b95218b7c083951e2dba331cfec6e90be.err \ $(srcdir)/%reldir%/test_cmds.sh_017b495b95218b7c083951e2dba331cfec6e90be.out \ $(srcdir)/%reldir%/test_cmds.sh_0b1e4b1523dfca71927b1fe721c74490c51361d1.err \ @@ -74,6 +94,8 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_cmds.sh_38fa2a95b703d4ce12e82882eca1938264822690.out \ $(srcdir)/%reldir%/test_cmds.sh_3b20a298e2c059d7f6045cbc0c07ca3db3917695.err \ $(srcdir)/%reldir%/test_cmds.sh_3b20a298e2c059d7f6045cbc0c07ca3db3917695.out \ + $(srcdir)/%reldir%/test_cmds.sh_3b4bea458c59d2bac492e568616b610625037ad0.err \ + $(srcdir)/%reldir%/test_cmds.sh_3b4bea458c59d2bac492e568616b610625037ad0.out \ $(srcdir)/%reldir%/test_cmds.sh_453054e29aaca4c2662c45c2a1f2f63f3510d8dd.err \ $(srcdir)/%reldir%/test_cmds.sh_453054e29aaca4c2662c45c2a1f2f63f3510d8dd.out \ $(srcdir)/%reldir%/test_cmds.sh_4b2d91b19008d5b775090e3ef87c111f9e603b15.err \ @@ -88,6 +110,8 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_cmds.sh_53a9686102f69b07b034df291f554a00b265ed20.out \ $(srcdir)/%reldir%/test_cmds.sh_55c2fd15ec2c7d96dbef7b36a42a1b7b42f90dbc.err \ $(srcdir)/%reldir%/test_cmds.sh_55c2fd15ec2c7d96dbef7b36a42a1b7b42f90dbc.out \ + $(srcdir)/%reldir%/test_cmds.sh_5630626e6f68c3d4a2c3e5f27d024df5950b88b5.err \ + $(srcdir)/%reldir%/test_cmds.sh_5630626e6f68c3d4a2c3e5f27d024df5950b88b5.out \ $(srcdir)/%reldir%/test_cmds.sh_5bfd08c1639701476d7b9348c36afd46fdbe6f2a.err \ $(srcdir)/%reldir%/test_cmds.sh_5bfd08c1639701476d7b9348c36afd46fdbe6f2a.out \ $(srcdir)/%reldir%/test_cmds.sh_624a41e152675575f4b07c19b2cf0e3a028429a2.err \ @@ -96,6 +120,8 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_cmds.sh_62d68c0a11757c996f24c8f003e6b4059c3e30b2.out \ $(srcdir)/%reldir%/test_cmds.sh_661ec61acdd8f6fa6ec1e3c2cf5f896eef431351.err \ $(srcdir)/%reldir%/test_cmds.sh_661ec61acdd8f6fa6ec1e3c2cf5f896eef431351.out \ + $(srcdir)/%reldir%/test_cmds.sh_68c774418bac897bd4d4fe9dbbf08454886b2e15.err \ + $(srcdir)/%reldir%/test_cmds.sh_68c774418bac897bd4d4fe9dbbf08454886b2e15.out \ $(srcdir)/%reldir%/test_cmds.sh_6a6031113aca32fabc5a3da64b7be46f5ce5a312.err \ $(srcdir)/%reldir%/test_cmds.sh_6a6031113aca32fabc5a3da64b7be46f5ce5a312.out \ $(srcdir)/%reldir%/test_cmds.sh_6e016c0ed61fc652be1a79b864875ffede64f281.err \ @@ -130,6 +156,10 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_cmds.sh_8d5b43c693e78804a8fb06989392fa8cccb46b7b.out \ $(srcdir)/%reldir%/test_cmds.sh_9445861db011dfa2d21a44788047de345ee291e8.err \ $(srcdir)/%reldir%/test_cmds.sh_9445861db011dfa2d21a44788047de345ee291e8.out \ + $(srcdir)/%reldir%/test_cmds.sh_949826cc086c7a5c87270be172e3caa3bf8f928d.err \ + $(srcdir)/%reldir%/test_cmds.sh_949826cc086c7a5c87270be172e3caa3bf8f928d.out \ + $(srcdir)/%reldir%/test_cmds.sh_9527f941dc84a2ac3a030f222e41c6ccd1961cbe.err \ + $(srcdir)/%reldir%/test_cmds.sh_9527f941dc84a2ac3a030f222e41c6ccd1961cbe.out \ $(srcdir)/%reldir%/test_cmds.sh_95beaabe41d72cf4c6810e79c623da759ac1c71b.err \ $(srcdir)/%reldir%/test_cmds.sh_95beaabe41d72cf4c6810e79c623da759ac1c71b.out \ $(srcdir)/%reldir%/test_cmds.sh_968dac54dc80d91a5da2322890c6c26dfa0d8462.err \ @@ -150,6 +180,8 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_cmds.sh_ac45fb0f8f9578c3ded0855f694698ec38ce31ad.out \ $(srcdir)/%reldir%/test_cmds.sh_af0fcbd30b3fd0d13477aa3325ef0302052a4d9f.err \ $(srcdir)/%reldir%/test_cmds.sh_af0fcbd30b3fd0d13477aa3325ef0302052a4d9f.out \ + $(srcdir)/%reldir%/test_cmds.sh_b3d0588ad144a841200692b46125bddf66f5d8bb.err \ + $(srcdir)/%reldir%/test_cmds.sh_b3d0588ad144a841200692b46125bddf66f5d8bb.out \ $(srcdir)/%reldir%/test_cmds.sh_b5a530d16c982cf769151291f0bfd612ea71183f.err \ $(srcdir)/%reldir%/test_cmds.sh_b5a530d16c982cf769151291f0bfd612ea71183f.out \ $(srcdir)/%reldir%/test_cmds.sh_b6a3bb78e9d60e5e1f5ce5b18e40d2f1662707ab.err \ @@ -184,16 +216,18 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_cmds.sh_ca66660c973f76a3c2a147c7f5035bcb4e8a8bbc.out \ $(srcdir)/%reldir%/test_cmds.sh_ccd326da92d1cacda63501cd1a3077381a18e8f2.err \ $(srcdir)/%reldir%/test_cmds.sh_ccd326da92d1cacda63501cd1a3077381a18e8f2.out \ + $(srcdir)/%reldir%/test_cmds.sh_d1afefacbdd387f02562c8633968b0162a588502.err \ + $(srcdir)/%reldir%/test_cmds.sh_d1afefacbdd387f02562c8633968b0162a588502.out \ $(srcdir)/%reldir%/test_cmds.sh_d3b69abdfb39e4bfa5828c2f9593e2b2b7ed4d5d.err \ $(srcdir)/%reldir%/test_cmds.sh_d3b69abdfb39e4bfa5828c2f9593e2b2b7ed4d5d.out \ $(srcdir)/%reldir%/test_cmds.sh_d76d77ad95b9f120825417a6a8220c13df9541fc.err \ $(srcdir)/%reldir%/test_cmds.sh_d76d77ad95b9f120825417a6a8220c13df9541fc.out \ - $(srcdir)/%reldir%/test_cmds.sh_d7eebacdcf2cb194f25fa4ef97b7b5376b442467.err \ - $(srcdir)/%reldir%/test_cmds.sh_d7eebacdcf2cb194f25fa4ef97b7b5376b442467.out \ $(srcdir)/%reldir%/test_cmds.sh_d836c84398c831c976df46f46fe3bf5983c44c37.err \ $(srcdir)/%reldir%/test_cmds.sh_d836c84398c831c976df46f46fe3bf5983c44c37.out \ $(srcdir)/%reldir%/test_cmds.sh_d8eeef53a58bdeddbc1028d7c525413e3ca1c8df.err \ $(srcdir)/%reldir%/test_cmds.sh_d8eeef53a58bdeddbc1028d7c525413e3ca1c8df.out \ + $(srcdir)/%reldir%/test_cmds.sh_da5f7160b967e60dbd772573614e2da89c5e22b2.err \ + $(srcdir)/%reldir%/test_cmds.sh_da5f7160b967e60dbd772573614e2da89c5e22b2.out \ $(srcdir)/%reldir%/test_cmds.sh_dbdd62995fdefc8318053af05a32416eccfa79fc.err \ $(srcdir)/%reldir%/test_cmds.sh_dbdd62995fdefc8318053af05a32416eccfa79fc.out \ $(srcdir)/%reldir%/test_cmds.sh_dd41fbbcd71699314af232156d4155fbdf849131.err \ @@ -210,12 +244,16 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_cmds.sh_eb22c3e94c536a1bfaeae0c40d271b5b4b08f4fc.out \ $(srcdir)/%reldir%/test_cmds.sh_ec2b28c6ea328e3ea56b13ab8ca3d9ee856a9dda.err \ $(srcdir)/%reldir%/test_cmds.sh_ec2b28c6ea328e3ea56b13ab8ca3d9ee856a9dda.out \ + $(srcdir)/%reldir%/test_cmds.sh_ec3a64cad41b070a1d04e2bfc3dc14cb2d964091.err \ + $(srcdir)/%reldir%/test_cmds.sh_ec3a64cad41b070a1d04e2bfc3dc14cb2d964091.out \ $(srcdir)/%reldir%/test_cmds.sh_ed5b73be0b991e0e8d6735e31df5b37c4286321b.err \ $(srcdir)/%reldir%/test_cmds.sh_ed5b73be0b991e0e8d6735e31df5b37c4286321b.out \ $(srcdir)/%reldir%/test_cmds.sh_f788d5f5932905d09ecbd581040ec5ce76459da5.err \ $(srcdir)/%reldir%/test_cmds.sh_f788d5f5932905d09ecbd581040ec5ce76459da5.out \ $(srcdir)/%reldir%/test_cmds.sh_ff6faebbde8586e04bfadba14a3d2bb4451784ad.err \ $(srcdir)/%reldir%/test_cmds.sh_ff6faebbde8586e04bfadba14a3d2bb4451784ad.out \ + $(srcdir)/%reldir%/test_config.sh_13fa2428c26fa12e732209620e21466b36bab252.err \ + $(srcdir)/%reldir%/test_config.sh_13fa2428c26fa12e732209620e21466b36bab252.out \ $(srcdir)/%reldir%/test_config.sh_2765ea0d4c037b8c935840604edb0ae796c97a04.err \ $(srcdir)/%reldir%/test_config.sh_2765ea0d4c037b8c935840604edb0ae796c97a04.out \ $(srcdir)/%reldir%/test_config.sh_5fd9fbccc35e9b06abdd913da0c16bdb306b926e.err \ @@ -244,12 +282,34 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_events.sh_d9c7907f907b2335e1328b23fdc46d0968a608d9.out \ $(srcdir)/%reldir%/test_events.sh_ed8dc44add223341c03ccb7b3e18371bdb42b710.err \ $(srcdir)/%reldir%/test_events.sh_ed8dc44add223341c03ccb7b3e18371bdb42b710.out \ + $(srcdir)/%reldir%/test_format_installer.sh_1e08efc3b8c7b67d944a1f8c475cd31d98d5b4f6.err \ + $(srcdir)/%reldir%/test_format_installer.sh_1e08efc3b8c7b67d944a1f8c475cd31d98d5b4f6.out \ + $(srcdir)/%reldir%/test_format_installer.sh_6cd73153a8990b8ddb8ce489e90ec667a442f7f9.err \ + $(srcdir)/%reldir%/test_format_installer.sh_6cd73153a8990b8ddb8ce489e90ec667a442f7f9.out \ + $(srcdir)/%reldir%/test_format_installer.sh_947cbc64a150c7fe2a17e1c7a69e9a932aeaa16b.err \ + $(srcdir)/%reldir%/test_format_installer.sh_947cbc64a150c7fe2a17e1c7a69e9a932aeaa16b.out \ $(srcdir)/%reldir%/test_format_loader.sh_15e861d2327512a721fd42ae51dc5427689e0bb6.err \ $(srcdir)/%reldir%/test_format_loader.sh_15e861d2327512a721fd42ae51dc5427689e0bb6.out \ $(srcdir)/%reldir%/test_format_loader.sh_5992e2695b7e6cf1f3520dbb87af8fc2b8f27088.err \ $(srcdir)/%reldir%/test_format_loader.sh_5992e2695b7e6cf1f3520dbb87af8fc2b8f27088.out \ $(srcdir)/%reldir%/test_format_loader.sh_fca6c1fb9f3aaa69b3ffb2d1a8a86434b2f4a247.err \ $(srcdir)/%reldir%/test_format_loader.sh_fca6c1fb9f3aaa69b3ffb2d1a8a86434b2f4a247.out \ + $(srcdir)/%reldir%/test_gantt.sh_3af11588ee36bab7e2caea0f7a24d3c9cafd2310.err \ + $(srcdir)/%reldir%/test_gantt.sh_3af11588ee36bab7e2caea0f7a24d3c9cafd2310.out \ + $(srcdir)/%reldir%/test_gantt.sh_63500be50fc6743d8312133e2030cbbc39ca15ff.err \ + $(srcdir)/%reldir%/test_gantt.sh_63500be50fc6743d8312133e2030cbbc39ca15ff.out \ + $(srcdir)/%reldir%/test_gantt.sh_74a94ee9103eac5e8e78ca57bccf49efa3827a9d.err \ + $(srcdir)/%reldir%/test_gantt.sh_74a94ee9103eac5e8e78ca57bccf49efa3827a9d.out \ + $(srcdir)/%reldir%/test_gantt.sh_83db753dd2669f801810f311e2d7d74397e10f26.err \ + $(srcdir)/%reldir%/test_gantt.sh_83db753dd2669f801810f311e2d7d74397e10f26.out \ + $(srcdir)/%reldir%/test_gantt.sh_8fed8a7400042814ba13e50be5e3bd1741d82119.err \ + $(srcdir)/%reldir%/test_gantt.sh_8fed8a7400042814ba13e50be5e3bd1741d82119.out \ + $(srcdir)/%reldir%/test_gantt.sh_b013ab41c3cca76cf05a01ca1ba65888be247ada.err \ + $(srcdir)/%reldir%/test_gantt.sh_b013ab41c3cca76cf05a01ca1ba65888be247ada.out \ + $(srcdir)/%reldir%/test_gantt.sh_cde7947f361e5f3d4cd1bbc3f7458f426b6a8eb4.err \ + $(srcdir)/%reldir%/test_gantt.sh_cde7947f361e5f3d4cd1bbc3f7458f426b6a8eb4.out \ + $(srcdir)/%reldir%/test_gantt.sh_e6a4681a5a671c84c020dc91d7ce03c9d17fde07.err \ + $(srcdir)/%reldir%/test_gantt.sh_e6a4681a5a671c84c020dc91d7ce03c9d17fde07.out \ $(srcdir)/%reldir%/test_json_format.sh_168cac40c27f547044c89d39eb0ff2ef81da4b21.err \ $(srcdir)/%reldir%/test_json_format.sh_168cac40c27f547044c89d39eb0ff2ef81da4b21.out \ $(srcdir)/%reldir%/test_json_format.sh_1bb0fd243e916546aea22029245ac590dae17a86.err \ @@ -260,6 +320,8 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_json_format.sh_4315a3d6124c14cbe3c474b6dbf4cc8720a9859f.out \ $(srcdir)/%reldir%/test_json_format.sh_469f005b0708d629bc95f0c48a5e390f440c1fef.err \ $(srcdir)/%reldir%/test_json_format.sh_469f005b0708d629bc95f0c48a5e390f440c1fef.out \ + $(srcdir)/%reldir%/test_json_format.sh_5795c5ffd98ae581b30c6f0983349bf7a6a84501.err \ + $(srcdir)/%reldir%/test_json_format.sh_5795c5ffd98ae581b30c6f0983349bf7a6a84501.out \ $(srcdir)/%reldir%/test_json_format.sh_6767b91d715338c24c67e928b59c560c84ddf4be.err \ $(srcdir)/%reldir%/test_json_format.sh_6767b91d715338c24c67e928b59c560c84ddf4be.out \ $(srcdir)/%reldir%/test_json_format.sh_6fbe20faa161ab9fa77df7568fff84bf3e47e920.err \ @@ -276,6 +338,8 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_json_format.sh_84a71e94dc34661a70bb9015b67ba00e93e9cfb5.out \ $(srcdir)/%reldir%/test_json_format.sh_85d03b1b41a7f819af135d2521a8f2c59418e907.err \ $(srcdir)/%reldir%/test_json_format.sh_85d03b1b41a7f819af135d2521a8f2c59418e907.out \ + $(srcdir)/%reldir%/test_json_format.sh_895283eeb4c10e9c1702fafd13723c8085944f88.err \ + $(srcdir)/%reldir%/test_json_format.sh_895283eeb4c10e9c1702fafd13723c8085944f88.out \ $(srcdir)/%reldir%/test_json_format.sh_8f2ebcd319afc7966ef11e31f9dd646bf6f001dd.err \ $(srcdir)/%reldir%/test_json_format.sh_8f2ebcd319afc7966ef11e31f9dd646bf6f001dd.out \ $(srcdir)/%reldir%/test_json_format.sh_952297a90e312d2184fe3e4df795ddc731b096c9.err \ @@ -302,18 +366,24 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_json_format.sh_f740026626ab554dacb249762d8be7d6539b8c6e.out \ $(srcdir)/%reldir%/test_json_format.sh_fe19b7ebd349cd689b3f5c22618eab5ce995e68e.err \ $(srcdir)/%reldir%/test_json_format.sh_fe19b7ebd349cd689b3f5c22618eab5ce995e68e.out \ + $(srcdir)/%reldir%/test_logfile.sh_00877d2e9dadab916a02005a068410dfbd85ec74.err \ + $(srcdir)/%reldir%/test_logfile.sh_00877d2e9dadab916a02005a068410dfbd85ec74.out \ $(srcdir)/%reldir%/test_logfile.sh_05d1505168bf34b89fc0d1a39f1409cfe798119e.err \ $(srcdir)/%reldir%/test_logfile.sh_05d1505168bf34b89fc0d1a39f1409cfe798119e.out \ $(srcdir)/%reldir%/test_logfile.sh_08d731a04c877a34819b35de185e30a74c9fd497.err \ $(srcdir)/%reldir%/test_logfile.sh_08d731a04c877a34819b35de185e30a74c9fd497.out \ $(srcdir)/%reldir%/test_logfile.sh_09bd16e044302f6b121092534708594bdad11b5a.err \ $(srcdir)/%reldir%/test_logfile.sh_09bd16e044302f6b121092534708594bdad11b5a.out \ - $(srcdir)/%reldir%/test_logfile.sh_1c6eee38f66356fcd9a9f0faedaea6dbcc901060.err \ - $(srcdir)/%reldir%/test_logfile.sh_1c6eee38f66356fcd9a9f0faedaea6dbcc901060.out \ + $(srcdir)/%reldir%/test_logfile.sh_18d9a7beeb09041993d0d6da488fc8192d111bd9.err \ + $(srcdir)/%reldir%/test_logfile.sh_18d9a7beeb09041993d0d6da488fc8192d111bd9.out \ $(srcdir)/%reldir%/test_logfile.sh_218ecb88b4753010c4264b3ac351260b4811612f.err \ $(srcdir)/%reldir%/test_logfile.sh_218ecb88b4753010c4264b3ac351260b4811612f.out \ $(srcdir)/%reldir%/test_logfile.sh_290a3c49e53c2229a7400c107338fa0bb38375e2.err \ $(srcdir)/%reldir%/test_logfile.sh_290a3c49e53c2229a7400c107338fa0bb38375e2.out \ + $(srcdir)/%reldir%/test_logfile.sh_2e72d848a51ac1eb476b973c61fe43a65d579ba5.err \ + $(srcdir)/%reldir%/test_logfile.sh_2e72d848a51ac1eb476b973c61fe43a65d579ba5.out \ + $(srcdir)/%reldir%/test_logfile.sh_341e491abcf8772422bafb8b0eaea6492da230f6.err \ + $(srcdir)/%reldir%/test_logfile.sh_341e491abcf8772422bafb8b0eaea6492da230f6.out \ $(srcdir)/%reldir%/test_logfile.sh_3fc6bfd8a6160817211f3e14fde957af75b9dbe7.err \ $(srcdir)/%reldir%/test_logfile.sh_3fc6bfd8a6160817211f3e14fde957af75b9dbe7.out \ $(srcdir)/%reldir%/test_logfile.sh_4a2a907fcb069b8d6e65961a7b2e796d6c3a87b1.err \ @@ -322,12 +392,28 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_logfile.sh_6602faf7817c494c33e32da7ee95f13aa9210d01.out \ $(srcdir)/%reldir%/test_logfile.sh_7c2e11488bccc59458b5775db4b90de964858259.err \ $(srcdir)/%reldir%/test_logfile.sh_7c2e11488bccc59458b5775db4b90de964858259.out \ + $(srcdir)/%reldir%/test_logfile.sh_82d65f4dac07b1623f8202444d5b9144096e8243.err \ + $(srcdir)/%reldir%/test_logfile.sh_82d65f4dac07b1623f8202444d5b9144096e8243.out \ + $(srcdir)/%reldir%/test_logfile.sh_8a5e754cd471e5fdcdaede49c9290903acd7aad6.err \ + $(srcdir)/%reldir%/test_logfile.sh_8a5e754cd471e5fdcdaede49c9290903acd7aad6.out \ $(srcdir)/%reldir%/test_logfile.sh_a7037efd0c4bbf51940137a44e57d94e9307e83e.err \ $(srcdir)/%reldir%/test_logfile.sh_a7037efd0c4bbf51940137a44e57d94e9307e83e.out \ $(srcdir)/%reldir%/test_logfile.sh_c18e14a26d8261c9f72747118a469266121d5459.err \ $(srcdir)/%reldir%/test_logfile.sh_c18e14a26d8261c9f72747118a469266121d5459.out \ + $(srcdir)/%reldir%/test_logfile.sh_cc368d4b4bb6a9b9c79bd5a70ffa1f2d9d01e286.err \ + $(srcdir)/%reldir%/test_logfile.sh_cc368d4b4bb6a9b9c79bd5a70ffa1f2d9d01e286.out \ + $(srcdir)/%reldir%/test_logfile.sh_ccb0d31813367c8d9dc5b5df383fac5b780711c1.err \ + $(srcdir)/%reldir%/test_logfile.sh_ccb0d31813367c8d9dc5b5df383fac5b780711c1.out \ + $(srcdir)/%reldir%/test_logfile.sh_d14f6d8888652321206549df8a9535399f0fd372.err \ + $(srcdir)/%reldir%/test_logfile.sh_d14f6d8888652321206549df8a9535399f0fd372.out \ + $(srcdir)/%reldir%/test_logfile.sh_de8d59879fe6aa5a012b0748ff77ae26c07aea89.err \ + $(srcdir)/%reldir%/test_logfile.sh_de8d59879fe6aa5a012b0748ff77ae26c07aea89.out \ $(srcdir)/%reldir%/test_logfile.sh_e840b674cd65936a72bd64b1dac1524d16fe44c3.err \ $(srcdir)/%reldir%/test_logfile.sh_e840b674cd65936a72bd64b1dac1524d16fe44c3.out \ + $(srcdir)/%reldir%/test_logfile.sh_f171f265d8d45a2707e8b9f53e938f574c614d25.err \ + $(srcdir)/%reldir%/test_logfile.sh_f171f265d8d45a2707e8b9f53e938f574c614d25.out \ + $(srcdir)/%reldir%/test_meta.sh_0ae5840c0758ec95a397493ac3c3d4fabd397a34.err \ + $(srcdir)/%reldir%/test_meta.sh_0ae5840c0758ec95a397493ac3c3d4fabd397a34.out \ $(srcdir)/%reldir%/test_meta.sh_154047fb52e4831aabf7d36512247bad6a6a2cf7.err \ $(srcdir)/%reldir%/test_meta.sh_154047fb52e4831aabf7d36512247bad6a6a2cf7.out \ $(srcdir)/%reldir%/test_meta.sh_3c9b5940f7533c5fc3d4956a6efce50a9e7132d4.err \ @@ -340,6 +426,8 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_meta.sh_48e85ba0c0945a5085fb4ee255771406061a9c17.out \ $(srcdir)/%reldir%/test_meta.sh_4c39b356748c67ccf8a6027a1af88da532f8252a.err \ $(srcdir)/%reldir%/test_meta.sh_4c39b356748c67ccf8a6027a1af88da532f8252a.out \ + $(srcdir)/%reldir%/test_meta.sh_65325d1bcb58e530a8d681685fea56803f67a2eb.err \ + $(srcdir)/%reldir%/test_meta.sh_65325d1bcb58e530a8d681685fea56803f67a2eb.out \ $(srcdir)/%reldir%/test_meta.sh_7b75763926d832bf9784ca234a060859770aabe7.err \ $(srcdir)/%reldir%/test_meta.sh_7b75763926d832bf9784ca234a060859770aabe7.out \ $(srcdir)/%reldir%/test_meta.sh_811b1a8a176b25001a89e35b295a1117ab76969b.err \ @@ -348,6 +436,10 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_meta.sh_83ac877aa9d38b25945cf96d6326a2468187c40f.out \ $(srcdir)/%reldir%/test_meta.sh_a7489c1f0e001adc732b7e2ab31bb30960fda078.err \ $(srcdir)/%reldir%/test_meta.sh_a7489c1f0e001adc732b7e2ab31bb30960fda078.out \ + $(srcdir)/%reldir%/test_meta.sh_aae427fe704f131f8466fbfc9e7967c2e874530a.err \ + $(srcdir)/%reldir%/test_meta.sh_aae427fe704f131f8466fbfc9e7967c2e874530a.out \ + $(srcdir)/%reldir%/test_meta.sh_b622c04c2bede5371bfa6f2627b0474049ecc5e9.err \ + $(srcdir)/%reldir%/test_meta.sh_b622c04c2bede5371bfa6f2627b0474049ecc5e9.out \ $(srcdir)/%reldir%/test_meta.sh_c063f96398650f130941bbbf4cf63c1244fdbee5.err \ $(srcdir)/%reldir%/test_meta.sh_c063f96398650f130941bbbf4cf63c1244fdbee5.out \ $(srcdir)/%reldir%/test_meta.sh_c75128169049bd88d5eaf8b84a7f617e5ae5d936.err \ @@ -356,6 +448,8 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_meta.sh_c8fb22932af2467a2651797a8a8d8cddcd09431d.out \ $(srcdir)/%reldir%/test_meta.sh_d6af0b41066ca3be0bbce89c83c011f4ecfa516e.err \ $(srcdir)/%reldir%/test_meta.sh_d6af0b41066ca3be0bbce89c83c011f4ecfa516e.out \ + $(srcdir)/%reldir%/test_meta.sh_f7c55356df0d71c51eb7629c5a81f347083ce1ef.err \ + $(srcdir)/%reldir%/test_meta.sh_f7c55356df0d71c51eb7629c5a81f347083ce1ef.out \ $(srcdir)/%reldir%/test_meta.sh_fd09cb565f44a114d8c9a519e571918e30262eaf.err \ $(srcdir)/%reldir%/test_meta.sh_fd09cb565f44a114d8c9a519e571918e30262eaf.out \ $(srcdir)/%reldir%/test_meta.sh_fdf4a91aa55262255816dff7d605f1f0a5d6fe92.err \ @@ -376,16 +470,78 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_pretty_print.sh_cd361eeca7e91bfab942b75d6c3422c7a456a111.out \ $(srcdir)/%reldir%/test_pretty_print.sh_f8feb52a321026d9562b271eb37a2c56dfaed329.err \ $(srcdir)/%reldir%/test_pretty_print.sh_f8feb52a321026d9562b271eb37a2c56dfaed329.out \ + $(srcdir)/%reldir%/test_prql.sh_06900fac5c2e854b1208320b753fcd43d4ba63a3.err \ + $(srcdir)/%reldir%/test_prql.sh_06900fac5c2e854b1208320b753fcd43d4ba63a3.out \ + $(srcdir)/%reldir%/test_prql.sh_15ebcd913f56cde35af26c6300533d6e76bf1b55.err \ + $(srcdir)/%reldir%/test_prql.sh_15ebcd913f56cde35af26c6300533d6e76bf1b55.out \ + $(srcdir)/%reldir%/test_prql.sh_5aea925b5ad95f55ce6b1b07b7046bc3d7310137.err \ + $(srcdir)/%reldir%/test_prql.sh_5aea925b5ad95f55ce6b1b07b7046bc3d7310137.out \ + $(srcdir)/%reldir%/test_regex101.sh_0fa3663a45aca6a328cb728872af7ed7ee896f1c.err \ + $(srcdir)/%reldir%/test_regex101.sh_0fa3663a45aca6a328cb728872af7ed7ee896f1c.out \ + $(srcdir)/%reldir%/test_regex101.sh_182ae9244db314a953af2bee969726e381bc5a32.err \ + $(srcdir)/%reldir%/test_regex101.sh_182ae9244db314a953af2bee969726e381bc5a32.out \ + $(srcdir)/%reldir%/test_regex101.sh_2158f1f011ba8e1b152396c072790c076fdb8ce8.err \ + $(srcdir)/%reldir%/test_regex101.sh_2158f1f011ba8e1b152396c072790c076fdb8ce8.out \ + $(srcdir)/%reldir%/test_regex101.sh_281af24141680330791db7f7c5fa70833ce08a6b.err \ + $(srcdir)/%reldir%/test_regex101.sh_281af24141680330791db7f7c5fa70833ce08a6b.out \ + $(srcdir)/%reldir%/test_regex101.sh_35703b13990785632cca82123fb3883797959c0b.err \ + $(srcdir)/%reldir%/test_regex101.sh_35703b13990785632cca82123fb3883797959c0b.out \ + $(srcdir)/%reldir%/test_regex101.sh_366730cac50b4a09b7de4b84641791470b1cb9a3.err \ + $(srcdir)/%reldir%/test_regex101.sh_366730cac50b4a09b7de4b84641791470b1cb9a3.out \ + $(srcdir)/%reldir%/test_regex101.sh_3d18474a3e472fff6e23e0c41337ec9188fee591.err \ + $(srcdir)/%reldir%/test_regex101.sh_3d18474a3e472fff6e23e0c41337ec9188fee591.out \ + $(srcdir)/%reldir%/test_regex101.sh_442cc58676590a3604d5c2183f5fe0a75c98351a.err \ + $(srcdir)/%reldir%/test_regex101.sh_442cc58676590a3604d5c2183f5fe0a75c98351a.out \ + $(srcdir)/%reldir%/test_regex101.sh_566fd88d216a44bc1c6e23f2d6f2d0caf99d42f9.err \ + $(srcdir)/%reldir%/test_regex101.sh_566fd88d216a44bc1c6e23f2d6f2d0caf99d42f9.out \ + $(srcdir)/%reldir%/test_regex101.sh_5f2f7ecb6ab9cbec4b41385b91bd038906b8a7b2.err \ + $(srcdir)/%reldir%/test_regex101.sh_5f2f7ecb6ab9cbec4b41385b91bd038906b8a7b2.out \ + $(srcdir)/%reldir%/test_regex101.sh_629bde30483e0a6461076e9058f3a5eb81ae0425.err \ + $(srcdir)/%reldir%/test_regex101.sh_629bde30483e0a6461076e9058f3a5eb81ae0425.out \ + $(srcdir)/%reldir%/test_regex101.sh_630db454054cf92ec9bd0f4e3e83300047f583ff.err \ + $(srcdir)/%reldir%/test_regex101.sh_630db454054cf92ec9bd0f4e3e83300047f583ff.out \ + $(srcdir)/%reldir%/test_regex101.sh_771af6f3d29b8350542d5c6e98bdbf4c223cd531.err \ + $(srcdir)/%reldir%/test_regex101.sh_771af6f3d29b8350542d5c6e98bdbf4c223cd531.out \ + $(srcdir)/%reldir%/test_regex101.sh_7991a5b617867cf37c9f7baa85ffa425f7d455a2.err \ + $(srcdir)/%reldir%/test_regex101.sh_7991a5b617867cf37c9f7baa85ffa425f7d455a2.out \ + $(srcdir)/%reldir%/test_regex101.sh_79ee3f5fe71ccec97b2619d8c1f74ca97ffd2243.err \ + $(srcdir)/%reldir%/test_regex101.sh_79ee3f5fe71ccec97b2619d8c1f74ca97ffd2243.out \ + $(srcdir)/%reldir%/test_regex101.sh_7de76c174c58d67bf93e8f01d6d55ebb6a023f10.err \ + $(srcdir)/%reldir%/test_regex101.sh_7de76c174c58d67bf93e8f01d6d55ebb6a023f10.out \ + $(srcdir)/%reldir%/test_regex101.sh_8a43e6657d4f60e68d31eb8302542ca28e80d077.err \ + $(srcdir)/%reldir%/test_regex101.sh_8a43e6657d4f60e68d31eb8302542ca28e80d077.out \ + $(srcdir)/%reldir%/test_regex101.sh_8e93a3b6b941847c71409a297779fbb0a6666a51.err \ + $(srcdir)/%reldir%/test_regex101.sh_8e93a3b6b941847c71409a297779fbb0a6666a51.out \ + $(srcdir)/%reldir%/test_regex101.sh_95c56a9d146ec9a7c2196559d316f928b2ae6ae9.err \ + $(srcdir)/%reldir%/test_regex101.sh_95c56a9d146ec9a7c2196559d316f928b2ae6ae9.out \ + $(srcdir)/%reldir%/test_regex101.sh_9d101ee29c45cdb8c0f117ad736c9a5dd5da5839.err \ + $(srcdir)/%reldir%/test_regex101.sh_9d101ee29c45cdb8c0f117ad736c9a5dd5da5839.out \ + $(srcdir)/%reldir%/test_regex101.sh_c43e07df9b3068696fdc8759c7561135db981b38.err \ + $(srcdir)/%reldir%/test_regex101.sh_c43e07df9b3068696fdc8759c7561135db981b38.out \ + $(srcdir)/%reldir%/test_regex101.sh_cbd859487e4ea011cd6e0f0f114d70158bfd8b43.err \ + $(srcdir)/%reldir%/test_regex101.sh_cbd859487e4ea011cd6e0f0f114d70158bfd8b43.out \ + $(srcdir)/%reldir%/test_regex101.sh_cf6c0a9f0f04e24ce1fae7a0a434830b14447f83.err \ + $(srcdir)/%reldir%/test_regex101.sh_cf6c0a9f0f04e24ce1fae7a0a434830b14447f83.out \ + $(srcdir)/%reldir%/test_regex101.sh_d84597760285c3964b258726341e018f6cd49954.err \ + $(srcdir)/%reldir%/test_regex101.sh_d84597760285c3964b258726341e018f6cd49954.out \ + $(srcdir)/%reldir%/test_regex101.sh_f23e393dbf23d0d8e276e9b7610c7b74d79980f8.err \ + $(srcdir)/%reldir%/test_regex101.sh_f23e393dbf23d0d8e276e9b7610c7b74d79980f8.out \ + $(srcdir)/%reldir%/test_regex101.sh_fc41b6ee90cbf038620151f16d164b361acf82dd.err \ + $(srcdir)/%reldir%/test_regex101.sh_fc41b6ee90cbf038620151f16d164b361acf82dd.out \ $(srcdir)/%reldir%/test_sessions.sh_0300a1391c33b1c45ddfa90198a6bd0a5404a77f.err \ $(srcdir)/%reldir%/test_sessions.sh_0300a1391c33b1c45ddfa90198a6bd0a5404a77f.out \ $(srcdir)/%reldir%/test_sessions.sh_17b85654b929b2a8fc1705a170ced544783292fa.err \ $(srcdir)/%reldir%/test_sessions.sh_17b85654b929b2a8fc1705a170ced544783292fa.out \ + $(srcdir)/%reldir%/test_sessions.sh_33ab03afda2c9331a289fcbd1abdbc1c37b2e87b.err \ + $(srcdir)/%reldir%/test_sessions.sh_33ab03afda2c9331a289fcbd1abdbc1c37b2e87b.out \ $(srcdir)/%reldir%/test_sessions.sh_345b0e66dab7b881397c4b38380da81092ab70dd.err \ $(srcdir)/%reldir%/test_sessions.sh_345b0e66dab7b881397c4b38380da81092ab70dd.out \ $(srcdir)/%reldir%/test_sessions.sh_430b9522ba1a37983138f3c4935cba91b781e415.err \ $(srcdir)/%reldir%/test_sessions.sh_430b9522ba1a37983138f3c4935cba91b781e415.out \ $(srcdir)/%reldir%/test_sessions.sh_4f13dd3858546b6e04a27e244159d355e368f2ae.err \ $(srcdir)/%reldir%/test_sessions.sh_4f13dd3858546b6e04a27e244159d355e368f2ae.out \ + $(srcdir)/%reldir%/test_sessions.sh_639b83ce8f67975dfdc7086946ec287b43b6fa8c.err \ + $(srcdir)/%reldir%/test_sessions.sh_639b83ce8f67975dfdc7086946ec287b43b6fa8c.out \ $(srcdir)/%reldir%/test_sessions.sh_68a89b56c5e7f7db620084cca1eb547cbb19a2c9.err \ $(srcdir)/%reldir%/test_sessions.sh_68a89b56c5e7f7db620084cca1eb547cbb19a2c9.out \ $(srcdir)/%reldir%/test_sessions.sh_6d87ff483d5785c58fb271a405ff1c35e4f83cd9.err \ @@ -404,8 +560,14 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sessions.sh_b3d71a87fcb4e3487f71ccad8c6ce681db220572.out \ $(srcdir)/%reldir%/test_sessions.sh_b932b33dd087b94d4306dd179c5d4f9ddd394960.err \ $(srcdir)/%reldir%/test_sessions.sh_b932b33dd087b94d4306dd179c5d4f9ddd394960.out \ + $(srcdir)/%reldir%/test_sessions.sh_ba1ded92531350668301431db64df2d2f4a2e9ee.err \ + $(srcdir)/%reldir%/test_sessions.sh_ba1ded92531350668301431db64df2d2f4a2e9ee.out \ $(srcdir)/%reldir%/test_sessions.sh_ddf45811e9906de9f3930fe802ac7b2cc6e48106.err \ $(srcdir)/%reldir%/test_sessions.sh_ddf45811e9906de9f3930fe802ac7b2cc6e48106.out \ + $(srcdir)/%reldir%/test_sessions.sh_e57697be4d81ac8e5b2b2fa84f919b2d494978f3.err \ + $(srcdir)/%reldir%/test_sessions.sh_e57697be4d81ac8e5b2b2fa84f919b2d494978f3.out \ + $(srcdir)/%reldir%/test_sessions.sh_e988439404f2e97604641c8d087855f3efe052e4.err \ + $(srcdir)/%reldir%/test_sessions.sh_e988439404f2e97604641c8d087855f3efe052e4.out \ $(srcdir)/%reldir%/test_shlexer.sh_14dd967cb2af90899c9e5e45d00b676b5a3163aa.err \ $(srcdir)/%reldir%/test_shlexer.sh_14dd967cb2af90899c9e5e45d00b676b5a3163aa.out \ $(srcdir)/%reldir%/test_shlexer.sh_2781f5dd570580cbe746ad91b58a28b8371283b3.err \ @@ -432,44 +594,62 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_shlexer.sh_e0599f0b53d1bd27af767113853f8e84291f137d.out \ $(srcdir)/%reldir%/test_shlexer.sh_e8fa2239ab17e7563d0c524f5400a79d6ff8bfda.err \ $(srcdir)/%reldir%/test_shlexer.sh_e8fa2239ab17e7563d0c524f5400a79d6ff8bfda.out \ + $(srcdir)/%reldir%/test_shlexer.sh_e99fe1cde36b85ebbab86ca820f55ec861cdc20b.err \ + $(srcdir)/%reldir%/test_shlexer.sh_e99fe1cde36b85ebbab86ca820f55ec861cdc20b.out \ $(srcdir)/%reldir%/test_sql.sh_02def66745b063518473df862987747909f56ccc.err \ $(srcdir)/%reldir%/test_sql.sh_02def66745b063518473df862987747909f56ccc.out \ + $(srcdir)/%reldir%/test_sql.sh_09416e332d9b2f76743836b72e71b6e4492e594e.err \ + $(srcdir)/%reldir%/test_sql.sh_09416e332d9b2f76743836b72e71b6e4492e594e.out \ $(srcdir)/%reldir%/test_sql.sh_0a5d13b62da4cb66a59a51b0240b5fe0b6036b7e.err \ $(srcdir)/%reldir%/test_sql.sh_0a5d13b62da4cb66a59a51b0240b5fe0b6036b7e.out \ $(srcdir)/%reldir%/test_sql.sh_0d46ee142f80f262c8c14a22751571cc567df525.err \ $(srcdir)/%reldir%/test_sql.sh_0d46ee142f80f262c8c14a22751571cc567df525.out \ $(srcdir)/%reldir%/test_sql.sh_13429aed81d7edfd47b57e9cdb8a25c43aff35c4.err \ $(srcdir)/%reldir%/test_sql.sh_13429aed81d7edfd47b57e9cdb8a25c43aff35c4.out \ + $(srcdir)/%reldir%/test_sql.sh_19c92996bcc884bfdb70e3d24606cf5070556a74.err \ + $(srcdir)/%reldir%/test_sql.sh_19c92996bcc884bfdb70e3d24606cf5070556a74.out \ $(srcdir)/%reldir%/test_sql.sh_1cbb81cfe40ee16332c5c775a74d06b945aa65c2.err \ $(srcdir)/%reldir%/test_sql.sh_1cbb81cfe40ee16332c5c775a74d06b945aa65c2.out \ + $(srcdir)/%reldir%/test_sql.sh_1f892b85dc9008c7b3bab7fdf8aa372a6d5ae22c.err \ + $(srcdir)/%reldir%/test_sql.sh_1f892b85dc9008c7b3bab7fdf8aa372a6d5ae22c.out \ $(srcdir)/%reldir%/test_sql.sh_2532083f215ed44630621f18df3dd7b77c06ae10.err \ $(srcdir)/%reldir%/test_sql.sh_2532083f215ed44630621f18df3dd7b77c06ae10.out \ + $(srcdir)/%reldir%/test_sql.sh_26ace94793c68c44801e1ec496e7ab6a02304ce3.err \ + $(srcdir)/%reldir%/test_sql.sh_26ace94793c68c44801e1ec496e7ab6a02304ce3.out \ $(srcdir)/%reldir%/test_sql.sh_26c0d94d7837792144f2d0f866fb3c12a0bd410d.err \ $(srcdir)/%reldir%/test_sql.sh_26c0d94d7837792144f2d0f866fb3c12a0bd410d.out \ $(srcdir)/%reldir%/test_sql.sh_2959f0c70fca61a07c6c772f193e73022f7794f1.err \ $(srcdir)/%reldir%/test_sql.sh_2959f0c70fca61a07c6c772f193e73022f7794f1.out \ $(srcdir)/%reldir%/test_sql.sh_2a16a6fd0ff235a7877e1ea93b22d873a3609402.err \ $(srcdir)/%reldir%/test_sql.sh_2a16a6fd0ff235a7877e1ea93b22d873a3609402.out \ + $(srcdir)/%reldir%/test_sql.sh_2c60ed41369d667d1e2a563d54f8edf84682e526.err \ + $(srcdir)/%reldir%/test_sql.sh_2c60ed41369d667d1e2a563d54f8edf84682e526.out \ $(srcdir)/%reldir%/test_sql.sh_2cc8a92c6eb73741080b187a2670d309b8171c90.err \ $(srcdir)/%reldir%/test_sql.sh_2cc8a92c6eb73741080b187a2670d309b8171c90.out \ + $(srcdir)/%reldir%/test_sql.sh_2ed3f3b18ef4ecc68e4dd3cc8041b61fcf2a59af.err \ + $(srcdir)/%reldir%/test_sql.sh_2ed3f3b18ef4ecc68e4dd3cc8041b61fcf2a59af.out \ $(srcdir)/%reldir%/test_sql.sh_2f15b8a38673ac4db45dc6ed2eafe609c332575b.err \ $(srcdir)/%reldir%/test_sql.sh_2f15b8a38673ac4db45dc6ed2eafe609c332575b.out \ $(srcdir)/%reldir%/test_sql.sh_31df37f254255115611fc321b63374a2fa4a1cd5.err \ $(srcdir)/%reldir%/test_sql.sh_31df37f254255115611fc321b63374a2fa4a1cd5.out \ + $(srcdir)/%reldir%/test_sql.sh_3445b783808f174b76f55dc6b998f721a1aae271.err \ + $(srcdir)/%reldir%/test_sql.sh_3445b783808f174b76f55dc6b998f721a1aae271.out \ $(srcdir)/%reldir%/test_sql.sh_3d77a2092192caf98e141a6039e886ede836f044.err \ $(srcdir)/%reldir%/test_sql.sh_3d77a2092192caf98e141a6039e886ede836f044.out \ $(srcdir)/%reldir%/test_sql.sh_4090f96ea11a344c1e2939211da778992dab47d8.err \ $(srcdir)/%reldir%/test_sql.sh_4090f96ea11a344c1e2939211da778992dab47d8.out \ + $(srcdir)/%reldir%/test_sql.sh_4563a807311d0ce3d1f912843e615a6ca579cffa.err \ + $(srcdir)/%reldir%/test_sql.sh_4563a807311d0ce3d1f912843e615a6ca579cffa.out \ $(srcdir)/%reldir%/test_sql.sh_4629b626c65a85d7a5595571e195b67afca272ba.err \ $(srcdir)/%reldir%/test_sql.sh_4629b626c65a85d7a5595571e195b67afca272ba.out \ + $(srcdir)/%reldir%/test_sql.sh_4a13356ccbdeb5f73fa063e292b5a6cb25e6c23e.err \ + $(srcdir)/%reldir%/test_sql.sh_4a13356ccbdeb5f73fa063e292b5a6cb25e6c23e.out \ $(srcdir)/%reldir%/test_sql.sh_50c0b2c93b646b848a017764bde8a4282c556e2d.err \ $(srcdir)/%reldir%/test_sql.sh_50c0b2c93b646b848a017764bde8a4282c556e2d.out \ $(srcdir)/%reldir%/test_sql.sh_528e48a03cdfa7cfbe263a6e22a65606247a8a95.err \ $(srcdir)/%reldir%/test_sql.sh_528e48a03cdfa7cfbe263a6e22a65606247a8a95.out \ $(srcdir)/%reldir%/test_sql.sh_5532c7a21e3f6b7df3aad10d7bdfbb7a812ae6c7.err \ $(srcdir)/%reldir%/test_sql.sh_5532c7a21e3f6b7df3aad10d7bdfbb7a812ae6c7.out \ - $(srcdir)/%reldir%/test_sql.sh_56047c9470e515bc3e3709354c01e5d50462cde7.err \ - $(srcdir)/%reldir%/test_sql.sh_56047c9470e515bc3e3709354c01e5d50462cde7.out \ $(srcdir)/%reldir%/test_sql.sh_57427f3c4b4ec785ffff7c5802c10db0d3e547cf.err \ $(srcdir)/%reldir%/test_sql.sh_57427f3c4b4ec785ffff7c5802c10db0d3e547cf.out \ $(srcdir)/%reldir%/test_sql.sh_57edc93426e6767aa44ab2356c55327553dcdc8d.err \ @@ -478,6 +658,8 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql.sh_5801770f3e0ecc1d62c7a97116d6da1981bbc7bd.out \ $(srcdir)/%reldir%/test_sql.sh_5fe26fe4fc22f23f8dbe3a6aab394602886f2971.err \ $(srcdir)/%reldir%/test_sql.sh_5fe26fe4fc22f23f8dbe3a6aab394602886f2971.out \ + $(srcdir)/%reldir%/test_sql.sh_61471583c5e2f8ede3a8adefce682c27bf3924c8.err \ + $(srcdir)/%reldir%/test_sql.sh_61471583c5e2f8ede3a8adefce682c27bf3924c8.out \ $(srcdir)/%reldir%/test_sql.sh_62eb85c9569e71a630d72065238559528a16114c.err \ $(srcdir)/%reldir%/test_sql.sh_62eb85c9569e71a630d72065238559528a16114c.out \ $(srcdir)/%reldir%/test_sql.sh_6ad9d0adf85c36363f6b24f49950dcdc13dd34ab.err \ @@ -486,16 +668,22 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql.sh_6edb0c8d5323d1b962d90dd6ecdd7eee9008d7b5.out \ $(srcdir)/%reldir%/test_sql.sh_753c343a256d1286750314957d1b4e155464e03e.err \ $(srcdir)/%reldir%/test_sql.sh_753c343a256d1286750314957d1b4e155464e03e.out \ + $(srcdir)/%reldir%/test_sql.sh_7593b39f4be6fd2124ec7cf10835ee015d475b16.err \ + $(srcdir)/%reldir%/test_sql.sh_7593b39f4be6fd2124ec7cf10835ee015d475b16.out \ $(srcdir)/%reldir%/test_sql.sh_764306f0e5f610ba71f521ba3d19fe158ece0ba5.err \ $(srcdir)/%reldir%/test_sql.sh_764306f0e5f610ba71f521ba3d19fe158ece0ba5.out \ $(srcdir)/%reldir%/test_sql.sh_7f664c9cda0ae1c48333e21051b5e0eeafd5b4bc.err \ $(srcdir)/%reldir%/test_sql.sh_7f664c9cda0ae1c48333e21051b5e0eeafd5b4bc.out \ + $(srcdir)/%reldir%/test_sql.sh_859af4cc5f57345be8dcece599419d58f332841a.err \ + $(srcdir)/%reldir%/test_sql.sh_859af4cc5f57345be8dcece599419d58f332841a.out \ $(srcdir)/%reldir%/test_sql.sh_85fe3b9803254ea54b864d4865d7bd4d7a7f86c6.err \ $(srcdir)/%reldir%/test_sql.sh_85fe3b9803254ea54b864d4865d7bd4d7a7f86c6.out \ $(srcdir)/%reldir%/test_sql.sh_8ee288f1508eaab0367e465e9f382e848f3282aa.err \ $(srcdir)/%reldir%/test_sql.sh_8ee288f1508eaab0367e465e9f382e848f3282aa.out \ $(srcdir)/%reldir%/test_sql.sh_9a209f3ee1b1f543ca2587b695d2eb0e63e74c51.err \ $(srcdir)/%reldir%/test_sql.sh_9a209f3ee1b1f543ca2587b695d2eb0e63e74c51.out \ + $(srcdir)/%reldir%/test_sql.sh_9aaaa810f883f5dcf8a4d5cda4051fdf4640a65c.err \ + $(srcdir)/%reldir%/test_sql.sh_9aaaa810f883f5dcf8a4d5cda4051fdf4640a65c.out \ $(srcdir)/%reldir%/test_sql.sh_9b03e9f7a1bc35e408b3a17ee90cfdadea164df6.err \ $(srcdir)/%reldir%/test_sql.sh_9b03e9f7a1bc35e408b3a17ee90cfdadea164df6.out \ $(srcdir)/%reldir%/test_sql.sh_9ceccab07fbf7130bffe3c201c710719e4a3e9af.err \ @@ -504,6 +692,8 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql.sh_9e1d05b821822ee40e13fadb24ec558f4bfcff10.out \ $(srcdir)/%reldir%/test_sql.sh_a6b68b9f0044d18e7fa8f9287ddc9110701edc33.err \ $(srcdir)/%reldir%/test_sql.sh_a6b68b9f0044d18e7fa8f9287ddc9110701edc33.out \ + $(srcdir)/%reldir%/test_sql.sh_a7955e89791db9a252d8323436fabc51e2960731.err \ + $(srcdir)/%reldir%/test_sql.sh_a7955e89791db9a252d8323436fabc51e2960731.out \ $(srcdir)/%reldir%/test_sql.sh_ae7b1f1684e14bf9c16e0d789257b6ef57cfb2b1.err \ $(srcdir)/%reldir%/test_sql.sh_ae7b1f1684e14bf9c16e0d789257b6ef57cfb2b1.out \ $(srcdir)/%reldir%/test_sql.sh_afe9cdc4898df5c4e112c13dfe3db6dc089c0d7c.err \ @@ -514,10 +704,14 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql.sh_b2694e4fbecdd128798af25ee0d069e7e35fb499.out \ $(srcdir)/%reldir%/test_sql.sh_b5aa0561a65de7e8e22085db184c72a94b1a89a9.err \ $(srcdir)/%reldir%/test_sql.sh_b5aa0561a65de7e8e22085db184c72a94b1a89a9.out \ + $(srcdir)/%reldir%/test_sql.sh_b9330763dea550bbd006d7ae6ae7ea367f831fa3.err \ + $(srcdir)/%reldir%/test_sql.sh_b9330763dea550bbd006d7ae6ae7ea367f831fa3.out \ $(srcdir)/%reldir%/test_sql.sh_bad03a996c0750733ab99c592b9011851f521a69.err \ $(srcdir)/%reldir%/test_sql.sh_bad03a996c0750733ab99c592b9011851f521a69.out \ $(srcdir)/%reldir%/test_sql.sh_bd46ca4560f8be6307a914e39539bbac0368080a.err \ $(srcdir)/%reldir%/test_sql.sh_bd46ca4560f8be6307a914e39539bbac0368080a.out \ + $(srcdir)/%reldir%/test_sql.sh_c17933125df910588b806a9d07c2655bc71198ef.err \ + $(srcdir)/%reldir%/test_sql.sh_c17933125df910588b806a9d07c2655bc71198ef.out \ $(srcdir)/%reldir%/test_sql.sh_c20b0320096342c180146a5d18a6de82319d70b2.err \ $(srcdir)/%reldir%/test_sql.sh_c20b0320096342c180146a5d18a6de82319d70b2.out \ $(srcdir)/%reldir%/test_sql.sh_c353ef036c505b75996252138fbd4c8d22e8149c.err \ @@ -528,20 +722,30 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql.sh_c73dec2706fc0b9a124f5da3a83f40d8d3255beb.out \ $(srcdir)/%reldir%/test_sql.sh_c7e1dbf4605914720b55787785abfafdf2c4178a.err \ $(srcdir)/%reldir%/test_sql.sh_c7e1dbf4605914720b55787785abfafdf2c4178a.out \ - $(srcdir)/%reldir%/test_sql.sh_cc77a633a66d1778705a34e3657737547b3fb08d.err \ - $(srcdir)/%reldir%/test_sql.sh_cc77a633a66d1778705a34e3657737547b3fb08d.out \ + $(srcdir)/%reldir%/test_sql.sh_d4d540f0ef7e34b693fc72078d1cf2e069f86d81.err \ + $(srcdir)/%reldir%/test_sql.sh_d4d540f0ef7e34b693fc72078d1cf2e069f86d81.out \ $(srcdir)/%reldir%/test_sql.sh_dd540973a0dc86320d84706845a15608196ae5be.err \ $(srcdir)/%reldir%/test_sql.sh_dd540973a0dc86320d84706845a15608196ae5be.out \ + $(srcdir)/%reldir%/test_sql.sh_e44c0e2834038ec8d9b0b10b993967edb711c03c.err \ + $(srcdir)/%reldir%/test_sql.sh_e44c0e2834038ec8d9b0b10b993967edb711c03c.out \ $(srcdir)/%reldir%/test_sql.sh_e70dc7d2b686c7f91c2b41b10f3920c50f3ea405.err \ $(srcdir)/%reldir%/test_sql.sh_e70dc7d2b686c7f91c2b41b10f3920c50f3ea405.out \ + $(srcdir)/%reldir%/test_sql.sh_ef3cecab4ae0b90760f728add5652378e26b2fe6.err \ + $(srcdir)/%reldir%/test_sql.sh_ef3cecab4ae0b90760f728add5652378e26b2fe6.out \ + $(srcdir)/%reldir%/test_sql.sh_fea98f976873ee7b55e6f322dda42719a19fb3f0.err \ + $(srcdir)/%reldir%/test_sql.sh_fea98f976873ee7b55e6f322dda42719a19fb3f0.out \ $(srcdir)/%reldir%/test_sql.sh_ff8a978fc0de0fed675a3cd1454cf435a6856fd5.err \ $(srcdir)/%reldir%/test_sql.sh_ff8a978fc0de0fed675a3cd1454cf435a6856fd5.out \ + $(srcdir)/%reldir%/test_sql.sh_ffbc3dbf8464455358a77acffa10a8dd8a080374.err \ + $(srcdir)/%reldir%/test_sql.sh_ffbc3dbf8464455358a77acffa10a8dd8a080374.out \ $(srcdir)/%reldir%/test_sql_anno.sh_028d5d5af2f3519b59d349d41cb7ecf385253b51.err \ $(srcdir)/%reldir%/test_sql_anno.sh_028d5d5af2f3519b59d349d41cb7ecf385253b51.out \ $(srcdir)/%reldir%/test_sql_anno.sh_0a37c43350ddd7a2d0d75695be32fac083ad04a4.err \ $(srcdir)/%reldir%/test_sql_anno.sh_0a37c43350ddd7a2d0d75695be32fac083ad04a4.out \ $(srcdir)/%reldir%/test_sql_anno.sh_1151e5b727f6b57070bf2c8f047f1d7e02b803a6.err \ $(srcdir)/%reldir%/test_sql_anno.sh_1151e5b727f6b57070bf2c8f047f1d7e02b803a6.out \ + $(srcdir)/%reldir%/test_sql_anno.sh_1398146cf8b4f074ec8b9752f021cf47d011bebc.err \ + $(srcdir)/%reldir%/test_sql_anno.sh_1398146cf8b4f074ec8b9752f021cf47d011bebc.out \ $(srcdir)/%reldir%/test_sql_anno.sh_1b29488b949c294479aa6054f80a35bc106b454b.err \ $(srcdir)/%reldir%/test_sql_anno.sh_1b29488b949c294479aa6054f80a35bc106b454b.out \ $(srcdir)/%reldir%/test_sql_anno.sh_331a152080d2e278b7cc0a37728eca1ded36ed72.err \ @@ -568,6 +772,10 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql_anno.sh_c909647ed0e585002074f55c946f3033df1815b2.out \ $(srcdir)/%reldir%/test_sql_anno.sh_ce0506ee7a12eb0f7b970522cc6a79180ecb20cc.err \ $(srcdir)/%reldir%/test_sql_anno.sh_ce0506ee7a12eb0f7b970522cc6a79180ecb20cc.out \ + $(srcdir)/%reldir%/test_sql_anno.sh_de46094b6e005285dc0921ef9979e36240c5042d.err \ + $(srcdir)/%reldir%/test_sql_anno.sh_de46094b6e005285dc0921ef9979e36240c5042d.out \ + $(srcdir)/%reldir%/test_sql_anno.sh_e7dae4ba18c42c416ed03afd8819200f63e89ac8.err \ + $(srcdir)/%reldir%/test_sql_anno.sh_e7dae4ba18c42c416ed03afd8819200f63e89ac8.out \ $(srcdir)/%reldir%/test_sql_anno.sh_f3c64191d6016767a5857fbb1bad26548586bb96.err \ $(srcdir)/%reldir%/test_sql_anno.sh_f3c64191d6016767a5857fbb1bad26548586bb96.out \ $(srcdir)/%reldir%/test_sql_coll_func.sh_077cab6e271c914daf5b221cc512853077891f35.err \ @@ -606,8 +814,12 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql_fs_func.sh_18ddc138b263dd06f3fe81fec05bc4330caffef7.out \ $(srcdir)/%reldir%/test_sql_fs_func.sh_20a76db446a0a558dcbdf41033f97d4a22ca1bfa.err \ $(srcdir)/%reldir%/test_sql_fs_func.sh_20a76db446a0a558dcbdf41033f97d4a22ca1bfa.out \ + $(srcdir)/%reldir%/test_sql_fs_func.sh_2aa83fc90c850cdd11e3136a1a02b79c5879824b.err \ + $(srcdir)/%reldir%/test_sql_fs_func.sh_2aa83fc90c850cdd11e3136a1a02b79c5879824b.out \ $(srcdir)/%reldir%/test_sql_fs_func.sh_2c3f66e78deb8721b1d1fe5a787e9958895401d7.err \ $(srcdir)/%reldir%/test_sql_fs_func.sh_2c3f66e78deb8721b1d1fe5a787e9958895401d7.out \ + $(srcdir)/%reldir%/test_sql_fs_func.sh_34baa8050f8278d7b68c29e53bdd9f37da0f34c8.err \ + $(srcdir)/%reldir%/test_sql_fs_func.sh_34baa8050f8278d7b68c29e53bdd9f37da0f34c8.out \ $(srcdir)/%reldir%/test_sql_fs_func.sh_3ed11101a413e47c3dfe219557b7a6df04a64253.err \ $(srcdir)/%reldir%/test_sql_fs_func.sh_3ed11101a413e47c3dfe219557b7a6df04a64253.out \ $(srcdir)/%reldir%/test_sql_fs_func.sh_469380561dccd79c7249562067107c330838eaad.err \ @@ -624,6 +836,8 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql_fs_func.sh_7b5d7dd8d0003ab83e3e5cb0a5ce802fe9a0e3b3.out \ $(srcdir)/%reldir%/test_sql_fs_func.sh_917ffde411c1425e8a6addae0170900dcd553986.err \ $(srcdir)/%reldir%/test_sql_fs_func.sh_917ffde411c1425e8a6addae0170900dcd553986.out \ + $(srcdir)/%reldir%/test_sql_fs_func.sh_9234a453403934587bbbdde355281a956d1fbe5f.err \ + $(srcdir)/%reldir%/test_sql_fs_func.sh_9234a453403934587bbbdde355281a956d1fbe5f.out \ $(srcdir)/%reldir%/test_sql_fs_func.sh_9e2c0a90ce333365ff7354375f2c609bc27135c8.err \ $(srcdir)/%reldir%/test_sql_fs_func.sh_9e2c0a90ce333365ff7354375f2c609bc27135c8.out \ $(srcdir)/%reldir%/test_sql_fs_func.sh_a247b137e71124e496f1beab56c7fe85717c4199.err \ @@ -648,6 +862,8 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql_indexes.sh_026dd9752b6101e0791689d3a2026f7e517e36f5.out \ $(srcdir)/%reldir%/test_sql_indexes.sh_1614ebb5e2e83bab11023354dea8a0885ddf64b4.err \ $(srcdir)/%reldir%/test_sql_indexes.sh_1614ebb5e2e83bab11023354dea8a0885ddf64b4.out \ + $(srcdir)/%reldir%/test_sql_indexes.sh_2b4945247332d01b08e6f17340f7d17f3b3649b8.err \ + $(srcdir)/%reldir%/test_sql_indexes.sh_2b4945247332d01b08e6f17340f7d17f3b3649b8.out \ $(srcdir)/%reldir%/test_sql_indexes.sh_541a8e35f34a206e340a3880128b6ce137847872.err \ $(srcdir)/%reldir%/test_sql_indexes.sh_541a8e35f34a206e340a3880128b6ce137847872.out \ $(srcdir)/%reldir%/test_sql_indexes.sh_59a1497c13a5e09bc8f95ef02552b2835ebea6e5.err \ @@ -740,10 +956,16 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql_json_func.sh_f34205b59e04f261897ad89f659595c743a18ca9.out \ $(srcdir)/%reldir%/test_sql_json_func.sh_f34f5dfa938a1ac7721f924beb16bbceec127a1b.err \ $(srcdir)/%reldir%/test_sql_json_func.sh_f34f5dfa938a1ac7721f924beb16bbceec127a1b.out \ + $(srcdir)/%reldir%/test_sql_regexp.sh_02ef03572fd2bcf39bab8e29cf1c735ff7c3f297.err \ + $(srcdir)/%reldir%/test_sql_regexp.sh_02ef03572fd2bcf39bab8e29cf1c735ff7c3f297.out \ $(srcdir)/%reldir%/test_sql_regexp.sh_03257c56e85558aa0cc925b68d3af962afc25125.err \ $(srcdir)/%reldir%/test_sql_regexp.sh_03257c56e85558aa0cc925b68d3af962afc25125.out \ + $(srcdir)/%reldir%/test_sql_regexp.sh_219a579cf7744fa08ab79fadd08b521b2f18a661.err \ + $(srcdir)/%reldir%/test_sql_regexp.sh_219a579cf7744fa08ab79fadd08b521b2f18a661.out \ $(srcdir)/%reldir%/test_sql_regexp.sh_51293df041b6969ccecc60204dce3676d0fb006d.err \ $(srcdir)/%reldir%/test_sql_regexp.sh_51293df041b6969ccecc60204dce3676d0fb006d.out \ + $(srcdir)/%reldir%/test_sql_regexp.sh_a610798fefdacd8d0179a4b17cd757d00fb731be.err \ + $(srcdir)/%reldir%/test_sql_regexp.sh_a610798fefdacd8d0179a4b17cd757d00fb731be.out \ $(srcdir)/%reldir%/test_sql_regexp.sh_b841a0c09601e2419eeb99e85f7e286c889e4801.err \ $(srcdir)/%reldir%/test_sql_regexp.sh_b841a0c09601e2419eeb99e85f7e286c889e4801.out \ $(srcdir)/%reldir%/test_sql_regexp.sh_bbd1128cf61a9af8f9dc937b46217443f42e1a7a.err \ @@ -764,12 +986,16 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql_search_table.sh_df0fd242f57a96d40f466493938cda0789a094fa.out \ $(srcdir)/%reldir%/test_sql_search_table.sh_ef9373a76853f345d06234f6e0fe11b5d40da27b.err \ $(srcdir)/%reldir%/test_sql_search_table.sh_ef9373a76853f345d06234f6e0fe11b5d40da27b.out \ + $(srcdir)/%reldir%/test_sql_str_func.sh_00363f89638cb968584afc1ca0a4f52b2cf7a2ae.err \ + $(srcdir)/%reldir%/test_sql_str_func.sh_00363f89638cb968584afc1ca0a4f52b2cf7a2ae.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_005b9365ac99596e539f47c9fe432668c209b21f.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_005b9365ac99596e539f47c9fe432668c209b21f.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_04712488fe50554eb36d3ced80f9a033602f3daa.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_04712488fe50554eb36d3ced80f9a033602f3daa.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_0947bfe7ec626eaa0409a45b10fcbb634fb12eb7.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_0947bfe7ec626eaa0409a45b10fcbb634fb12eb7.out \ + $(srcdir)/%reldir%/test_sql_str_func.sh_0db1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.err \ + $(srcdir)/%reldir%/test_sql_str_func.sh_0db1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_11bcc5d32eabbedb6974f160dace9ef1ef0009e9.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_11bcc5d32eabbedb6974f160dace9ef1ef0009e9.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_11d458fdadd00df1239a0eeaac049abb49ed212d.err \ @@ -778,6 +1004,8 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql_str_func.sh_129e58679e72f3cc5864812026e49a7917baf3d0.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_151a0fd71ef6837c8cbd8a67e315019b5812b079.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_151a0fd71ef6837c8cbd8a67e315019b5812b079.out \ + $(srcdir)/%reldir%/test_sql_str_func.sh_1a1e07b6f72bce5402037761fa8afd66c05b4c34.err \ + $(srcdir)/%reldir%/test_sql_str_func.sh_1a1e07b6f72bce5402037761fa8afd66c05b4c34.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_1e7362ac3d9690b1b2cfbd320b6129c46ecfbb8a.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_1e7362ac3d9690b1b2cfbd320b6129c46ecfbb8a.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_211c5428db0590795072c31cb116ef35281e02b5.err \ @@ -790,8 +1018,6 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql_str_func.sh_352434d199f7b493668c9f2774472eb69ef0d9f0.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_36fc9005464f1106f969559e640d9fa36d5fadad.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_36fc9005464f1106f969559e640d9fa36d5fadad.out \ - $(srcdir)/%reldir%/test_sql_str_func.sh_3855d2cc0ab29171cae8e722f130adec25eae36e.err \ - $(srcdir)/%reldir%/test_sql_str_func.sh_3855d2cc0ab29171cae8e722f130adec25eae36e.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_3de72fe5c1751dd212a1cd45cf2caa7f3b52bced.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_3de72fe5c1751dd212a1cd45cf2caa7f3b52bced.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_4b402274da152135c6c99456b693e1ecabca0256.err \ @@ -802,6 +1028,8 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql_str_func.sh_51766b600fd158a9e0677f6b0fa31b83537b2e5b.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_5203db1a4a81e43a693f339fd26e1ed635da9d5a.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_5203db1a4a81e43a693f339fd26e1ed635da9d5a.out \ + $(srcdir)/%reldir%/test_sql_str_func.sh_57fc889eefb98571ecf3892ad670646613bf13a3.err \ + $(srcdir)/%reldir%/test_sql_str_func.sh_57fc889eefb98571ecf3892ad670646613bf13a3.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_5abe3717393fba14ec510a37b4b94fedc67aae8e.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_5abe3717393fba14ec510a37b4b94fedc67aae8e.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_5e436fbd4efb140600999c5208886a5a57b8a30e.err \ @@ -814,8 +1042,12 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql_str_func.sh_660288b48d9b30244621d873944938f7ef043976.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_6607c0dd8baff16930eb3e0daf6354af5b50052b.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_6607c0dd8baff16930eb3e0daf6354af5b50052b.out \ + $(srcdir)/%reldir%/test_sql_str_func.sh_68860c50e91cd6c1f2004ee0414a6e930ed42c87.err \ + $(srcdir)/%reldir%/test_sql_str_func.sh_68860c50e91cd6c1f2004ee0414a6e930ed42c87.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_69f5d49e62da48e188bd9d6af4bd3adeb21eb7d1.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_69f5d49e62da48e188bd9d6af4bd3adeb21eb7d1.out \ + $(srcdir)/%reldir%/test_sql_str_func.sh_6ac7ab1f90c064944ff66bef5974f050c8227d4b.err \ + $(srcdir)/%reldir%/test_sql_str_func.sh_6ac7ab1f90c064944ff66bef5974f050c8227d4b.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_6ff984d8ed3e5099376d19f0dd20d5fd1ed42494.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_6ff984d8ed3e5099376d19f0dd20d5fd1ed42494.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_71f37db33504b2c08a7a3323c482556f53d88100.err \ @@ -868,6 +1100,8 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql_str_func.sh_b2aafbcaa7befe426d3f9df71c24f16fdc9d2856.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_b81b27abfafbd357d41c407428d41ae0f4bb75e2.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_b81b27abfafbd357d41c407428d41ae0f4bb75e2.out \ + $(srcdir)/%reldir%/test_sql_str_func.sh_b8ebe81c4881f704624a65ec91be0868c310f6ed.err \ + $(srcdir)/%reldir%/test_sql_str_func.sh_b8ebe81c4881f704624a65ec91be0868c310f6ed.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_bac7f6531a2adf70cd1871fb13eab26dff133b7c.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_bac7f6531a2adf70cd1871fb13eab26dff133b7c.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_bfb7088916412360f77683009058b0747784630a.err \ @@ -880,6 +1114,8 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql_str_func.sh_c9e2f41431bef879364dc37a472ab01f64d89f89.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_cc53348c585ee71a7456157ad6b125689813bafe.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_cc53348c585ee71a7456157ad6b125689813bafe.out \ + $(srcdir)/%reldir%/test_sql_str_func.sh_cdc7b869132c33cae3c2565806c2396e1b4d6253.err \ + $(srcdir)/%reldir%/test_sql_str_func.sh_cdc7b869132c33cae3c2565806c2396e1b4d6253.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_ce9db1dbc2e5fee87247135d17787ff3af014d77.err \ $(srcdir)/%reldir%/test_sql_str_func.sh_ce9db1dbc2e5fee87247135d17787ff3af014d77.out \ $(srcdir)/%reldir%/test_sql_str_func.sh_d3367527118052081a541a660b091f6f495b1c0d.err \ @@ -916,12 +1152,16 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql_time_func.sh_4035ee76938269e9247f9a696927a9ac18cce80a.out \ $(srcdir)/%reldir%/test_sql_time_func.sh_42f0fc1a154b0d79b4f6e846f283426be498040f.err \ $(srcdir)/%reldir%/test_sql_time_func.sh_42f0fc1a154b0d79b4f6e846f283426be498040f.out \ + $(srcdir)/%reldir%/test_sql_time_func.sh_4364c7f5354fe108874dd22571115e012303e001.err \ + $(srcdir)/%reldir%/test_sql_time_func.sh_4364c7f5354fe108874dd22571115e012303e001.out \ $(srcdir)/%reldir%/test_sql_time_func.sh_4b96fe71bc2d18955e3625b765a6095ab1f7a75d.err \ $(srcdir)/%reldir%/test_sql_time_func.sh_4b96fe71bc2d18955e3625b765a6095ab1f7a75d.out \ $(srcdir)/%reldir%/test_sql_time_func.sh_53b76b094e47691b5bca106142ee470e82e8e420.err \ $(srcdir)/%reldir%/test_sql_time_func.sh_53b76b094e47691b5bca106142ee470e82e8e420.out \ $(srcdir)/%reldir%/test_sql_time_func.sh_6288a9e690d381602b2be5665cc1cd3552733bc2.err \ $(srcdir)/%reldir%/test_sql_time_func.sh_6288a9e690d381602b2be5665cc1cd3552733bc2.out \ + $(srcdir)/%reldir%/test_sql_time_func.sh_63f22db8689c238d51c9b9efe9837147ea5318e6.err \ + $(srcdir)/%reldir%/test_sql_time_func.sh_63f22db8689c238d51c9b9efe9837147ea5318e6.out \ $(srcdir)/%reldir%/test_sql_time_func.sh_652bbd00b5159e22d94970ab1e882997d14b5777.err \ $(srcdir)/%reldir%/test_sql_time_func.sh_652bbd00b5159e22d94970ab1e882997d14b5777.out \ $(srcdir)/%reldir%/test_sql_time_func.sh_6832a58259168622af8b3370b0c89534f98f3f9f.err \ @@ -930,14 +1170,24 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql_time_func.sh_72862ec9c8f261a8507d237eb673c7ddfaafd898.out \ $(srcdir)/%reldir%/test_sql_time_func.sh_7797302b63d73234c9ec9f0405c7c0a748daf8e9.err \ $(srcdir)/%reldir%/test_sql_time_func.sh_7797302b63d73234c9ec9f0405c7c0a748daf8e9.out \ + $(srcdir)/%reldir%/test_sql_time_func.sh_7ae9dbbb69dbc50ee6a34afc03d2579f09363068.err \ + $(srcdir)/%reldir%/test_sql_time_func.sh_7ae9dbbb69dbc50ee6a34afc03d2579f09363068.out \ $(srcdir)/%reldir%/test_sql_time_func.sh_9569ab40cb2e51c60f818a6c2729c60d86565e7e.err \ $(srcdir)/%reldir%/test_sql_time_func.sh_9569ab40cb2e51c60f818a6c2729c60d86565e7e.out \ $(srcdir)/%reldir%/test_sql_time_func.sh_9e649c4bc10f4d178519983358f7092e9c5dfe71.err \ $(srcdir)/%reldir%/test_sql_time_func.sh_9e649c4bc10f4d178519983358f7092e9c5dfe71.out \ $(srcdir)/%reldir%/test_sql_time_func.sh_b0257ced663fc444801a5e6cba89c3053acca11e.err \ $(srcdir)/%reldir%/test_sql_time_func.sh_b0257ced663fc444801a5e6cba89c3053acca11e.out \ + $(srcdir)/%reldir%/test_sql_time_func.sh_b3c00f049fdeb551a9165c281630e36359832d1f.err \ + $(srcdir)/%reldir%/test_sql_time_func.sh_b3c00f049fdeb551a9165c281630e36359832d1f.out \ $(srcdir)/%reldir%/test_sql_time_func.sh_b5f9ec3ea8b4551fd40017398d74c524fb54ebc9.err \ $(srcdir)/%reldir%/test_sql_time_func.sh_b5f9ec3ea8b4551fd40017398d74c524fb54ebc9.out \ + $(srcdir)/%reldir%/test_sql_time_func.sh_c1d7dc8a4bd3b8cb86a2f893f58a56f0f6ea1bc3.err \ + $(srcdir)/%reldir%/test_sql_time_func.sh_c1d7dc8a4bd3b8cb86a2f893f58a56f0f6ea1bc3.out \ + $(srcdir)/%reldir%/test_sql_time_func.sh_c5a5fc2edb54d10f1475afa7fed0b62bc05e1dc6.err \ + $(srcdir)/%reldir%/test_sql_time_func.sh_c5a5fc2edb54d10f1475afa7fed0b62bc05e1dc6.out \ + $(srcdir)/%reldir%/test_sql_time_func.sh_c7fc60392a2e52b163da1e1dde6978c16f415a9e.err \ + $(srcdir)/%reldir%/test_sql_time_func.sh_c7fc60392a2e52b163da1e1dde6978c16f415a9e.out \ $(srcdir)/%reldir%/test_sql_time_func.sh_dbe786c096d5a7a5e1d05311b929f1427d8bac79.err \ $(srcdir)/%reldir%/test_sql_time_func.sh_dbe786c096d5a7a5e1d05311b929f1427d8bac79.out \ $(srcdir)/%reldir%/test_sql_time_func.sh_f3b1ea49779117bf45f85ad5615fdc5e89193db6.err \ @@ -946,6 +1196,10 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql_views_vtab.sh_28e23f4e98b1acd6478e39844fd9306b444550c3.out \ $(srcdir)/%reldir%/test_sql_views_vtab.sh_32acc1a8bb5028636fdbf08f077f9a835ab51bec.err \ $(srcdir)/%reldir%/test_sql_views_vtab.sh_32acc1a8bb5028636fdbf08f077f9a835ab51bec.out \ + $(srcdir)/%reldir%/test_sql_views_vtab.sh_4363d60040424a573ed79ee4260a32e3cd72f62c.err \ + $(srcdir)/%reldir%/test_sql_views_vtab.sh_4363d60040424a573ed79ee4260a32e3cd72f62c.out \ + $(srcdir)/%reldir%/test_sql_views_vtab.sh_45dbef06572b43cb997682436e753a13e003f792.err \ + $(srcdir)/%reldir%/test_sql_views_vtab.sh_45dbef06572b43cb997682436e753a13e003f792.out \ $(srcdir)/%reldir%/test_sql_views_vtab.sh_485a6ac7c69bd4b5d34d3399a9c17f6a2dc89ad3.err \ $(srcdir)/%reldir%/test_sql_views_vtab.sh_485a6ac7c69bd4b5d34d3399a9c17f6a2dc89ad3.out \ $(srcdir)/%reldir%/test_sql_views_vtab.sh_62d15cb9d5a9259f198aa01ca8ed200d6da38d68.err \ @@ -970,6 +1224,8 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql_views_vtab.sh_a1e6ee4f098d525330d5f58a9d71cbbd816d51bb.out \ $(srcdir)/%reldir%/test_sql_views_vtab.sh_a2c0f0e51b3f85ea2a05ecdcacaad962b4fe5d4f.err \ $(srcdir)/%reldir%/test_sql_views_vtab.sh_a2c0f0e51b3f85ea2a05ecdcacaad962b4fe5d4f.out \ + $(srcdir)/%reldir%/test_sql_views_vtab.sh_a7a7fd577f710aa8b0ad5a94fdfb35daea75e06c.err \ + $(srcdir)/%reldir%/test_sql_views_vtab.sh_a7a7fd577f710aa8b0ad5a94fdfb35daea75e06c.out \ $(srcdir)/%reldir%/test_sql_views_vtab.sh_ac1f6e9a88608ef8939f9c2f7061a25a86742d46.err \ $(srcdir)/%reldir%/test_sql_views_vtab.sh_ac1f6e9a88608ef8939f9c2f7061a25a86742d46.out \ $(srcdir)/%reldir%/test_sql_views_vtab.sh_ade121f29bedea0d1a54452cc994b2302ad9dabb.err \ @@ -990,32 +1246,74 @@ EXPECTED_FILES = \ $(srcdir)/%reldir%/test_sql_xml_func.sh_46dfa23e2effabf3fa150c4b871fd8d22b1c834d.out \ $(srcdir)/%reldir%/test_sql_xml_func.sh_4effabf11b59580e5f0727199eb74fba049c0cda.err \ $(srcdir)/%reldir%/test_sql_xml_func.sh_4effabf11b59580e5f0727199eb74fba049c0cda.out \ + $(srcdir)/%reldir%/test_sql_xml_func.sh_81ad7678f080870956db37174bcf1054586cfbad.err \ + $(srcdir)/%reldir%/test_sql_xml_func.sh_81ad7678f080870956db37174bcf1054586cfbad.out \ $(srcdir)/%reldir%/test_sql_xml_func.sh_8912b59d5b515ab1373a3d9bc635ebabacd01dfd.err \ $(srcdir)/%reldir%/test_sql_xml_func.sh_8912b59d5b515ab1373a3d9bc635ebabacd01dfd.out \ $(srcdir)/%reldir%/test_sql_xml_func.sh_b036c73528a446cba46625767517cdac868aba72.err \ $(srcdir)/%reldir%/test_sql_xml_func.sh_b036c73528a446cba46625767517cdac868aba72.out \ + $(srcdir)/%reldir%/test_sql_xml_func.sh_bcbd691bb24c4f7bcb9fe0e035b290815f1c8874.err \ + $(srcdir)/%reldir%/test_sql_xml_func.sh_bcbd691bb24c4f7bcb9fe0e035b290815f1c8874.out \ $(srcdir)/%reldir%/test_sql_xml_func.sh_fefeb387ae14d4171225ea06cbbff3ec43990cf0.err \ $(srcdir)/%reldir%/test_sql_xml_func.sh_fefeb387ae14d4171225ea06cbbff3ec43990cf0.out \ - $(srcdir)/%reldir%/test_sql_yaml_func.sh_41c6abde708a69e74f5b7fde865d88fa75f91e0a.err \ - $(srcdir)/%reldir%/test_sql_yaml_func.sh_41c6abde708a69e74f5b7fde865d88fa75f91e0a.out \ $(srcdir)/%reldir%/test_sql_yaml_func.sh_dc189d02e8979b7ed245d5d750f68b9965984699.err \ $(srcdir)/%reldir%/test_sql_yaml_func.sh_dc189d02e8979b7ed245d5d750f68b9965984699.out \ + $(srcdir)/%reldir%/test_text_file.sh_02a0514e0e384e5511ae202ea519552ba04030ed.err \ + $(srcdir)/%reldir%/test_text_file.sh_02a0514e0e384e5511ae202ea519552ba04030ed.out \ + $(srcdir)/%reldir%/test_text_file.sh_0bba304f34ae07c4fa9e91e0b42f5fe98654a6a8.err \ + $(srcdir)/%reldir%/test_text_file.sh_0bba304f34ae07c4fa9e91e0b42f5fe98654a6a8.out \ + $(srcdir)/%reldir%/test_text_file.sh_11fd274911e45a743b4de616888a64183d07cb76.err \ + $(srcdir)/%reldir%/test_text_file.sh_11fd274911e45a743b4de616888a64183d07cb76.out \ + $(srcdir)/%reldir%/test_text_file.sh_143a40164c93c7ec44a66e7940b92b128a421147.err \ + $(srcdir)/%reldir%/test_text_file.sh_143a40164c93c7ec44a66e7940b92b128a421147.out \ + $(srcdir)/%reldir%/test_text_file.sh_1ce4056d72b871f8bb844c86aade2a9b1da58030.err \ + $(srcdir)/%reldir%/test_text_file.sh_1ce4056d72b871f8bb844c86aade2a9b1da58030.out \ + $(srcdir)/%reldir%/test_text_file.sh_25cef06efcbe106c2e1cc4a166b673e7b244c6d7.err \ + $(srcdir)/%reldir%/test_text_file.sh_25cef06efcbe106c2e1cc4a166b673e7b244c6d7.out \ + $(srcdir)/%reldir%/test_text_file.sh_265a8a5825e6c7dbc85cbe496dab6be7a349f3db.err \ + $(srcdir)/%reldir%/test_text_file.sh_265a8a5825e6c7dbc85cbe496dab6be7a349f3db.out \ + $(srcdir)/%reldir%/test_text_file.sh_4226123565a53b4e3f80e602c1f294721e8e07bf.err \ + $(srcdir)/%reldir%/test_text_file.sh_4226123565a53b4e3f80e602c1f294721e8e07bf.out \ + $(srcdir)/%reldir%/test_text_file.sh_4dd174410d702a7b4be794fb6fa2c8889bd768d6.err \ + $(srcdir)/%reldir%/test_text_file.sh_4dd174410d702a7b4be794fb6fa2c8889bd768d6.out \ + $(srcdir)/%reldir%/test_text_file.sh_596b120fbea638472a27964444e262b4572afacc.err \ + $(srcdir)/%reldir%/test_text_file.sh_596b120fbea638472a27964444e262b4572afacc.out \ $(srcdir)/%reldir%/test_text_file.sh_5b51b55dff7332c5bee2c9b797c401c5614d574a.err \ $(srcdir)/%reldir%/test_text_file.sh_5b51b55dff7332c5bee2c9b797c401c5614d574a.out \ + $(srcdir)/%reldir%/test_text_file.sh_5e9320f18d066e6fc930dbbffc357af64312bd4b.err \ + $(srcdir)/%reldir%/test_text_file.sh_5e9320f18d066e6fc930dbbffc357af64312bd4b.out \ $(srcdir)/%reldir%/test_text_file.sh_6a24078983cf1b7a80b6fb65d5186cd125498136.err \ $(srcdir)/%reldir%/test_text_file.sh_6a24078983cf1b7a80b6fb65d5186cd125498136.out \ + $(srcdir)/%reldir%/test_text_file.sh_73f69c883f60761bff9f8874f61d21a189e92912.err \ + $(srcdir)/%reldir%/test_text_file.sh_73f69c883f60761bff9f8874f61d21a189e92912.out \ + $(srcdir)/%reldir%/test_text_file.sh_786c7262f977201af36b0e69ba1a2aba130bbb06.err \ + $(srcdir)/%reldir%/test_text_file.sh_786c7262f977201af36b0e69ba1a2aba130bbb06.out \ + $(srcdir)/%reldir%/test_text_file.sh_78f252288519c8f767bb2759ea32959dab2ebc46.err \ + $(srcdir)/%reldir%/test_text_file.sh_78f252288519c8f767bb2759ea32959dab2ebc46.out \ $(srcdir)/%reldir%/test_text_file.sh_7b00f32a3fff7fc2d78a87045ae842e58be88480.err \ $(srcdir)/%reldir%/test_text_file.sh_7b00f32a3fff7fc2d78a87045ae842e58be88480.out \ $(srcdir)/%reldir%/test_text_file.sh_87943c6be50d701a03e901f16493314c839af1ab.err \ $(srcdir)/%reldir%/test_text_file.sh_87943c6be50d701a03e901f16493314c839af1ab.out \ + $(srcdir)/%reldir%/test_text_file.sh_8a4954af3e536b3789b1fd5b33519e9d444cc933.err \ + $(srcdir)/%reldir%/test_text_file.sh_8a4954af3e536b3789b1fd5b33519e9d444cc933.out \ $(srcdir)/%reldir%/test_text_file.sh_8b2cd055e6a1db2ed9b2af2a917f8556395fa653.err \ $(srcdir)/%reldir%/test_text_file.sh_8b2cd055e6a1db2ed9b2af2a917f8556395fa653.out \ + $(srcdir)/%reldir%/test_text_file.sh_a87c18c643994c3dbbbbb619a06a601d3668ea71.err \ + $(srcdir)/%reldir%/test_text_file.sh_a87c18c643994c3dbbbbb619a06a601d3668ea71.out \ $(srcdir)/%reldir%/test_text_file.sh_ac486314c4e02e480d829ea2f077b86c49fedcec.err \ $(srcdir)/%reldir%/test_text_file.sh_ac486314c4e02e480d829ea2f077b86c49fedcec.out \ $(srcdir)/%reldir%/test_text_file.sh_ac872aadda29b9a824361a2c711d62ec1c75d40f.err \ $(srcdir)/%reldir%/test_text_file.sh_ac872aadda29b9a824361a2c711d62ec1c75d40f.out \ $(srcdir)/%reldir%/test_text_file.sh_c2a346ca1da2da4346f1d310212e166767993ce9.err \ $(srcdir)/%reldir%/test_text_file.sh_c2a346ca1da2da4346f1d310212e166767993ce9.out \ + $(srcdir)/%reldir%/test_text_file.sh_d59b67113864ef5e77267d7fd8ad4072f5aef0fc.err \ + $(srcdir)/%reldir%/test_text_file.sh_d59b67113864ef5e77267d7fd8ad4072f5aef0fc.out \ $(srcdir)/%reldir%/test_text_file.sh_e088ea61a5382458cc48a2607e2639e52b0be1da.err \ $(srcdir)/%reldir%/test_text_file.sh_e088ea61a5382458cc48a2607e2639e52b0be1da.out \ + $(srcdir)/%reldir%/test_text_file.sh_e556fa91b91579df20d38540a5db9cedbaf68a62.err \ + $(srcdir)/%reldir%/test_text_file.sh_e556fa91b91579df20d38540a5db9cedbaf68a62.out \ + $(srcdir)/%reldir%/test_text_file.sh_f586ef080a86dfe1f981b345bcf8d7a279b2b247.err \ + $(srcdir)/%reldir%/test_text_file.sh_f586ef080a86dfe1f981b345bcf8d7a279b2b247.out \ + $(srcdir)/%reldir%/test_text_file.sh_f7522b0a99550a3ff91aae6582eb861547c535e1.err \ + $(srcdir)/%reldir%/test_text_file.sh_f7522b0a99550a3ff91aae6582eb861547c535e1.out \ $() diff --git a/test/expected/test_cli.sh_a1a09f890f4604309d0a81bbbec8e50fb7d5e887.err b/test/expected/test_cli.sh_0b3639753916f71254e8c9cce4ebb8bfd9978d3e.err index e69de29..e69de29 100644 --- a/test/expected/test_cli.sh_a1a09f890f4604309d0a81bbbec8e50fb7d5e887.err +++ b/test/expected/test_cli.sh_0b3639753916f71254e8c9cce4ebb8bfd9978d3e.err diff --git a/test/expected/test_cli.sh_0b3639753916f71254e8c9cce4ebb8bfd9978d3e.out b/test/expected/test_cli.sh_0b3639753916f71254e8c9cce4ebb8bfd9978d3e.out new file mode 100644 index 0000000..1a62b0e --- /dev/null +++ b/test/expected/test_cli.sh_0b3639753916f71254e8c9cce4ebb8bfd9978d3e.out @@ -0,0 +1,5263 @@ +{ + "tuning": { + "archive-manager": { + "min-free-space": 33554432, + "cache-ttl": "2d" + }, + "piper": { + "max-size": 10485760, + "rotations": 4, + "ttl": "2d" + }, + "file-vtab": { + "max-content-size": 33554432 + }, + "logfile": { + "max-unrecognized-lines": 1000 + }, + "remote": { + "cache-ttl": "2d", + "ssh": { + "command": "ssh", + "transfer-command": "cat > {0:} && chmod ugo+rx ./{0:}", + "start-command": "bash -c ./{0:}", + "flags": "", + "options": { + + }, + "config": { + "BatchMode": "yes", + "ConnectTimeout": "10" + } + } + }, + "clipboard": { + "impls": { + "MacOS": { + "test": "command -v pbcopy", + "general": { + "write": "pbcopy", + "read": "pbpaste -Prefer txt" + }, + "find": { + "write": "pbcopy -pboard find", + "read": "pbpaste -pboard find -Prefer txt" + } + }, + "NeoVim": { + "test": "command -v win32yank.exe", + "general": { + "write": "win32yank.exe -i --crlf", + "read": "win32yank.exe -o --lf" + }, + "find": { + "write": "", + "read": "" + } + }, + "Wayland": { + "test": "test -n \"$WAYLAND_DISPLAY\"", + "general": { + "write": "wl-copy --foreground --type text/plain", + "read": "wl-paste --no-newline" + }, + "find": { + "write": "", + "read": "" + } + }, + "Windows": { + "test": "command -v clip.exe", + "general": { + "write": "clip.exe", + "read": "" + }, + "find": { + "write": "", + "read": "" + } + }, + "X11-xclip": { + "test": "test -n \"$DISPLAY\" && command -v xclip", + "general": { + "write": "xclip -i -selection clipboard", + "read": "xclip -o -selection clipboard" + }, + "find": { + "write": "", + "read": "" + } + }, + "tmux": { + "test": "test -n \"$TMUX\" -a -z \"$SSH_CLIENT\"", + "general": { + "write": "tmux load-buffer -", + "read": "tmux save-buffer -" + }, + "find": { + "write": "", + "read": "" + } + } + } + }, + "url-scheme": { + "docker": { + "handler": "docker-url-handler" + }, + "docker-compose": { + "handler": "docker-compose-url-handler" + }, + "hw": { + "handler": "hw-url-handler" + }, + "journald": { + "handler": "journald-url-handler" + }, + "piper": { + "handler": "piper-url-handler" + }, + "podman": { + "handler": "docker-url-handler" + } + } + }, + "ui": { + "clock-format": "%Y-%m-%dT%H:%M:%S %Z", + "dim-text": false, + "default-colors": true, + "keymap": "default", + "theme": "default", + "theme-defs": { + "default": { + "vars": { + "semantic_highlight_color": "semantic()" + }, + "styles": { + "identifier": { + "color": "semantic()", + "background-color": "", + "underline": false, + "bold": false + }, + "text": { + "color": "Silver", + "background-color": "Black", + "underline": false, + "bold": false + }, + "selected-text": { + "color": "", + "background-color": "DarkCyan", + "underline": false, + "bold": false + }, + "alt-text": { + "color": "", + "background-color": "#262626", + "underline": false, + "bold": false + }, + "error": { + "color": "Red", + "background-color": "", + "underline": false, + "bold": true + }, + "ok": { + "color": "Green", + "background-color": "", + "underline": false, + "bold": true + }, + "info": { + "color": "Maroon", + "background-color": "", + "underline": false, + "bold": true + }, + "warning": { + "color": "Yellow", + "background-color": "", + "underline": false, + "bold": true + }, + "hidden": { + "color": "Yellow", + "background-color": "", + "underline": false, + "bold": true + }, + "cursor-line": { + "color": "Cyan1", + "background-color": "Red", + "underline": true, + "bold": true + }, + "disabled-cursor-line": { + "color": "Cyan1", + "background-color": "#5f005f", + "underline": false, + "bold": false + }, + "adjusted-time": { + "color": "Maroon", + "background-color": "", + "underline": false, + "bold": false + }, + "skewed-time": { + "color": "Yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "file-offset": { + "color": "Silver", + "background-color": "", + "underline": false, + "bold": false + }, + "offset-time": { + "color": "Teal", + "background-color": "", + "underline": false, + "bold": false + }, + "invalid-msg": { + "color": "Yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "popup": { + "color": "Silver", + "background-color": "Teal", + "underline": false, + "bold": false + }, + "focused": { + "color": "Black", + "background-color": "Silver", + "underline": false, + "bold": false + }, + "disabled-focused": { + "color": "Black", + "background-color": "#888", + "underline": false, + "bold": false + }, + "scrollbar": { + "color": "Black", + "background-color": "Silver", + "underline": false, + "bold": false + }, + "h1": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h2": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h3": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h4": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h5": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h6": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "hr": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + }, + "hyperlink": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "list-glyph": { + "color": "Yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "breadcrumb": { + "color": "Teal", + "background-color": "", + "underline": false, + "bold": true + }, + "table-border": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + }, + "table-header": { + "color": "", + "background-color": "", + "underline": false, + "bold": true + }, + "quote-border": { + "color": "#666", + "background-color": "#444", + "underline": false, + "bold": false + }, + "quoted-text": { + "color": "", + "background-color": "#444", + "underline": false, + "bold": false + }, + "footnote-border": { + "color": "Blue", + "background-color": "#444", + "underline": false, + "bold": false + }, + "footnote-text": { + "color": "#eee", + "background-color": "#444", + "underline": false, + "bold": false + }, + "snippet-border": { + "color": "Teal", + "background-color": "", + "underline": false, + "bold": false + }, + "indent-guide": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + } + }, + "syntax-styles": { + "inline-code": { + "color": "Red", + "background-color": "#121212", + "underline": false, + "bold": false + }, + "quoted-code": { + "color": "Silver", + "background-color": "#121212", + "underline": false, + "bold": false + }, + "code-border": { + "color": "#444", + "background-color": "#121212", + "underline": false, + "bold": false + }, + "keyword": { + "color": "#00f", + "background-color": "", + "underline": false, + "bold": false + }, + "string": { + "color": "Green", + "background-color": "", + "underline": false, + "bold": true + }, + "comment": { + "color": "Green", + "background-color": "", + "underline": false, + "bold": false + }, + "doc-directive": { + "color": "Teal", + "background-color": "", + "underline": false, + "bold": false + }, + "variable": { + "color": "Teal", + "background-color": "", + "underline": false, + "bold": false + }, + "symbol": { + "color": "Blue", + "background-color": "", + "underline": false, + "bold": false + }, + "null": { + "color": "Silver", + "background-color": "", + "underline": false, + "bold": false + }, + "ascii-control": { + "color": "Green", + "background-color": "", + "underline": false, + "bold": false + }, + "non-ascii": { + "color": "Yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "number": { + "color": "", + "background-color": "", + "underline": false, + "bold": true + }, + "type": { + "color": "Blue", + "background-color": "", + "underline": false, + "bold": false + }, + "function": { + "color": "Cyan1", + "background-color": "", + "underline": false, + "bold": false + }, + "separators-references-accessors": { + "color": "Silver", + "background-color": "", + "underline": false, + "bold": false + }, + "re-special": { + "color": "Teal", + "background-color": "", + "underline": false, + "bold": false + }, + "re-repeat": { + "color": "Yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-delete": { + "color": "Red", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-add": { + "color": "Green", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-section": { + "color": "Maroon", + "background-color": "", + "underline": false, + "bold": false + }, + "spectrogram-low": { + "color": "", + "background-color": "Green", + "underline": false, + "bold": false + }, + "spectrogram-medium": { + "color": "", + "background-color": "Yellow", + "underline": false, + "bold": false + }, + "spectrogram-high": { + "color": "", + "background-color": "Red", + "underline": false, + "bold": false + }, + "file": { + "color": "Blue", + "background-color": "", + "underline": false, + "bold": false + } + }, + "status-styles": { + "text": { + "color": "Black", + "background-color": "Silver", + "underline": false, + "bold": false + }, + "warn": { + "color": "Yellow", + "background-color": "Silver", + "underline": false, + "bold": false + }, + "alert": { + "color": "Red", + "background-color": "Silver", + "underline": false, + "bold": false + }, + "active": { + "color": "Green", + "background-color": "Silver", + "underline": false, + "bold": false + }, + "inactive-alert": { + "color": "Red", + "background-color": "Grey37", + "underline": false, + "bold": false + }, + "inactive": { + "color": "Silver", + "background-color": "Grey37", + "underline": false, + "bold": false + }, + "title-hotkey": { + "color": "Teal", + "background-color": "Blue", + "underline": true, + "bold": false + }, + "title": { + "color": "Silver", + "background-color": "Blue", + "underline": false, + "bold": true + }, + "disabled-title": { + "color": "Black", + "background-color": "Silver", + "underline": false, + "bold": true + }, + "subtitle": { + "color": "Black", + "background-color": "Teal", + "underline": false, + "bold": false + }, + "info": { + "color": "Silver", + "background-color": "Grey37", + "underline": false, + "bold": false + }, + "hotkey": { + "color": "Purple", + "background-color": "", + "underline": true, + "bold": true + }, + "suggestion": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + } + }, + "log-level-styles": { + "trace": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug5": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug4": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug3": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug2": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "info": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "stats": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "notice": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "warning": { + "color": "Yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "error": { + "color": "Red", + "background-color": "", + "underline": false, + "bold": false + }, + "critical": { + "color": "Red", + "background-color": "", + "underline": false, + "bold": false + }, + "fatal": { + "color": "Red", + "background-color": "", + "underline": false, + "bold": false + }, + "invalid": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + } + }, + "highlights": { + "colors": { + "pattern": "(?:#[a-fA-F0-9]{6}|#[a-fA-F0-9]{3}\\b)", + "style": { + "color": "${semantic_highlight_color}", + "background-color": "", + "underline": false, + "bold": false + } + }, + "ipv4": { + "pattern": "\\b(?<!\\d\\.)\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b(?!\\.\\d)", + "style": { + "color": "${semantic_highlight_color}", + "background-color": "", + "underline": false, + "bold": false + } + }, + "xml": { + "pattern": "</?([^ >=!]+)[^>]*>", + "style": { + "color": "${semantic_highlight_color}", + "background-color": "", + "underline": false, + "bold": false + } + }, + "xml-decl": { + "pattern": "<!([^ >=!]+)[^>]*>", + "style": { + "color": "${semantic_highlight_color}", + "background-color": "", + "underline": false, + "bold": false + } + } + } + }, + "dracula": { + "vars": { + "black": "#282A36", + "blue": "#BD93F9", + "cyan": "#8BE9FD", + "green": "#50FA7B", + "magenta": "#FF79C6", + "orange": "#FFB86C", + "pink": "#FF79C6", + "purple": "#BD93F9", + "red": "#FF5555", + "semantic_highlight_color": "semantic()", + "white": "#F8F8F2", + "yellow": "#F1FA8C" + }, + "styles": { + "identifier": { + "color": "semantic()", + "background-color": "", + "underline": false, + "bold": false + }, + "text": { + "color": "#f6f6f6", + "background-color": "$black", + "underline": false, + "bold": false + }, + "selected-text": { + "color": "", + "background-color": "$cyan", + "underline": false, + "bold": false + }, + "alt-text": { + "color": "", + "background-color": "#1c1c1c", + "underline": false, + "bold": false + }, + "error": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": true + }, + "ok": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": true + }, + "info": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": true + }, + "warning": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": true + }, + "hidden": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": true + }, + "cursor-line": { + "color": "$cyan", + "background-color": "#44475A", + "underline": false, + "bold": true + }, + "disabled-cursor-line": { + "color": "$cyan", + "background-color": "#2a2c38", + "underline": false, + "bold": false + }, + "adjusted-time": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": false + }, + "skewed-time": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "file-offset": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + }, + "offset-time": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "invalid-msg": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "popup": { + "color": "$black", + "background-color": "$cyan", + "underline": false, + "bold": false + }, + "focused": { + "color": "$black", + "background-color": "$white", + "underline": false, + "bold": false + }, + "disabled-focused": { + "color": "$white", + "background-color": "#333", + "underline": false, + "bold": false + }, + "scrollbar": { + "color": "$black", + "background-color": "#888", + "underline": false, + "bold": false + }, + "h1": { + "color": "$purple", + "background-color": "", + "underline": false, + "bold": true + }, + "h2": { + "color": "$purple", + "background-color": "", + "underline": true, + "bold": false + }, + "h3": { + "color": "$purple", + "background-color": "", + "underline": false, + "bold": false + }, + "h4": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h5": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h6": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "hr": { + "color": "#6272A4", + "background-color": "", + "underline": false, + "bold": false + }, + "hyperlink": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "list-glyph": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "breadcrumb": { + "color": "#99a", + "background-color": "", + "underline": false, + "bold": true + }, + "table-border": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + }, + "table-header": { + "color": "", + "background-color": "", + "underline": false, + "bold": true + }, + "quote-border": { + "color": "#666", + "background-color": "#444", + "underline": false, + "bold": false + }, + "quoted-text": { + "color": "$yellow", + "background-color": "#444", + "underline": false, + "bold": false + }, + "footnote-border": { + "color": "$blue", + "background-color": "#444", + "underline": false, + "bold": false + }, + "footnote-text": { + "color": "$cyan", + "background-color": "#444", + "underline": false, + "bold": false + }, + "snippet-border": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "indent-guide": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + } + }, + "syntax-styles": { + "inline-code": { + "color": "$green", + "background-color": "#121212", + "underline": false, + "bold": false + }, + "quoted-code": { + "color": "$orange", + "background-color": "#121212", + "underline": false, + "bold": false + }, + "code-border": { + "color": "#444", + "background-color": "#121212", + "underline": false, + "bold": false + }, + "keyword": { + "color": "$pink", + "background-color": "", + "underline": false, + "bold": true + }, + "string": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": true + }, + "comment": { + "color": "#6272A4", + "background-color": "", + "underline": false, + "bold": false + }, + "doc-directive": { + "color": "$pink", + "background-color": "", + "underline": false, + "bold": false + }, + "variable": { + "color": "$orange", + "background-color": "", + "underline": false, + "bold": false + }, + "symbol": { + "color": "#78dce8", + "background-color": "", + "underline": false, + "bold": false + }, + "null": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + }, + "ascii-control": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": false + }, + "non-ascii": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "number": { + "color": "", + "background-color": "", + "underline": false, + "bold": true + }, + "type": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "function": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": false + }, + "separators-references-accessors": { + "color": "$pink", + "background-color": "", + "underline": false, + "bold": false + }, + "re-special": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "re-repeat": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-delete": { + "color": "#f00", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-add": { + "color": "#0f0", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-section": { + "color": "#6272A4", + "background-color": "", + "underline": false, + "bold": false + }, + "spectrogram-low": { + "color": "", + "background-color": "$green", + "underline": false, + "bold": false + }, + "spectrogram-medium": { + "color": "", + "background-color": "$yellow", + "underline": false, + "bold": false + }, + "spectrogram-high": { + "color": "", + "background-color": "$red", + "underline": false, + "bold": false + }, + "file": { + "color": "$blue", + "background-color": "", + "underline": false, + "bold": false + } + }, + "status-styles": { + "text": { + "color": "#f6f6f6", + "background-color": "#353535", + "underline": false, + "bold": false + }, + "warn": { + "color": "$yellow", + "background-color": "#353535", + "underline": false, + "bold": false + }, + "alert": { + "color": "$red", + "background-color": "#353535", + "underline": false, + "bold": false + }, + "active": { + "color": "$green", + "background-color": "#353535", + "underline": false, + "bold": false + }, + "inactive-alert": { + "color": "$red", + "background-color": "#2f2f2f", + "underline": false, + "bold": false + }, + "inactive": { + "color": "#555", + "background-color": "#2f2f2f", + "underline": false, + "bold": false + }, + "title-hotkey": { + "color": "$black", + "background-color": "#5394ec", + "underline": true, + "bold": false + }, + "title": { + "color": "#f6f6f6", + "background-color": "#5394ec", + "underline": false, + "bold": true + }, + "disabled-title": { + "color": "#5394ec", + "background-color": "#353535", + "underline": false, + "bold": true + }, + "subtitle": { + "color": "#555", + "background-color": "#66d9ee", + "underline": false, + "bold": true + }, + "info": { + "color": "#aaa", + "background-color": "#2f2f2f", + "underline": false, + "bold": false + }, + "hotkey": { + "color": "#fff", + "background-color": "", + "underline": true, + "bold": false + }, + "suggestion": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + } + }, + "log-level-styles": { + "trace": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug5": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug4": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug3": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug2": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "info": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "stats": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "notice": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "warning": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "error": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "critical": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "fatal": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "invalid": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + } + }, + "highlights": { + + } + }, + "eldar": { + "vars": { + "black": "#000000", + "blue": "#729fcf", + "cyan": "#34e2e2", + "green": "#8ae234", + "magenta": "#ad7fa8", + "orange": "#ef8c29", + "red": "#ef2929", + "semantic_highlight_color": "semantic()", + "white": "#ffffff", + "yellow": "#fce94f" + }, + "styles": { + "identifier": { + "color": "semantic()", + "background-color": "", + "underline": false, + "bold": false + }, + "text": { + "color": "$white", + "background-color": "", + "underline": false, + "bold": false + }, + "selected-text": { + "color": "", + "background-color": "$cyan", + "underline": false, + "bold": false + }, + "alt-text": { + "color": "", + "background-color": "", + "underline": false, + "bold": true + }, + "error": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": true + }, + "ok": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": true + }, + "info": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": true + }, + "warning": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": true + }, + "hidden": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": true + }, + "cursor-line": { + "color": "$cyan", + "background-color": "$red", + "underline": true, + "bold": true + }, + "disabled-cursor-line": { + "color": "$cyan", + "background-color": "#5f005f", + "underline": false, + "bold": false + }, + "adjusted-time": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": false + }, + "skewed-time": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "file-offset": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + }, + "offset-time": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "invalid-msg": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "popup": { + "color": "$black", + "background-color": "Grey37", + "underline": false, + "bold": false + }, + "focused": { + "color": "$black", + "background-color": "$white", + "underline": false, + "bold": false + }, + "disabled-focused": { + "color": "$white", + "background-color": "#333", + "underline": false, + "bold": false + }, + "scrollbar": { + "color": "$black", + "background-color": "$white", + "underline": false, + "bold": false + }, + "h1": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h2": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h3": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h4": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h5": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h6": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "hr": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + }, + "hyperlink": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "list-glyph": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "breadcrumb": { + "color": "#448", + "background-color": "", + "underline": false, + "bold": true + }, + "table-border": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + }, + "table-header": { + "color": "", + "background-color": "", + "underline": false, + "bold": true + }, + "quote-border": { + "color": "#666", + "background-color": "#444", + "underline": false, + "bold": false + }, + "quoted-text": { + "color": "", + "background-color": "#444", + "underline": false, + "bold": false + }, + "footnote-border": { + "color": "$blue", + "background-color": "#444", + "underline": false, + "bold": false + }, + "footnote-text": { + "color": "#eee", + "background-color": "#444", + "underline": false, + "bold": false + }, + "snippet-border": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "indent-guide": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + } + }, + "syntax-styles": { + "inline-code": { + "color": "$red", + "background-color": "#121212", + "underline": false, + "bold": false + }, + "quoted-code": { + "color": "#eee", + "background-color": "#121212", + "underline": false, + "bold": false + }, + "code-border": { + "color": "#444", + "background-color": "#121212", + "underline": false, + "bold": false + }, + "keyword": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "string": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": true + }, + "comment": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "doc-directive": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": false + }, + "variable": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": false + }, + "symbol": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": false + }, + "null": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + }, + "ascii-control": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": false + }, + "non-ascii": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "number": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "type": { + "color": "$blue", + "background-color": "", + "underline": false, + "bold": false + }, + "function": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "separators-references-accessors": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "re-special": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "re-repeat": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-delete": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-add": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-section": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": false + }, + "spectrogram-low": { + "color": "", + "background-color": "$green", + "underline": false, + "bold": false + }, + "spectrogram-medium": { + "color": "", + "background-color": "$yellow", + "underline": false, + "bold": false + }, + "spectrogram-high": { + "color": "", + "background-color": "$red", + "underline": false, + "bold": false + }, + "file": { + "color": "$blue", + "background-color": "", + "underline": false, + "bold": false + } + }, + "status-styles": { + "text": { + "color": "$black", + "background-color": "#999", + "underline": false, + "bold": false + }, + "warn": { + "color": "$yellow", + "background-color": "#999", + "underline": false, + "bold": false + }, + "alert": { + "color": "$red", + "background-color": "#999", + "underline": false, + "bold": false + }, + "active": { + "color": "$green", + "background-color": "#999", + "underline": false, + "bold": false + }, + "inactive-alert": { + "color": "$red", + "background-color": "Grey", + "underline": false, + "bold": false + }, + "inactive": { + "color": "$black", + "background-color": "Grey", + "underline": false, + "bold": false + }, + "title-hotkey": { + "color": "$black", + "background-color": "#5394ec", + "underline": true, + "bold": false + }, + "title": { + "color": "$black", + "background-color": "$blue", + "underline": false, + "bold": true + }, + "disabled-title": { + "color": "#5394ec", + "background-color": "#353535", + "underline": false, + "bold": true + }, + "subtitle": { + "color": "$black", + "background-color": "$cyan", + "underline": false, + "bold": true + }, + "info": { + "color": "$black", + "background-color": "Grey", + "underline": false, + "bold": false + }, + "hotkey": { + "color": "#fff", + "background-color": "", + "underline": true, + "bold": false + }, + "suggestion": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + } + }, + "log-level-styles": { + "trace": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug5": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug4": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug3": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug2": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "info": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "stats": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "notice": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "warning": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "error": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "critical": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "fatal": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "invalid": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + } + }, + "highlights": { + + } + }, + "grayscale": { + "vars": { + "black": "#2d2a2e", + "blue": "#5394ec", + "cyan": "#66d9ee", + "green": "#a7e22e", + "magenta": "#ae81ff", + "plaintext": "#ccc", + "red": "#f92772", + "white": "#f6f6f6", + "yellow": "#fe9720" + }, + "styles": { + "identifier": { + "color": "", + "background-color": "", + "underline": false, + "bold": true + }, + "text": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "selected-text": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "alt-text": { + "color": "", + "background-color": "", + "underline": false, + "bold": true + }, + "error": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": true + }, + "ok": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": true + }, + "info": { + "color": "#aaa", + "background-color": "", + "underline": false, + "bold": true + }, + "warning": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": true + }, + "hidden": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": true + }, + "cursor-line": { + "color": "#fff", + "background-color": "#555", + "underline": true, + "bold": true + }, + "disabled-cursor-line": { + "color": "#888", + "background-color": "#333", + "underline": false, + "bold": false + }, + "adjusted-time": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": false + }, + "skewed-time": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "file-offset": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + }, + "offset-time": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "invalid-msg": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "popup": { + "color": "$plaintext", + "background-color": "#626262", + "underline": false, + "bold": false + }, + "focused": { + "color": "$black", + "background-color": "$plaintext", + "underline": false, + "bold": false + }, + "disabled-focused": { + "color": "$plaintext", + "background-color": "#333", + "underline": false, + "bold": false + }, + "scrollbar": { + "color": "$black", + "background-color": "#888", + "underline": false, + "bold": false + }, + "h1": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h2": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h3": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h4": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h5": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h6": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "hr": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + }, + "hyperlink": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "list-glyph": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + }, + "breadcrumb": { + "color": "#999", + "background-color": "", + "underline": false, + "bold": true + }, + "table-border": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + }, + "table-header": { + "color": "", + "background-color": "", + "underline": false, + "bold": true + }, + "quote-border": { + "color": "#666", + "background-color": "#444", + "underline": false, + "bold": false + }, + "quoted-text": { + "color": "", + "background-color": "#444", + "underline": false, + "bold": false + }, + "footnote-border": { + "color": "#888", + "background-color": "#444", + "underline": false, + "bold": false + }, + "footnote-text": { + "color": "#eee", + "background-color": "#444", + "underline": false, + "bold": false + }, + "snippet-border": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + }, + "indent-guide": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + } + }, + "syntax-styles": { + "inline-code": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "quoted-code": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "code-border": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "keyword": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "string": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "comment": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + }, + "doc-directive": { + "color": "#aaa", + "background-color": "", + "underline": false, + "bold": false + }, + "variable": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "symbol": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "null": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + }, + "ascii-control": { + "color": "#aaa", + "background-color": "", + "underline": false, + "bold": false + }, + "non-ascii": { + "color": "#ccc", + "background-color": "", + "underline": false, + "bold": false + }, + "number": { + "color": "", + "background-color": "", + "underline": false, + "bold": true + }, + "type": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "function": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "separators-references-accessors": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "re-special": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "re-repeat": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-delete": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-add": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-section": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "spectrogram-low": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "spectrogram-medium": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "spectrogram-high": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "file": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + } + }, + "status-styles": { + "text": { + "color": "#f6f6f6", + "background-color": "#353535", + "underline": false, + "bold": false + }, + "warn": { + "color": "$yellow", + "background-color": "#353535", + "underline": false, + "bold": false + }, + "alert": { + "color": "$red", + "background-color": "#353535", + "underline": false, + "bold": false + }, + "active": { + "color": "$green", + "background-color": "#353535", + "underline": false, + "bold": false + }, + "inactive-alert": { + "color": "$red", + "background-color": "#2f2f2f", + "underline": false, + "bold": false + }, + "inactive": { + "color": "#555", + "background-color": "#2f2f2f", + "underline": false, + "bold": false + }, + "title-hotkey": { + "color": "$black", + "background-color": "#5394ec", + "underline": true, + "bold": false + }, + "title": { + "color": "#f6f6f6", + "background-color": "#8a8a8a", + "underline": false, + "bold": true + }, + "disabled-title": { + "color": "#5394ec", + "background-color": "#353535", + "underline": false, + "bold": true + }, + "subtitle": { + "color": "#e4e4e4", + "background-color": "#626262", + "underline": false, + "bold": true + }, + "info": { + "color": "#555", + "background-color": "#2f2f2f", + "underline": false, + "bold": false + }, + "hotkey": { + "color": "#fff", + "background-color": "", + "underline": true, + "bold": false + }, + "suggestion": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + } + }, + "log-level-styles": { + "trace": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug5": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug4": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug3": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug2": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "info": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "stats": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "notice": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "warning": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "error": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "critical": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "fatal": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "invalid": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + } + }, + "highlights": { + + } + }, + "monocai": { + "vars": { + "black": "#2d2a2e", + "blue": "#5394ec", + "cyan": "#66d9ee", + "green": "#a7e22e", + "magenta": "#ae81ff", + "orange": "#fc9867", + "red": "#f92772", + "semantic_highlight_color": "semantic()", + "white": "#808080", + "yellow": "#fe9720" + }, + "styles": { + "identifier": { + "color": "semantic()", + "background-color": "", + "underline": false, + "bold": false + }, + "text": { + "color": "#f6f6f6", + "background-color": "$black", + "underline": false, + "bold": false + }, + "selected-text": { + "color": "", + "background-color": "$cyan", + "underline": false, + "bold": false + }, + "alt-text": { + "color": "", + "background-color": "#1c1c1c", + "underline": false, + "bold": false + }, + "error": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": true + }, + "ok": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": true + }, + "info": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": true + }, + "warning": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": true + }, + "hidden": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": true + }, + "cursor-line": { + "color": "$cyan", + "background-color": "#7f005f", + "underline": false, + "bold": true + }, + "disabled-cursor-line": { + "color": "$cyan", + "background-color": "#5f005f", + "underline": false, + "bold": false + }, + "adjusted-time": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": false + }, + "skewed-time": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "file-offset": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + }, + "offset-time": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "invalid-msg": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "popup": { + "color": "$white", + "background-color": "$cyan", + "underline": false, + "bold": false + }, + "focused": { + "color": "$black", + "background-color": "$white", + "underline": false, + "bold": false + }, + "disabled-focused": { + "color": "$white", + "background-color": "#333", + "underline": false, + "bold": false + }, + "scrollbar": { + "color": "$black", + "background-color": "#888", + "underline": false, + "bold": false + }, + "h1": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": true + }, + "h2": { + "color": "$magenta", + "background-color": "", + "underline": true, + "bold": false + }, + "h3": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": false + }, + "h4": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h5": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h6": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "hr": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + }, + "hyperlink": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "list-glyph": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "breadcrumb": { + "color": "$orange", + "background-color": "", + "underline": false, + "bold": true + }, + "table-border": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + }, + "table-header": { + "color": "", + "background-color": "", + "underline": false, + "bold": true + }, + "quote-border": { + "color": "#666", + "background-color": "#444", + "underline": false, + "bold": false + }, + "quoted-text": { + "color": "", + "background-color": "#444", + "underline": false, + "bold": false + }, + "footnote-border": { + "color": "$blue", + "background-color": "#444", + "underline": false, + "bold": false + }, + "footnote-text": { + "color": "#eee", + "background-color": "#444", + "underline": false, + "bold": false + }, + "snippet-border": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "indent-guide": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + } + }, + "syntax-styles": { + "inline-code": { + "color": "$red", + "background-color": "#121212", + "underline": false, + "bold": false + }, + "quoted-code": { + "color": "#eee", + "background-color": "#121212", + "underline": false, + "bold": false + }, + "code-border": { + "color": "#444", + "background-color": "#121212", + "underline": false, + "bold": false + }, + "keyword": { + "color": "#ff6188", + "background-color": "", + "underline": false, + "bold": true + }, + "string": { + "color": "#ffd866", + "background-color": "", + "underline": false, + "bold": true + }, + "comment": { + "color": "#949194", + "background-color": "", + "underline": false, + "bold": false + }, + "doc-directive": { + "color": "#a9dc76", + "background-color": "", + "underline": false, + "bold": false + }, + "variable": { + "color": "#a9dc76", + "background-color": "", + "underline": false, + "bold": false + }, + "symbol": { + "color": "#78dce8", + "background-color": "", + "underline": false, + "bold": false + }, + "null": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + }, + "ascii-control": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": false + }, + "non-ascii": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "number": { + "color": "", + "background-color": "", + "underline": false, + "bold": true + }, + "type": { + "color": "$blue", + "background-color": "", + "underline": false, + "bold": false + }, + "function": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "separators-references-accessors": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "re-special": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "re-repeat": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-delete": { + "color": "#f00", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-add": { + "color": "#0f0", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-section": { + "color": "#656e76", + "background-color": "", + "underline": false, + "bold": false + }, + "spectrogram-low": { + "color": "", + "background-color": "$green", + "underline": false, + "bold": false + }, + "spectrogram-medium": { + "color": "", + "background-color": "$yellow", + "underline": false, + "bold": false + }, + "spectrogram-high": { + "color": "", + "background-color": "$red", + "underline": false, + "bold": false + }, + "file": { + "color": "$blue", + "background-color": "", + "underline": false, + "bold": false + } + }, + "status-styles": { + "text": { + "color": "#f6f6f6", + "background-color": "#353535", + "underline": false, + "bold": false + }, + "warn": { + "color": "$yellow", + "background-color": "#353535", + "underline": false, + "bold": false + }, + "alert": { + "color": "$red", + "background-color": "#353535", + "underline": false, + "bold": false + }, + "active": { + "color": "$green", + "background-color": "#353535", + "underline": false, + "bold": false + }, + "inactive-alert": { + "color": "$red", + "background-color": "#2f2f2f", + "underline": false, + "bold": false + }, + "inactive": { + "color": "#555", + "background-color": "#2f2f2f", + "underline": false, + "bold": false + }, + "title-hotkey": { + "color": "$black", + "background-color": "#5394ec", + "underline": true, + "bold": false + }, + "title": { + "color": "#f6f6f6", + "background-color": "#5394ec", + "underline": false, + "bold": true + }, + "disabled-title": { + "color": "#5394ec", + "background-color": "#353535", + "underline": false, + "bold": true + }, + "subtitle": { + "color": "#555", + "background-color": "#66d9ee", + "underline": false, + "bold": true + }, + "info": { + "color": "#aaa", + "background-color": "#2f2f2f", + "underline": false, + "bold": false + }, + "hotkey": { + "color": "#fff", + "background-color": "", + "underline": true, + "bold": false + }, + "suggestion": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + } + }, + "log-level-styles": { + "trace": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug5": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug4": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug3": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug2": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "info": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "stats": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "notice": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "warning": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "error": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "critical": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "fatal": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "invalid": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + } + }, + "highlights": { + + } + }, + "night-owl": { + "vars": { + "black": "#011627", + "blue": "#5394ec", + "cyan": "#33cccc", + "green": "#007f00", + "magenta": "#ff70ff", + "red": "#ff6868", + "semantic_highlight_color": "semantic()", + "white": "#d6deeb", + "yellow": "#cdcd00" + }, + "styles": { + "identifier": { + "color": "semantic()", + "background-color": "#011627", + "underline": false, + "bold": false + }, + "text": { + "color": "#d6deeb", + "background-color": "#011627", + "underline": false, + "bold": false + }, + "selected-text": { + "color": "", + "background-color": "$cyan", + "underline": false, + "bold": false + }, + "alt-text": { + "color": "", + "background-color": "#1c1c1c", + "underline": false, + "bold": false + }, + "error": { + "color": "#ef5350", + "background-color": "", + "underline": false, + "bold": true + }, + "ok": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": true + }, + "info": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": true + }, + "warning": { + "color": "#b39554", + "background-color": "", + "underline": false, + "bold": true + }, + "hidden": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": true + }, + "cursor-line": { + "color": "$cyan", + "background-color": "$red", + "underline": true, + "bold": true + }, + "disabled-cursor-line": { + "color": "$cyan", + "background-color": "#5f005f", + "underline": false, + "bold": false + }, + "adjusted-time": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": false + }, + "skewed-time": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "file-offset": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + }, + "offset-time": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "invalid-msg": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "popup": { + "color": "$base00", + "background-color": "$base3", + "underline": false, + "bold": false + }, + "focused": { + "color": "$black", + "background-color": "#666", + "underline": false, + "bold": false + }, + "disabled-focused": { + "color": "$white", + "background-color": "#333", + "underline": false, + "bold": false + }, + "scrollbar": { + "color": "$black", + "background-color": "$white", + "underline": false, + "bold": false + }, + "h1": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h2": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h3": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h4": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h5": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h6": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "hr": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + }, + "hyperlink": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "list-glyph": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "breadcrumb": { + "color": "#2d5a80", + "background-color": "", + "underline": false, + "bold": true + }, + "table-border": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + }, + "table-header": { + "color": "", + "background-color": "", + "underline": false, + "bold": true + }, + "quote-border": { + "color": "#666", + "background-color": "#444", + "underline": false, + "bold": false + }, + "quoted-text": { + "color": "", + "background-color": "#444", + "underline": false, + "bold": false + }, + "footnote-border": { + "color": "$blue", + "background-color": "#444", + "underline": false, + "bold": false + }, + "footnote-text": { + "color": "#eee", + "background-color": "#444", + "underline": false, + "bold": false + }, + "snippet-border": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "indent-guide": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + } + }, + "syntax-styles": { + "inline-code": { + "color": "$red", + "background-color": "#222", + "underline": false, + "bold": false + }, + "quoted-code": { + "color": "#eee", + "background-color": "#222", + "underline": false, + "bold": false + }, + "code-border": { + "color": "#444", + "background-color": "#222", + "underline": false, + "bold": false + }, + "keyword": { + "color": "#c792ea", + "background-color": "", + "underline": false, + "bold": false + }, + "string": { + "color": "#ecc48d", + "background-color": "", + "underline": false, + "bold": true + }, + "comment": { + "color": "#676e95", + "background-color": "", + "underline": false, + "bold": false + }, + "doc-directive": { + "color": "#addb67", + "background-color": "", + "underline": false, + "bold": false + }, + "variable": { + "color": "#addb67", + "background-color": "", + "underline": false, + "bold": false + }, + "symbol": { + "color": "#82aaff", + "background-color": "", + "underline": false, + "bold": false + }, + "null": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + }, + "ascii-control": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": false + }, + "non-ascii": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "number": { + "color": "#f78c6c", + "background-color": "", + "underline": false, + "bold": false + }, + "type": { + "color": "$blue", + "background-color": "", + "underline": false, + "bold": false + }, + "function": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "separators-references-accessors": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "re-special": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "re-repeat": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-delete": { + "color": "#b03435", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-add": { + "color": "#264b33", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-section": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": false + }, + "spectrogram-low": { + "color": "", + "background-color": "$green", + "underline": false, + "bold": false + }, + "spectrogram-medium": { + "color": "", + "background-color": "$yellow", + "underline": false, + "bold": false + }, + "spectrogram-high": { + "color": "", + "background-color": "$red", + "underline": false, + "bold": false + }, + "file": { + "color": "#82aaff", + "background-color": "", + "underline": false, + "bold": false + } + }, + "status-styles": { + "text": { + "color": "#f8f8f0", + "background-color": "#162d40", + "underline": false, + "bold": false + }, + "warn": { + "color": "#b39554", + "background-color": "#162d40", + "underline": false, + "bold": false + }, + "alert": { + "color": "#ef5350", + "background-color": "#162d40", + "underline": false, + "bold": false + }, + "active": { + "color": "#264b33", + "background-color": "#162d40", + "underline": false, + "bold": false + }, + "inactive-alert": { + "color": "#ef5350", + "background-color": "#0F1F2B", + "underline": false, + "bold": false + }, + "inactive": { + "color": "#f0f0f0", + "background-color": "#0F1F2B", + "underline": false, + "bold": false + }, + "title-hotkey": { + "color": "$black", + "background-color": "#2d5a80", + "underline": true, + "bold": true + }, + "title": { + "color": "#f8f0f0", + "background-color": "#2d5a80", + "underline": false, + "bold": true + }, + "disabled-title": { + "color": "#5394ec", + "background-color": "#353535", + "underline": false, + "bold": true + }, + "subtitle": { + "color": "#f8f8f0", + "background-color": "#005f5f", + "underline": false, + "bold": false + }, + "info": { + "color": "#aaa", + "background-color": "#0F1F2B", + "underline": false, + "bold": false + }, + "hotkey": { + "color": "#2d5a80", + "background-color": "", + "underline": true, + "bold": true + }, + "suggestion": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + } + }, + "log-level-styles": { + "trace": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug5": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug4": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug3": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug2": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "info": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "stats": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "notice": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "warning": { + "color": "#b39554", + "background-color": "", + "underline": false, + "bold": false + }, + "error": { + "color": "#ef5350", + "background-color": "", + "underline": false, + "bold": false + }, + "critical": { + "color": "#ef5350", + "background-color": "", + "underline": false, + "bold": false + }, + "fatal": { + "color": "#ef5350", + "background-color": "", + "underline": false, + "bold": false + }, + "invalid": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + } + }, + "highlights": { + + } + }, + "solarized-dark": { + "vars": { + "base0": "#839496", + "base00": "#657b83", + "base01": "#586e75", + "base02": "#073642", + "base03": "#002b36", + "base1": "#93a1a1", + "base2": "#eee8d5", + "base3": "#fdf6e3", + "black": "#002b36", + "blue": "#268bd2", + "cyan": "#2aa198", + "green": "#859900", + "magenta": "#d33682", + "orange": "#cb4b16", + "red": "#dc322f", + "semantic_highlight_color": "semantic()", + "violet": "#6c71c4", + "yellow": "#b58900" + }, + "styles": { + "identifier": { + "color": "semantic()", + "background-color": "$base03", + "underline": false, + "bold": false + }, + "text": { + "color": "$base0", + "background-color": "$base03", + "underline": false, + "bold": false + }, + "selected-text": { + "color": "", + "background-color": "$cyan", + "underline": false, + "bold": false + }, + "alt-text": { + "color": "", + "background-color": "$base02", + "underline": false, + "bold": false + }, + "error": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": true + }, + "ok": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": true + }, + "info": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": true + }, + "warning": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": true + }, + "hidden": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": true + }, + "cursor-line": { + "color": "$cyan", + "background-color": "$red", + "underline": true, + "bold": true + }, + "disabled-cursor-line": { + "color": "$cyan", + "background-color": "#5f005f", + "underline": false, + "bold": false + }, + "adjusted-time": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": false + }, + "skewed-time": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "file-offset": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + }, + "offset-time": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "invalid-msg": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "popup": { + "color": "$base00", + "background-color": "$base3", + "underline": false, + "bold": false + }, + "focused": { + "color": "$base03", + "background-color": "$base01", + "underline": false, + "bold": false + }, + "disabled-focused": { + "color": "$base0", + "background-color": "$base02", + "underline": false, + "bold": false + }, + "scrollbar": { + "color": "$base03", + "background-color": "$base0", + "underline": false, + "bold": false + }, + "h1": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h2": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h3": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h4": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h5": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h6": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "hr": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + }, + "hyperlink": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "list-glyph": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "breadcrumb": { + "color": "#99a", + "background-color": "", + "underline": false, + "bold": true + }, + "table-border": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + }, + "table-header": { + "color": "", + "background-color": "", + "underline": false, + "bold": true + }, + "quote-border": { + "color": "#666", + "background-color": "#444", + "underline": false, + "bold": false + }, + "quoted-text": { + "color": "", + "background-color": "#444", + "underline": false, + "bold": false + }, + "footnote-border": { + "color": "$blue", + "background-color": "#444", + "underline": false, + "bold": false + }, + "footnote-text": { + "color": "#eee", + "background-color": "#444", + "underline": false, + "bold": false + }, + "snippet-border": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "indent-guide": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + } + }, + "syntax-styles": { + "inline-code": { + "color": "$red", + "background-color": "#121212", + "underline": false, + "bold": false + }, + "quoted-code": { + "color": "#eee", + "background-color": "#121212", + "underline": false, + "bold": false + }, + "code-border": { + "color": "#444", + "background-color": "#121212", + "underline": false, + "bold": false + }, + "keyword": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "string": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": true + }, + "comment": { + "color": "$base01", + "background-color": "", + "underline": false, + "bold": false + }, + "doc-directive": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "variable": { + "color": "$blue", + "background-color": "", + "underline": false, + "bold": false + }, + "symbol": { + "color": "$blue", + "background-color": "", + "underline": false, + "bold": false + }, + "null": { + "color": "#888", + "background-color": "", + "underline": false, + "bold": false + }, + "ascii-control": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": false + }, + "non-ascii": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "number": { + "color": "", + "background-color": "", + "underline": false, + "bold": true + }, + "type": { + "color": "$blue", + "background-color": "", + "underline": false, + "bold": false + }, + "function": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "separators-references-accessors": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "re-special": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "re-repeat": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-delete": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-add": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-section": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": false + }, + "spectrogram-low": { + "color": "", + "background-color": "$green", + "underline": false, + "bold": false + }, + "spectrogram-medium": { + "color": "", + "background-color": "$yellow", + "underline": false, + "bold": false + }, + "spectrogram-high": { + "color": "", + "background-color": "$red", + "underline": false, + "bold": false + }, + "file": { + "color": "$blue", + "background-color": "", + "underline": false, + "bold": false + } + }, + "status-styles": { + "text": { + "color": "$base2", + "background-color": "$base01", + "underline": false, + "bold": false + }, + "warn": { + "color": "$yellow", + "background-color": "$base01", + "underline": false, + "bold": false + }, + "alert": { + "color": "$red", + "background-color": "$base01", + "underline": false, + "bold": false + }, + "active": { + "color": "$green", + "background-color": "$base01", + "underline": false, + "bold": false + }, + "inactive-alert": { + "color": "$red", + "background-color": "$base02", + "underline": false, + "bold": false + }, + "inactive": { + "color": "$base1", + "background-color": "$base02", + "underline": false, + "bold": false + }, + "title-hotkey": { + "color": "$black", + "background-color": "#5394ec", + "underline": true, + "bold": false + }, + "title": { + "color": "$base02", + "background-color": "$blue", + "underline": false, + "bold": true + }, + "disabled-title": { + "color": "$base01", + "background-color": "$base03", + "underline": false, + "bold": true + }, + "subtitle": { + "color": "$base00", + "background-color": "$cyan", + "underline": false, + "bold": true + }, + "info": { + "color": "$base1", + "background-color": "$base02", + "underline": false, + "bold": false + }, + "hotkey": { + "color": "#fff", + "background-color": "", + "underline": true, + "bold": false + }, + "suggestion": { + "color": "$base02", + "background-color": "", + "underline": false, + "bold": false + } + }, + "log-level-styles": { + "trace": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug5": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug4": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug3": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug2": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "info": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "stats": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "notice": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "warning": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "error": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "critical": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "fatal": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "invalid": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + } + }, + "highlights": { + + } + }, + "solarized-light": { + "vars": { + "base0": "#839496", + "base00": "#657b83", + "base01": "#586e75", + "base02": "#073642", + "base03": "#002b36", + "base1": "#93a1a1", + "base2": "#ededb0", + "base3": "#fdf6e3", + "black": "#002b36", + "blue": "#268bd2", + "cyan": "#2aa198", + "green": "#859900", + "magenta": "#d33682", + "orange": "#cb4b16", + "red": "#dc322f", + "semantic_highlight_color": "semantic()", + "violet": "#6c71c4", + "yellow": "#b58900" + }, + "styles": { + "identifier": { + "color": "semantic()", + "background-color": "", + "underline": false, + "bold": false + }, + "text": { + "color": "$base00", + "background-color": "$base3", + "underline": false, + "bold": false + }, + "selected-text": { + "color": "", + "background-color": "$cyan", + "underline": false, + "bold": false + }, + "alt-text": { + "color": "", + "background-color": "$base2", + "underline": false, + "bold": false + }, + "error": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": true + }, + "ok": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": true + }, + "info": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "warning": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": true + }, + "hidden": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": true + }, + "cursor-line": { + "color": "$base0", + "background-color": "#fafa4a", + "underline": true, + "bold": true + }, + "disabled-cursor-line": { + "color": "$cyan", + "background-color": "$yellow", + "underline": false, + "bold": false + }, + "adjusted-time": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": false + }, + "skewed-time": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "file-offset": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "offset-time": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "invalid-msg": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "popup": { + "color": "$base00", + "background-color": "$base2", + "underline": false, + "bold": false + }, + "focused": { + "color": "$base03", + "background-color": "$base01", + "underline": false, + "bold": false + }, + "disabled-focused": { + "color": "$base0", + "background-color": "$base02", + "underline": false, + "bold": false + }, + "scrollbar": { + "color": "$base3", + "background-color": "$base00", + "underline": false, + "bold": false + }, + "h1": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h2": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h3": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h4": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h5": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "h6": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "hr": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + }, + "hyperlink": { + "color": "", + "background-color": "", + "underline": true, + "bold": false + }, + "list-glyph": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "breadcrumb": { + "color": "#99a", + "background-color": "", + "underline": false, + "bold": true + }, + "table-border": { + "color": "#444", + "background-color": "", + "underline": false, + "bold": false + }, + "table-header": { + "color": "", + "background-color": "", + "underline": false, + "bold": true + }, + "quote-border": { + "color": "#666", + "background-color": "#444", + "underline": false, + "bold": false + }, + "quoted-text": { + "color": "", + "background-color": "#444", + "underline": false, + "bold": false + }, + "footnote-border": { + "color": "$blue", + "background-color": "#444", + "underline": false, + "bold": false + }, + "footnote-text": { + "color": "#eee", + "background-color": "#444", + "underline": false, + "bold": false + }, + "snippet-border": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "indent-guide": { + "color": "$base1", + "background-color": "", + "underline": false, + "bold": false + } + }, + "syntax-styles": { + "inline-code": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "quoted-code": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "code-border": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "keyword": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "string": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": true + }, + "comment": { + "color": "$base1", + "background-color": "", + "underline": false, + "bold": false + }, + "doc-directive": { + "color": "$blue", + "background-color": "", + "underline": false, + "bold": false + }, + "variable": { + "color": "$blue", + "background-color": "", + "underline": false, + "bold": false + }, + "symbol": { + "color": "$blue", + "background-color": "", + "underline": false, + "bold": false + }, + "null": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "ascii-control": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "non-ascii": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "number": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "type": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "function": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "separators-references-accessors": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "re-special": { + "color": "$cyan", + "background-color": "", + "underline": false, + "bold": false + }, + "re-repeat": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-delete": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-add": { + "color": "$green", + "background-color": "", + "underline": false, + "bold": false + }, + "diff-section": { + "color": "$magenta", + "background-color": "", + "underline": false, + "bold": false + }, + "spectrogram-low": { + "color": "", + "background-color": "$green", + "underline": false, + "bold": false + }, + "spectrogram-medium": { + "color": "", + "background-color": "$yellow", + "underline": false, + "bold": false + }, + "spectrogram-high": { + "color": "", + "background-color": "$red", + "underline": false, + "bold": false + }, + "file": { + "color": "$blue", + "background-color": "", + "underline": false, + "bold": false + } + }, + "status-styles": { + "text": { + "color": "$base2", + "background-color": "$base03", + "underline": false, + "bold": false + }, + "warn": { + "color": "$yellow", + "background-color": "$base03", + "underline": false, + "bold": false + }, + "alert": { + "color": "$red", + "background-color": "$base03", + "underline": false, + "bold": false + }, + "active": { + "color": "$green", + "background-color": "$base03", + "underline": false, + "bold": false + }, + "inactive-alert": { + "color": "$red", + "background-color": "$base03", + "underline": false, + "bold": false + }, + "inactive": { + "color": "$base1", + "background-color": "$base03", + "underline": false, + "bold": false + }, + "title-hotkey": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "title": { + "color": "$base2", + "background-color": "$base00", + "underline": false, + "bold": true + }, + "disabled-title": { + "color": "$base2", + "background-color": "$base02", + "underline": false, + "bold": true + }, + "subtitle": { + "color": "$base2", + "background-color": "$base01", + "underline": false, + "bold": true + }, + "info": { + "color": "$base1", + "background-color": "$base03", + "underline": false, + "bold": false + }, + "hotkey": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "suggestion": { + "color": "$base1", + "background-color": "", + "underline": false, + "bold": false + } + }, + "log-level-styles": { + "trace": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug5": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug4": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug3": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug2": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "debug": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "info": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "stats": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "notice": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + }, + "warning": { + "color": "$yellow", + "background-color": "", + "underline": false, + "bold": false + }, + "error": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "critical": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "fatal": { + "color": "$red", + "background-color": "", + "underline": false, + "bold": false + }, + "invalid": { + "color": "", + "background-color": "", + "underline": false, + "bold": false + } + }, + "highlights": { + + } + } + }, + "mouse": { + "mode": "disabled" + }, + "movement": { + "mode": "cursor" + }, + "keymap-defs": { + "de": { + "x21": { + "id": "", + "command": ":goto last 10 minutes after the hour", + "alt-msg": "" + }, + "x22": { + "id": "", + "command": ":goto last 20 minutes after the hour", + "alt-msg": "" + }, + "x24": { + "id": "", + "command": ":goto last 40 minutes after the hour", + "alt-msg": "" + }, + "x25": { + "id": "", + "command": ":goto last 50 minutes after the hour", + "alt-msg": "" + }, + "x26": { + "id": "", + "command": ":goto last hour", + "alt-msg": "" + }, + "x31": { + "id": "", + "command": ":goto next 10 minutes after the hour", + "alt-msg": "" + }, + "x32": { + "id": "", + "command": ":goto next 20 minutes after the hour", + "alt-msg": "" + }, + "x33": { + "id": "", + "command": ":goto next 30 minutes after the hour", + "alt-msg": "" + }, + "x34": { + "id": "", + "command": ":goto next 40 minutes after the hour", + "alt-msg": "" + }, + "x35": { + "id": "", + "command": ":goto next 50 minutes after the hour", + "alt-msg": "" + }, + "x36": { + "id": "", + "command": ":goto next hour", + "alt-msg": "" + }, + "x37": { + "id": "", + "command": ":goto previous minute", + "alt-msg": "" + }, + "x38": { + "id": "", + "command": ":goto next minute", + "alt-msg": "" + }, + "xc2xa7": { + "id": "", + "command": ":goto last 30 minutes after the hour", + "alt-msg": "" + } + }, + "default": { + "x04": { + "id": "", + "command": ";UPDATE lnav_views SET top = top + (height / 2), selection = (CASE movement WHEN 'top' THEN selection ELSE top + (height / 2) + (selection - top) END) WHERE name = (SELECT name FROM lnav_top_view)", + "alt-msg": "" + }, + "x06": { + "id": "", + "command": ";UPDATE lnav_view_filters SET enabled = 1 - enabled WHERE view_name = (SELECT name FROM lnav_view_stack WHERE name in ('log', 'text') ORDER BY rowid DESC LIMIT 1)", + "alt-msg": "" + }, + "x0c": { + "id": "", + "command": ":write-screen-to -", + "alt-msg": "" + }, + "x12": { + "id": "", + "command": ":reset-session", + "alt-msg": "" + }, + "x15": { + "id": "", + "command": ";UPDATE lnav_views SET top = max(0, top - (height / 2)), selection = (CASE movement WHEN 'top' THEN selection ELSE max(0, top - (height / 2) + (selection - top)) END) WHERE name = (SELECT name FROM lnav_top_view)", + "alt-msg": "" + }, + "x17": { + "id": "", + "command": ";UPDATE lnav_views SET options = json_set(options, '$.word-wrap', CASE jget(options, '/word-wrap', 'none') WHEN 'none' THEN 'normal' ELSE 'none' END) WHERE name = (SELECT name FROM lnav_top_view)", + "alt-msg": "" + }, + "x18": { + "id": "", + "command": ";UPDATE lnav_views SET movement = (CASE movement WHEN 'top' THEN 'cursor' ELSE 'top' END) WHERE name = (SELECT name FROM lnav_top_view)", + "alt-msg": "" + }, + "x21": { + "id": "", + "command": ":goto last 10 minutes after the hour", + "alt-msg": "" + }, + "x23": { + "id": "", + "command": ":goto last 30 minutes after the hour", + "alt-msg": "" + }, + "x24": { + "id": "", + "command": ":goto last 40 minutes after the hour", + "alt-msg": "" + }, + "x25": { + "id": "", + "command": ":goto last 50 minutes after the hour", + "alt-msg": "" + }, + "x2f": { + "id": "", + "command": ":prompt search", + "alt-msg": "" + }, + "x31": { + "id": "", + "command": ":goto next 10 minutes after the hour", + "alt-msg": "" + }, + "x32": { + "id": "", + "command": ":goto next 20 minutes after the hour", + "alt-msg": "" + }, + "x33": { + "id": "", + "command": ":goto next 30 minutes after the hour", + "alt-msg": "" + }, + "x34": { + "id": "", + "command": ":goto next 40 minutes after the hour", + "alt-msg": "" + }, + "x35": { + "id": "", + "command": ":goto next 50 minutes after the hour", + "alt-msg": "" + }, + "x36": { + "id": "", + "command": ":goto next hour", + "alt-msg": "" + }, + "x37": { + "id": "", + "command": ":goto previous minute", + "alt-msg": "" + }, + "x38": { + "id": "", + "command": ":goto next minute", + "alt-msg": "" + }, + "x3a": { + "id": "", + "command": ":prompt command", + "alt-msg": "" + }, + "x3b": { + "id": "", + "command": ":prompt sql", + "alt-msg": "" + }, + "x3d": { + "id": "", + "command": ";UPDATE lnav_views SET paused = 1 - paused", + "alt-msg": "" + }, + "x3f": { + "id": "", + "command": ":toggle-view help", + "alt-msg": "" + }, + "x40": { + "id": "", + "command": ":goto last 20 minutes after the hour", + "alt-msg": "" + }, + "x45": { + "id": "", + "command": ":prev-mark error", + "alt-msg": "${keymap_def_alt_warning}" + }, + "x4e": { + "id": "", + "command": ":prev-mark search", + "alt-msg": "${keymap_def_scroll_horiz}" + }, + "x50": { + "id": "", + "command": ":toggle-view pretty", + "alt-msg": "${keymap_def_pop_view}" + }, + "x51": { + "id": "", + "command": "|lnav-pop-view ${keyseq}", + "alt-msg": "" + }, + "x54": { + "id": "", + "command": ";UPDATE lnav_views SET options = json_set(options, '$.row-time-offset', CASE jget(options, '/row-time-offset', 'hide') WHEN 'hide' THEN 'show' ELSE 'hide' END) WHERE name = (SELECT name FROM lnav_top_view)", + "alt-msg": "${keymap_def_time_offset}" + }, + "x55": { + "id": "", + "command": ":prev-mark", + "alt-msg": "" + }, + "x57": { + "id": "", + "command": ":prev-mark warning", + "alt-msg": "${keymap_def_alt_hour_boundary}" + }, + "x58": { + "id": "", + "command": ":close", + "alt-msg": "" + }, + "x5e": { + "id": "", + "command": ":goto last hour", + "alt-msg": "" + }, + "x60": { + "id": "org.lnav.key.breadcrumb.focus", + "command": ":prompt breadcrumb", + "alt-msg": "" + }, + "x63": { + "id": "", + "command": "|lnav-copy-text", + "alt-msg": "${keymap_def_clear}" + }, + "x65": { + "id": "", + "command": ":next-mark error", + "alt-msg": "${keymap_def_alt_warning}" + }, + "x67": { + "id": "", + "command": ":goto 0", + "alt-msg": "" + }, + "x69": { + "id": "", + "command": ":toggle-view histogram", + "alt-msg": "${keymap_def_zoom}" + }, + "x6d": { + "id": "", + "command": ":mark", + "alt-msg": "${keymap_def_next_user_mark}" + }, + "x6e": { + "id": "", + "command": ":next-mark search", + "alt-msg": "${keymap_def_scroll_horiz}" + }, + "x70": { + "id": "", + "command": ";UPDATE lnav_views SET options = json_set(options, '$.row-details', CASE jget(options, '/row-details', 'hide') WHEN 'hide' THEN 'show' ELSE 'hide' END) WHERE name = (SELECT name FROM lnav_top_view)", + "alt-msg": "" + }, + "x71": { + "id": "", + "command": "|lnav-pop-view ${keyseq}", + "alt-msg": "" + }, + "x75": { + "id": "", + "command": ":next-mark", + "alt-msg": "${keymap_def_next_mark}" + }, + "x76": { + "id": "", + "command": ":toggle-view db", + "alt-msg": "" + }, + "x77": { + "id": "", + "command": ":next-mark warning", + "alt-msg": "${keymap_def_alt_hour_boundary}" + }, + "x78": { + "id": "", + "command": ";UPDATE lnav_views SET options = json_set(options, '$.hidden-fields', CASE jget(options, '/hidden-fields', 'hide') WHEN 'hide' THEN 'show' ELSE 'hide' END) WHERE name = (SELECT name FROM lnav_top_view)", + "alt-msg": "" + }, + "x7b": { + "id": "", + "command": ":prev-section", + "alt-msg": "${keymap_def_next_location}" + }, + "x7c": { + "id": "", + "command": ":prompt script", + "alt-msg": "" + }, + "x7d": { + "id": "", + "command": ":next-section", + "alt-msg": "${keymap_def_prev_location}" + } + }, + "fr": { + "x22": { + "id": "", + "command": ":goto next 30 minutes after the hour", + "alt-msg": "" + }, + "x26": { + "id": "", + "command": ":goto next 10 minutes after the hour", + "alt-msg": "" + }, + "x27": { + "id": "", + "command": ":goto next 40 minutes after the hour", + "alt-msg": "" + }, + "x28": { + "id": "", + "command": ":goto next 50 minutes after the hour", + "alt-msg": "" + }, + "x2d": { + "id": "", + "command": ":goto next hour", + "alt-msg": "" + }, + "x31": { + "id": "", + "command": ":goto last 10 minutes after the hour", + "alt-msg": "" + }, + "x32": { + "id": "", + "command": ":goto last 20 minutes after the hour", + "alt-msg": "" + }, + "x33": { + "id": "", + "command": ":goto last 30 minutes after the hour", + "alt-msg": "" + }, + "x34": { + "id": "", + "command": ":goto last 40 minutes after the hour", + "alt-msg": "" + }, + "x35": { + "id": "", + "command": ":goto last 50 minutes after the hour", + "alt-msg": "" + }, + "x36": { + "id": "", + "command": ":goto last hour", + "alt-msg": "" + }, + "x37": { + "id": "", + "command": ":goto previous minute", + "alt-msg": "" + }, + "xc3xa8": { + "id": "", + "command": ":goto next minute", + "alt-msg": "" + }, + "xc3xa9": { + "id": "", + "command": ":goto next 20 minutes after the hour", + "alt-msg": "" + } + }, + "sv": { + "x22": { + "id": "", + "command": ":goto last 20 minutes after the hour", + "alt-msg": "" + }, + "x26": { + "id": "", + "command": ":goto last hour", + "alt-msg": "" + }, + "x2b": { + "id": "", + "command": ";UPDATE lnav_views SET paused = 1 - paused", + "alt-msg": "" + }, + "x3d": { + "id": "", + "command": ":goto last day", + "alt-msg": "" + }, + "x60": { + "id": "", + "command": ":prompt breadcrumb", + "alt-msg": "" + }, + "xc2xa4": { + "id": "", + "command": ":goto last 40 minutes after the hour", + "alt-msg": "" + }, + "xc2xa7": { + "id": "org.lnav.key.breadcrumb.focus", + "command": ":prompt breadcrumb", + "alt-msg": "" + }, + "xe2x82xac": { + "id": "", + "command": ":goto last 40 minutes after the hour", + "alt-msg": "" + } + }, + "uk": { + "x22": { + "id": "", + "command": ":goto last 20 minutes after the hour", + "alt-msg": "" + }, + "xc2xa3": { + "id": "", + "command": ":goto last 30 minutes after the hour", + "alt-msg": "" + } + }, + "us": { + "x21": { + "id": "", + "command": ":goto last 10 minutes after the hour", + "alt-msg": "" + }, + "x23": { + "id": "", + "command": ":goto last 30 minutes after the hour", + "alt-msg": "" + }, + "x24": { + "id": "", + "command": ":goto last 40 minutes after the hour", + "alt-msg": "" + }, + "x25": { + "id": "", + "command": ":goto last 50 minutes after the hour", + "alt-msg": "" + }, + "x31": { + "id": "", + "command": ":goto next 10 minutes after the hour", + "alt-msg": "" + }, + "x32": { + "id": "", + "command": ":goto next 20 minutes after the hour", + "alt-msg": "" + }, + "x33": { + "id": "", + "command": ":goto next 30 minutes after the hour", + "alt-msg": "" + }, + "x34": { + "id": "", + "command": ":goto next 40 minutes after the hour", + "alt-msg": "" + }, + "x35": { + "id": "", + "command": ":goto next 50 minutes after the hour", + "alt-msg": "" + }, + "x36": { + "id": "", + "command": ":goto next hour", + "alt-msg": "" + }, + "x37": { + "id": "", + "command": ":goto previous minute", + "alt-msg": "" + }, + "x38": { + "id": "", + "command": ":goto next minute", + "alt-msg": "" + }, + "x40": { + "id": "", + "command": ":goto last 20 minutes after the hour", + "alt-msg": "" + }, + "x5e": { + "id": "", + "command": ":goto last hour", + "alt-msg": "" + } + } + } + }, + "log": { + "date-time": { + "convert-zoned-to-local": true + }, + "watch-expressions": { + + }, + "annotations": { + "com.vmware.vmacore.backtrace": { + "description": "Convert a vmacore backtrace into human-readable text", + "condition": ":log_body LIKE '%[context]%[/context]%'", + "handler": "com.vmware.btresolver.py" + }, + "org.lnav.test": { + "description": "test annotation", + "condition": ":c_ip IS NOT NULL AND $TEST_ANNO = '1'", + "handler": "anno-test.sh" + } + } + }, + "global": { + "keymap_def_alt_hour_boundary": "Press ${ansi_bold}6${ansi_bold}/${ansi_bold}^${ansi_norm} to move to the next/previous hour boundary", + "keymap_def_alt_warning": "Press ${ansi_bold}w${ansi_norm}/${ansi_bold}W${ansi_norm} to move forward/backward through ${ansi_yellow}warning${ansi_norm} messages", + "keymap_def_clear": "Press ${ansi_bold}C${ansi_norm} to clear marked messages", + "keymap_def_db_view": "Press ${ansi_bold}v${ansi_norm}/${ansi_bold}V${ansi_norm} to switch to the SQL result view", + "keymap_def_hist_view": "Press ${ansi_bold}i${ansi_norm}/${ansi_bold}I${ansi_norm} to switch to the histogram view", + "keymap_def_next_mark": "Press ${ansi_bold}c${ansi_norm} to copy marked lines to the clipboard; press ${ansi_bold}C${ansi_norm} to clear marked lines", + "keymap_def_next_section": "Press ${ansi_bold}}${ansi_norm} to move to the next section in the view", + "keymap_def_next_user_mark": "Press ${ansi_bold}u${ansi_norm}/${ansi_bold}U${ansi_norm} to move forward/backward through user bookmarks", + "keymap_def_pop_view": "Press ${ansi_bold}q${ansi_norm} to return to the previous view", + "keymap_def_prev_section": "Press ${ansi_bold}{${ansi_norm} to move to the previous section in the view", + "keymap_def_scroll_horiz": "Press \\'${ansi_bold}>${ansi_norm}\\' or \\'${ansi_bold}<${ansi_norm}\\' to scroll horizontally to a search result", + "keymap_def_text_view": "Press ${ansi_bold}t${ansi_norm} to switch to the text view", + "keymap_def_time_offset": "Press ${ansi_bold}s${ansi_norm}/${ansi_bold}S${ansi_norm} to move forward/backward through slow downs", + "keymap_def_zoom": "Press ${ansi_bold}z${ansi_norm}/${ansi_bold}Z${ansi_norm} to zoom in/out" + } +} + diff --git a/test/expected/test_cmds.sh_a0e6214b2a85c90d31aee12efde850441cca7eb3.err b/test/expected/test_cli.sh_108c6922cde063429f76abc3fdb8a81ad9a2f671.err index e69de29..e69de29 100644 --- a/test/expected/test_cmds.sh_a0e6214b2a85c90d31aee12efde850441cca7eb3.err +++ b/test/expected/test_cli.sh_108c6922cde063429f76abc3fdb8a81ad9a2f671.err diff --git a/test/expected/test_cli.sh_108c6922cde063429f76abc3fdb8a81ad9a2f671.out b/test/expected/test_cli.sh_108c6922cde063429f76abc3fdb8a81ad9a2f671.out new file mode 100644 index 0000000..45b983b --- /dev/null +++ b/test/expected/test_cli.sh_108c6922cde063429f76abc3fdb8a81ad9a2f671.out @@ -0,0 +1 @@ +hi diff --git a/test/expected/test_cli.sh_10c33e465ef7681c6b5519d05d557426b26cd43d.err b/test/expected/test_cli.sh_10c33e465ef7681c6b5519d05d557426b26cd43d.err new file mode 100644 index 0000000..0f7ae0c --- /dev/null +++ b/test/expected/test_cli.sh_10c33e465ef7681c6b5519d05d557426b26cd43d.err @@ -0,0 +1,4 @@ +[1m[35mⓘ info[0m: the following piper captures were found in: + [1mpiper-tmp/lnav-user-{uid}-work/piper[0m +[36m =[0m [36mnote[0m: The captures currently consume [1m33B[0m of disk space. File sizes include associated metadata. +[36m =[0m [36mhelp[0m: You can reopen a capture by passing the piper URL to lnav diff --git a/test/expected/test_cli.sh_10c33e465ef7681c6b5519d05d557426b26cd43d.out b/test/expected/test_cli.sh_10c33e465ef7681c6b5519d05d557426b26cd43d.out new file mode 100644 index 0000000..26c7111 --- /dev/null +++ b/test/expected/test_cli.sh_10c33e465ef7681c6b5519d05d557426b26cd43d.out @@ -0,0 +1 @@ +[33m just now[0m [1mpiper://p-e25e2eb68547f31e42da0818b4d0084f-000[0m [1m 33.0 B[0m “[32m[0] echo hi[0m” diff --git a/test/expected/test_cmds.sh_d7eebacdcf2cb194f25fa4ef97b7b5376b442467.out b/test/expected/test_cli.sh_3114508cf42fb2608ef77f4bc294a84885c97a79.err index e69de29..e69de29 100644 --- a/test/expected/test_cmds.sh_d7eebacdcf2cb194f25fa4ef97b7b5376b442467.out +++ b/test/expected/test_cli.sh_3114508cf42fb2608ef77f4bc294a84885c97a79.err diff --git a/test/expected/test_cli.sh_3114508cf42fb2608ef77f4bc294a84885c97a79.out b/test/expected/test_cli.sh_3114508cf42fb2608ef77f4bc294a84885c97a79.out new file mode 100644 index 0000000..45b983b --- /dev/null +++ b/test/expected/test_cli.sh_3114508cf42fb2608ef77f4bc294a84885c97a79.out @@ -0,0 +1 @@ +hi diff --git a/test/expected/test_config.sh_5105c29004e297521310ca0bd0fd560b01c2c549.out b/test/expected/test_cli.sh_4327033cfae0d4c170a38a3c4a570520bfabb493.err index e69de29..e69de29 100644 --- a/test/expected/test_config.sh_5105c29004e297521310ca0bd0fd560b01c2c549.out +++ b/test/expected/test_cli.sh_4327033cfae0d4c170a38a3c4a570520bfabb493.err diff --git a/test/expected/test_cli.sh_4327033cfae0d4c170a38a3c4a570520bfabb493.out b/test/expected/test_cli.sh_4327033cfae0d4c170a38a3c4a570520bfabb493.out new file mode 100644 index 0000000..45b983b --- /dev/null +++ b/test/expected/test_cli.sh_4327033cfae0d4c170a38a3c4a570520bfabb493.out @@ -0,0 +1 @@ +hi diff --git a/test/expected/test_format_loader.sh_3f1d6f35e8a9ae4fd3e91ffaa82a037b5a847ab7.out b/test/expected/test_cli.sh_76aa57821598962e59063a40c20171040c95a731.err index e69de29..e69de29 100644 --- a/test/expected/test_format_loader.sh_3f1d6f35e8a9ae4fd3e91ffaa82a037b5a847ab7.out +++ b/test/expected/test_cli.sh_76aa57821598962e59063a40c20171040c95a731.err diff --git a/test/expected/test_cli.sh_76aa57821598962e59063a40c20171040c95a731.out b/test/expected/test_cli.sh_76aa57821598962e59063a40c20171040c95a731.out new file mode 100644 index 0000000..f6223f2 --- /dev/null +++ b/test/expected/test_cli.sh_76aa57821598962e59063a40c20171040c95a731.out @@ -0,0 +1,9 @@ +[ + { + "filepath": "[0] echo hi", + "descriptor": "org.lnav.piper.header", + "mimetype": "application/json", + "ctime": "2013-06-06T19:13:20.000", + "cwd": "{test_dir}" + } +] diff --git a/test/expected/test_cli.sh_a1a09f890f4604309d0a81bbbec8e50fb7d5e887.out b/test/expected/test_cli.sh_a1a09f890f4604309d0a81bbbec8e50fb7d5e887.out deleted file mode 100644 index 1e0a993..0000000 --- a/test/expected/test_cli.sh_a1a09f890f4604309d0a81bbbec8e50fb7d5e887.out +++ /dev/null @@ -1,3 +0,0 @@ -2013-06-06T19:13:20.123 Hello, World! -2013-06-06T19:13:20.123 Goodbye, World! -2013-06-06T19:13:20.123 ---- END-OF-STDIN ---- diff --git a/test/expected/test_format_loader.sh_a47f2b090a5d8a226783835c7ff7d1c8821f11ed.out b/test/expected/test_cli.sh_af3ace7762b4cc150fcdcac86083b379bded7b32.err index e69de29..e69de29 100644 --- a/test/expected/test_format_loader.sh_a47f2b090a5d8a226783835c7ff7d1c8821f11ed.out +++ b/test/expected/test_cli.sh_af3ace7762b4cc150fcdcac86083b379bded7b32.err diff --git a/test/expected/test_cli.sh_af3ace7762b4cc150fcdcac86083b379bded7b32.out b/test/expected/test_cli.sh_af3ace7762b4cc150fcdcac86083b379bded7b32.out new file mode 100644 index 0000000..f6223f2 --- /dev/null +++ b/test/expected/test_cli.sh_af3ace7762b4cc150fcdcac86083b379bded7b32.out @@ -0,0 +1,9 @@ +[ + { + "filepath": "[0] echo hi", + "descriptor": "org.lnav.piper.header", + "mimetype": "application/json", + "ctime": "2013-06-06T19:13:20.000", + "cwd": "{test_dir}" + } +] diff --git a/test/expected/test_json_format.sh_90a037c7d9d70ac4ca97158271ea242787313377.err b/test/expected/test_cli.sh_c69c835a3c43210225cf62564b3e9584c899af20.err index e69de29..e69de29 100644 --- a/test/expected/test_json_format.sh_90a037c7d9d70ac4ca97158271ea242787313377.err +++ b/test/expected/test_cli.sh_c69c835a3c43210225cf62564b3e9584c899af20.err diff --git a/test/expected/test_cli.sh_c69c835a3c43210225cf62564b3e9584c899af20.out b/test/expected/test_cli.sh_c69c835a3c43210225cf62564b3e9584c899af20.out new file mode 100644 index 0000000..7600bd0 --- /dev/null +++ b/test/expected/test_cli.sh_c69c835a3c43210225cf62564b3e9584c899af20.out @@ -0,0 +1,4 @@ +Feb 25 16:20:15 192.168.4.2 haproxy[7]: 95.216.197.33:56224 [25/Feb/2019:16:20:10.111] prod_http_in/sktst2: SSL handshake failure +Feb 25 16:20:16 192.168.4.2 haproxy[7]: 87.183.41.77:50188 [25/Feb/2019:16:20:12.321] prod_http_in~ bk_ktest_sonst/nginx_sonst 0/0/1/0/1 200 5959 - - ---- 9/9/0/0/0 0/0 {Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0} {} "GET /media/pi_fontawesome/css/font-awesome.css?1550939694 HTTP/1.1" +Feb 25 16:20:17 192.168.4.2 haproxy[7]: 87.183.41.77:50187 [25/Feb/2019:16:20:12.325] prod_http_in~ bk_ktest_sonst/nginx_sonst 0/0/1/0/1 200 1859 - - ---- 9/9/0/0/0 0/0 {Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0} {} "GET /media/pi_popup/1.1.0/magnific-popup.css?1550939704 HTTP/1.1" +Feb 25 16:20:18 192.168.4.2 haproxy[7]: 87.183.41.77:50189 [25/Feb/2019:16:20:12.331] prod_http_in~ bk_ktest_sonst/nginx_sonst 0/0/1/0/1 200 2496 - - ---- 9/9/0/0/0 0/0 {Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0} {} "GET /media/core/core.css?1550939640 HTTP/1.1" diff --git a/test/expected/test_json_format.sh_a6be47f1311ed92feaf303142fcb103deb80f456.err b/test/expected/test_cli.sh_cc06341dd560f927512e92c7c0985ed8b25827ae.err index e69de29..e69de29 100644 --- a/test/expected/test_json_format.sh_a6be47f1311ed92feaf303142fcb103deb80f456.err +++ b/test/expected/test_cli.sh_cc06341dd560f927512e92c7c0985ed8b25827ae.err diff --git a/test/expected/test_cli.sh_cc06341dd560f927512e92c7c0985ed8b25827ae.out b/test/expected/test_cli.sh_cc06341dd560f927512e92c7c0985ed8b25827ae.out new file mode 100644 index 0000000..22a87a3 --- /dev/null +++ b/test/expected/test_cli.sh_cc06341dd560f927512e92c7c0985ed8b25827ae.out @@ -0,0 +1,1187 @@ +/global/keymap_def_alt_hour_boundary -> default-keymap.json:5 +/global/keymap_def_alt_warning -> default-keymap.json:4 +/global/keymap_def_clear -> default-keymap.json:13 +/global/keymap_def_db_view -> default-keymap.json:8 +/global/keymap_def_hist_view -> default-keymap.json:9 +/global/keymap_def_next_mark -> default-keymap.json:16 +/global/keymap_def_next_section -> default-keymap.json:15 +/global/keymap_def_next_user_mark -> default-keymap.json:7 +/global/keymap_def_pop_view -> default-keymap.json:11 +/global/keymap_def_prev_section -> default-keymap.json:14 +/global/keymap_def_scroll_horiz -> default-keymap.json:6 +/global/keymap_def_text_view -> default-keymap.json:10 +/global/keymap_def_time_offset -> default-keymap.json:17 +/global/keymap_def_zoom -> default-keymap.json:12 +/log/annotations/com.vmware.vmacore.backtrace/condition -> root-config.json:23 +/log/annotations/com.vmware.vmacore.backtrace/description -> root-config.json:22 +/log/annotations/com.vmware.vmacore.backtrace/handler -> root-config.json:24 +/log/annotations/org.lnav.test/condition -> {test_dir}/configs/installed/anno-test.json:7 +/log/annotations/org.lnav.test/description -> {test_dir}/configs/installed/anno-test.json:6 +/log/annotations/org.lnav.test/handler -> {test_dir}/configs/installed/anno-test.json:8 +/log/date-time/convert-zoned-to-local -> root-config.json:18 +/tuning/archive-manager/cache-ttl -> root-config.json:31 +/tuning/archive-manager/min-free-space -> root-config.json:30 +/tuning/clipboard/impls/MacOS/find/read -> root-config.json:59 +/tuning/clipboard/impls/MacOS/find/write -> root-config.json:58 +/tuning/clipboard/impls/MacOS/general/read -> root-config.json:55 +/tuning/clipboard/impls/MacOS/general/write -> root-config.json:54 +/tuning/clipboard/impls/MacOS/test -> root-config.json:52 +/tuning/clipboard/impls/NeoVim/general/read -> root-config.json:87 +/tuning/clipboard/impls/NeoVim/general/write -> root-config.json:86 +/tuning/clipboard/impls/NeoVim/test -> root-config.json:84 +/tuning/clipboard/impls/Wayland/general/read -> root-config.json:66 +/tuning/clipboard/impls/Wayland/general/write -> root-config.json:65 +/tuning/clipboard/impls/Wayland/test -> root-config.json:63 +/tuning/clipboard/impls/Windows/general/write -> root-config.json:93 +/tuning/clipboard/impls/Windows/test -> root-config.json:91 +/tuning/clipboard/impls/X11-xclip/general/read -> root-config.json:73 +/tuning/clipboard/impls/X11-xclip/general/write -> root-config.json:72 +/tuning/clipboard/impls/X11-xclip/test -> root-config.json:70 +/tuning/clipboard/impls/tmux/general/read -> root-config.json:80 +/tuning/clipboard/impls/tmux/general/write -> root-config.json:79 +/tuning/clipboard/impls/tmux/test -> root-config.json:77 +/tuning/piper/max-size -> root-config.json:45 +/tuning/piper/rotations -> root-config.json:46 +/tuning/piper/ttl -> root-config.json:47 +/tuning/remote/ssh/command -> root-config.json:35 +/tuning/remote/ssh/config/BatchMode -> root-config.json:37 +/tuning/remote/ssh/config/ConnectTimeout -> root-config.json:38 +/tuning/remote/ssh/start-command -> root-config.json:40 +/tuning/remote/ssh/transfer-command -> root-config.json:41 +/tuning/url-scheme/docker-compose/handler -> root-config.json:103 +/tuning/url-scheme/docker/handler -> root-config.json:100 +/tuning/url-scheme/hw/handler -> {test_dir}/configs/installed/hw-url-handler.json:6 +/tuning/url-scheme/journald/handler -> root-config.json:106 +/tuning/url-scheme/piper/handler -> root-config.json:109 +/tuning/url-scheme/podman/handler -> root-config.json:112 +/ui/clock-format -> root-config.json:4 +/ui/default-colors -> root-config.json:6 +/ui/dim-text -> root-config.json:5 +/ui/keymap -> root-config.json:7 +/ui/keymap-defs/de/x21/command -> de-keymap.json:31 +/ui/keymap-defs/de/x22/command -> de-keymap.json:34 +/ui/keymap-defs/de/x24/command -> de-keymap.json:40 +/ui/keymap-defs/de/x25/command -> de-keymap.json:43 +/ui/keymap-defs/de/x26/command -> de-keymap.json:46 +/ui/keymap-defs/de/x31/command -> de-keymap.json:7 +/ui/keymap-defs/de/x32/command -> de-keymap.json:10 +/ui/keymap-defs/de/x33/command -> de-keymap.json:13 +/ui/keymap-defs/de/x34/command -> de-keymap.json:16 +/ui/keymap-defs/de/x35/command -> de-keymap.json:19 +/ui/keymap-defs/de/x36/command -> de-keymap.json:22 +/ui/keymap-defs/de/x37/command -> de-keymap.json:25 +/ui/keymap-defs/de/x38/command -> de-keymap.json:28 +/ui/keymap-defs/de/xc2xa7/command -> de-keymap.json:37 +/ui/keymap-defs/default/x04/command -> default-keymap.json:77 +/ui/keymap-defs/default/x06/command -> default-keymap.json:65 +/ui/keymap-defs/default/x0c/command -> default-keymap.json:68 +/ui/keymap-defs/default/x12/command -> default-keymap.json:71 +/ui/keymap-defs/default/x15/command -> default-keymap.json:80 +/ui/keymap-defs/default/x17/command -> default-keymap.json:146 +/ui/keymap-defs/default/x18/command -> default-keymap.json:74 +/ui/keymap-defs/default/x21/command -> default-keymap.json:47 +/ui/keymap-defs/default/x23/command -> default-keymap.json:53 +/ui/keymap-defs/default/x24/command -> default-keymap.json:56 +/ui/keymap-defs/default/x25/command -> default-keymap.json:59 +/ui/keymap-defs/default/x2f/command -> default-keymap.json:95 +/ui/keymap-defs/default/x31/command -> default-keymap.json:23 +/ui/keymap-defs/default/x32/command -> default-keymap.json:26 +/ui/keymap-defs/default/x33/command -> default-keymap.json:29 +/ui/keymap-defs/default/x34/command -> default-keymap.json:32 +/ui/keymap-defs/default/x35/command -> default-keymap.json:35 +/ui/keymap-defs/default/x36/command -> default-keymap.json:38 +/ui/keymap-defs/default/x37/command -> default-keymap.json:41 +/ui/keymap-defs/default/x38/command -> default-keymap.json:44 +/ui/keymap-defs/default/x3a/command -> default-keymap.json:89 +/ui/keymap-defs/default/x3b/command -> default-keymap.json:98 +/ui/keymap-defs/default/x3d/command -> default-keymap.json:83 +/ui/keymap-defs/default/x3f/command -> default-keymap.json:164 +/ui/keymap-defs/default/x40/command -> default-keymap.json:50 +/ui/keymap-defs/default/x45/alt-msg -> default-keymap.json:102 +/ui/keymap-defs/default/x45/command -> default-keymap.json:101 +/ui/keymap-defs/default/x4e/alt-msg -> default-keymap.json:129 +/ui/keymap-defs/default/x4e/command -> default-keymap.json:128 +/ui/keymap-defs/default/x50/alt-msg -> default-keymap.json:172 +/ui/keymap-defs/default/x50/command -> default-keymap.json:171 +/ui/keymap-defs/default/x51/command -> default-keymap.json:185 +/ui/keymap-defs/default/x54/alt-msg -> default-keymap.json:137 +/ui/keymap-defs/default/x54/command -> default-keymap.json:136 +/ui/keymap-defs/default/x55/command -> default-keymap.json:153 +/ui/keymap-defs/default/x57/alt-msg -> default-keymap.json:110 +/ui/keymap-defs/default/x57/command -> default-keymap.json:109 +/ui/keymap-defs/default/x58/command -> default-keymap.json:86 +/ui/keymap-defs/default/x5e/command -> default-keymap.json:62 +/ui/keymap-defs/default/x60/command -> default-keymap.json:176 +/ui/keymap-defs/default/x60/id -> default-keymap.json:175 +/ui/keymap-defs/default/x63/alt-msg -> default-keymap.json:118 +/ui/keymap-defs/default/x63/command -> default-keymap.json:117 +/ui/keymap-defs/default/x65/alt-msg -> default-keymap.json:106 +/ui/keymap-defs/default/x65/command -> default-keymap.json:105 +/ui/keymap-defs/default/x67/command -> default-keymap.json:121 +/ui/keymap-defs/default/x69/alt-msg -> default-keymap.json:168 +/ui/keymap-defs/default/x69/command -> default-keymap.json:167 +/ui/keymap-defs/default/x6d/alt-msg -> default-keymap.json:125 +/ui/keymap-defs/default/x6d/command -> default-keymap.json:124 +/ui/keymap-defs/default/x6e/alt-msg -> default-keymap.json:133 +/ui/keymap-defs/default/x6e/command -> default-keymap.json:132 +/ui/keymap-defs/default/x70/command -> default-keymap.json:140 +/ui/keymap-defs/default/x71/command -> default-keymap.json:182 +/ui/keymap-defs/default/x75/alt-msg -> default-keymap.json:150 +/ui/keymap-defs/default/x75/command -> default-keymap.json:149 +/ui/keymap-defs/default/x76/command -> default-keymap.json:179 +/ui/keymap-defs/default/x77/alt-msg -> default-keymap.json:114 +/ui/keymap-defs/default/x77/command -> default-keymap.json:113 +/ui/keymap-defs/default/x78/command -> default-keymap.json:143 +/ui/keymap-defs/default/x7b/alt-msg -> default-keymap.json:161 +/ui/keymap-defs/default/x7b/command -> default-keymap.json:160 +/ui/keymap-defs/default/x7c/command -> default-keymap.json:92 +/ui/keymap-defs/default/x7d/alt-msg -> default-keymap.json:157 +/ui/keymap-defs/default/x7d/command -> default-keymap.json:156 +/ui/keymap-defs/fr/x22/command -> fr-keymap.json:13 +/ui/keymap-defs/fr/x26/command -> fr-keymap.json:7 +/ui/keymap-defs/fr/x27/command -> fr-keymap.json:16 +/ui/keymap-defs/fr/x28/command -> fr-keymap.json:19 +/ui/keymap-defs/fr/x2d/command -> fr-keymap.json:22 +/ui/keymap-defs/fr/x31/command -> fr-keymap.json:28 +/ui/keymap-defs/fr/x32/command -> fr-keymap.json:31 +/ui/keymap-defs/fr/x33/command -> fr-keymap.json:34 +/ui/keymap-defs/fr/x34/command -> fr-keymap.json:37 +/ui/keymap-defs/fr/x35/command -> fr-keymap.json:40 +/ui/keymap-defs/fr/x36/command -> fr-keymap.json:43 +/ui/keymap-defs/fr/x37/command -> fr-keymap.json:46 +/ui/keymap-defs/fr/xc3xa8/command -> fr-keymap.json:25 +/ui/keymap-defs/fr/xc3xa9/command -> fr-keymap.json:10 +/ui/keymap-defs/sv/x22/command -> sv-keymap.json:7 +/ui/keymap-defs/sv/x26/command -> sv-keymap.json:16 +/ui/keymap-defs/sv/x2b/command -> sv-keymap.json:22 +/ui/keymap-defs/sv/x3d/command -> sv-keymap.json:19 +/ui/keymap-defs/sv/x60/command -> sv-keymap.json:26 +/ui/keymap-defs/sv/x60/id -> sv-keymap.json:25 +/ui/keymap-defs/sv/xc2xa4/command -> sv-keymap.json:10 +/ui/keymap-defs/sv/xc2xa7/command -> sv-keymap.json:30 +/ui/keymap-defs/sv/xc2xa7/id -> sv-keymap.json:29 +/ui/keymap-defs/sv/xe2x82xac/command -> sv-keymap.json:13 +/ui/keymap-defs/uk/x22/command -> uk-keymap.json:7 +/ui/keymap-defs/uk/xc2xa3/command -> uk-keymap.json:10 +/ui/keymap-defs/us/x21/command -> us-keymap.json:31 +/ui/keymap-defs/us/x23/command -> us-keymap.json:37 +/ui/keymap-defs/us/x24/command -> us-keymap.json:40 +/ui/keymap-defs/us/x25/command -> us-keymap.json:43 +/ui/keymap-defs/us/x31/command -> us-keymap.json:7 +/ui/keymap-defs/us/x32/command -> us-keymap.json:10 +/ui/keymap-defs/us/x33/command -> us-keymap.json:13 +/ui/keymap-defs/us/x34/command -> us-keymap.json:16 +/ui/keymap-defs/us/x35/command -> us-keymap.json:19 +/ui/keymap-defs/us/x36/command -> us-keymap.json:22 +/ui/keymap-defs/us/x37/command -> us-keymap.json:25 +/ui/keymap-defs/us/x38/command -> us-keymap.json:28 +/ui/keymap-defs/us/x40/command -> us-keymap.json:34 +/ui/keymap-defs/us/x5e/command -> us-keymap.json:46 +/ui/mouse/mode -> root-config.json:10 +/ui/movement/mode -> root-config.json:13 +/ui/theme -> root-config.json:8 +/ui/theme-defs/default/highlights/colors/pattern -> default-theme.json:295 +/ui/theme-defs/default/highlights/colors/style/color -> default-theme.json:297 +/ui/theme-defs/default/highlights/ipv4/pattern -> default-theme.json:301 +/ui/theme-defs/default/highlights/ipv4/style/color -> default-theme.json:303 +/ui/theme-defs/default/highlights/xml-decl/pattern -> default-theme.json:313 +/ui/theme-defs/default/highlights/xml-decl/style/color -> default-theme.json:315 +/ui/theme-defs/default/highlights/xml/pattern -> default-theme.json:307 +/ui/theme-defs/default/highlights/xml/style/color -> default-theme.json:309 +/ui/theme-defs/default/log-level-styles/critical/color -> default-theme.json:287 +/ui/theme-defs/default/log-level-styles/error/color -> default-theme.json:284 +/ui/theme-defs/default/log-level-styles/fatal/color -> default-theme.json:290 +/ui/theme-defs/default/log-level-styles/warning/color -> default-theme.json:281 +/ui/theme-defs/default/status-styles/active/background-color -> default-theme.json:254 +/ui/theme-defs/default/status-styles/active/color -> default-theme.json:253 +/ui/theme-defs/default/status-styles/alert/background-color -> default-theme.json:250 +/ui/theme-defs/default/status-styles/alert/color -> default-theme.json:249 +/ui/theme-defs/default/status-styles/disabled-title/background-color -> default-theme.json:233 +/ui/theme-defs/default/status-styles/disabled-title/bold -> default-theme.json:234 +/ui/theme-defs/default/status-styles/disabled-title/color -> default-theme.json:232 +/ui/theme-defs/default/status-styles/hotkey/bold -> default-theme.json:276 +/ui/theme-defs/default/status-styles/hotkey/color -> default-theme.json:274 +/ui/theme-defs/default/status-styles/hotkey/underline -> default-theme.json:275 +/ui/theme-defs/default/status-styles/inactive-alert/background-color -> default-theme.json:266 +/ui/theme-defs/default/status-styles/inactive-alert/color -> default-theme.json:265 +/ui/theme-defs/default/status-styles/inactive/background-color -> default-theme.json:262 +/ui/theme-defs/default/status-styles/inactive/color -> default-theme.json:261 +/ui/theme-defs/default/status-styles/info/background-color -> default-theme.json:258 +/ui/theme-defs/default/status-styles/info/color -> default-theme.json:257 +/ui/theme-defs/default/status-styles/subtitle/background-color -> default-theme.json:238 +/ui/theme-defs/default/status-styles/subtitle/color -> default-theme.json:237 +/ui/theme-defs/default/status-styles/text/background-color -> default-theme.json:242 +/ui/theme-defs/default/status-styles/text/color -> default-theme.json:241 +/ui/theme-defs/default/status-styles/title-hotkey/background-color -> default-theme.json:270 +/ui/theme-defs/default/status-styles/title-hotkey/color -> default-theme.json:269 +/ui/theme-defs/default/status-styles/title-hotkey/underline -> default-theme.json:271 +/ui/theme-defs/default/status-styles/title/background-color -> default-theme.json:228 +/ui/theme-defs/default/status-styles/title/bold -> default-theme.json:229 +/ui/theme-defs/default/status-styles/title/color -> default-theme.json:227 +/ui/theme-defs/default/status-styles/warn/background-color -> default-theme.json:246 +/ui/theme-defs/default/status-styles/warn/color -> default-theme.json:245 +/ui/theme-defs/default/styles/adjusted-time/color -> default-theme.json:55 +/ui/theme-defs/default/styles/alt-text/background-color -> default-theme.json:22 +/ui/theme-defs/default/styles/breadcrumb/bold -> default-theme.json:114 +/ui/theme-defs/default/styles/breadcrumb/color -> default-theme.json:113 +/ui/theme-defs/default/styles/cursor-line/background-color -> default-theme.json:46 +/ui/theme-defs/default/styles/cursor-line/bold -> default-theme.json:47 +/ui/theme-defs/default/styles/cursor-line/color -> default-theme.json:45 +/ui/theme-defs/default/styles/cursor-line/underline -> default-theme.json:48 +/ui/theme-defs/default/styles/disabled-cursor-line/background-color -> default-theme.json:52 +/ui/theme-defs/default/styles/disabled-cursor-line/color -> default-theme.json:51 +/ui/theme-defs/default/styles/disabled-focused/background-color -> default-theme.json:83 +/ui/theme-defs/default/styles/disabled-focused/color -> default-theme.json:82 +/ui/theme-defs/default/styles/error/bold -> default-theme.json:34 +/ui/theme-defs/default/styles/error/color -> default-theme.json:33 +/ui/theme-defs/default/styles/file-offset/color -> default-theme.json:64 +/ui/theme-defs/default/styles/focused/background-color -> default-theme.json:79 +/ui/theme-defs/default/styles/focused/color -> default-theme.json:78 +/ui/theme-defs/default/styles/footnote-border/background-color -> default-theme.json:131 +/ui/theme-defs/default/styles/footnote-border/color -> default-theme.json:130 +/ui/theme-defs/default/styles/footnote-text/background-color -> default-theme.json:135 +/ui/theme-defs/default/styles/footnote-text/color -> default-theme.json:134 +/ui/theme-defs/default/styles/h1/underline -> default-theme.json:86 +/ui/theme-defs/default/styles/h2/underline -> default-theme.json:89 +/ui/theme-defs/default/styles/h3/underline -> default-theme.json:92 +/ui/theme-defs/default/styles/h4/underline -> default-theme.json:95 +/ui/theme-defs/default/styles/h5/underline -> default-theme.json:98 +/ui/theme-defs/default/styles/h6/underline -> default-theme.json:101 +/ui/theme-defs/default/styles/hidden/bold -> default-theme.json:42 +/ui/theme-defs/default/styles/hidden/color -> default-theme.json:41 +/ui/theme-defs/default/styles/hr/color -> default-theme.json:104 +/ui/theme-defs/default/styles/hyperlink/underline -> default-theme.json:107 +/ui/theme-defs/default/styles/identifier/background-color -> default-theme.json:18 +/ui/theme-defs/default/styles/identifier/color -> default-theme.json:19 +/ui/theme-defs/default/styles/indent-guide/color -> default-theme.json:141 +/ui/theme-defs/default/styles/info/bold -> default-theme.json:30 +/ui/theme-defs/default/styles/info/color -> default-theme.json:29 +/ui/theme-defs/default/styles/invalid-msg/color -> default-theme.json:67 +/ui/theme-defs/default/styles/list-glyph/color -> default-theme.json:110 +/ui/theme-defs/default/styles/offset-time/color -> default-theme.json:61 +/ui/theme-defs/default/styles/ok/bold -> default-theme.json:26 +/ui/theme-defs/default/styles/ok/color -> default-theme.json:25 +/ui/theme-defs/default/styles/popup/background-color -> default-theme.json:71 +/ui/theme-defs/default/styles/popup/color -> default-theme.json:70 +/ui/theme-defs/default/styles/quote-border/background-color -> default-theme.json:124 +/ui/theme-defs/default/styles/quote-border/color -> default-theme.json:123 +/ui/theme-defs/default/styles/quoted-text/background-color -> default-theme.json:127 +/ui/theme-defs/default/styles/scrollbar/background-color -> default-theme.json:75 +/ui/theme-defs/default/styles/scrollbar/color -> default-theme.json:74 +/ui/theme-defs/default/styles/selected-text/background-color -> default-theme.json:15 +/ui/theme-defs/default/styles/skewed-time/color -> default-theme.json:58 +/ui/theme-defs/default/styles/snippet-border/color -> default-theme.json:138 +/ui/theme-defs/default/styles/table-border/color -> default-theme.json:117 +/ui/theme-defs/default/styles/table-header/bold -> default-theme.json:120 +/ui/theme-defs/default/styles/text/background-color -> default-theme.json:12 +/ui/theme-defs/default/styles/text/color -> default-theme.json:11 +/ui/theme-defs/default/styles/warning/bold -> default-theme.json:38 +/ui/theme-defs/default/styles/warning/color -> default-theme.json:37 +/ui/theme-defs/default/syntax-styles/ascii-control/color -> default-theme.json:207 +/ui/theme-defs/default/syntax-styles/code-border/background-color -> default-theme.json:155 +/ui/theme-defs/default/syntax-styles/code-border/color -> default-theme.json:154 +/ui/theme-defs/default/syntax-styles/comment/color -> default-theme.json:165 +/ui/theme-defs/default/syntax-styles/diff-add/color -> default-theme.json:186 +/ui/theme-defs/default/syntax-styles/diff-delete/color -> default-theme.json:183 +/ui/theme-defs/default/syntax-styles/diff-section/color -> default-theme.json:189 +/ui/theme-defs/default/syntax-styles/doc-directive/color -> default-theme.json:168 +/ui/theme-defs/default/syntax-styles/file/color -> default-theme.json:201 +/ui/theme-defs/default/syntax-styles/function/color -> default-theme.json:216 +/ui/theme-defs/default/syntax-styles/inline-code/background-color -> default-theme.json:147 +/ui/theme-defs/default/syntax-styles/inline-code/color -> default-theme.json:146 +/ui/theme-defs/default/syntax-styles/keyword/color -> default-theme.json:158 +/ui/theme-defs/default/syntax-styles/non-ascii/color -> default-theme.json:210 +/ui/theme-defs/default/syntax-styles/null/color -> default-theme.json:204 +/ui/theme-defs/default/syntax-styles/number/bold -> default-theme.json:213 +/ui/theme-defs/default/syntax-styles/quoted-code/background-color -> default-theme.json:151 +/ui/theme-defs/default/syntax-styles/quoted-code/color -> default-theme.json:150 +/ui/theme-defs/default/syntax-styles/re-repeat/color -> default-theme.json:180 +/ui/theme-defs/default/syntax-styles/re-special/color -> default-theme.json:177 +/ui/theme-defs/default/syntax-styles/separators-references-accessors/color -> default-theme.json:219 +/ui/theme-defs/default/syntax-styles/spectrogram-high/background-color -> default-theme.json:198 +/ui/theme-defs/default/syntax-styles/spectrogram-low/background-color -> default-theme.json:192 +/ui/theme-defs/default/syntax-styles/spectrogram-medium/background-color -> default-theme.json:195 +/ui/theme-defs/default/syntax-styles/string/bold -> default-theme.json:162 +/ui/theme-defs/default/syntax-styles/string/color -> default-theme.json:161 +/ui/theme-defs/default/syntax-styles/symbol/color -> default-theme.json:174 +/ui/theme-defs/default/syntax-styles/type/color -> default-theme.json:222 +/ui/theme-defs/default/syntax-styles/variable/color -> default-theme.json:171 +/ui/theme-defs/default/vars/semantic_highlight_color -> default-theme.json:7 +/ui/theme-defs/dracula/log-level-styles/critical/color -> dracula.json:303 +/ui/theme-defs/dracula/log-level-styles/error/color -> dracula.json:300 +/ui/theme-defs/dracula/log-level-styles/fatal/color -> dracula.json:306 +/ui/theme-defs/dracula/log-level-styles/warning/color -> dracula.json:297 +/ui/theme-defs/dracula/status-styles/active/background-color -> dracula.json:281 +/ui/theme-defs/dracula/status-styles/active/color -> dracula.json:280 +/ui/theme-defs/dracula/status-styles/alert/background-color -> dracula.json:277 +/ui/theme-defs/dracula/status-styles/alert/color -> dracula.json:276 +/ui/theme-defs/dracula/status-styles/disabled-title/background-color -> dracula.json:241 +/ui/theme-defs/dracula/status-styles/disabled-title/bold -> dracula.json:242 +/ui/theme-defs/dracula/status-styles/disabled-title/color -> dracula.json:240 +/ui/theme-defs/dracula/status-styles/hotkey/color -> dracula.json:264 +/ui/theme-defs/dracula/status-styles/hotkey/underline -> dracula.json:265 +/ui/theme-defs/dracula/status-styles/inactive-alert/background-color -> dracula.json:289 +/ui/theme-defs/dracula/status-styles/inactive-alert/color -> dracula.json:288 +/ui/theme-defs/dracula/status-styles/inactive/background-color -> dracula.json:285 +/ui/theme-defs/dracula/status-styles/inactive/color -> dracula.json:284 +/ui/theme-defs/dracula/status-styles/info/background-color -> dracula.json:256 +/ui/theme-defs/dracula/status-styles/info/color -> dracula.json:255 +/ui/theme-defs/dracula/status-styles/subtitle/background-color -> dracula.json:251 +/ui/theme-defs/dracula/status-styles/subtitle/bold -> dracula.json:252 +/ui/theme-defs/dracula/status-styles/subtitle/color -> dracula.json:250 +/ui/theme-defs/dracula/status-styles/suggestion/color -> dracula.json:292 +/ui/theme-defs/dracula/status-styles/text/background-color -> dracula.json:269 +/ui/theme-defs/dracula/status-styles/text/color -> dracula.json:268 +/ui/theme-defs/dracula/status-styles/title-hotkey/background-color -> dracula.json:260 +/ui/theme-defs/dracula/status-styles/title-hotkey/color -> dracula.json:259 +/ui/theme-defs/dracula/status-styles/title-hotkey/underline -> dracula.json:261 +/ui/theme-defs/dracula/status-styles/title/background-color -> dracula.json:246 +/ui/theme-defs/dracula/status-styles/title/bold -> dracula.json:247 +/ui/theme-defs/dracula/status-styles/title/color -> dracula.json:245 +/ui/theme-defs/dracula/status-styles/warn/background-color -> dracula.json:273 +/ui/theme-defs/dracula/status-styles/warn/color -> dracula.json:272 +/ui/theme-defs/dracula/styles/adjusted-time/color -> dracula.json:64 +/ui/theme-defs/dracula/styles/alt-text/background-color -> dracula.json:32 +/ui/theme-defs/dracula/styles/breadcrumb/bold -> dracula.json:125 +/ui/theme-defs/dracula/styles/breadcrumb/color -> dracula.json:124 +/ui/theme-defs/dracula/styles/cursor-line/background-color -> dracula.json:56 +/ui/theme-defs/dracula/styles/cursor-line/bold -> dracula.json:57 +/ui/theme-defs/dracula/styles/cursor-line/color -> dracula.json:55 +/ui/theme-defs/dracula/styles/disabled-cursor-line/background-color -> dracula.json:61 +/ui/theme-defs/dracula/styles/disabled-cursor-line/color -> dracula.json:60 +/ui/theme-defs/dracula/styles/disabled-focused/background-color -> dracula.json:84 +/ui/theme-defs/dracula/styles/disabled-focused/color -> dracula.json:83 +/ui/theme-defs/dracula/styles/error/bold -> dracula.json:44 +/ui/theme-defs/dracula/styles/error/color -> dracula.json:43 +/ui/theme-defs/dracula/styles/file-offset/color -> dracula.json:73 +/ui/theme-defs/dracula/styles/focused/background-color -> dracula.json:80 +/ui/theme-defs/dracula/styles/focused/color -> dracula.json:79 +/ui/theme-defs/dracula/styles/footnote-border/background-color -> dracula.json:143 +/ui/theme-defs/dracula/styles/footnote-border/color -> dracula.json:142 +/ui/theme-defs/dracula/styles/footnote-text/background-color -> dracula.json:147 +/ui/theme-defs/dracula/styles/footnote-text/color -> dracula.json:146 +/ui/theme-defs/dracula/styles/h1/bold -> dracula.json:96 +/ui/theme-defs/dracula/styles/h1/color -> dracula.json:95 +/ui/theme-defs/dracula/styles/h2/color -> dracula.json:99 +/ui/theme-defs/dracula/styles/h2/underline -> dracula.json:100 +/ui/theme-defs/dracula/styles/h3/color -> dracula.json:103 +/ui/theme-defs/dracula/styles/h4/underline -> dracula.json:106 +/ui/theme-defs/dracula/styles/h5/underline -> dracula.json:109 +/ui/theme-defs/dracula/styles/h6/underline -> dracula.json:112 +/ui/theme-defs/dracula/styles/hidden/bold -> dracula.json:52 +/ui/theme-defs/dracula/styles/hidden/color -> dracula.json:51 +/ui/theme-defs/dracula/styles/hr/color -> dracula.json:115 +/ui/theme-defs/dracula/styles/hyperlink/underline -> dracula.json:118 +/ui/theme-defs/dracula/styles/identifier/color -> dracula.json:22 +/ui/theme-defs/dracula/styles/indent-guide/color -> dracula.json:153 +/ui/theme-defs/dracula/styles/info/bold -> dracula.json:40 +/ui/theme-defs/dracula/styles/info/color -> dracula.json:39 +/ui/theme-defs/dracula/styles/invalid-msg/color -> dracula.json:76 +/ui/theme-defs/dracula/styles/list-glyph/color -> dracula.json:121 +/ui/theme-defs/dracula/styles/offset-time/color -> dracula.json:70 +/ui/theme-defs/dracula/styles/ok/bold -> dracula.json:36 +/ui/theme-defs/dracula/styles/ok/color -> dracula.json:35 +/ui/theme-defs/dracula/styles/popup/background-color -> dracula.json:88 +/ui/theme-defs/dracula/styles/popup/color -> dracula.json:87 +/ui/theme-defs/dracula/styles/quote-border/background-color -> dracula.json:135 +/ui/theme-defs/dracula/styles/quote-border/color -> dracula.json:134 +/ui/theme-defs/dracula/styles/quoted-text/background-color -> dracula.json:139 +/ui/theme-defs/dracula/styles/quoted-text/color -> dracula.json:138 +/ui/theme-defs/dracula/styles/scrollbar/background-color -> dracula.json:92 +/ui/theme-defs/dracula/styles/scrollbar/color -> dracula.json:91 +/ui/theme-defs/dracula/styles/selected-text/background-color -> dracula.json:29 +/ui/theme-defs/dracula/styles/skewed-time/color -> dracula.json:67 +/ui/theme-defs/dracula/styles/snippet-border/color -> dracula.json:150 +/ui/theme-defs/dracula/styles/table-border/color -> dracula.json:128 +/ui/theme-defs/dracula/styles/table-header/bold -> dracula.json:131 +/ui/theme-defs/dracula/styles/text/background-color -> dracula.json:26 +/ui/theme-defs/dracula/styles/text/color -> dracula.json:25 +/ui/theme-defs/dracula/styles/warning/bold -> dracula.json:48 +/ui/theme-defs/dracula/styles/warning/color -> dracula.json:47 +/ui/theme-defs/dracula/syntax-styles/ascii-control/color -> dracula.json:220 +/ui/theme-defs/dracula/syntax-styles/code-border/background-color -> dracula.json:167 +/ui/theme-defs/dracula/syntax-styles/code-border/color -> dracula.json:166 +/ui/theme-defs/dracula/syntax-styles/comment/color -> dracula.json:178 +/ui/theme-defs/dracula/syntax-styles/diff-add/color -> dracula.json:199 +/ui/theme-defs/dracula/syntax-styles/diff-delete/color -> dracula.json:196 +/ui/theme-defs/dracula/syntax-styles/diff-section/color -> dracula.json:202 +/ui/theme-defs/dracula/syntax-styles/doc-directive/color -> dracula.json:181 +/ui/theme-defs/dracula/syntax-styles/file/color -> dracula.json:214 +/ui/theme-defs/dracula/syntax-styles/function/color -> dracula.json:229 +/ui/theme-defs/dracula/syntax-styles/inline-code/background-color -> dracula.json:159 +/ui/theme-defs/dracula/syntax-styles/inline-code/color -> dracula.json:158 +/ui/theme-defs/dracula/syntax-styles/keyword/bold -> dracula.json:171 +/ui/theme-defs/dracula/syntax-styles/keyword/color -> dracula.json:170 +/ui/theme-defs/dracula/syntax-styles/non-ascii/color -> dracula.json:223 +/ui/theme-defs/dracula/syntax-styles/null/color -> dracula.json:217 +/ui/theme-defs/dracula/syntax-styles/number/bold -> dracula.json:226 +/ui/theme-defs/dracula/syntax-styles/quoted-code/background-color -> dracula.json:163 +/ui/theme-defs/dracula/syntax-styles/quoted-code/color -> dracula.json:162 +/ui/theme-defs/dracula/syntax-styles/re-repeat/color -> dracula.json:193 +/ui/theme-defs/dracula/syntax-styles/re-special/color -> dracula.json:190 +/ui/theme-defs/dracula/syntax-styles/separators-references-accessors/color -> dracula.json:232 +/ui/theme-defs/dracula/syntax-styles/spectrogram-high/background-color -> dracula.json:211 +/ui/theme-defs/dracula/syntax-styles/spectrogram-low/background-color -> dracula.json:205 +/ui/theme-defs/dracula/syntax-styles/spectrogram-medium/background-color -> dracula.json:208 +/ui/theme-defs/dracula/syntax-styles/string/bold -> dracula.json:175 +/ui/theme-defs/dracula/syntax-styles/string/color -> dracula.json:174 +/ui/theme-defs/dracula/syntax-styles/symbol/color -> dracula.json:187 +/ui/theme-defs/dracula/syntax-styles/type/color -> dracula.json:235 +/ui/theme-defs/dracula/syntax-styles/variable/color -> dracula.json:184 +/ui/theme-defs/dracula/vars/black -> dracula.json:7 +/ui/theme-defs/dracula/vars/blue -> dracula.json:11 +/ui/theme-defs/dracula/vars/cyan -> dracula.json:13 +/ui/theme-defs/dracula/vars/green -> dracula.json:9 +/ui/theme-defs/dracula/vars/magenta -> dracula.json:12 +/ui/theme-defs/dracula/vars/orange -> dracula.json:15 +/ui/theme-defs/dracula/vars/pink -> dracula.json:17 +/ui/theme-defs/dracula/vars/purple -> dracula.json:16 +/ui/theme-defs/dracula/vars/red -> dracula.json:8 +/ui/theme-defs/dracula/vars/semantic_highlight_color -> dracula.json:18 +/ui/theme-defs/dracula/vars/white -> dracula.json:14 +/ui/theme-defs/dracula/vars/yellow -> dracula.json:10 +/ui/theme-defs/eldar/log-level-styles/critical/color -> eldar.json:299 +/ui/theme-defs/eldar/log-level-styles/error/color -> eldar.json:296 +/ui/theme-defs/eldar/log-level-styles/fatal/color -> eldar.json:302 +/ui/theme-defs/eldar/log-level-styles/warning/color -> eldar.json:293 +/ui/theme-defs/eldar/status-styles/active/background-color -> eldar.json:264 +/ui/theme-defs/eldar/status-styles/active/color -> eldar.json:263 +/ui/theme-defs/eldar/status-styles/alert/background-color -> eldar.json:260 +/ui/theme-defs/eldar/status-styles/alert/color -> eldar.json:259 +/ui/theme-defs/eldar/status-styles/disabled-title/background-color -> eldar.json:237 +/ui/theme-defs/eldar/status-styles/disabled-title/bold -> eldar.json:238 +/ui/theme-defs/eldar/status-styles/disabled-title/color -> eldar.json:236 +/ui/theme-defs/eldar/status-styles/hotkey/color -> eldar.json:276 +/ui/theme-defs/eldar/status-styles/hotkey/underline -> eldar.json:277 +/ui/theme-defs/eldar/status-styles/inactive-alert/background-color -> eldar.json:285 +/ui/theme-defs/eldar/status-styles/inactive-alert/color -> eldar.json:284 +/ui/theme-defs/eldar/status-styles/inactive/background-color -> eldar.json:281 +/ui/theme-defs/eldar/status-styles/inactive/color -> eldar.json:280 +/ui/theme-defs/eldar/status-styles/info/background-color -> eldar.json:268 +/ui/theme-defs/eldar/status-styles/info/color -> eldar.json:267 +/ui/theme-defs/eldar/status-styles/subtitle/background-color -> eldar.json:247 +/ui/theme-defs/eldar/status-styles/subtitle/bold -> eldar.json:248 +/ui/theme-defs/eldar/status-styles/subtitle/color -> eldar.json:246 +/ui/theme-defs/eldar/status-styles/suggestion/color -> eldar.json:288 +/ui/theme-defs/eldar/status-styles/text/background-color -> eldar.json:252 +/ui/theme-defs/eldar/status-styles/text/color -> eldar.json:251 +/ui/theme-defs/eldar/status-styles/title-hotkey/background-color -> eldar.json:272 +/ui/theme-defs/eldar/status-styles/title-hotkey/color -> eldar.json:271 +/ui/theme-defs/eldar/status-styles/title-hotkey/underline -> eldar.json:273 +/ui/theme-defs/eldar/status-styles/title/background-color -> eldar.json:242 +/ui/theme-defs/eldar/status-styles/title/bold -> eldar.json:243 +/ui/theme-defs/eldar/status-styles/title/color -> eldar.json:241 +/ui/theme-defs/eldar/status-styles/warn/background-color -> eldar.json:256 +/ui/theme-defs/eldar/status-styles/warn/color -> eldar.json:255 +/ui/theme-defs/eldar/styles/adjusted-time/color -> eldar.json:64 +/ui/theme-defs/eldar/styles/alt-text/bold -> eldar.json:31 +/ui/theme-defs/eldar/styles/breadcrumb/bold -> eldar.json:123 +/ui/theme-defs/eldar/styles/breadcrumb/color -> eldar.json:122 +/ui/theme-defs/eldar/styles/cursor-line/background-color -> eldar.json:55 +/ui/theme-defs/eldar/styles/cursor-line/bold -> eldar.json:56 +/ui/theme-defs/eldar/styles/cursor-line/color -> eldar.json:54 +/ui/theme-defs/eldar/styles/cursor-line/underline -> eldar.json:57 +/ui/theme-defs/eldar/styles/disabled-cursor-line/background-color -> eldar.json:61 +/ui/theme-defs/eldar/styles/disabled-cursor-line/color -> eldar.json:60 +/ui/theme-defs/eldar/styles/disabled-focused/background-color -> eldar.json:84 +/ui/theme-defs/eldar/styles/disabled-focused/color -> eldar.json:83 +/ui/theme-defs/eldar/styles/error/bold -> eldar.json:43 +/ui/theme-defs/eldar/styles/error/color -> eldar.json:42 +/ui/theme-defs/eldar/styles/file-offset/color -> eldar.json:73 +/ui/theme-defs/eldar/styles/focused/background-color -> eldar.json:80 +/ui/theme-defs/eldar/styles/focused/color -> eldar.json:79 +/ui/theme-defs/eldar/styles/footnote-border/background-color -> eldar.json:140 +/ui/theme-defs/eldar/styles/footnote-border/color -> eldar.json:139 +/ui/theme-defs/eldar/styles/footnote-text/background-color -> eldar.json:144 +/ui/theme-defs/eldar/styles/footnote-text/color -> eldar.json:143 +/ui/theme-defs/eldar/styles/h1/underline -> eldar.json:95 +/ui/theme-defs/eldar/styles/h2/underline -> eldar.json:98 +/ui/theme-defs/eldar/styles/h3/underline -> eldar.json:101 +/ui/theme-defs/eldar/styles/h4/underline -> eldar.json:104 +/ui/theme-defs/eldar/styles/h5/underline -> eldar.json:107 +/ui/theme-defs/eldar/styles/h6/underline -> eldar.json:110 +/ui/theme-defs/eldar/styles/hidden/bold -> eldar.json:51 +/ui/theme-defs/eldar/styles/hidden/color -> eldar.json:50 +/ui/theme-defs/eldar/styles/hr/color -> eldar.json:113 +/ui/theme-defs/eldar/styles/hyperlink/underline -> eldar.json:116 +/ui/theme-defs/eldar/styles/identifier/background-color -> eldar.json:20 +/ui/theme-defs/eldar/styles/identifier/color -> eldar.json:21 +/ui/theme-defs/eldar/styles/indent-guide/color -> eldar.json:150 +/ui/theme-defs/eldar/styles/info/bold -> eldar.json:39 +/ui/theme-defs/eldar/styles/info/color -> eldar.json:38 +/ui/theme-defs/eldar/styles/invalid-msg/color -> eldar.json:76 +/ui/theme-defs/eldar/styles/list-glyph/color -> eldar.json:119 +/ui/theme-defs/eldar/styles/offset-time/color -> eldar.json:70 +/ui/theme-defs/eldar/styles/ok/bold -> eldar.json:35 +/ui/theme-defs/eldar/styles/ok/color -> eldar.json:34 +/ui/theme-defs/eldar/styles/popup/background-color -> eldar.json:88 +/ui/theme-defs/eldar/styles/popup/color -> eldar.json:87 +/ui/theme-defs/eldar/styles/quote-border/background-color -> eldar.json:133 +/ui/theme-defs/eldar/styles/quote-border/color -> eldar.json:132 +/ui/theme-defs/eldar/styles/quoted-text/background-color -> eldar.json:136 +/ui/theme-defs/eldar/styles/scrollbar/background-color -> eldar.json:92 +/ui/theme-defs/eldar/styles/scrollbar/color -> eldar.json:91 +/ui/theme-defs/eldar/styles/selected-text/background-color -> eldar.json:28 +/ui/theme-defs/eldar/styles/skewed-time/color -> eldar.json:67 +/ui/theme-defs/eldar/styles/snippet-border/color -> eldar.json:147 +/ui/theme-defs/eldar/styles/table-border/color -> eldar.json:126 +/ui/theme-defs/eldar/styles/table-header/bold -> eldar.json:129 +/ui/theme-defs/eldar/styles/text/background-color -> eldar.json:25 +/ui/theme-defs/eldar/styles/text/color -> eldar.json:24 +/ui/theme-defs/eldar/styles/warning/bold -> eldar.json:47 +/ui/theme-defs/eldar/styles/warning/color -> eldar.json:46 +/ui/theme-defs/eldar/syntax-styles/ascii-control/color -> eldar.json:219 +/ui/theme-defs/eldar/syntax-styles/code-border/background-color -> eldar.json:164 +/ui/theme-defs/eldar/syntax-styles/code-border/color -> eldar.json:163 +/ui/theme-defs/eldar/syntax-styles/comment/color -> eldar.json:174 +/ui/theme-defs/eldar/syntax-styles/diff-add/color -> eldar.json:198 +/ui/theme-defs/eldar/syntax-styles/diff-delete/color -> eldar.json:195 +/ui/theme-defs/eldar/syntax-styles/diff-section/color -> eldar.json:201 +/ui/theme-defs/eldar/syntax-styles/doc-directive/color -> eldar.json:177 +/ui/theme-defs/eldar/syntax-styles/file/color -> eldar.json:213 +/ui/theme-defs/eldar/syntax-styles/function/color -> eldar.json:225 +/ui/theme-defs/eldar/syntax-styles/inline-code/background-color -> eldar.json:156 +/ui/theme-defs/eldar/syntax-styles/inline-code/color -> eldar.json:155 +/ui/theme-defs/eldar/syntax-styles/keyword/color -> eldar.json:167 +/ui/theme-defs/eldar/syntax-styles/non-ascii/color -> eldar.json:222 +/ui/theme-defs/eldar/syntax-styles/null/color -> eldar.json:216 +/ui/theme-defs/eldar/syntax-styles/number/color -> eldar.json:180 +/ui/theme-defs/eldar/syntax-styles/quoted-code/background-color -> eldar.json:160 +/ui/theme-defs/eldar/syntax-styles/quoted-code/color -> eldar.json:159 +/ui/theme-defs/eldar/syntax-styles/re-repeat/color -> eldar.json:192 +/ui/theme-defs/eldar/syntax-styles/re-special/color -> eldar.json:189 +/ui/theme-defs/eldar/syntax-styles/separators-references-accessors/color -> eldar.json:228 +/ui/theme-defs/eldar/syntax-styles/spectrogram-high/background-color -> eldar.json:210 +/ui/theme-defs/eldar/syntax-styles/spectrogram-low/background-color -> eldar.json:204 +/ui/theme-defs/eldar/syntax-styles/spectrogram-medium/background-color -> eldar.json:207 +/ui/theme-defs/eldar/syntax-styles/string/bold -> eldar.json:171 +/ui/theme-defs/eldar/syntax-styles/string/color -> eldar.json:170 +/ui/theme-defs/eldar/syntax-styles/symbol/color -> eldar.json:186 +/ui/theme-defs/eldar/syntax-styles/type/color -> eldar.json:231 +/ui/theme-defs/eldar/syntax-styles/variable/color -> eldar.json:183 +/ui/theme-defs/eldar/vars/black -> eldar.json:7 +/ui/theme-defs/eldar/vars/blue -> eldar.json:11 +/ui/theme-defs/eldar/vars/cyan -> eldar.json:12 +/ui/theme-defs/eldar/vars/green -> eldar.json:13 +/ui/theme-defs/eldar/vars/magenta -> eldar.json:10 +/ui/theme-defs/eldar/vars/orange -> eldar.json:15 +/ui/theme-defs/eldar/vars/red -> eldar.json:9 +/ui/theme-defs/eldar/vars/semantic_highlight_color -> eldar.json:16 +/ui/theme-defs/eldar/vars/white -> eldar.json:14 +/ui/theme-defs/eldar/vars/yellow -> eldar.json:8 +/ui/theme-defs/grayscale/log-level-styles/critical/color -> grayscale.json:235 +/ui/theme-defs/grayscale/log-level-styles/error/color -> grayscale.json:232 +/ui/theme-defs/grayscale/log-level-styles/fatal/color -> grayscale.json:238 +/ui/theme-defs/grayscale/log-level-styles/warning/color -> grayscale.json:229 +/ui/theme-defs/grayscale/status-styles/active/background-color -> grayscale.json:209 +/ui/theme-defs/grayscale/status-styles/active/color -> grayscale.json:208 +/ui/theme-defs/grayscale/status-styles/alert/background-color -> grayscale.json:205 +/ui/theme-defs/grayscale/status-styles/alert/color -> grayscale.json:204 +/ui/theme-defs/grayscale/status-styles/disabled-title/background-color -> grayscale.json:173 +/ui/theme-defs/grayscale/status-styles/disabled-title/bold -> grayscale.json:174 +/ui/theme-defs/grayscale/status-styles/disabled-title/color -> grayscale.json:172 +/ui/theme-defs/grayscale/status-styles/hotkey/color -> grayscale.json:192 +/ui/theme-defs/grayscale/status-styles/hotkey/underline -> grayscale.json:193 +/ui/theme-defs/grayscale/status-styles/inactive-alert/background-color -> grayscale.json:221 +/ui/theme-defs/grayscale/status-styles/inactive-alert/color -> grayscale.json:220 +/ui/theme-defs/grayscale/status-styles/inactive/background-color -> grayscale.json:217 +/ui/theme-defs/grayscale/status-styles/inactive/color -> grayscale.json:216 +/ui/theme-defs/grayscale/status-styles/info/background-color -> grayscale.json:213 +/ui/theme-defs/grayscale/status-styles/info/color -> grayscale.json:212 +/ui/theme-defs/grayscale/status-styles/subtitle/background-color -> grayscale.json:183 +/ui/theme-defs/grayscale/status-styles/subtitle/bold -> grayscale.json:184 +/ui/theme-defs/grayscale/status-styles/subtitle/color -> grayscale.json:182 +/ui/theme-defs/grayscale/status-styles/suggestion/color -> grayscale.json:224 +/ui/theme-defs/grayscale/status-styles/text/background-color -> grayscale.json:197 +/ui/theme-defs/grayscale/status-styles/text/color -> grayscale.json:196 +/ui/theme-defs/grayscale/status-styles/title-hotkey/background-color -> grayscale.json:188 +/ui/theme-defs/grayscale/status-styles/title-hotkey/color -> grayscale.json:187 +/ui/theme-defs/grayscale/status-styles/title-hotkey/underline -> grayscale.json:189 +/ui/theme-defs/grayscale/status-styles/title/background-color -> grayscale.json:178 +/ui/theme-defs/grayscale/status-styles/title/bold -> grayscale.json:179 +/ui/theme-defs/grayscale/status-styles/title/color -> grayscale.json:177 +/ui/theme-defs/grayscale/status-styles/warn/background-color -> grayscale.json:201 +/ui/theme-defs/grayscale/status-styles/warn/color -> grayscale.json:200 +/ui/theme-defs/grayscale/styles/adjusted-time/color -> grayscale.json:61 +/ui/theme-defs/grayscale/styles/alt-text/bold -> grayscale.json:28 +/ui/theme-defs/grayscale/styles/breadcrumb/bold -> grayscale.json:120 +/ui/theme-defs/grayscale/styles/breadcrumb/color -> grayscale.json:119 +/ui/theme-defs/grayscale/styles/cursor-line/background-color -> grayscale.json:52 +/ui/theme-defs/grayscale/styles/cursor-line/bold -> grayscale.json:53 +/ui/theme-defs/grayscale/styles/cursor-line/color -> grayscale.json:51 +/ui/theme-defs/grayscale/styles/cursor-line/underline -> grayscale.json:54 +/ui/theme-defs/grayscale/styles/disabled-cursor-line/background-color -> grayscale.json:58 +/ui/theme-defs/grayscale/styles/disabled-cursor-line/color -> grayscale.json:57 +/ui/theme-defs/grayscale/styles/disabled-focused/background-color -> grayscale.json:81 +/ui/theme-defs/grayscale/styles/disabled-focused/color -> grayscale.json:80 +/ui/theme-defs/grayscale/styles/error/bold -> grayscale.json:40 +/ui/theme-defs/grayscale/styles/error/color -> grayscale.json:39 +/ui/theme-defs/grayscale/styles/file-offset/color -> grayscale.json:70 +/ui/theme-defs/grayscale/styles/focused/background-color -> grayscale.json:77 +/ui/theme-defs/grayscale/styles/focused/color -> grayscale.json:76 +/ui/theme-defs/grayscale/styles/footnote-border/background-color -> grayscale.json:137 +/ui/theme-defs/grayscale/styles/footnote-border/color -> grayscale.json:136 +/ui/theme-defs/grayscale/styles/footnote-text/background-color -> grayscale.json:141 +/ui/theme-defs/grayscale/styles/footnote-text/color -> grayscale.json:140 +/ui/theme-defs/grayscale/styles/h1/underline -> grayscale.json:92 +/ui/theme-defs/grayscale/styles/h2/underline -> grayscale.json:95 +/ui/theme-defs/grayscale/styles/h3/underline -> grayscale.json:98 +/ui/theme-defs/grayscale/styles/h4/underline -> grayscale.json:101 +/ui/theme-defs/grayscale/styles/h5/underline -> grayscale.json:104 +/ui/theme-defs/grayscale/styles/h6/underline -> grayscale.json:107 +/ui/theme-defs/grayscale/styles/hidden/bold -> grayscale.json:48 +/ui/theme-defs/grayscale/styles/hidden/color -> grayscale.json:47 +/ui/theme-defs/grayscale/styles/hr/color -> grayscale.json:110 +/ui/theme-defs/grayscale/styles/hyperlink/underline -> grayscale.json:113 +/ui/theme-defs/grayscale/styles/identifier/background-color -> grayscale.json:19 +/ui/theme-defs/grayscale/styles/identifier/bold -> grayscale.json:21 +/ui/theme-defs/grayscale/styles/identifier/color -> grayscale.json:20 +/ui/theme-defs/grayscale/styles/indent-guide/color -> grayscale.json:147 +/ui/theme-defs/grayscale/styles/info/bold -> grayscale.json:36 +/ui/theme-defs/grayscale/styles/info/color -> grayscale.json:35 +/ui/theme-defs/grayscale/styles/invalid-msg/color -> grayscale.json:73 +/ui/theme-defs/grayscale/styles/list-glyph/color -> grayscale.json:116 +/ui/theme-defs/grayscale/styles/offset-time/color -> grayscale.json:67 +/ui/theme-defs/grayscale/styles/ok/bold -> grayscale.json:32 +/ui/theme-defs/grayscale/styles/ok/color -> grayscale.json:31 +/ui/theme-defs/grayscale/styles/popup/background-color -> grayscale.json:85 +/ui/theme-defs/grayscale/styles/popup/color -> grayscale.json:84 +/ui/theme-defs/grayscale/styles/quote-border/background-color -> grayscale.json:130 +/ui/theme-defs/grayscale/styles/quote-border/color -> grayscale.json:129 +/ui/theme-defs/grayscale/styles/quoted-text/background-color -> grayscale.json:133 +/ui/theme-defs/grayscale/styles/scrollbar/background-color -> grayscale.json:89 +/ui/theme-defs/grayscale/styles/scrollbar/color -> grayscale.json:88 +/ui/theme-defs/grayscale/styles/skewed-time/color -> grayscale.json:64 +/ui/theme-defs/grayscale/styles/snippet-border/color -> grayscale.json:144 +/ui/theme-defs/grayscale/styles/table-border/color -> grayscale.json:123 +/ui/theme-defs/grayscale/styles/table-header/bold -> grayscale.json:126 +/ui/theme-defs/grayscale/styles/text/background-color -> grayscale.json:25 +/ui/theme-defs/grayscale/styles/text/color -> grayscale.json:24 +/ui/theme-defs/grayscale/styles/warning/bold -> grayscale.json:44 +/ui/theme-defs/grayscale/styles/warning/color -> grayscale.json:43 +/ui/theme-defs/grayscale/syntax-styles/ascii-control/color -> grayscale.json:161 +/ui/theme-defs/grayscale/syntax-styles/comment/color -> grayscale.json:152 +/ui/theme-defs/grayscale/syntax-styles/doc-directive/color -> grayscale.json:155 +/ui/theme-defs/grayscale/syntax-styles/non-ascii/color -> grayscale.json:164 +/ui/theme-defs/grayscale/syntax-styles/null/color -> grayscale.json:158 +/ui/theme-defs/grayscale/syntax-styles/number/bold -> grayscale.json:167 +/ui/theme-defs/grayscale/vars/black -> grayscale.json:7 +/ui/theme-defs/grayscale/vars/blue -> grayscale.json:11 +/ui/theme-defs/grayscale/vars/cyan -> grayscale.json:13 +/ui/theme-defs/grayscale/vars/green -> grayscale.json:9 +/ui/theme-defs/grayscale/vars/magenta -> grayscale.json:12 +/ui/theme-defs/grayscale/vars/plaintext -> grayscale.json:15 +/ui/theme-defs/grayscale/vars/red -> grayscale.json:8 +/ui/theme-defs/grayscale/vars/white -> grayscale.json:14 +/ui/theme-defs/grayscale/vars/yellow -> grayscale.json:10 +/ui/theme-defs/monocai/log-level-styles/critical/color -> monocai.json:300 +/ui/theme-defs/monocai/log-level-styles/error/color -> monocai.json:297 +/ui/theme-defs/monocai/log-level-styles/fatal/color -> monocai.json:303 +/ui/theme-defs/monocai/log-level-styles/warning/color -> monocai.json:294 +/ui/theme-defs/monocai/status-styles/active/background-color -> monocai.json:278 +/ui/theme-defs/monocai/status-styles/active/color -> monocai.json:277 +/ui/theme-defs/monocai/status-styles/alert/background-color -> monocai.json:274 +/ui/theme-defs/monocai/status-styles/alert/color -> monocai.json:273 +/ui/theme-defs/monocai/status-styles/disabled-title/background-color -> monocai.json:238 +/ui/theme-defs/monocai/status-styles/disabled-title/bold -> monocai.json:239 +/ui/theme-defs/monocai/status-styles/disabled-title/color -> monocai.json:237 +/ui/theme-defs/monocai/status-styles/hotkey/color -> monocai.json:261 +/ui/theme-defs/monocai/status-styles/hotkey/underline -> monocai.json:262 +/ui/theme-defs/monocai/status-styles/inactive-alert/background-color -> monocai.json:286 +/ui/theme-defs/monocai/status-styles/inactive-alert/color -> monocai.json:285 +/ui/theme-defs/monocai/status-styles/inactive/background-color -> monocai.json:282 +/ui/theme-defs/monocai/status-styles/inactive/color -> monocai.json:281 +/ui/theme-defs/monocai/status-styles/info/background-color -> monocai.json:253 +/ui/theme-defs/monocai/status-styles/info/color -> monocai.json:252 +/ui/theme-defs/monocai/status-styles/subtitle/background-color -> monocai.json:248 +/ui/theme-defs/monocai/status-styles/subtitle/bold -> monocai.json:249 +/ui/theme-defs/monocai/status-styles/subtitle/color -> monocai.json:247 +/ui/theme-defs/monocai/status-styles/suggestion/color -> monocai.json:289 +/ui/theme-defs/monocai/status-styles/text/background-color -> monocai.json:266 +/ui/theme-defs/monocai/status-styles/text/color -> monocai.json:265 +/ui/theme-defs/monocai/status-styles/title-hotkey/background-color -> monocai.json:257 +/ui/theme-defs/monocai/status-styles/title-hotkey/color -> monocai.json:256 +/ui/theme-defs/monocai/status-styles/title-hotkey/underline -> monocai.json:258 +/ui/theme-defs/monocai/status-styles/title/background-color -> monocai.json:243 +/ui/theme-defs/monocai/status-styles/title/bold -> monocai.json:244 +/ui/theme-defs/monocai/status-styles/title/color -> monocai.json:242 +/ui/theme-defs/monocai/status-styles/warn/background-color -> monocai.json:270 +/ui/theme-defs/monocai/status-styles/warn/color -> monocai.json:269 +/ui/theme-defs/monocai/styles/adjusted-time/color -> monocai.json:62 +/ui/theme-defs/monocai/styles/alt-text/background-color -> monocai.json:30 +/ui/theme-defs/monocai/styles/breadcrumb/bold -> monocai.json:123 +/ui/theme-defs/monocai/styles/breadcrumb/color -> monocai.json:122 +/ui/theme-defs/monocai/styles/cursor-line/background-color -> monocai.json:54 +/ui/theme-defs/monocai/styles/cursor-line/bold -> monocai.json:55 +/ui/theme-defs/monocai/styles/cursor-line/color -> monocai.json:53 +/ui/theme-defs/monocai/styles/disabled-cursor-line/background-color -> monocai.json:59 +/ui/theme-defs/monocai/styles/disabled-cursor-line/color -> monocai.json:58 +/ui/theme-defs/monocai/styles/disabled-focused/background-color -> monocai.json:82 +/ui/theme-defs/monocai/styles/disabled-focused/color -> monocai.json:81 +/ui/theme-defs/monocai/styles/error/bold -> monocai.json:42 +/ui/theme-defs/monocai/styles/error/color -> monocai.json:41 +/ui/theme-defs/monocai/styles/file-offset/color -> monocai.json:71 +/ui/theme-defs/monocai/styles/focused/background-color -> monocai.json:78 +/ui/theme-defs/monocai/styles/focused/color -> monocai.json:77 +/ui/theme-defs/monocai/styles/footnote-border/background-color -> monocai.json:140 +/ui/theme-defs/monocai/styles/footnote-border/color -> monocai.json:139 +/ui/theme-defs/monocai/styles/footnote-text/background-color -> monocai.json:144 +/ui/theme-defs/monocai/styles/footnote-text/color -> monocai.json:143 +/ui/theme-defs/monocai/styles/h1/bold -> monocai.json:94 +/ui/theme-defs/monocai/styles/h1/color -> monocai.json:93 +/ui/theme-defs/monocai/styles/h2/color -> monocai.json:97 +/ui/theme-defs/monocai/styles/h2/underline -> monocai.json:98 +/ui/theme-defs/monocai/styles/h3/color -> monocai.json:101 +/ui/theme-defs/monocai/styles/h4/underline -> monocai.json:104 +/ui/theme-defs/monocai/styles/h5/underline -> monocai.json:107 +/ui/theme-defs/monocai/styles/h6/underline -> monocai.json:110 +/ui/theme-defs/monocai/styles/hidden/bold -> monocai.json:50 +/ui/theme-defs/monocai/styles/hidden/color -> monocai.json:49 +/ui/theme-defs/monocai/styles/hr/color -> monocai.json:113 +/ui/theme-defs/monocai/styles/hyperlink/underline -> monocai.json:116 +/ui/theme-defs/monocai/styles/identifier/color -> monocai.json:20 +/ui/theme-defs/monocai/styles/indent-guide/color -> monocai.json:150 +/ui/theme-defs/monocai/styles/info/bold -> monocai.json:38 +/ui/theme-defs/monocai/styles/info/color -> monocai.json:37 +/ui/theme-defs/monocai/styles/invalid-msg/color -> monocai.json:74 +/ui/theme-defs/monocai/styles/list-glyph/color -> monocai.json:119 +/ui/theme-defs/monocai/styles/offset-time/color -> monocai.json:68 +/ui/theme-defs/monocai/styles/ok/bold -> monocai.json:34 +/ui/theme-defs/monocai/styles/ok/color -> monocai.json:33 +/ui/theme-defs/monocai/styles/popup/background-color -> monocai.json:86 +/ui/theme-defs/monocai/styles/popup/color -> monocai.json:85 +/ui/theme-defs/monocai/styles/quote-border/background-color -> monocai.json:133 +/ui/theme-defs/monocai/styles/quote-border/color -> monocai.json:132 +/ui/theme-defs/monocai/styles/quoted-text/background-color -> monocai.json:136 +/ui/theme-defs/monocai/styles/scrollbar/background-color -> monocai.json:90 +/ui/theme-defs/monocai/styles/scrollbar/color -> monocai.json:89 +/ui/theme-defs/monocai/styles/selected-text/background-color -> monocai.json:27 +/ui/theme-defs/monocai/styles/skewed-time/color -> monocai.json:65 +/ui/theme-defs/monocai/styles/snippet-border/color -> monocai.json:147 +/ui/theme-defs/monocai/styles/table-border/color -> monocai.json:126 +/ui/theme-defs/monocai/styles/table-header/bold -> monocai.json:129 +/ui/theme-defs/monocai/styles/text/background-color -> monocai.json:24 +/ui/theme-defs/monocai/styles/text/color -> monocai.json:23 +/ui/theme-defs/monocai/styles/warning/bold -> monocai.json:46 +/ui/theme-defs/monocai/styles/warning/color -> monocai.json:45 +/ui/theme-defs/monocai/syntax-styles/ascii-control/color -> monocai.json:217 +/ui/theme-defs/monocai/syntax-styles/code-border/background-color -> monocai.json:164 +/ui/theme-defs/monocai/syntax-styles/code-border/color -> monocai.json:163 +/ui/theme-defs/monocai/syntax-styles/comment/color -> monocai.json:175 +/ui/theme-defs/monocai/syntax-styles/diff-add/color -> monocai.json:196 +/ui/theme-defs/monocai/syntax-styles/diff-delete/color -> monocai.json:193 +/ui/theme-defs/monocai/syntax-styles/diff-section/color -> monocai.json:199 +/ui/theme-defs/monocai/syntax-styles/doc-directive/color -> monocai.json:178 +/ui/theme-defs/monocai/syntax-styles/file/color -> monocai.json:211 +/ui/theme-defs/monocai/syntax-styles/function/color -> monocai.json:226 +/ui/theme-defs/monocai/syntax-styles/inline-code/background-color -> monocai.json:156 +/ui/theme-defs/monocai/syntax-styles/inline-code/color -> monocai.json:155 +/ui/theme-defs/monocai/syntax-styles/keyword/bold -> monocai.json:168 +/ui/theme-defs/monocai/syntax-styles/keyword/color -> monocai.json:167 +/ui/theme-defs/monocai/syntax-styles/non-ascii/color -> monocai.json:220 +/ui/theme-defs/monocai/syntax-styles/null/color -> monocai.json:214 +/ui/theme-defs/monocai/syntax-styles/number/bold -> monocai.json:223 +/ui/theme-defs/monocai/syntax-styles/quoted-code/background-color -> monocai.json:160 +/ui/theme-defs/monocai/syntax-styles/quoted-code/color -> monocai.json:159 +/ui/theme-defs/monocai/syntax-styles/re-repeat/color -> monocai.json:190 +/ui/theme-defs/monocai/syntax-styles/re-special/color -> monocai.json:187 +/ui/theme-defs/monocai/syntax-styles/separators-references-accessors/color -> monocai.json:229 +/ui/theme-defs/monocai/syntax-styles/spectrogram-high/background-color -> monocai.json:208 +/ui/theme-defs/monocai/syntax-styles/spectrogram-low/background-color -> monocai.json:202 +/ui/theme-defs/monocai/syntax-styles/spectrogram-medium/background-color -> monocai.json:205 +/ui/theme-defs/monocai/syntax-styles/string/bold -> monocai.json:172 +/ui/theme-defs/monocai/syntax-styles/string/color -> monocai.json:171 +/ui/theme-defs/monocai/syntax-styles/symbol/color -> monocai.json:184 +/ui/theme-defs/monocai/syntax-styles/type/color -> monocai.json:232 +/ui/theme-defs/monocai/syntax-styles/variable/color -> monocai.json:181 +/ui/theme-defs/monocai/vars/black -> monocai.json:7 +/ui/theme-defs/monocai/vars/blue -> monocai.json:11 +/ui/theme-defs/monocai/vars/cyan -> monocai.json:13 +/ui/theme-defs/monocai/vars/green -> monocai.json:9 +/ui/theme-defs/monocai/vars/magenta -> monocai.json:12 +/ui/theme-defs/monocai/vars/orange -> monocai.json:15 +/ui/theme-defs/monocai/vars/red -> monocai.json:8 +/ui/theme-defs/monocai/vars/semantic_highlight_color -> monocai.json:16 +/ui/theme-defs/monocai/vars/white -> monocai.json:14 +/ui/theme-defs/monocai/vars/yellow -> monocai.json:10 +/ui/theme-defs/night-owl/log-level-styles/critical/color -> night-owl.json:299 +/ui/theme-defs/night-owl/log-level-styles/error/color -> night-owl.json:296 +/ui/theme-defs/night-owl/log-level-styles/fatal/color -> night-owl.json:302 +/ui/theme-defs/night-owl/log-level-styles/warning/color -> night-owl.json:293 +/ui/theme-defs/night-owl/status-styles/active/background-color -> night-owl.json:266 +/ui/theme-defs/night-owl/status-styles/active/color -> night-owl.json:265 +/ui/theme-defs/night-owl/status-styles/alert/background-color -> night-owl.json:262 +/ui/theme-defs/night-owl/status-styles/alert/color -> night-owl.json:261 +/ui/theme-defs/night-owl/status-styles/disabled-title/background-color -> night-owl.json:236 +/ui/theme-defs/night-owl/status-styles/disabled-title/bold -> night-owl.json:237 +/ui/theme-defs/night-owl/status-styles/disabled-title/color -> night-owl.json:235 +/ui/theme-defs/night-owl/status-styles/hotkey/bold -> night-owl.json:278 +/ui/theme-defs/night-owl/status-styles/hotkey/color -> night-owl.json:277 +/ui/theme-defs/night-owl/status-styles/hotkey/underline -> night-owl.json:279 +/ui/theme-defs/night-owl/status-styles/inactive-alert/background-color -> night-owl.json:274 +/ui/theme-defs/night-owl/status-styles/inactive-alert/color -> night-owl.json:273 +/ui/theme-defs/night-owl/status-styles/inactive/background-color -> night-owl.json:270 +/ui/theme-defs/night-owl/status-styles/inactive/color -> night-owl.json:269 +/ui/theme-defs/night-owl/status-styles/info/background-color -> night-owl.json:250 +/ui/theme-defs/night-owl/status-styles/info/color -> night-owl.json:249 +/ui/theme-defs/night-owl/status-styles/subtitle/background-color -> night-owl.json:246 +/ui/theme-defs/night-owl/status-styles/subtitle/color -> night-owl.json:245 +/ui/theme-defs/night-owl/status-styles/suggestion/color -> night-owl.json:288 +/ui/theme-defs/night-owl/status-styles/text/background-color -> night-owl.json:254 +/ui/theme-defs/night-owl/status-styles/text/color -> night-owl.json:253 +/ui/theme-defs/night-owl/status-styles/title-hotkey/background-color -> night-owl.json:283 +/ui/theme-defs/night-owl/status-styles/title-hotkey/bold -> night-owl.json:284 +/ui/theme-defs/night-owl/status-styles/title-hotkey/color -> night-owl.json:282 +/ui/theme-defs/night-owl/status-styles/title-hotkey/underline -> night-owl.json:285 +/ui/theme-defs/night-owl/status-styles/title/background-color -> night-owl.json:241 +/ui/theme-defs/night-owl/status-styles/title/bold -> night-owl.json:242 +/ui/theme-defs/night-owl/status-styles/title/color -> night-owl.json:240 +/ui/theme-defs/night-owl/status-styles/warn/background-color -> night-owl.json:258 +/ui/theme-defs/night-owl/status-styles/warn/color -> night-owl.json:257 +/ui/theme-defs/night-owl/styles/adjusted-time/color -> night-owl.json:63 +/ui/theme-defs/night-owl/styles/alt-text/background-color -> night-owl.json:30 +/ui/theme-defs/night-owl/styles/breadcrumb/bold -> night-owl.json:122 +/ui/theme-defs/night-owl/styles/breadcrumb/color -> night-owl.json:121 +/ui/theme-defs/night-owl/styles/cursor-line/background-color -> night-owl.json:54 +/ui/theme-defs/night-owl/styles/cursor-line/bold -> night-owl.json:55 +/ui/theme-defs/night-owl/styles/cursor-line/color -> night-owl.json:53 +/ui/theme-defs/night-owl/styles/cursor-line/underline -> night-owl.json:56 +/ui/theme-defs/night-owl/styles/disabled-cursor-line/background-color -> night-owl.json:60 +/ui/theme-defs/night-owl/styles/disabled-cursor-line/color -> night-owl.json:59 +/ui/theme-defs/night-owl/styles/disabled-focused/background-color -> night-owl.json:83 +/ui/theme-defs/night-owl/styles/disabled-focused/color -> night-owl.json:82 +/ui/theme-defs/night-owl/styles/error/bold -> night-owl.json:42 +/ui/theme-defs/night-owl/styles/error/color -> night-owl.json:41 +/ui/theme-defs/night-owl/styles/file-offset/color -> night-owl.json:72 +/ui/theme-defs/night-owl/styles/focused/background-color -> night-owl.json:79 +/ui/theme-defs/night-owl/styles/focused/color -> night-owl.json:78 +/ui/theme-defs/night-owl/styles/footnote-border/background-color -> night-owl.json:139 +/ui/theme-defs/night-owl/styles/footnote-border/color -> night-owl.json:138 +/ui/theme-defs/night-owl/styles/footnote-text/background-color -> night-owl.json:143 +/ui/theme-defs/night-owl/styles/footnote-text/color -> night-owl.json:142 +/ui/theme-defs/night-owl/styles/h1/underline -> night-owl.json:94 +/ui/theme-defs/night-owl/styles/h2/underline -> night-owl.json:97 +/ui/theme-defs/night-owl/styles/h3/underline -> night-owl.json:100 +/ui/theme-defs/night-owl/styles/h4/underline -> night-owl.json:103 +/ui/theme-defs/night-owl/styles/h5/underline -> night-owl.json:106 +/ui/theme-defs/night-owl/styles/h6/underline -> night-owl.json:109 +/ui/theme-defs/night-owl/styles/hidden/bold -> night-owl.json:50 +/ui/theme-defs/night-owl/styles/hidden/color -> night-owl.json:49 +/ui/theme-defs/night-owl/styles/hr/color -> night-owl.json:112 +/ui/theme-defs/night-owl/styles/hyperlink/underline -> night-owl.json:115 +/ui/theme-defs/night-owl/styles/identifier/background-color -> night-owl.json:19 +/ui/theme-defs/night-owl/styles/identifier/color -> night-owl.json:20 +/ui/theme-defs/night-owl/styles/indent-guide/color -> night-owl.json:149 +/ui/theme-defs/night-owl/styles/info/bold -> night-owl.json:38 +/ui/theme-defs/night-owl/styles/info/color -> night-owl.json:37 +/ui/theme-defs/night-owl/styles/invalid-msg/color -> night-owl.json:75 +/ui/theme-defs/night-owl/styles/list-glyph/color -> night-owl.json:118 +/ui/theme-defs/night-owl/styles/offset-time/color -> night-owl.json:69 +/ui/theme-defs/night-owl/styles/ok/bold -> night-owl.json:34 +/ui/theme-defs/night-owl/styles/ok/color -> night-owl.json:33 +/ui/theme-defs/night-owl/styles/popup/background-color -> night-owl.json:87 +/ui/theme-defs/night-owl/styles/popup/color -> night-owl.json:86 +/ui/theme-defs/night-owl/styles/quote-border/background-color -> night-owl.json:132 +/ui/theme-defs/night-owl/styles/quote-border/color -> night-owl.json:131 +/ui/theme-defs/night-owl/styles/quoted-text/background-color -> night-owl.json:135 +/ui/theme-defs/night-owl/styles/scrollbar/background-color -> night-owl.json:91 +/ui/theme-defs/night-owl/styles/scrollbar/color -> night-owl.json:90 +/ui/theme-defs/night-owl/styles/selected-text/background-color -> night-owl.json:27 +/ui/theme-defs/night-owl/styles/skewed-time/color -> night-owl.json:66 +/ui/theme-defs/night-owl/styles/snippet-border/color -> night-owl.json:146 +/ui/theme-defs/night-owl/styles/table-border/color -> night-owl.json:125 +/ui/theme-defs/night-owl/styles/table-header/bold -> night-owl.json:128 +/ui/theme-defs/night-owl/styles/text/background-color -> night-owl.json:24 +/ui/theme-defs/night-owl/styles/text/color -> night-owl.json:23 +/ui/theme-defs/night-owl/styles/warning/bold -> night-owl.json:46 +/ui/theme-defs/night-owl/styles/warning/color -> night-owl.json:45 +/ui/theme-defs/night-owl/syntax-styles/ascii-control/color -> night-owl.json:218 +/ui/theme-defs/night-owl/syntax-styles/code-border/background-color -> night-owl.json:163 +/ui/theme-defs/night-owl/syntax-styles/code-border/color -> night-owl.json:162 +/ui/theme-defs/night-owl/syntax-styles/comment/color -> night-owl.json:173 +/ui/theme-defs/night-owl/syntax-styles/diff-add/color -> night-owl.json:197 +/ui/theme-defs/night-owl/syntax-styles/diff-delete/color -> night-owl.json:194 +/ui/theme-defs/night-owl/syntax-styles/diff-section/color -> night-owl.json:200 +/ui/theme-defs/night-owl/syntax-styles/doc-directive/color -> night-owl.json:176 +/ui/theme-defs/night-owl/syntax-styles/file/color -> night-owl.json:212 +/ui/theme-defs/night-owl/syntax-styles/function/color -> night-owl.json:224 +/ui/theme-defs/night-owl/syntax-styles/inline-code/background-color -> night-owl.json:155 +/ui/theme-defs/night-owl/syntax-styles/inline-code/color -> night-owl.json:154 +/ui/theme-defs/night-owl/syntax-styles/keyword/color -> night-owl.json:166 +/ui/theme-defs/night-owl/syntax-styles/non-ascii/color -> night-owl.json:221 +/ui/theme-defs/night-owl/syntax-styles/null/color -> night-owl.json:215 +/ui/theme-defs/night-owl/syntax-styles/number/color -> night-owl.json:185 +/ui/theme-defs/night-owl/syntax-styles/quoted-code/background-color -> night-owl.json:159 +/ui/theme-defs/night-owl/syntax-styles/quoted-code/color -> night-owl.json:158 +/ui/theme-defs/night-owl/syntax-styles/re-repeat/color -> night-owl.json:191 +/ui/theme-defs/night-owl/syntax-styles/re-special/color -> night-owl.json:188 +/ui/theme-defs/night-owl/syntax-styles/separators-references-accessors/color -> night-owl.json:227 +/ui/theme-defs/night-owl/syntax-styles/spectrogram-high/background-color -> night-owl.json:209 +/ui/theme-defs/night-owl/syntax-styles/spectrogram-low/background-color -> night-owl.json:203 +/ui/theme-defs/night-owl/syntax-styles/spectrogram-medium/background-color -> night-owl.json:206 +/ui/theme-defs/night-owl/syntax-styles/string/bold -> night-owl.json:170 +/ui/theme-defs/night-owl/syntax-styles/string/color -> night-owl.json:169 +/ui/theme-defs/night-owl/syntax-styles/symbol/color -> night-owl.json:182 +/ui/theme-defs/night-owl/syntax-styles/type/color -> night-owl.json:230 +/ui/theme-defs/night-owl/syntax-styles/variable/color -> night-owl.json:179 +/ui/theme-defs/night-owl/vars/black -> night-owl.json:7 +/ui/theme-defs/night-owl/vars/blue -> night-owl.json:11 +/ui/theme-defs/night-owl/vars/cyan -> night-owl.json:13 +/ui/theme-defs/night-owl/vars/green -> night-owl.json:9 +/ui/theme-defs/night-owl/vars/magenta -> night-owl.json:12 +/ui/theme-defs/night-owl/vars/red -> night-owl.json:8 +/ui/theme-defs/night-owl/vars/semantic_highlight_color -> night-owl.json:15 +/ui/theme-defs/night-owl/vars/white -> night-owl.json:14 +/ui/theme-defs/night-owl/vars/yellow -> night-owl.json:10 +/ui/theme-defs/solarized-dark/log-level-styles/critical/color -> solarized-dark.json:307 +/ui/theme-defs/solarized-dark/log-level-styles/error/color -> solarized-dark.json:304 +/ui/theme-defs/solarized-dark/log-level-styles/fatal/color -> solarized-dark.json:310 +/ui/theme-defs/solarized-dark/log-level-styles/warning/color -> solarized-dark.json:301 +/ui/theme-defs/solarized-dark/status-styles/active/background-color -> solarized-dark.json:272 +/ui/theme-defs/solarized-dark/status-styles/active/color -> solarized-dark.json:271 +/ui/theme-defs/solarized-dark/status-styles/alert/background-color -> solarized-dark.json:268 +/ui/theme-defs/solarized-dark/status-styles/alert/color -> solarized-dark.json:267 +/ui/theme-defs/solarized-dark/status-styles/disabled-title/background-color -> solarized-dark.json:245 +/ui/theme-defs/solarized-dark/status-styles/disabled-title/bold -> solarized-dark.json:246 +/ui/theme-defs/solarized-dark/status-styles/disabled-title/color -> solarized-dark.json:244 +/ui/theme-defs/solarized-dark/status-styles/hotkey/color -> solarized-dark.json:284 +/ui/theme-defs/solarized-dark/status-styles/hotkey/underline -> solarized-dark.json:285 +/ui/theme-defs/solarized-dark/status-styles/inactive-alert/background-color -> solarized-dark.json:293 +/ui/theme-defs/solarized-dark/status-styles/inactive-alert/color -> solarized-dark.json:292 +/ui/theme-defs/solarized-dark/status-styles/inactive/background-color -> solarized-dark.json:289 +/ui/theme-defs/solarized-dark/status-styles/inactive/color -> solarized-dark.json:288 +/ui/theme-defs/solarized-dark/status-styles/info/background-color -> solarized-dark.json:276 +/ui/theme-defs/solarized-dark/status-styles/info/color -> solarized-dark.json:275 +/ui/theme-defs/solarized-dark/status-styles/subtitle/background-color -> solarized-dark.json:255 +/ui/theme-defs/solarized-dark/status-styles/subtitle/bold -> solarized-dark.json:256 +/ui/theme-defs/solarized-dark/status-styles/subtitle/color -> solarized-dark.json:254 +/ui/theme-defs/solarized-dark/status-styles/suggestion/color -> solarized-dark.json:296 +/ui/theme-defs/solarized-dark/status-styles/text/background-color -> solarized-dark.json:260 +/ui/theme-defs/solarized-dark/status-styles/text/color -> solarized-dark.json:259 +/ui/theme-defs/solarized-dark/status-styles/title-hotkey/background-color -> solarized-dark.json:280 +/ui/theme-defs/solarized-dark/status-styles/title-hotkey/color -> solarized-dark.json:279 +/ui/theme-defs/solarized-dark/status-styles/title-hotkey/underline -> solarized-dark.json:281 +/ui/theme-defs/solarized-dark/status-styles/title/background-color -> solarized-dark.json:250 +/ui/theme-defs/solarized-dark/status-styles/title/bold -> solarized-dark.json:251 +/ui/theme-defs/solarized-dark/status-styles/title/color -> solarized-dark.json:249 +/ui/theme-defs/solarized-dark/status-styles/warn/background-color -> solarized-dark.json:264 +/ui/theme-defs/solarized-dark/status-styles/warn/color -> solarized-dark.json:263 +/ui/theme-defs/solarized-dark/styles/adjusted-time/color -> solarized-dark.json:72 +/ui/theme-defs/solarized-dark/styles/alt-text/background-color -> solarized-dark.json:39 +/ui/theme-defs/solarized-dark/styles/breadcrumb/bold -> solarized-dark.json:131 +/ui/theme-defs/solarized-dark/styles/breadcrumb/color -> solarized-dark.json:130 +/ui/theme-defs/solarized-dark/styles/cursor-line/background-color -> solarized-dark.json:63 +/ui/theme-defs/solarized-dark/styles/cursor-line/bold -> solarized-dark.json:64 +/ui/theme-defs/solarized-dark/styles/cursor-line/color -> solarized-dark.json:62 +/ui/theme-defs/solarized-dark/styles/cursor-line/underline -> solarized-dark.json:65 +/ui/theme-defs/solarized-dark/styles/disabled-cursor-line/background-color -> solarized-dark.json:69 +/ui/theme-defs/solarized-dark/styles/disabled-cursor-line/color -> solarized-dark.json:68 +/ui/theme-defs/solarized-dark/styles/disabled-focused/background-color -> solarized-dark.json:100 +/ui/theme-defs/solarized-dark/styles/disabled-focused/color -> solarized-dark.json:99 +/ui/theme-defs/solarized-dark/styles/error/bold -> solarized-dark.json:51 +/ui/theme-defs/solarized-dark/styles/error/color -> solarized-dark.json:50 +/ui/theme-defs/solarized-dark/styles/file-offset/color -> solarized-dark.json:81 +/ui/theme-defs/solarized-dark/styles/focused/background-color -> solarized-dark.json:96 +/ui/theme-defs/solarized-dark/styles/focused/color -> solarized-dark.json:95 +/ui/theme-defs/solarized-dark/styles/footnote-border/background-color -> solarized-dark.json:148 +/ui/theme-defs/solarized-dark/styles/footnote-border/color -> solarized-dark.json:147 +/ui/theme-defs/solarized-dark/styles/footnote-text/background-color -> solarized-dark.json:152 +/ui/theme-defs/solarized-dark/styles/footnote-text/color -> solarized-dark.json:151 +/ui/theme-defs/solarized-dark/styles/h1/underline -> solarized-dark.json:103 +/ui/theme-defs/solarized-dark/styles/h2/underline -> solarized-dark.json:106 +/ui/theme-defs/solarized-dark/styles/h3/underline -> solarized-dark.json:109 +/ui/theme-defs/solarized-dark/styles/h4/underline -> solarized-dark.json:112 +/ui/theme-defs/solarized-dark/styles/h5/underline -> solarized-dark.json:115 +/ui/theme-defs/solarized-dark/styles/h6/underline -> solarized-dark.json:118 +/ui/theme-defs/solarized-dark/styles/hidden/bold -> solarized-dark.json:59 +/ui/theme-defs/solarized-dark/styles/hidden/color -> solarized-dark.json:58 +/ui/theme-defs/solarized-dark/styles/hr/color -> solarized-dark.json:121 +/ui/theme-defs/solarized-dark/styles/hyperlink/underline -> solarized-dark.json:124 +/ui/theme-defs/solarized-dark/styles/identifier/background-color -> solarized-dark.json:28 +/ui/theme-defs/solarized-dark/styles/identifier/color -> solarized-dark.json:29 +/ui/theme-defs/solarized-dark/styles/indent-guide/color -> solarized-dark.json:158 +/ui/theme-defs/solarized-dark/styles/info/bold -> solarized-dark.json:47 +/ui/theme-defs/solarized-dark/styles/info/color -> solarized-dark.json:46 +/ui/theme-defs/solarized-dark/styles/invalid-msg/color -> solarized-dark.json:84 +/ui/theme-defs/solarized-dark/styles/list-glyph/color -> solarized-dark.json:127 +/ui/theme-defs/solarized-dark/styles/offset-time/color -> solarized-dark.json:78 +/ui/theme-defs/solarized-dark/styles/ok/bold -> solarized-dark.json:43 +/ui/theme-defs/solarized-dark/styles/ok/color -> solarized-dark.json:42 +/ui/theme-defs/solarized-dark/styles/popup/background-color -> solarized-dark.json:88 +/ui/theme-defs/solarized-dark/styles/popup/color -> solarized-dark.json:87 +/ui/theme-defs/solarized-dark/styles/quote-border/background-color -> solarized-dark.json:141 +/ui/theme-defs/solarized-dark/styles/quote-border/color -> solarized-dark.json:140 +/ui/theme-defs/solarized-dark/styles/quoted-text/background-color -> solarized-dark.json:144 +/ui/theme-defs/solarized-dark/styles/scrollbar/background-color -> solarized-dark.json:92 +/ui/theme-defs/solarized-dark/styles/scrollbar/color -> solarized-dark.json:91 +/ui/theme-defs/solarized-dark/styles/selected-text/background-color -> solarized-dark.json:36 +/ui/theme-defs/solarized-dark/styles/skewed-time/color -> solarized-dark.json:75 +/ui/theme-defs/solarized-dark/styles/snippet-border/color -> solarized-dark.json:155 +/ui/theme-defs/solarized-dark/styles/table-border/color -> solarized-dark.json:134 +/ui/theme-defs/solarized-dark/styles/table-header/bold -> solarized-dark.json:137 +/ui/theme-defs/solarized-dark/styles/text/background-color -> solarized-dark.json:33 +/ui/theme-defs/solarized-dark/styles/text/color -> solarized-dark.json:32 +/ui/theme-defs/solarized-dark/styles/warning/bold -> solarized-dark.json:55 +/ui/theme-defs/solarized-dark/styles/warning/color -> solarized-dark.json:54 +/ui/theme-defs/solarized-dark/syntax-styles/ascii-control/color -> solarized-dark.json:224 +/ui/theme-defs/solarized-dark/syntax-styles/code-border/background-color -> solarized-dark.json:172 +/ui/theme-defs/solarized-dark/syntax-styles/code-border/color -> solarized-dark.json:171 +/ui/theme-defs/solarized-dark/syntax-styles/comment/color -> solarized-dark.json:182 +/ui/theme-defs/solarized-dark/syntax-styles/diff-add/color -> solarized-dark.json:203 +/ui/theme-defs/solarized-dark/syntax-styles/diff-delete/color -> solarized-dark.json:200 +/ui/theme-defs/solarized-dark/syntax-styles/diff-section/color -> solarized-dark.json:206 +/ui/theme-defs/solarized-dark/syntax-styles/doc-directive/color -> solarized-dark.json:185 +/ui/theme-defs/solarized-dark/syntax-styles/file/color -> solarized-dark.json:218 +/ui/theme-defs/solarized-dark/syntax-styles/function/color -> solarized-dark.json:233 +/ui/theme-defs/solarized-dark/syntax-styles/inline-code/background-color -> solarized-dark.json:164 +/ui/theme-defs/solarized-dark/syntax-styles/inline-code/color -> solarized-dark.json:163 +/ui/theme-defs/solarized-dark/syntax-styles/keyword/color -> solarized-dark.json:175 +/ui/theme-defs/solarized-dark/syntax-styles/non-ascii/color -> solarized-dark.json:227 +/ui/theme-defs/solarized-dark/syntax-styles/null/color -> solarized-dark.json:221 +/ui/theme-defs/solarized-dark/syntax-styles/number/bold -> solarized-dark.json:230 +/ui/theme-defs/solarized-dark/syntax-styles/quoted-code/background-color -> solarized-dark.json:168 +/ui/theme-defs/solarized-dark/syntax-styles/quoted-code/color -> solarized-dark.json:167 +/ui/theme-defs/solarized-dark/syntax-styles/re-repeat/color -> solarized-dark.json:197 +/ui/theme-defs/solarized-dark/syntax-styles/re-special/color -> solarized-dark.json:194 +/ui/theme-defs/solarized-dark/syntax-styles/separators-references-accessors/color -> solarized-dark.json:236 +/ui/theme-defs/solarized-dark/syntax-styles/spectrogram-high/background-color -> solarized-dark.json:215 +/ui/theme-defs/solarized-dark/syntax-styles/spectrogram-low/background-color -> solarized-dark.json:209 +/ui/theme-defs/solarized-dark/syntax-styles/spectrogram-medium/background-color -> solarized-dark.json:212 +/ui/theme-defs/solarized-dark/syntax-styles/string/bold -> solarized-dark.json:179 +/ui/theme-defs/solarized-dark/syntax-styles/string/color -> solarized-dark.json:178 +/ui/theme-defs/solarized-dark/syntax-styles/symbol/color -> solarized-dark.json:191 +/ui/theme-defs/solarized-dark/syntax-styles/type/color -> solarized-dark.json:239 +/ui/theme-defs/solarized-dark/syntax-styles/variable/color -> solarized-dark.json:188 +/ui/theme-defs/solarized-dark/vars/base0 -> solarized-dark.json:11 +/ui/theme-defs/solarized-dark/vars/base00 -> solarized-dark.json:10 +/ui/theme-defs/solarized-dark/vars/base01 -> solarized-dark.json:9 +/ui/theme-defs/solarized-dark/vars/base02 -> solarized-dark.json:8 +/ui/theme-defs/solarized-dark/vars/base03 -> solarized-dark.json:7 +/ui/theme-defs/solarized-dark/vars/base1 -> solarized-dark.json:12 +/ui/theme-defs/solarized-dark/vars/base2 -> solarized-dark.json:13 +/ui/theme-defs/solarized-dark/vars/base3 -> solarized-dark.json:14 +/ui/theme-defs/solarized-dark/vars/black -> solarized-dark.json:15 +/ui/theme-defs/solarized-dark/vars/blue -> solarized-dark.json:21 +/ui/theme-defs/solarized-dark/vars/cyan -> solarized-dark.json:22 +/ui/theme-defs/solarized-dark/vars/green -> solarized-dark.json:23 +/ui/theme-defs/solarized-dark/vars/magenta -> solarized-dark.json:19 +/ui/theme-defs/solarized-dark/vars/orange -> solarized-dark.json:17 +/ui/theme-defs/solarized-dark/vars/red -> solarized-dark.json:18 +/ui/theme-defs/solarized-dark/vars/semantic_highlight_color -> solarized-dark.json:24 +/ui/theme-defs/solarized-dark/vars/violet -> solarized-dark.json:20 +/ui/theme-defs/solarized-dark/vars/yellow -> solarized-dark.json:16 +/ui/theme-defs/solarized-light/log-level-styles/critical/color -> solarized-light.json:257 +/ui/theme-defs/solarized-light/log-level-styles/error/color -> solarized-light.json:254 +/ui/theme-defs/solarized-light/log-level-styles/fatal/color -> solarized-light.json:260 +/ui/theme-defs/solarized-light/log-level-styles/warning/color -> solarized-light.json:251 +/ui/theme-defs/solarized-light/status-styles/active/background-color -> solarized-light.json:231 +/ui/theme-defs/solarized-light/status-styles/active/color -> solarized-light.json:230 +/ui/theme-defs/solarized-light/status-styles/alert/background-color -> solarized-light.json:227 +/ui/theme-defs/solarized-light/status-styles/alert/color -> solarized-light.json:226 +/ui/theme-defs/solarized-light/status-styles/disabled-title/background-color -> solarized-light.json:209 +/ui/theme-defs/solarized-light/status-styles/disabled-title/bold -> solarized-light.json:210 +/ui/theme-defs/solarized-light/status-styles/disabled-title/color -> solarized-light.json:208 +/ui/theme-defs/solarized-light/status-styles/inactive-alert/background-color -> solarized-light.json:243 +/ui/theme-defs/solarized-light/status-styles/inactive-alert/color -> solarized-light.json:242 +/ui/theme-defs/solarized-light/status-styles/inactive/background-color -> solarized-light.json:239 +/ui/theme-defs/solarized-light/status-styles/inactive/color -> solarized-light.json:238 +/ui/theme-defs/solarized-light/status-styles/info/background-color -> solarized-light.json:235 +/ui/theme-defs/solarized-light/status-styles/info/color -> solarized-light.json:234 +/ui/theme-defs/solarized-light/status-styles/subtitle/background-color -> solarized-light.json:214 +/ui/theme-defs/solarized-light/status-styles/subtitle/bold -> solarized-light.json:215 +/ui/theme-defs/solarized-light/status-styles/subtitle/color -> solarized-light.json:213 +/ui/theme-defs/solarized-light/status-styles/suggestion/color -> solarized-light.json:246 +/ui/theme-defs/solarized-light/status-styles/text/background-color -> solarized-light.json:219 +/ui/theme-defs/solarized-light/status-styles/text/color -> solarized-light.json:218 +/ui/theme-defs/solarized-light/status-styles/title/background-color -> solarized-light.json:204 +/ui/theme-defs/solarized-light/status-styles/title/bold -> solarized-light.json:205 +/ui/theme-defs/solarized-light/status-styles/title/color -> solarized-light.json:203 +/ui/theme-defs/solarized-light/status-styles/warn/background-color -> solarized-light.json:223 +/ui/theme-defs/solarized-light/status-styles/warn/color -> solarized-light.json:222 +/ui/theme-defs/solarized-light/styles/adjusted-time/color -> solarized-light.json:67 +/ui/theme-defs/solarized-light/styles/alt-text/background-color -> solarized-light.json:38 +/ui/theme-defs/solarized-light/styles/breadcrumb/bold -> solarized-light.json:123 +/ui/theme-defs/solarized-light/styles/breadcrumb/color -> solarized-light.json:122 +/ui/theme-defs/solarized-light/styles/cursor-line/background-color -> solarized-light.json:58 +/ui/theme-defs/solarized-light/styles/cursor-line/bold -> solarized-light.json:59 +/ui/theme-defs/solarized-light/styles/cursor-line/color -> solarized-light.json:57 +/ui/theme-defs/solarized-light/styles/cursor-line/underline -> solarized-light.json:60 +/ui/theme-defs/solarized-light/styles/disabled-cursor-line/background-color -> solarized-light.json:64 +/ui/theme-defs/solarized-light/styles/disabled-cursor-line/color -> solarized-light.json:63 +/ui/theme-defs/solarized-light/styles/disabled-focused/background-color -> solarized-light.json:92 +/ui/theme-defs/solarized-light/styles/disabled-focused/color -> solarized-light.json:91 +/ui/theme-defs/solarized-light/styles/error/bold -> solarized-light.json:46 +/ui/theme-defs/solarized-light/styles/error/color -> solarized-light.json:45 +/ui/theme-defs/solarized-light/styles/focused/background-color -> solarized-light.json:88 +/ui/theme-defs/solarized-light/styles/focused/color -> solarized-light.json:87 +/ui/theme-defs/solarized-light/styles/footnote-border/background-color -> solarized-light.json:140 +/ui/theme-defs/solarized-light/styles/footnote-border/color -> solarized-light.json:139 +/ui/theme-defs/solarized-light/styles/footnote-text/background-color -> solarized-light.json:144 +/ui/theme-defs/solarized-light/styles/footnote-text/color -> solarized-light.json:143 +/ui/theme-defs/solarized-light/styles/h1/underline -> solarized-light.json:95 +/ui/theme-defs/solarized-light/styles/h2/underline -> solarized-light.json:98 +/ui/theme-defs/solarized-light/styles/h3/underline -> solarized-light.json:101 +/ui/theme-defs/solarized-light/styles/h4/underline -> solarized-light.json:104 +/ui/theme-defs/solarized-light/styles/h5/underline -> solarized-light.json:107 +/ui/theme-defs/solarized-light/styles/h6/underline -> solarized-light.json:110 +/ui/theme-defs/solarized-light/styles/hidden/bold -> solarized-light.json:54 +/ui/theme-defs/solarized-light/styles/hidden/color -> solarized-light.json:53 +/ui/theme-defs/solarized-light/styles/hr/color -> solarized-light.json:113 +/ui/theme-defs/solarized-light/styles/hyperlink/underline -> solarized-light.json:116 +/ui/theme-defs/solarized-light/styles/identifier/color -> solarized-light.json:28 +/ui/theme-defs/solarized-light/styles/indent-guide/color -> solarized-light.json:150 +/ui/theme-defs/solarized-light/styles/invalid-msg/color -> solarized-light.json:76 +/ui/theme-defs/solarized-light/styles/list-glyph/color -> solarized-light.json:119 +/ui/theme-defs/solarized-light/styles/offset-time/color -> solarized-light.json:73 +/ui/theme-defs/solarized-light/styles/ok/bold -> solarized-light.json:42 +/ui/theme-defs/solarized-light/styles/ok/color -> solarized-light.json:41 +/ui/theme-defs/solarized-light/styles/popup/background-color -> solarized-light.json:80 +/ui/theme-defs/solarized-light/styles/popup/color -> solarized-light.json:79 +/ui/theme-defs/solarized-light/styles/quote-border/background-color -> solarized-light.json:133 +/ui/theme-defs/solarized-light/styles/quote-border/color -> solarized-light.json:132 +/ui/theme-defs/solarized-light/styles/quoted-text/background-color -> solarized-light.json:136 +/ui/theme-defs/solarized-light/styles/scrollbar/background-color -> solarized-light.json:84 +/ui/theme-defs/solarized-light/styles/scrollbar/color -> solarized-light.json:83 +/ui/theme-defs/solarized-light/styles/selected-text/background-color -> solarized-light.json:35 +/ui/theme-defs/solarized-light/styles/skewed-time/color -> solarized-light.json:70 +/ui/theme-defs/solarized-light/styles/snippet-border/color -> solarized-light.json:147 +/ui/theme-defs/solarized-light/styles/table-border/color -> solarized-light.json:126 +/ui/theme-defs/solarized-light/styles/table-header/bold -> solarized-light.json:129 +/ui/theme-defs/solarized-light/styles/text/background-color -> solarized-light.json:32 +/ui/theme-defs/solarized-light/styles/text/color -> solarized-light.json:31 +/ui/theme-defs/solarized-light/styles/warning/bold -> solarized-light.json:50 +/ui/theme-defs/solarized-light/styles/warning/color -> solarized-light.json:49 +/ui/theme-defs/solarized-light/syntax-styles/comment/color -> solarized-light.json:162 +/ui/theme-defs/solarized-light/syntax-styles/diff-add/color -> solarized-light.json:183 +/ui/theme-defs/solarized-light/syntax-styles/diff-delete/color -> solarized-light.json:180 +/ui/theme-defs/solarized-light/syntax-styles/diff-section/color -> solarized-light.json:186 +/ui/theme-defs/solarized-light/syntax-styles/doc-directive/color -> solarized-light.json:165 +/ui/theme-defs/solarized-light/syntax-styles/file/color -> solarized-light.json:198 +/ui/theme-defs/solarized-light/syntax-styles/keyword/color -> solarized-light.json:155 +/ui/theme-defs/solarized-light/syntax-styles/re-repeat/color -> solarized-light.json:177 +/ui/theme-defs/solarized-light/syntax-styles/re-special/color -> solarized-light.json:174 +/ui/theme-defs/solarized-light/syntax-styles/spectrogram-high/background-color -> solarized-light.json:195 +/ui/theme-defs/solarized-light/syntax-styles/spectrogram-low/background-color -> solarized-light.json:189 +/ui/theme-defs/solarized-light/syntax-styles/spectrogram-medium/background-color -> solarized-light.json:192 +/ui/theme-defs/solarized-light/syntax-styles/string/bold -> solarized-light.json:159 +/ui/theme-defs/solarized-light/syntax-styles/string/color -> solarized-light.json:158 +/ui/theme-defs/solarized-light/syntax-styles/symbol/color -> solarized-light.json:171 +/ui/theme-defs/solarized-light/syntax-styles/variable/color -> solarized-light.json:168 +/ui/theme-defs/solarized-light/vars/base0 -> solarized-light.json:11 +/ui/theme-defs/solarized-light/vars/base00 -> solarized-light.json:10 +/ui/theme-defs/solarized-light/vars/base01 -> solarized-light.json:9 +/ui/theme-defs/solarized-light/vars/base02 -> solarized-light.json:8 +/ui/theme-defs/solarized-light/vars/base03 -> solarized-light.json:7 +/ui/theme-defs/solarized-light/vars/base1 -> solarized-light.json:12 +/ui/theme-defs/solarized-light/vars/base2 -> solarized-light.json:13 +/ui/theme-defs/solarized-light/vars/base3 -> solarized-light.json:14 +/ui/theme-defs/solarized-light/vars/black -> solarized-light.json:15 +/ui/theme-defs/solarized-light/vars/blue -> solarized-light.json:21 +/ui/theme-defs/solarized-light/vars/cyan -> solarized-light.json:22 +/ui/theme-defs/solarized-light/vars/green -> solarized-light.json:23 +/ui/theme-defs/solarized-light/vars/magenta -> solarized-light.json:19 +/ui/theme-defs/solarized-light/vars/orange -> solarized-light.json:17 +/ui/theme-defs/solarized-light/vars/red -> solarized-light.json:18 +/ui/theme-defs/solarized-light/vars/semantic_highlight_color -> solarized-light.json:24 +/ui/theme-defs/solarized-light/vars/violet -> solarized-light.json:20 +/ui/theme-defs/solarized-light/vars/yellow -> solarized-light.json:16 diff --git a/test/expected/test_cli.sh_f2e41555f1a5f40f54ce241207af602ed1503a2b.out b/test/expected/test_cli.sh_f2e41555f1a5f40f54ce241207af602ed1503a2b.out index 751c83b..2db5d3c 100644 --- a/test/expected/test_cli.sh_f2e41555f1a5f40f54ce241207af602ed1503a2b.out +++ b/test/expected/test_cli.sh_f2e41555f1a5f40f54ce241207af602ed1503a2b.out @@ -1,2 +1,2 @@ -[1m[4mfilepath [0m[1m[4m[7mlines [0m -[1m[7mstdin [0m[1m[7m [0m[1m[7m 4[0m[1m [0m +[1m[4mfilepath[0m[1m[4m [0m[1m[4m[7m lines [0m[1m[4m [0m +stdin [7m 4[0m diff --git a/test/expected/test_logfile.sh_1c6eee38f66356fcd9a9f0faedaea6dbcc901060.err b/test/expected/test_cli.sh_ff7da172f4350a2adb74b8764575823d798ed8b6.err index e69de29..e69de29 100644 --- a/test/expected/test_logfile.sh_1c6eee38f66356fcd9a9f0faedaea6dbcc901060.err +++ b/test/expected/test_cli.sh_ff7da172f4350a2adb74b8764575823d798ed8b6.err diff --git a/test/expected/test_cli.sh_ff7da172f4350a2adb74b8764575823d798ed8b6.out b/test/expected/test_cli.sh_ff7da172f4350a2adb74b8764575823d798ed8b6.out new file mode 100644 index 0000000..8d4265f --- /dev/null +++ b/test/expected/test_cli.sh_ff7da172f4350a2adb74b8764575823d798ed8b6.out @@ -0,0 +1,2 @@ +Hello, World! +Goodbye, World! diff --git a/test/expected/test_cmds.sh_015ffe79a08f4c9f0cd1cb84c6afa4398f879fc7.err b/test/expected/test_cmds.sh_015ffe79a08f4c9f0cd1cb84c6afa4398f879fc7.err new file mode 100644 index 0000000..23dd3a4 --- /dev/null +++ b/test/expected/test_cmds.sh_015ffe79a08f4c9f0cd1cb84c6afa4398f879fc7.err @@ -0,0 +1,7 @@ +[1m[31m✘ error[0m: cannot access -- /bad-dir + [1m[31mreason[0m: No such file or directory +[36m --> [0m[1mcommand-option[0m:1 +[36m | [0m[37m[40m:[0m[1m[36m[40mcd[0m[37m[40m /bad-dir [0m +[36m =[0m [36mhelp[0m: [4m:[0m[1m[4mcd[0m[4m [0m[4mdir[0m + ══════════════════════════════════════════════════════════════════════ + Change the current directory diff --git a/test/expected/test_sessions.sh_8732dad5481be991ca7f291d9c5451c7b016cea7.err b/test/expected/test_cmds.sh_015ffe79a08f4c9f0cd1cb84c6afa4398f879fc7.out index e69de29..e69de29 100644 --- a/test/expected/test_sessions.sh_8732dad5481be991ca7f291d9c5451c7b016cea7.err +++ b/test/expected/test_cmds.sh_015ffe79a08f4c9f0cd1cb84c6afa4398f879fc7.out diff --git a/test/expected/test_cmds.sh_017b495b95218b7c083951e2dba331cfec6e90be.err b/test/expected/test_cmds.sh_017b495b95218b7c083951e2dba331cfec6e90be.err index 0d53487..8ecc11d 100644 --- a/test/expected/test_cmds.sh_017b495b95218b7c083951e2dba331cfec6e90be.err +++ b/test/expected/test_cmds.sh_017b495b95218b7c083951e2dba331cfec6e90be.err @@ -1,6 +1,6 @@ [1m[31m✘ error[0m: no log files loaded [36m --> [0m[1mcommand-option[0m:2 [36m | [0m[37m[40m:close [0m -[36m =[0m [36mhelp[0m: [4m:[0m[1m[4mclose[0m +[36m =[0m [36mhelp[0m: [4m:[0m[1m[4mclose[0m[4m [0m[4mpath[0m ══════════════════════════════════════════════════════════════════════ - Close the top file in the view + Close the given file(s) or the top file in the view diff --git a/test/expected/test_cmds.sh_1d92c5bc12f5e7aaa6d84c5ed47f0b9f96e36c6a.out b/test/expected/test_cmds.sh_1d92c5bc12f5e7aaa6d84c5ed47f0b9f96e36c6a.out index 6dfcc1c..227341b 100644 --- a/test/expected/test_cmds.sh_1d92c5bc12f5e7aaa6d84c5ed47f0b9f96e36c6a.out +++ b/test/expected/test_cmds.sh_1d92c5bc12f5e7aaa6d84c5ed47f0b9f96e36c6a.out @@ -1,14 +1,8 @@ [ { "log_line": 0, - "log_part": null, "log_time": "2009-07-20 22:59:26.000", - "log_idle_msecs": 0, "log_level": "info", - "log_mark": 0, - "log_comment": null, - "log_tags": null, - "log_filters": null, "c_ip": "192.168.202.254", "cs_method": "GET", "cs_referer": "-", @@ -19,18 +13,19 @@ "cs_version": "HTTP/1.0", "sc_bytes": 134, "sc_status": 200, - "cs_host": null + "cs_host": null, + "log_part": null, + "log_idle_msecs": 0, + "log_mark": 0, + "log_comment": null, + "log_tags": null, + "log_annotations": null, + "log_filters": null }, { "log_line": 1, - "log_part": null, "log_time": "2009-07-20 22:59:29.000", - "log_idle_msecs": 3000, "log_level": "error", - "log_mark": 0, - "log_comment": null, - "log_tags": null, - "log_filters": null, "c_ip": "192.168.202.254", "cs_method": "GET", "cs_referer": "-", @@ -41,18 +36,19 @@ "cs_version": "HTTP/1.0", "sc_bytes": 46210, "sc_status": 404, - "cs_host": null + "cs_host": null, + "log_part": null, + "log_idle_msecs": 3000, + "log_mark": 0, + "log_comment": null, + "log_tags": null, + "log_annotations": null, + "log_filters": null }, { "log_line": 2, - "log_part": null, "log_time": "2009-07-20 22:59:29.000", - "log_idle_msecs": 0, "log_level": "info", - "log_mark": 0, - "log_comment": null, - "log_tags": null, - "log_filters": null, "c_ip": "192.168.202.254", "cs_method": "GET", "cs_referer": "-", @@ -63,6 +59,13 @@ "cs_version": "HTTP/1.0", "sc_bytes": 78929, "sc_status": 200, - "cs_host": null + "cs_host": null, + "log_part": null, + "log_idle_msecs": 0, + "log_mark": 0, + "log_comment": null, + "log_tags": null, + "log_annotations": null, + "log_filters": null } ] diff --git a/test/expected/test_cmds.sh_2e123104cdd2087ac40731a0aa533ba6a87ea744.out b/test/expected/test_cmds.sh_2e123104cdd2087ac40731a0aa533ba6a87ea744.out index 8c91cd9..156d9d9 100644 --- a/test/expected/test_cmds.sh_2e123104cdd2087ac40731a0aa533ba6a87ea744.out +++ b/test/expected/test_cmds.sh_2e123104cdd2087ac40731a0aa533ba6a87ea744.out @@ -1 +1 @@ -[31m2009-07-20 22:59:30,221:[0m[31mERROR[0m[31m:[0m[7m[31mGoodbye[0m[31m, World![0m +[31m2009-07-20 22:59:30,221[0m[31m:ERROR[0m[31m:[0m[7m[31mGoodbye[0m[31m, World![0m diff --git a/test/expected/test_cmds.sh_2e67bdbbc9a14aa772b2a9f755ed8f8124708558.out b/test/expected/test_cmds.sh_2e67bdbbc9a14aa772b2a9f755ed8f8124708558.out index 3f55261..ce0cfbf 100644 --- a/test/expected/test_cmds.sh_2e67bdbbc9a14aa772b2a9f755ed8f8124708558.out +++ b/test/expected/test_cmds.sh_2e67bdbbc9a14aa772b2a9f755ed8f8124708558.out @@ -1,23 +1,23 @@ -Apr 7 00:49:42 Tim-Abaft-iMac abashed[0]: Aberrant [abhorrent5701Aberrant]: Link up on en0, 1-Aboard, Full-abortive, Abounding flow-abrupt, Absent [796d,2301,0de1,0300,cde1,3800] -Apr 7 05:49:53 Tim-Abaft-iMac.absorbing Abstracted[17212]: -[absurd abundant] absurd abusive accept: <acceptable:0x511f30 - accessible=<KSOmahaServer:0x510d80> - url="https://achondroplasia.example.com/account/accurate2" - achiever=0 - acid=1 - acidic=1 - acoustic=1 +Apr 7 00:49:42 Tim-Stacks-iMac aback[0]: Abaft [abandoned5701Abaft]: Link up on en0, 1-Gigabit, Full-duplex, Ablaze flow-control, Able [796d,2301,0de1,0300,cde1,3800] +Apr 7 05:49:53 Tim-Stacks-iMac.local Aboard[17212]: -[aboriginal abortive] aboriginal abounding abrasive: <abrupt:0x511f30 + absent=<KSOmahaServer:0x510d80> + url="https://achondroplasia.example.com/absorbing/abstracted2" + absurd=0 + abundant=1 + abusive=1 + accept=1 body= <?xml version="1.0" encoding="UTF-8" standalone="yes"?> - <o:gupdate xmlns:o="http://acinetobacter-infections.example.com/accurate2/acrid" protocol="2.0" version="Act-1.2.0.7709" ismachine="1" requestid="{1ca0a968-cbe9-e75b-d00b-4859609878ea}"> - <o:os platform="mac" version="activity" sp="10.10.2_x86_64h"></o:os> - <o:app appid="com.actually.Ad hoc" version="1.2.0.7709" lang="en-us" installage="180" brand="GGLG"> + <o:gupdate xmlns:o="http://acinetobacter-infections.example.com/abstracted2/accessible" protocol="2.0" version="KeystoneDaemon-1.2.0.7709" ismachine="1" requestid="{1ca0a968-cbe9-e75b-d00b-4859609878ea}"> + <o:os platform="mac" version="account" sp="10.10.2_x86_64h"></o:os> + <o:app appid="com.achiever.Acid" version="1.2.0.7709" lang="en-us" installage="180" brand="GGLG"> <o:ping r="1" a="1"></o:ping> <o:updatecheck></o:updatecheck> </o:app> </o:gupdate> > -Apr 7 07:31:56 Tim-Abaft-iMac.absorbing Add[36403]: ADDICTED: The Adhesive adjoining adjustment is admit 10.9.2 adorable of 10.10.2. Use advice's afford afraid to get afterthought aggressive agonizing agree - Call agreement: -Apr 7 07:31:56 Tim-Abaft-iMac.absorbing Add[36403]: 0 Ahead 0x00007fff8a9b3d9b ___Adhesive_Air_airplane_airport + 113 -Apr 7 07:31:56 Tim-Abaft-iMac.absorbing Add[36403]: 1 ajar.alarm 0x00007fff8bc84c13 _alcoholic_alert_alike + 8 -Apr 7 07:32:56 Tim-Abaft-iMac.absorbing alive[234]: Bad data { abc, 123, 456 )}] +Apr 7 07:31:56 Tim-Stacks-iMac.local Acoustic[36403]: ACOUSTICS: The Act action activity is actually 10.9.2 ad hoc of 10.10.2. Use add's addition adhesive to get admire admit adorable adventurous + Call advice: +Apr 7 07:31:56 Tim-Stacks-iMac.local Acoustic[36403]: 0 Advise 0x00007fff8a9b3d9b ___Act_Afford_afraid_aftermath + 113 +Apr 7 07:31:56 Tim-Stacks-iMac.local Acoustic[36403]: 1 afternoon.afterthought 0x00007fff8bc84c13 _aggressive_agonizing_agree + 8 +Apr 7 07:32:56 Tim-Stacks-iMac.local agreeable[234]: Bad data { abc, 123, 456 )}] diff --git a/test/expected/test_cmds.sh_2ff0fe712c9b0012e42282c5f77b0b83cad37ddf.out b/test/expected/test_cmds.sh_2ff0fe712c9b0012e42282c5f77b0b83cad37ddf.out index c6eedf2..43bbc04 100644 --- a/test/expected/test_cmds.sh_2ff0fe712c9b0012e42282c5f77b0b83cad37ddf.out +++ b/test/expected/test_cmds.sh_2ff0fe712c9b0012e42282c5f77b0b83cad37ddf.out @@ -1 +1 @@ -[31m2009-07-20 22:59:30,221:[0m[31mERROR[0m[31m:Goodbye, World![0m +[31m2009-07-20 22:59:30,221[0m[31m:ERROR[0m[31m:Goodbye, World![0m diff --git a/test/expected/test_sessions.sh_e39648f425c3f291c9d1c0d14595a019abd0cb48.err b/test/expected/test_cmds.sh_3b4bea458c59d2bac492e568616b610625037ad0.err index e69de29..e69de29 100644 --- a/test/expected/test_sessions.sh_e39648f425c3f291c9d1c0d14595a019abd0cb48.err +++ b/test/expected/test_cmds.sh_3b4bea458c59d2bac492e568616b610625037ad0.err diff --git a/test/expected/test_cmds.sh_3b4bea458c59d2bac492e568616b610625037ad0.out b/test/expected/test_cmds.sh_3b4bea458c59d2bac492e568616b610625037ad0.out new file mode 100644 index 0000000..891f4a7 --- /dev/null +++ b/test/expected/test_cmds.sh_3b4bea458c59d2bac492e568616b610625037ad0.out @@ -0,0 +1,2 @@ +⋮:⋮:foo bar baz +[33m⋮[0m[33m:[0m[33m⋮[0m[33m:foo bar baz[0m diff --git a/test/expected/test_cmds.sh_453054e29aaca4c2662c45c2a1f2f63f3510d8dd.out b/test/expected/test_cmds.sh_453054e29aaca4c2662c45c2a1f2f63f3510d8dd.out index dcd3557..1192d46 100644 --- a/test/expected/test_cmds.sh_453054e29aaca4c2662c45c2a1f2f63f3510d8dd.out +++ b/test/expected/test_cmds.sh_453054e29aaca4c2662c45c2a1f2f63f3510d8dd.out @@ -1,2 +1,2 @@ -[7m[31m2009-07-20 22:59:30,221:[0m[7m[31mERROR[0m[7m[31m:Goodbye, World![0m -[31m2009-07-20 22:59:30,221:[0m[31mERROR[0m[31m:Goodbye, World![0m +[7m[31m2009-07-20 22:59:30,221[0m[7m[31m:ERROR[0m[7m[31m:Goodbye, World![0m +[31m2009-07-20 22:59:30,221[0m[31m:ERROR[0m[31m:Goodbye, World![0m diff --git a/test/expected/test_cmds.sh_4f06183ed231669965965f5042fbbb507fa7deab.out b/test/expected/test_cmds.sh_4f06183ed231669965965f5042fbbb507fa7deab.out index ef822cd..278a6d1 100644 --- a/test/expected/test_cmds.sh_4f06183ed231669965965f5042fbbb507fa7deab.out +++ b/test/expected/test_cmds.sh_4f06183ed231669965965f5042fbbb507fa7deab.out @@ -1,3 +1,3 @@ 2009-07-20 22:59:27,672:DEBUG:Hello, World! How are you today? -[31m2009-07-20 22:59:30,221:[0m[31mERROR[0m[31m:Goodbye, World![0m +[31m2009-07-20 22:59:30,221[0m[31m:ERROR[0m[31m:Goodbye, World![0m diff --git a/test/expected/test_cmds.sh_55c2fd15ec2c7d96dbef7b36a42a1b7b42f90dbc.err b/test/expected/test_cmds.sh_55c2fd15ec2c7d96dbef7b36a42a1b7b42f90dbc.err index e90b75a..5163792 100644 --- a/test/expected/test_cmds.sh_55c2fd15ec2c7d96dbef7b36a42a1b7b42f90dbc.err +++ b/test/expected/test_cmds.sh_55c2fd15ec2c7d96dbef7b36a42a1b7b42f90dbc.err @@ -1,4 +1,4 @@ [1m[31m✘ error[0m: unknown bookmark type: foobar [36m --> [0m[1mcommand-option[0m:2 [36m | [0m[37m[40m:[0m[1m[36m[40mnext-mark[0m[37m[40m foobar [0m -[36m =[0m [36mhelp[0m: available types: error, file, meta, search, user, user-expr, warning +[36m =[0m [36mhelp[0m: available types: error, file, meta, partition, search, user, user-expr, warning diff --git a/test/expected/test_sql_str_func.sh_3855d2cc0ab29171cae8e722f130adec25eae36e.out b/test/expected/test_cmds.sh_5630626e6f68c3d4a2c3e5f27d024df5950b88b5.err index e69de29..e69de29 100644 --- a/test/expected/test_sql_str_func.sh_3855d2cc0ab29171cae8e722f130adec25eae36e.out +++ b/test/expected/test_cmds.sh_5630626e6f68c3d4a2c3e5f27d024df5950b88b5.err diff --git a/test/expected/test_cmds.sh_5630626e6f68c3d4a2c3e5f27d024df5950b88b5.out b/test/expected/test_cmds.sh_5630626e6f68c3d4a2c3e5f27d024df5950b88b5.out new file mode 100644 index 0000000..f9264f7 --- /dev/null +++ b/test/expected/test_cmds.sh_5630626e6f68c3d4a2c3e5f27d024df5950b88b5.out @@ -0,0 +1,2 @@ +Hello +World diff --git a/test/expected/test_sql_yaml_func.sh_41c6abde708a69e74f5b7fde865d88fa75f91e0a.out b/test/expected/test_cmds.sh_68c774418bac897bd4d4fe9dbbf08454886b2e15.err index e69de29..e69de29 100644 --- a/test/expected/test_sql_yaml_func.sh_41c6abde708a69e74f5b7fde865d88fa75f91e0a.out +++ b/test/expected/test_cmds.sh_68c774418bac897bd4d4fe9dbbf08454886b2e15.err diff --git a/test/expected/test_cmds.sh_68c774418bac897bd4d4fe9dbbf08454886b2e15.out b/test/expected/test_cmds.sh_68c774418bac897bd4d4fe9dbbf08454886b2e15.out new file mode 100644 index 0000000..0dd4cb7 --- /dev/null +++ b/test/expected/test_cmds.sh_68c774418bac897bd4d4fe9dbbf08454886b2e15.out @@ -0,0 +1,3 @@ +192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" +[31m192.168.202.254[0m[31m - [0m[31m-[0m[31m [[0m[31m20/Jul/2009:22:59:29 +0000[0m[31m] "[0m[31mGET[0m[31m [0m[31m/vmw/vSphere/default/vmkboot.gz[0m[31m [0m[31mHTTP/1.0[0m[31m" 404 46210 "[0m[31m-[0m[31m" "[0m[31mgPXE/0.9.7[0m[31m"[0m +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_7cb644890c4b945ff3f1e15c86a58c85cb5425c0.out b/test/expected/test_cmds.sh_7cb644890c4b945ff3f1e15c86a58c85cb5425c0.out index 7ad9d78..6377559 100644 --- a/test/expected/test_cmds.sh_7cb644890c4b945ff3f1e15c86a58c85cb5425c0.out +++ b/test/expected/test_cmds.sh_7cb644890c4b945ff3f1e15c86a58c85cb5425c0.out @@ -1,5 +1,5 @@ -┏━━┳━━━━━━━━━━━━━┓ -┃c1┃ c2 ┃ -┡━━╇━━━━━━━━━━━━━┩ -│ 1│Hello, World!│ -└━━┴━━━━━━━━━━━━━┘ +┏━━━━━━━━━━┳━━━━━━━━━━━━━┓ +┃ c1 ┃ c2 ┃ +┡━━━━━━━━━━╇━━━━━━━━━━━━━┩ +│ 1│Hello, World!│ +└━━━━━━━━━━┴━━━━━━━━━━━━━┘ diff --git a/test/expected/test_text_file.sh_2e69c22dcfa37b5c3e8490a6026eacb7ca953998.out b/test/expected/test_cmds.sh_949826cc086c7a5c87270be172e3caa3bf8f928d.err index e69de29..e69de29 100644 --- a/test/expected/test_text_file.sh_2e69c22dcfa37b5c3e8490a6026eacb7ca953998.out +++ b/test/expected/test_cmds.sh_949826cc086c7a5c87270be172e3caa3bf8f928d.err diff --git a/test/expected/test_cmds.sh_949826cc086c7a5c87270be172e3caa3bf8f928d.out b/test/expected/test_cmds.sh_949826cc086c7a5c87270be172e3caa3bf8f928d.out new file mode 100644 index 0000000..0ac26ae --- /dev/null +++ b/test/expected/test_cmds.sh_949826cc086c7a5c87270be172e3caa3bf8f928d.out @@ -0,0 +1 @@ +{"ts": "2013-09-06T22:00:49.124817Z", "lvl": "INFO", "msg": "Shutting down service", "user": "steve@example.com"} info steve@example.com diff --git a/test/expected/test_text_file.sh_801414c6bb6d3f9225973eafa3c6dfa49cd2081d.err b/test/expected/test_cmds.sh_9527f941dc84a2ac3a030f222e41c6ccd1961cbe.err index e69de29..e69de29 100644 --- a/test/expected/test_text_file.sh_801414c6bb6d3f9225973eafa3c6dfa49cd2081d.err +++ b/test/expected/test_cmds.sh_9527f941dc84a2ac3a030f222e41c6ccd1961cbe.err diff --git a/test/expected/test_cmds.sh_9527f941dc84a2ac3a030f222e41c6ccd1961cbe.out b/test/expected/test_cmds.sh_9527f941dc84a2ac3a030f222e41c6ccd1961cbe.out new file mode 100644 index 0000000..b91e5b5 --- /dev/null +++ b/test/expected/test_cmds.sh_9527f941dc84a2ac3a030f222e41c6ccd1961cbe.out @@ -0,0 +1 @@ +[31mHello, World![0m diff --git a/test/expected/test_cmds.sh_a00943ef715598c7554b85de8502454e41bb9e28.out b/test/expected/test_cmds.sh_a00943ef715598c7554b85de8502454e41bb9e28.out index 01761e9..bcef8b0 100644 --- a/test/expected/test_cmds.sh_a00943ef715598c7554b85de8502454e41bb9e28.out +++ b/test/expected/test_cmds.sh_a00943ef715598c7554b85de8502454e41bb9e28.out @@ -1,4 +1,4 @@ -[7m Thu Nov 03 09:20:00 [0m[1m[7m[31m 1 normal 2 errors 0 warnings [0m 0 marks -[7m Thu Nov 03 09:45:00 [0m 1 normal 0 errors 0 warnings 0 marks -[1m[7m[31m Fri Feb 03 09:20:00 [0m 0 normal 1 errors 0 warnings 0 marks -[7m Wed Jan 03 09:20:00 [0m 1 normal 0 errors 0 warnings 0 marks +[7m Thu Nov 03 09:20:00 [0m[1m[7m[31m 1 normal 2 errors 0 warnings [0m 0 marks +[7m Thu Nov 03 09:45:00 [0m 1 normal 0 errors 0 warnings 0 marks +[1m[7m[31m Fri Feb 03 09:20:00 [0m[1m 0 normal 1 errors 0 warnings 0 marks[0m +[1m[7m Wed Jan 03 09:20:00 [0m[1m 1 normal 0 errors 0 warnings 0 marks[0m diff --git a/test/expected/test_cmds.sh_a0e6214b2a85c90d31aee12efde850441cca7eb3.out b/test/expected/test_cmds.sh_a0e6214b2a85c90d31aee12efde850441cca7eb3.out deleted file mode 100644 index 1d3eae4..0000000 --- a/test/expected/test_cmds.sh_a0e6214b2a85c90d31aee12efde850441cca7eb3.out +++ /dev/null @@ -1,2 +0,0 @@ -[1m[4mlog_top_line() [0m - 51 diff --git a/test/expected/test_cmds.sh_a8006c4169d76baecd99a0699c2fc66a583ad676.err b/test/expected/test_cmds.sh_a8006c4169d76baecd99a0699c2fc66a583ad676.err index 644b202..94f8e7b 100644 --- a/test/expected/test_cmds.sh_a8006c4169d76baecd99a0699c2fc66a583ad676.err +++ b/test/expected/test_cmds.sh_a8006c4169d76baecd99a0699c2fc66a583ad676.err @@ -3,5 +3,5 @@ [36m | [0m[37m[40m:[0m[1m[36m[40mfilter-out[0m[37m[40m 32 [0m [36m =[0m [36mhelp[0m: [4m:[0m[1m[4mfilter-out[0m[4m [0m[4mpattern[0m ══════════════════════════════════════════════════════════════════════ - Remove lines that match the given regular expression in the current - view + Remove lines that match the given regular expression in the + current view diff --git a/test/expected/test_cmds.sh_ac45fb0f8f9578c3ded0855f694698ec38ce31ad.out b/test/expected/test_cmds.sh_ac45fb0f8f9578c3ded0855f694698ec38ce31ad.out index fa6a319..877b967 100644 --- a/test/expected/test_cmds.sh_ac45fb0f8f9578c3ded0855f694698ec38ce31ad.out +++ b/test/expected/test_cmds.sh_ac45fb0f8f9578c3ded0855f694698ec38ce31ad.out @@ -1,12 +1,12 @@ { - [35m"foo bar"[0m: null, + [35m"foo bar"[0m: [1m[36mnull[0m, [35m"array"[0m: [ - 1, - 2, - 3 + [1m1[0m, + [1m2[0m, + [1m3[0m ], [35m"obj"[0m: { - [35m"one"[0m: 1, - [35m"two"[0m: true + [35m"one"[0m: [1m1[0m, + [35m"two"[0m: [1m[36mtrue[0m } } diff --git a/test/expected/test_cmds.sh_af0fcbd30b3fd0d13477aa3325ef0302052a4d9f.out b/test/expected/test_cmds.sh_af0fcbd30b3fd0d13477aa3325ef0302052a4d9f.out index be06882..f4f4bcd 100644 --- a/test/expected/test_cmds.sh_af0fcbd30b3fd0d13477aa3325ef0302052a4d9f.out +++ b/test/expected/test_cmds.sh_af0fcbd30b3fd0d13477aa3325ef0302052a4d9f.out @@ -1 +1 @@ -[7m [0mSat Nov 03 08:00:00 1 normal 0 errors 0 warnings 0 marks +[7m Sat Nov 03 08:00:00 1 normal 0 errors 0 warnings [0m 0 marks diff --git a/test/expected/test_text_file.sh_c21295f131c221861568bda5014b76ef99bdd11f.err b/test/expected/test_cmds.sh_b3d0588ad144a841200692b46125bddf66f5d8bb.err index e69de29..e69de29 100644 --- a/test/expected/test_text_file.sh_c21295f131c221861568bda5014b76ef99bdd11f.err +++ b/test/expected/test_cmds.sh_b3d0588ad144a841200692b46125bddf66f5d8bb.err diff --git a/test/expected/test_cmds.sh_b3d0588ad144a841200692b46125bddf66f5d8bb.out b/test/expected/test_cmds.sh_b3d0588ad144a841200692b46125bddf66f5d8bb.out new file mode 100644 index 0000000..8ab686e --- /dev/null +++ b/test/expected/test_cmds.sh_b3d0588ad144a841200692b46125bddf66f5d8bb.out @@ -0,0 +1 @@ +Hello, World! diff --git a/test/expected/test_cmds.sh_b6a3bb78e9d60e5e1f5ce5b18e40d2f1662707ab.out b/test/expected/test_cmds.sh_b6a3bb78e9d60e5e1f5ce5b18e40d2f1662707ab.out index aca5279..8352cf5 100644 --- a/test/expected/test_cmds.sh_b6a3bb78e9d60e5e1f5ce5b18e40d2f1662707ab.out +++ b/test/expected/test_cmds.sh_b6a3bb78e9d60e5e1f5ce5b18e40d2f1662707ab.out @@ -51,33 +51,27 @@ not have to manually specify the log file format. The currently supported formats are: syslog, apache, strace, tcsh history, and generic log files with timestamps. -Lnav will also display data piped in on the standard input. The -following options are available when doing so: - - [33m•[0m [37m[40m -t [0m Prepend timestamps to the lines of data being read - in on the standard input. - [33m•[0m [37m[40m -w file [0m Write the contents of the standard input to - this file. +Lnav will also display data piped in on the standard input. To automatically execute queries or lnav commands after the files have been loaded, you can use the following options: [33m•[0m [37m[40m -c cmd [0m A command, query, or file to execute. The first character determines the type of operation: a colon - ([37m[40m : [0m) is used for the built-in commands; a semi-colon ([37m[40m ;[0m - ) for SQL queries; and a pipe symbol ([37m[40m | [0m) for executing - a file containing other commands. For example, to open - the file "foo.log" and go to the tenth line in the file, - you can do: + ([37m[40m : [0m) is used for the built-in commands; a semi-colon ( + [37m[40m ; [0m) for SQL/PRQL queries; and a pipe symbol ([37m[40m | [0m) for + executing a file containing other commands. For example, + to open the file "foo.log" and go to the tenth line in + the file, you can do: ▌[37m[40mlnav -c [0m[35m[40m':goto 10'[0m[37m[40m foo.log [0m This option can be given multiple times to execute multiple operations in sequence. [33m•[0m [37m[40m -f file [0m A file that contains commands, queries, or - files to execute. This option is a shortcut for [37m[40m -c '|file'[0m - . You can use a dash ([37m[40m - [0m) to execute commands from the - standard input. + files to execute. This option is a shortcut for + [37m[40m -c '|file' [0m. You can use a dash ([37m[40m - [0m) to execute + commands from the standard input. To execute commands/queries without opening the interactive text UI, you can pass the [37m[40m -n [0m option. This combination of options allows you @@ -111,7 +105,8 @@ On color displays, the lines will be highlighted as follows: [33m•[0m Errors will be colored in [31mred[0m; [33m•[0m warnings will be [33myellow[0m; - [33m•[0m boundaries between days will be [4munderlined[0m; and + [33m•[0m boundaries between days will be [4munderlined[0m; + and [33m•[0m various color highlights will be applied to: IP addresses, SQL keywords, XML tags, file and line numbers in Java backtraces, and quoted strings. @@ -132,13 +127,14 @@ each message and pressing again will show the full paths. Above and below the main body are status lines that display a variety of information. The top line displays: - [33m•[0m The current time, configurable by the [37m[40m /ui/clock-format [0m - property. - [33m•[0m The highest priority message from the [37m[40m lnav_user_notifications [0m - table. You can insert rows into this table to display - your own status messages. The default message displayed - on startup explains how to focus on the next status line - at the top, which is an interactive breadcrumb bar. + [33m•[0m The current time, configurable by the + [37m[40m /ui/clock-format [0m property. + [33m•[0m The highest priority message from the + [37m[40m lnav_user_notifications [0m table. You can insert rows into + this table to display your own status messages. The + default message displayed on startup explains how to + focus on the next status line at the top, which is an + interactive breadcrumb bar. The second status line at the top display breadcrumbs for the top line in the main view. Pressing [37m[40m ENTER [0m will focus input on the breadcrumb @@ -147,8 +143,8 @@ breadcrumbs are: [33m•[0m The name of the current view. [33m•[0m In the log view, the timestamp of the top log message. - [33m•[0m In the log view, the format of the log file the top log - message is from. + [33m•[0m In the log view, the format of the log file the top + log message is from. [33m•[0m The name of the file the top line was pulled from. [33m•[0m If the top line is within a larger chunk of structured data, the path to the value in the top line will be @@ -156,8 +152,8 @@ breadcrumbs are: Notes: - [33m1.[0m Pressing [37m[40m CTRL-A [0m/[37m[40m CTRL-E [0m will select the first/last - breadcrumb. + [33m1.[0m Pressing [37m[40m CTRL-A [0m/[37m[40m CTRL-E [0m will select the + first/last breadcrumb. [33m2.[0m Typing text while a breadcrumb is selected will perform a fuzzy search on the possibilities. @@ -172,7 +168,8 @@ the following: [33m•[0m The number of enabled filters and the total number of filters. - [33m•[0m The number of lines not displayed because of filtering. + [33m•[0m The number of lines not displayed because of + filtering. To edit the filters, you can press TAB to change the focus from the main view to the filter editor. The editor allows you to create, @@ -207,14 +204,14 @@ can always use [37m[40m q [0m to pop the top view off of the stack. the log file view. Q Similar to [37m[40m q [0m, except it will try to sync the top time between the current and former views. For - example, when leaving the spectrogram view with [37m[40m Q[0m - , the top time in that view will be matched to the - top time in the log view. + example, when leaving the spectrogram view with + [37m[40m Q [0m, the top time in that view will be matched to + the top time in the log view. TAB Toggle focusing on the filter editor or the main view. ENTER Focus on the breadcrumb bar. - a/A Restore the view that was previously popped with [37m[40m q[0m - /[37m[40m Q [0m. The [37m[40m A [0m hotkey will try to match the top + a/A Restore the view that was previously popped with + [37m[40m q [0m/[37m[40m Q [0m. The [37m[40m A [0m hotkey will try to match the top times between the two views. X Close the current text file or log file. @@ -263,11 +260,10 @@ can always use [37m[40m q [0m to pop the top view off of the stack. and then the last message arrives five seconds later, the last message will be highlighted as a slow down. - {/} Move to the previous/next location in history. - Whenever you jump to a new location in the view, - the location will be added to the history. The - history is not updated when using only the arrow - keys. + {/} Move to the previous/next section in the view. In + the LOG view, this moves through partitions. In + other views, it moves through sections of + documents. [4mChronological Navigation[0m @@ -427,10 +423,10 @@ can always use [37m[40m q [0m to pop the top view off of the stack. name are treated as arguments can be referenced in the script using [37m[40m $1 [0m, [37m[40m $2 [0m, and so on, like in a shell script. - CTRL+], ESCAPE Abort command-line entry started with [37m[40m / [0m, [37m[40m : [0m, [37m[40m ;[0m - , or [37m[40m | [0m. + CTRL+], ESCAPE Abort command-line entry started with [37m[40m / [0m, [37m[40m : [0m, + [37m[40m ; [0m, or [37m[40m | [0m. - ▌[1mNote[0m: The regular expression format used by lnav is [4mPCRE[1][0m + ▌[1mNote[0m: The regular expression format used by lnav is ]8;;http://perldoc.perl.org/perlre.html\[4mPCRE[0m]8;;\[4m[1][0m ▌(Perl-Compatible Regular Expressions). ▌ ▌ ▌[1] - http://perldoc.perl.org/perlre.html @@ -471,14 +467,14 @@ mouse to mark lines of text and move the view by grabbing the scrollbar. NOTE: You need to manually enable this feature by setting the LNAV_EXP -environment variable to "mouse". F2 toggles mouse support. +environment variable to "mouse". [37m[40m F2 [0m toggles mouse support. -[1mSQL Queries (experimental)[0m +[1mLog Analysis[0m Lnav has support for performing SQL queries on log files using the -Sqlite3 "virtual" table feature. For all supported log file types, +SQLite3 "virtual" table feature. For all supported log file types, lnav will create tables that can be queried using the subset of SQL -that is supported by Sqlite3. For example, to get the top ten URLs +that is supported by SQLite3. For example, to get the top ten URLs being accessed in any loaded Apache log files, you can execute: ▌[37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[37m[40mcs_uri_stem[0m[37m[40m, [0m[1m[37m[40mcount[0m[37m[40m([0m[1m[37m[40m*[0m[37m[40m) [0m[1m[36m[40mAS[0m[37m[40m [0m[37m[40mtotal[0m[37m[40m [0m[1m[36m[40mFROM[0m[37m[40m [0m[37m[40maccess_log[0m[37m[40m [0m @@ -542,8 +538,8 @@ structured. log_procname The name of the process that sent the message. log_pid The process ID of the process that sent the message. - [33m•[0m [37m[40m access_log [0m (The column names are the same as those in - the Microsoft LogParser tool.) + [33m•[0m [37m[40m access_log [0m (The column names are the same as those + in the Microsoft LogParser tool.) Column Description ══════════════════════════════════════════════════════════ @@ -579,6 +575,37 @@ example of a top ten query into the "/tmp/topten.db" file, you can do: ▌[37m[40m [0m[1m[36m[40mFROM[0m[37m[40m [0m[37m[40maccess_log[0m[37m[40m [0m[1m[36m[40mGROUP[0m[37m[40m [0m[1m[36m[40mBY[0m[37m[40m [0m[37m[40mcs_uri_stem[0m[37m[40m [0m[1m[36m[40mORDER[0m[37m[40m [0m[1m[36m[40mBY[0m[37m[40m [0m[37m[40mtotal[0m[37m[40m [0m[1m[36m[40mDESC[0m[37m[40m [0m ▌[37m[40m [0m[1m[36m[40mLIMIT[0m[37m[40m [0m[1m[37m[40m10[0m[37m[40m; [0m +[4mPRQL Support[0m + +The Pipelined Relational Query Language ]8;;https://prql-lang.org\[4m(PRQL)[0m]8;;\[4m[1][0m is an alternative +database query language that compiles to SQL. The main advantage of +PRQL, in the context of lnav, is that it is easier to work with +interactively compared to SQL. For example, lnav can provide previews +of different stages of the pipeline and provide more accurate +tab-completions for the columns in the result set. + + ▌[1] - https://prql-lang.org + +You can execute a PRQL query in the SQL prompt. A PRQL query starts +with the [37m[40m from [0m keyword that specifies the table to use as a data +source. The next stage of a pipeline is started by entering a pipe +symbol ([37m[40m | [0m) followed by a ]8;;https://prql-lang.org/book/reference/stdlib/transforms/index.html\[4mPRQL transform[0m]8;;\[4m[1][0m. As you build the query +in the prompt, lnav will display any relevant help and preview for the +current and previous stages of the pipeline. + + ▌[1] - https://prql-lang.org/book/reference/stdlib/transforms/index.html + +Using the top ten URLs query from earlier as an example, the PRQL +version would be as follows: + + ▌[37m[40m;[0m[1m[36m[40mfrom[0m[37m[40m [0m[37m[40maccess_log[0m[37m[40m | [0m[37m[40mstats[0m[37m[40m.[0m[37m[40mcount_by[0m[37m[40m [0m[37m[40mcs_uri_stem[0m[37m[40m | [0m[1m[36m[40mtake[0m[37m[40m [0m[1m[37m[40m10[0m[37m[40m [0m + +The first stage selects the data source, the web [37m[40m access_log [0m table in +this case. The [37m[40m stats.count_by [0m transform is a convenience provided +by lnav that groups by the given column, counts the rows in each +group, and sorts by count in descending order. The [37m[40m take 10 [0mturns +into the [37m[40m LIMIT 10 [0m. + [1mDynamic logline Table (experimental)[0m (NOTE: This feature is still very new and not completely reliable yet, @@ -702,7 +729,7 @@ For support questions, email: [4mParameter[0m [4mmsg[0m The message to display [4mSee Also[0m - [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, + [1m:cd[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, [1m:sh[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, [1m:write-view-to[0m [4mExample[0m @@ -711,26 +738,53 @@ For support questions, email: +[4m:[0m[1m[4mannotate[0m +══════════════════════════════════════════════════════════════════════ + Analyze the focused log message and attach annotations +[4mSee Also[0m + [1m:comment[0m, [1m:tag[0m + [4m:[0m[1m[4mappend-to[0m[4m [0m[4mpath[0m ══════════════════════════════════════════════════════════════════════ Append marked lines in the current view to the given file [4mParameter[0m [4mpath[0m The path to the file to append to [4mSee Also[0m - [1m:echo[0m, [1m:export-session-to[0m, [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:redirect-to[0m, - [1m:write-csv-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, - [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, [1m:write-view-to[0m, [1mecholn()[0m + [1m.dump[0m, [1m.read[0m, [1m:echo[0m, [1m:export-session-to[0m, [1m:pipe-line-to[0m, [1m:pipe-to[0m, + [1m:redirect-to[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, + [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, + [1m:write-view-to[0m, [1mecholn()[0m [4mExample[0m #1 To append marked lines to the file /tmp/interesting-lines.txt: [37m[40m:[0m[1m[36m[40mappend-to[0m[37m[40m /tmp/interesting-lines.txt [0m +[4m:[0m[1m[4mcd[0m[4m [0m[4mdir[0m +══════════════════════════════════════════════════════════════════════ + Change the current directory +[4mParameter[0m + [4mdir[0m The new current directory +[4mSee Also[0m + [1m:alt-msg[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, + [1m:sh[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, + [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, [1m:write-view-to[0m + [4m:[0m[1m[4mclear-comment[0m ══════════════════════════════════════════════════════════════════════ Clear the comment attached to the top log line [4mSee Also[0m - [1m:comment[0m, [1m:tag[0m + [1m:annotate[0m, [1m:comment[0m, [1m:tag[0m + +[4m:[0m[1m[4mclear-file-timezone[0m[4m [0m[4mpattern[0m +══════════════════════════════════════════════════════════════════════ + Clear the timezone setting for the focused file or the given glob + pattern. +[4mParameter[0m + [4mpattern[0m The glob pattern to match against files that + should no longer use this timezone +[4mSee Also[0m + [1m:set-file-timezone[0m [4m:[0m[1m[4mclear-filter-expr[0m ══════════════════════════════════════════════════════════════════════ @@ -764,20 +818,24 @@ For support questions, email: Clear the partition the top line is a part of -[4m:[0m[1m[4mclose[0m +[4m:[0m[1m[4mclose[0m[4m [0m[4mpath[0m ══════════════════════════════════════════════════════════════════════ - Close the top file in the view + Close the given file(s) or the top file in the view +[4mParameter[0m + [4mpath[0m A path or glob pattern that specifies the files to + close [4m:[0m[1m[4mcomment[0m[4m [0m[4mtext[0m ══════════════════════════════════════════════════════════════════════ - Attach a comment to the top log line. The comment will be displayed - right below the log message it is associated with. The comment can - be formatted using markdown and you can add new-lines with '\n'. + Attach a comment to the top log line. The comment will be + displayed right below the log message it is associated with. The + comment can be formatted using markdown and you can add new-lines + with '\n'. [4mParameter[0m [4mtext[0m The comment text [4mSee Also[0m - [1m:clear-comment[0m, [1m:tag[0m + [1m:annotate[0m, [1m:clear-comment[0m, [1m:tag[0m [4mExample[0m #1 To add the comment 'This is where it all went wrong' to the top line: [37m[40m:[0m[1m[36m[40mcomment[0m[37m[40m This is where it all went wrong [0m @@ -803,9 +861,17 @@ For support questions, email: +[4m:[0m[1m[4mconvert-time-to[0m[4m [0m[4mzone[0m +══════════════════════════════════════════════════════════════════════ + Convert the focused timestamp to the given timezone +[4mParameter[0m + [4mzone[0m The timezone name + + [4m:[0m[1m[4mcreate-logline-table[0m[4m [0m[4mtable-name[0m ══════════════════════════════════════════════════════════════════════ - Create an SQL table using the top line of the log view as a template + Create an SQL table using the top line of the log view as a + template [4mParameter[0m [4mtable-name[0m The name for the new table [4mSee Also[0m @@ -823,8 +889,8 @@ For support questions, email: Create an SQL table based on a regex search [4mParameters[0m [4mtable-name[0m The name of the table to create - [4mpattern[0m The regular expression used to capture the - table columns. If not given, the current search + [4mpattern[0m The regular expression used to capture + the table columns. If not given, the current search pattern is used. [4mSee Also[0m [1m:create-logline-table[0m, [1m:create-logline-table[0m, [1m:delete-search-table[0m, @@ -834,14 +900,14 @@ For support questions, email: [4mExample[0m #1 To create a table named 'task_durations' that matches log messages with the pattern 'duration=(?<duration>\d+)': - [37m[40m:[0m[1m[36m[40mcreate-search-table[0m[37m[40m task_durations duration=[0m[1m[32m[40m([0m[1m[32m[40m?[0m[1m[36m[40m<[0m[37m[40mduration[0m[1m[36m[40m>[0m[1m[37m[40m\d[0m[1m[36m[40m+[0m[1m[32m[40m)[0m + [37m[40m:[0m[1m[36m[40mcreate-search-table[0m[37m[40m task_durations duration=[0m[1m[32m[40m([0m[1m[32m[40m?[0m[1m[36m[40m<[0m[37m[40mduration>[0m[1m[37m[40m\d[0m[1m[36m[40m+[0m[1m[32m[40m)[0m -[4m:[0m[1m[4mcurre[0m[1m[4mnt-time[0m +[4m:[0m[1m[4mcurrent-time[0m ══════════════════════════════════════════════════════════════════════ - Print the current time in human-readable form and seconds since the - epoch + Print the current time in human-readable form and seconds since + the epoch [4m:[0m[1m[4mdelete-filter[0m[4m [0m[4mpattern[0m @@ -896,7 +962,7 @@ For support questions, email: [4mParameter[0m [4mtag[0m The tags to delete [4mSee Also[0m - [1m:comment[0m, [1m:tag[0m + [1m:annotate[0m, [1m:comment[0m, [1m:tag[0m [4mExample[0m #1 To remove the tags '#BUG123' and '#needs-review' from all log lines: [37m[40m:[0m[1m[36m[40mdelete-tags[0m[37m[40m [0m[37m[40m#BUG123[0m[37m[40m [0m[37m[40m#needs-review[0m[37m[40m [0m @@ -934,12 +1000,13 @@ For support questions, email: [4m-n[0m Do not print a line-feed at the end of the output [4mmsg[0m The message to display [4mSee Also[0m - [1m:alt-msg[0m, [1m:append-to[0m, [1m:eval[0m, [1m:export-session-to[0m, [1m:export-session-to[0m, - [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, [1m:redirect-to[0m, - [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, [1m:write-json-to[0m, - [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, [1m:write-raw-to[0m, - [1m:write-screen-to[0m, [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-table-to[0m, - [1m:write-to[0m, [1m:write-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, [1mecholn()[0m + [1m.dump[0m, [1m.read[0m, [1m:alt-msg[0m, [1m:append-to[0m, [1m:cd[0m, [1m:eval[0m, [1m:export-session-to[0m, + [1m:export-session-to[0m, [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, + [1m:redirect-to[0m, [1m:sh[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, + [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, + [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-screen-to[0m, + [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, [1m:write-to[0m, [1m:write-view-to[0m, + [1m:write-view-to[0m, [1mecholn()[0m [4mExample[0m #1 To output 'Hello, World!': [37m[40m:[0m[1m[36m[40mecho[0m[37m[40m Hello, World! [0m @@ -972,9 +1039,10 @@ For support questions, email: Evaluate the given command/query after doing environment variable substitution [4mParameter[0m - [4mcommand[0m The command or query to perform substitution on. + [4mcommand[0m The command or query to perform substitution + on. [4mSee Also[0m - [1m:alt-msg[0m, [1m:echo[0m, [1m:export-session-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, + [1m:alt-msg[0m, [1m:cd[0m, [1m:echo[0m, [1m:export-session-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, [1m:sh[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, [1m:write-view-to[0m [4mExample[0m @@ -985,17 +1053,17 @@ For support questions, email: [4m:[0m[1m[4mexport-session-to[0m[4m [0m[4mpath[0m ══════════════════════════════════════════════════════════════════════ - Export the current lnav state to an executable lnav script file that - contains the commands needed to restore the current session + Export the current lnav state to an executable lnav script file + that contains the commands needed to restore the current session [4mParameter[0m [4mpath[0m The path to the file to write [4mSee Also[0m - [1m:alt-msg[0m, [1m:append-to[0m, [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:pipe-line-to[0m, [1m:pipe-to[0m, - [1m:rebuild[0m, [1m:redirect-to[0m, [1m:redirect-to[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, - [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, - [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-screen-to[0m, - [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, - [1m:write-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, [1mecholn()[0m + [1m.dump[0m, [1m.read[0m, [1m:alt-msg[0m, [1m:append-to[0m, [1m:cd[0m, [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, + [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, [1m:redirect-to[0m, [1m:sh[0m, + [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, [1m:write-json-to[0m, + [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, [1m:write-raw-to[0m, + [1m:write-screen-to[0m, [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-table-to[0m, + [1m:write-to[0m, [1m:write-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, [1mecholn()[0m [4m:[0m[1m[4mfilter-expr[0m[4m [0m[4mexpr[0m ══════════════════════════════════════════════════════════════════════ @@ -1035,8 +1103,8 @@ For support questions, email: [4m:[0m[1m[4mfilter-out[0m[4m [0m[4mpattern[0m ══════════════════════════════════════════════════════════════════════ - Remove lines that match the given regular expression in the current - view + Remove lines that match the given regular expression in the + current view [4mParameter[0m [4mpattern[0m The regular expression to match [4mSee Also[0m @@ -1056,7 +1124,8 @@ For support questions, email: number, percent into the file, timestamp, or an anchor in a text file [4mSee Also[0m - [1m:next-location[0m, [1m:next-mark[0m, [1m:prev-location[0m, [1m:prev-mark[0m, [1m:relative-goto[0m + [1m:next-location[0m, [1m:next-mark[0m, [1m:next-section[0m, [1m:prev-location[0m, [1m:prev-mark[0m, + [1m:prev-section[0m, [1m:relative-goto[0m [4mExamples[0m #1 To go to line 22: [37m[40m:[0m[1m[36m[40mgoto[0m[37m[40m 22 [0m @@ -1102,7 +1171,7 @@ For support questions, email: [4m:[0m[1m[4mhide-file[0m[4m [0m[4mpath[0m ══════════════════════════════════════════════════════════════════════ - Hide the given file(s) and skip indexing until it is shown again. + Hide the given file(s) and skip indexing until it is shown again. If no path is given, the current file in the view is hidden [4mParameter[0m [4mpath[0m A path or glob pattern that specifies the files to @@ -1154,8 +1223,8 @@ For support questions, email: [4m:[0m[1m[4mhighlight[0m[4m [0m[4mpattern[0m ══════════════════════════════════════════════════════════════════════ - Add coloring to log messages fragments that match the given regular - expression + Add coloring to log messages fragments that match the given + regular expression [4mParameter[0m [4mpattern[0m The regular expression to match [4mSee Also[0m @@ -1196,23 +1265,31 @@ For support questions, email: ══════════════════════════════════════════════════════════════════════ Move to the next position in the location history [4mSee Also[0m - [1m:goto[0m, [1m:next-mark[0m, [1m:prev-location[0m, [1m:prev-mark[0m, [1m:relative-goto[0m + [1m:goto[0m, [1m:next-mark[0m, [1m:next-section[0m, [1m:prev-location[0m, [1m:prev-mark[0m, + [1m:prev-section[0m, [1m:relative-goto[0m [4m:[0m[1m[4mnext-mark[0m[4m [0m[4mtype[0m[4m1[0m[4m [[0m[4m...[0m[4m [0m[4mtype[0m[4mN[0m[4m][0m ══════════════════════════════════════════════════════════════════════ Move to the next bookmark of the given type in the current view [4mParameter[0m - [4mtype[0m The type of bookmark -- error, warning, search, user, - file, meta + [4mtype[0m The type of bookmark -- error, warning, search, + user, file, meta [4mSee Also[0m - [1m:goto[0m, [1m:hide-unmarked-lines[0m, [1m:mark[0m, [1m:next-location[0m, [1m:prev-location[0m, - [1m:prev-mark[0m, [1m:prev-mark[0m, [1m:relative-goto[0m + [1m:goto[0m, [1m:hide-unmarked-lines[0m, [1m:mark[0m, [1m:next-location[0m, [1m:next-section[0m, + [1m:prev-location[0m, [1m:prev-mark[0m, [1m:prev-mark[0m, [1m:prev-section[0m, [1m:relative-goto[0m [4mExample[0m #1 To go to the next error: [37m[40m:[0m[1m[36m[40mnext-mark[0m[37m[40m error [0m +[4m:[0m[1m[4mnext-section[0m +══════════════════════════════════════════════════════════════════════ + Move to the next section in the document +[4mSee Also[0m + [1m:goto[0m, [1m:next-location[0m, [1m:next-mark[0m, [1m:prev-location[0m, [1m:prev-mark[0m, + [1m:prev-section[0m, [1m:relative-goto[0m + [4m:[0m[1m[4mopen[0m[4m [0m[4mpath[0m[4m1[0m[4m [[0m[4m...[0m[4m [0m[4mpath[0m[4mN[0m[4m][0m ══════════════════════════════════════════════════════════════════════ Open the given file(s) in lnav. Opening files on machines @@ -1246,13 +1323,15 @@ For support questions, email: [4m:[0m[1m[4mpipe-line-to[0m[4m [0m[4mshell-cmd[0m ══════════════════════════════════════════════════════════════════════ - Pipe the top line to the given shell command + Pipe the focused line to the given shell command. Any fields + defined by the format will be set as environment variables. [4mParameter[0m [4mshell-cmd[0m The shell command-line to execute [4mSee Also[0m - [1m:append-to[0m, [1m:echo[0m, [1m:export-session-to[0m, [1m:pipe-to[0m, [1m:redirect-to[0m, - [1m:write-csv-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, - [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, [1m:write-view-to[0m, [1mecholn()[0m + [1m.dump[0m, [1m.read[0m, [1m:append-to[0m, [1m:echo[0m, [1m:export-session-to[0m, [1m:pipe-to[0m, + [1m:redirect-to[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, + [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, + [1m:write-view-to[0m, [1mecholn()[0m [4mExample[0m #1 To write the top line to 'sed' for processing: [37m[40m:[0m[1m[36m[40mpipe-line-to[0m[37m[40m sed -e 's/foo/bar/g' [0m @@ -1265,9 +1344,10 @@ For support questions, email: [4mParameter[0m [4mshell-cmd[0m The shell command-line to execute [4mSee Also[0m - [1m:append-to[0m, [1m:echo[0m, [1m:export-session-to[0m, [1m:pipe-line-to[0m, [1m:redirect-to[0m, - [1m:write-csv-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, - [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, [1m:write-view-to[0m, [1mecholn()[0m + [1m.dump[0m, [1m.read[0m, [1m:append-to[0m, [1m:echo[0m, [1m:export-session-to[0m, [1m:pipe-line-to[0m, + [1m:redirect-to[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, + [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, + [1m:write-view-to[0m, [1mecholn()[0m [4mExample[0m #1 To write marked lines to 'sed' for processing: [37m[40m:[0m[1m[36m[40mpipe-to[0m[37m[40m sed -e s/foo/bar/g [0m @@ -1278,23 +1358,33 @@ For support questions, email: ══════════════════════════════════════════════════════════════════════ Move to the previous position in the location history [4mSee Also[0m - [1m:goto[0m, [1m:next-location[0m, [1m:next-mark[0m, [1m:prev-mark[0m, [1m:relative-goto[0m + [1m:goto[0m, [1m:next-location[0m, [1m:next-mark[0m, [1m:next-section[0m, [1m:prev-mark[0m, + [1m:prev-section[0m, [1m:relative-goto[0m [4m:[0m[1m[4mprev-mark[0m[4m [0m[4mtype[0m[4m1[0m[4m [[0m[4m...[0m[4m [0m[4mtype[0m[4mN[0m[4m][0m ══════════════════════════════════════════════════════════════════════ - Move to the previous bookmark of the given type in the current view + Move to the previous bookmark of the given type in the current + view [4mParameter[0m - [4mtype[0m The type of bookmark -- error, warning, search, user, - file, meta + [4mtype[0m The type of bookmark -- error, warning, search, + user, file, meta [4mSee Also[0m [1m:goto[0m, [1m:hide-unmarked-lines[0m, [1m:mark[0m, [1m:next-location[0m, [1m:next-mark[0m, - [1m:next-mark[0m, [1m:prev-location[0m, [1m:relative-goto[0m + [1m:next-mark[0m, [1m:next-section[0m, [1m:prev-location[0m, [1m:prev-section[0m, + [1m:relative-goto[0m [4mExample[0m #1 To go to the previous error: [37m[40m:[0m[1m[36m[40mprev-mark[0m[37m[40m error [0m +[4m:[0m[1m[4mprev-section[0m +══════════════════════════════════════════════════════════════════════ + Move to the previous section in the document +[4mSee Also[0m + [1m:goto[0m, [1m:next-location[0m, [1m:next-mark[0m, [1m:next-section[0m, [1m:prev-location[0m, + [1m:prev-mark[0m, [1m:relative-goto[0m + [4m:[0m[1m[4mprompt[0m[4m [0m[4mtype[0m[4m [[0m[4m--alt[0m[4m] [[0m[4mprompt[0m[4m] [[0m[4minitial-value[0m[4m][0m ══════════════════════════════════════════════════════════════════════ Open the given prompt @@ -1304,8 +1394,9 @@ For support questions, email: [4m--alt[0m Perform the alternate action for this prompt by default [4mprompt[0m The prompt to display - [4minitial-value[0m The initial value to fill in for the - prompt + [4mValues[0m: [1mbreadcrumb[0m|[1mcommand[0m|[1mscript[0m|[1msearch[0m|[1msql[0m + [4minitial-value[0m The initial value to fill in for + the prompt [4mExamples[0m #1 To open the command prompt with 'filter-in' already filled in: @@ -1336,7 +1427,7 @@ For support questions, email: ══════════════════════════════════════════════════════════════════════ Forcefully rebuild file indexes [4mSee Also[0m - [1m:alt-msg[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, [1m:redirect-to[0m, + [1m:alt-msg[0m, [1m:cd[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, [1m:redirect-to[0m, [1m:sh[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, [1m:write-view-to[0m @@ -1345,15 +1436,16 @@ For support questions, email: Redirect the output of commands that write to stdout to the given file [4mParameter[0m - [4mpath[0m The path to the file to write. If not specified, the - current redirect will be cleared + [4mpath[0m The path to the file to write. If not specified, + the current redirect will be cleared [4mSee Also[0m - [1m:alt-msg[0m, [1m:append-to[0m, [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, - [1m:export-session-to[0m, [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:write-csv-to[0m, - [1m:write-csv-to[0m, [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, - [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-screen-to[0m, - [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, - [1m:write-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, [1mecholn()[0m + [1m.dump[0m, [1m.read[0m, [1m:alt-msg[0m, [1m:append-to[0m, [1m:cd[0m, [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, + [1m:export-session-to[0m, [1m:export-session-to[0m, [1m:pipe-line-to[0m, [1m:pipe-to[0m, + [1m:rebuild[0m, [1m:sh[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, + [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, + [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-screen-to[0m, + [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, [1m:write-to[0m, [1m:write-view-to[0m, + [1m:write-view-to[0m, [1mecholn()[0m [4mExample[0m #1 To write the output of lnav commands to the file /tmp/script-output.txt: [37m[40m:[0m[1m[36m[40mredirect-to[0m[37m[40m /tmp/script-output.txt [0m @@ -1371,7 +1463,8 @@ For support questions, email: [4mParameter[0m [4mline-count|N%[0m The amount to move the view by. [4mSee Also[0m - [1m:goto[0m, [1m:next-location[0m, [1m:next-mark[0m, [1m:prev-location[0m, [1m:prev-mark[0m + [1m:goto[0m, [1m:next-location[0m, [1m:next-mark[0m, [1m:next-section[0m, [1m:prev-location[0m, + [1m:prev-mark[0m, [1m:prev-section[0m [4mExamples[0m #1 To move 22 lines down in the view: [37m[40m:[0m[1m[36m[40mrelative-goto[0m[37m[40m +22 [0m @@ -1418,6 +1511,18 @@ For support questions, email: +[4m:[0m[1m[4mset-file-timezone[0m[4m [0m[4mzone[0m[4m [[0m[4mpattern[0m[4m][0m +══════════════════════════════════════════════════════════════════════ + Set the timezone to use for log messages that do not include a + timezone. The timezone is applied to the focused file or the given + glob pattern. +[4mParameters[0m + [4mzone[0m The timezone name + [4mpattern[0m The glob pattern to match against files that + should use this timezone +[4mSee Also[0m + [1m:clear-file-timezone[0m + [4m:[0m[1m[4mset-min-log-level[0m[4m [0m[4mlog-level[0m ══════════════════════════════════════════════════════════════════════ Set the minimum log level to display in the log view @@ -1430,6 +1535,19 @@ For support questions, email: +[4m:[0m[1m[4msh[0m[4m [0m[4m--name=<name>[0m[4m [0m[4mcmdline[0m +══════════════════════════════════════════════════════════════════════ + Execute the given command-line and display the captured output +[4mParameters[0m + [4m--name=<name>[0m The name to give to the captured + output + [4mcmdline[0m The command-line to execute. +[4mSee Also[0m + [1m:alt-msg[0m, [1m:cd[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, [1m:rebuild[0m, + [1m:redirect-to[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, + [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, + [1m:write-view-to[0m + [4m:[0m[1m[4mshow-fields[0m[4m [0m[4mfield-name[0m[4m1[0m[4m [[0m[4m...[0m[4m [0m[4mfield-name[0m[4mN[0m[4m][0m ══════════════════════════════════════════════════════════════════════ Show log message fields that were previously hidden @@ -1487,8 +1605,8 @@ For support questions, email: [4m:[0m[1m[4msummarize[0m[4m [0m[4mcolumn-name[0m ══════════════════════════════════════════════════════════════════════ - Execute a SQL query that computes the characteristics of the values - in the given column + Execute a SQL query that computes the characteristics of the + values in the given column [4mParameter[0m [4mcolumn-name[0m The name of the column to analyze. @@ -1516,7 +1634,7 @@ For support questions, email: [4mParameter[0m [4mtag[0m The tags to attach [4mSee Also[0m - [1m:comment[0m, [1m:delete-tags[0m, [1m:untag[0m + [1m:annotate[0m, [1m:comment[0m, [1m:delete-tags[0m, [1m:untag[0m [4mExample[0m #1 To add the tags '#BUG123' and '#needs-review' to the top line: [37m[40m:[0m[1m[36m[40mtag[0m[37m[40m [0m[37m[40m#BUG123[0m[37m[40m [0m[37m[40m#needs-review[0m[37m[40m [0m @@ -1563,7 +1681,7 @@ For support questions, email: [4mParameter[0m [4mtag[0m The tags to detach [4mSee Also[0m - [1m:comment[0m, [1m:tag[0m + [1m:annotate[0m, [1m:comment[0m, [1m:tag[0m [4mExample[0m #1 To remove the tags '#BUG123' and '#needs-review' from the top line: [37m[40m:[0m[1m[36m[40muntag[0m[37m[40m [0m[37m[40m#BUG123[0m[37m[40m [0m[37m[40m#needs-review[0m[37m[40m [0m @@ -1577,11 +1695,11 @@ For support questions, email: [4m--anonymize[0m Anonymize the table contents [4mpath[0m The path to the file to write [4mSee Also[0m - [1m:alt-msg[0m, [1m:append-to[0m, [1m:create-logline-table[0m, [1m:create-search-table[0m, - [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, [1m:export-session-to[0m, - [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, [1m:redirect-to[0m, - [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, - [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, + [1m.dump[0m, [1m.read[0m, [1m:alt-msg[0m, [1m:append-to[0m, [1m:cd[0m, [1m:create-logline-table[0m, + [1m:create-search-table[0m, [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, + [1m:export-session-to[0m, [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, + [1m:redirect-to[0m, [1m:sh[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, + [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-screen-to[0m, [1m:write-screen-to[0m, [1m:write-to[0m, [1m:write-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, @@ -1599,14 +1717,15 @@ For support questions, email: [4m--anonymize[0m Anonymize the row contents [4mpath[0m The path to the file to write [4mSee Also[0m - [1m:alt-msg[0m, [1m:append-to[0m, [1m:create-logline-table[0m, [1m:create-search-table[0m, - [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, [1m:export-session-to[0m, - [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, [1m:redirect-to[0m, - [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, - [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, [1m:write-raw-to[0m, - [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-screen-to[0m, [1m:write-screen-to[0m, - [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, - [1m:write-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, [1mecholn()[0m + [1m.dump[0m, [1m.read[0m, [1m:alt-msg[0m, [1m:append-to[0m, [1m:cd[0m, [1m:create-logline-table[0m, + [1m:create-search-table[0m, [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, + [1m:export-session-to[0m, [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, + [1m:redirect-to[0m, [1m:sh[0m, [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-json-to[0m, + [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, + [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-screen-to[0m, + [1m:write-screen-to[0m, [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-table-to[0m, + [1m:write-table-to[0m, [1m:write-to[0m, [1m:write-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, + [1m:write-view-to[0m, [1mecholn()[0m [4mExample[0m #1 To write SQL results as CSV to /tmp/table.csv: [37m[40m:[0m[1m[36m[40mwrite-csv-to[0m[37m[40m /tmp/table.csv [0m @@ -1620,14 +1739,15 @@ For support questions, email: [4m--anonymize[0m Anonymize the JSON values [4mpath[0m The path to the file to write [4mSee Also[0m - [1m:alt-msg[0m, [1m:append-to[0m, [1m:create-logline-table[0m, [1m:create-search-table[0m, - [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, [1m:export-session-to[0m, - [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, [1m:redirect-to[0m, - [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-jsonlines-to[0m, - [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, [1m:write-raw-to[0m, - [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-screen-to[0m, [1m:write-screen-to[0m, - [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, - [1m:write-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, [1mecholn()[0m + [1m.dump[0m, [1m.read[0m, [1m:alt-msg[0m, [1m:append-to[0m, [1m:cd[0m, [1m:create-logline-table[0m, + [1m:create-search-table[0m, [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, + [1m:export-session-to[0m, [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, + [1m:redirect-to[0m, [1m:sh[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, + [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, + [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-screen-to[0m, + [1m:write-screen-to[0m, [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-table-to[0m, + [1m:write-table-to[0m, [1m:write-to[0m, [1m:write-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, + [1m:write-view-to[0m, [1mecholn()[0m [4mExample[0m #1 To write SQL results as JSON to /tmp/table.json: [37m[40m:[0m[1m[36m[40mwrite-json-to[0m[37m[40m /tmp/table.json [0m @@ -1641,14 +1761,15 @@ For support questions, email: [4m--anonymize[0m Anonymize the JSON values [4mpath[0m The path to the file to write [4mSee Also[0m - [1m:alt-msg[0m, [1m:append-to[0m, [1m:create-logline-table[0m, [1m:create-search-table[0m, - [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, [1m:export-session-to[0m, - [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, [1m:redirect-to[0m, - [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, - [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-raw-to[0m, [1m:write-raw-to[0m, - [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-screen-to[0m, [1m:write-screen-to[0m, - [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, - [1m:write-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, [1mecholn()[0m + [1m.dump[0m, [1m.read[0m, [1m:alt-msg[0m, [1m:append-to[0m, [1m:cd[0m, [1m:create-logline-table[0m, + [1m:create-search-table[0m, [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, + [1m:export-session-to[0m, [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, + [1m:redirect-to[0m, [1m:sh[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, + [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-raw-to[0m, + [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-screen-to[0m, + [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-table-to[0m, + [1m:write-to[0m, [1m:write-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, + [1mecholn()[0m [4mExample[0m #1 To write SQL results as JSON Lines to /tmp/table.json: [37m[40m:[0m[1m[36m[40mwrite-jsonlines-to[0m[37m[40m /tmp/table.json [0m @@ -1661,16 +1782,16 @@ For support questions, email: messages to the file. In the DB view, the contents of the cells are written to the output file. [4mParameters[0m - [4m--view={log,db}[0m The view to use as the source of - data + [4m--view={log,db}[0m The view to use as the source + of data [4m--anonymize[0m Anonymize the lines [4mpath[0m The path to the file to write [4mSee Also[0m - [1m:alt-msg[0m, [1m:append-to[0m, [1m:create-logline-table[0m, [1m:create-search-table[0m, - [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, [1m:export-session-to[0m, - [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, [1m:redirect-to[0m, - [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, - [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, + [1m.dump[0m, [1m.read[0m, [1m:alt-msg[0m, [1m:append-to[0m, [1m:cd[0m, [1m:create-logline-table[0m, + [1m:create-search-table[0m, [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, + [1m:export-session-to[0m, [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, + [1m:redirect-to[0m, [1m:sh[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, + [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, [1m:write-screen-to[0m, [1m:write-screen-to[0m, [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, [1m:write-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, @@ -1689,11 +1810,11 @@ For support questions, email: [4m--anonymize[0m Anonymize the lines [4mpath[0m The path to the file to write [4mSee Also[0m - [1m:alt-msg[0m, [1m:append-to[0m, [1m:create-logline-table[0m, [1m:create-search-table[0m, - [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, [1m:export-session-to[0m, - [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, [1m:redirect-to[0m, - [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, - [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, + [1m.dump[0m, [1m.read[0m, [1m:alt-msg[0m, [1m:append-to[0m, [1m:cd[0m, [1m:create-logline-table[0m, + [1m:create-search-table[0m, [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, + [1m:export-session-to[0m, [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, + [1m:redirect-to[0m, [1m:sh[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, + [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, [1m:write-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, @@ -1711,11 +1832,11 @@ For support questions, email: [4m--anonymize[0m Anonymize the table contents [4mpath[0m The path to the file to write [4mSee Also[0m - [1m:alt-msg[0m, [1m:append-to[0m, [1m:create-logline-table[0m, [1m:create-search-table[0m, - [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, [1m:export-session-to[0m, - [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, [1m:redirect-to[0m, - [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, - [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, + [1m.dump[0m, [1m.read[0m, [1m:alt-msg[0m, [1m:append-to[0m, [1m:cd[0m, [1m:create-logline-table[0m, + [1m:create-search-table[0m, [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, + [1m:export-session-to[0m, [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, + [1m:redirect-to[0m, [1m:sh[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, + [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-screen-to[0m, [1m:write-screen-to[0m, [1m:write-to[0m, [1m:write-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, @@ -1733,13 +1854,13 @@ For support questions, email: [4m--anonymize[0m Anonymize the lines [4mpath[0m The path to the file to write [4mSee Also[0m - [1m:alt-msg[0m, [1m:append-to[0m, [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, - [1m:export-session-to[0m, [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, - [1m:redirect-to[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, - [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, - [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-screen-to[0m, - [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-view-to[0m, [1m:write-view-to[0m, - [1mecholn()[0m + [1m.dump[0m, [1m.read[0m, [1m:alt-msg[0m, [1m:append-to[0m, [1m:cd[0m, [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, + [1m:export-session-to[0m, [1m:export-session-to[0m, [1m:pipe-line-to[0m, [1m:pipe-to[0m, + [1m:rebuild[0m, [1m:redirect-to[0m, [1m:redirect-to[0m, [1m:sh[0m, [1m:write-csv-to[0m, + [1m:write-csv-to[0m, [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, + [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-screen-to[0m, + [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-view-to[0m, + [1m:write-view-to[0m, [1mecholn()[0m [4mExample[0m #1 To write marked lines to the file /tmp/interesting-lines.txt: [37m[40m:[0m[1m[36m[40mwrite-to[0m[37m[40m /tmp/interesting-lines.txt [0m @@ -1754,11 +1875,11 @@ For support questions, email: [4m--anonymize[0m Anonymize the lines [4mpath[0m The path to the file to write [4mSee Also[0m - [1m:alt-msg[0m, [1m:append-to[0m, [1m:create-logline-table[0m, [1m:create-search-table[0m, - [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, [1m:export-session-to[0m, - [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, [1m:redirect-to[0m, - [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, - [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, + [1m.dump[0m, [1m.read[0m, [1m:alt-msg[0m, [1m:append-to[0m, [1m:cd[0m, [1m:create-logline-table[0m, + [1m:create-search-table[0m, [1m:echo[0m, [1m:echo[0m, [1m:eval[0m, [1m:export-session-to[0m, + [1m:export-session-to[0m, [1m:pipe-line-to[0m, [1m:pipe-to[0m, [1m:rebuild[0m, [1m:redirect-to[0m, + [1m:redirect-to[0m, [1m:sh[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, [1m:write-csv-to[0m, + [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-screen-to[0m, [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, @@ -1864,13 +1985,13 @@ For support questions, email: [4mSee Also[0m [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, - [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExample[0m #1 To anonymize an IP address: [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40manonymize[0m[37m[40m([0m[35m[40m'Hello, 192.168.1.2'[0m[37m[40m) [0m @@ -2042,8 +2163,8 @@ For support questions, email: [1m[4mchanges[0m[4m()[0m ══════════════════════════════════════════════════════════════════════ - The number of database rows that were changed, inserted, or deleted - by the most recent statement. + The number of database rows that were changed, inserted, or + deleted by the most recent statement. [1m[4mchar[0m[4m([0m[4mX[0m[4m, ...)[0m @@ -2055,16 +2176,16 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, - [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExample[0m #1 To get a string with the code points 0x48 and 0x49: - [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mchar[0m[37m[40m([0m[1m[37m[40m0[0m[37m[40mx48[0m[37m[40m, [0m[1m[37m[40m0[0m[37m[40mx49[0m[37m[40m) [0m + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mchar[0m[37m[40m([0m[1m[37m[40m0x48[0m[37m[40m, [0m[1m[37m[40m0x49[0m[37m[40m) [0m @@ -2081,13 +2202,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, - [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To search for the string 'abc' within 'abcabc' and starting at position 2: [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mcharindex[0m[37m[40m([0m[35m[40m'abc'[0m[37m[40m, [0m[35m[40m'abcabc'[0m[37m[40m, [0m[1m[37m[40m2[0m[37m[40m) [0m @@ -2145,7 +2266,7 @@ For support questions, email: value to the left. [4mSee Also[0m [1mdatetime()[0m, [1mhumanize_duration()[0m, [1mjulianday()[0m, [1mstrftime()[0m, [1mtime()[0m, - [1mtimediff()[0m, [1mtimeslice()[0m + [1mtimediff()[0m, [1mtimeslice()[0m, [1mtimezone()[0m [4mExamples[0m #1 To get the date portion of the timestamp '2017-01-02T03:04:05': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mdate[0m[37m[40m([0m[35m[40m'2017-01-02T03:04:05'[0m[37m[40m) [0m @@ -2164,12 +2285,13 @@ For support questions, email: ══════════════════════════════════════════════════════════════════════ Returns the date and time in this format: YYYY-MM-DD HH:MM:SS. [4mParameters[0m - [4mtimestring[0m The string to convert to a date with time. + [4mtimestring[0m The string to convert to a date with + time. [4mmodifier[0m A transformation that is applied to the value to the left. [4mSee Also[0m [1mdate()[0m, [1mhumanize_duration()[0m, [1mjulianday()[0m, [1mstrftime()[0m, [1mtime()[0m, - [1mtimediff()[0m, [1mtimeslice()[0m + [1mtimediff()[0m, [1mtimeslice()[0m, [1mtimezone()[0m [4mExamples[0m #1 To get the date and time portion of the timestamp '2017-01-02T03:04:05': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mdatetime[0m[37m[40m([0m[35m[40m'2017-01-02T03:04:05'[0m[37m[40m) [0m @@ -2195,13 +2317,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, - [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExample[0m #1 To decode the URI-encoded string '%63%75%72%6c': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mdecode[0m[37m[40m([0m[35m[40m'%63%75%72%6c'[0m[37m[40m, [0m[35m[40m'uri'[0m[37m[40m) [0m @@ -2266,10 +2388,10 @@ For support questions, email: [4mParameter[0m [4mvalue[0m The value to write to the current output file [4mSee Also[0m - [1m:append-to[0m, [1m:echo[0m, [1m:export-session-to[0m, [1m:pipe-line-to[0m, [1m:pipe-to[0m, - [1m:redirect-to[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, [1m:write-jsonlines-to[0m, - [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-table-to[0m, [1m:write-to[0m, - [1m:write-view-to[0m + [1m.dump[0m, [1m.read[0m, [1m:append-to[0m, [1m:echo[0m, [1m:export-session-to[0m, [1m:pipe-line-to[0m, + [1m:pipe-to[0m, [1m:redirect-to[0m, [1m:write-csv-to[0m, [1m:write-json-to[0m, + [1m:write-jsonlines-to[0m, [1m:write-raw-to[0m, [1m:write-screen-to[0m, [1m:write-table-to[0m, + [1m:write-to[0m, [1m:write-view-to[0m [1m[4mencode[0m[4m([0m[4mvalue[0m[4m, [0m[4malgorithm[0m[4m)[0m ══════════════════════════════════════════════════════════════════════ @@ -2281,13 +2403,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, - [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To base64-encode 'Hello, World!': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mencode[0m[37m[40m([0m[35m[40m'Hello, World!'[0m[37m[40m, [0m[35m[40m'base64'[0m[37m[40m) [0m @@ -2311,13 +2433,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, - [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To test if the string 'notbad.jpg' ends with '.jpg': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mendswith[0m[37m[40m([0m[35m[40m'notbad.jpg'[0m[37m[40m, [0m[35m[40m'.jpg'[0m[37m[40m) [0m @@ -2352,13 +2474,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, - [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To extract key/value pairs from a string: [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mextract[0m[37m[40m([0m[35m[40m'foo=1 bar=2 name="Rolo Tomassi"'[0m[37m[40m) [0m @@ -2394,6 +2516,42 @@ For support questions, email: +[1m[4mfstat[0m[4m([0m[4mpattern[0m[4m)[0m +══════════════════════════════════════════════════════════════════════ + A table-valued function for getting information about file + paths/globs +[4mParameter[0m + [4mpattern[0m The file path or glob pattern to query. +[4mResults[0m + [4mst_parent[0m The parent path of the directory entry + [4mst_name[0m The name of the directory entry + [4mst_dev[0m The device number + [4mst_ino[0m The inode number + [4mst_type[0m The type of the entry + [4mst_mode[0m The protection mode + [4mst_nlink[0m The number of hard links to the entry + [4mst_uid[0m The ID of the owning user + [4mst_user[0m The user name + [4mst_gid[0m The ID of the owning group + [4mst_group[0m The group name + [4mst_rdev[0m The device type + [4mst_size[0m The size of the entry in bytes + [4mst_blksize[0m The optimal size for I/O + [4mst_blocks[0m Blocks allocated for the file + [4mst_atime[0m The last access time + [4mst_mtime[0m The last modified time + [4mst_ctime[0m The creation time + [4merror[0m Error message if there was a problem + looking up the entry + [4mdata[0m The contents of the file + +[4mExample[0m +#1 To read a file and raise an error if there is a problem: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mifnull[0m[37m[40m([0m[37m[40mdata[0m[37m[40m, [0m[1m[37m[40mraise_error[0m[37m[40m([0m[35m[40m'cannot read: '[0m[37m[40m [0m[1m[37m[40m||[0m[37m[40m [0m[37m[40mst_name[0m[37m[40m, [0m[37m[40merror[0m[37m[40m)) [0m[1m[36m[40mFROM[0m + [37m[40m [0m[1m[37m[40mfstat[0m[37m[40m([0m[35m[40m'/non-existent'[0m[37m[40m)[0m + + + [1m[4mgenerate_series[0m[4m([0m[4mstart[0m[4m, [0m[4mstop[0m[4m, [[0m[4mstep[0m[4m])[0m ══════════════════════════════════════════════════════════════════════ A table-valued-function that returns the whole numbers between a @@ -2468,12 +2626,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, [1mhumanize_duration()[0m, - [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, - [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, - [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, - [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, - [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, - [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, [1mleftstr()[0m, [1mlength()[0m, + [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, [1mparse_url()[0m, + [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, + [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, + [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, + [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, + [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To concatenate the values of the column 'ex_procname' from the table 'lnav_example_log': @@ -2498,12 +2657,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgunzip()[0m, [1mgzip()[0m, [1mhumanize_duration()[0m, - [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, - [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, - [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, - [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, - [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, - [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, [1mleftstr()[0m, [1mlength()[0m, + [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, [1mparse_url()[0m, + [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, + [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, + [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, + [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, + [1mupper()[0m, [1mxpath()[0m [4mExample[0m #1 To produce a hash of all of the values of 'column1': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mgroup_spooky_hash[0m[37m[40m([0m[37m[40mcolumn1[0m[37m[40m) [0m[1m[36m[40mFROM[0m[37m[40m ([0m[1m[36m[40mVALUES[0m[37m[40m ([0m[35m[40m'abc'[0m[37m[40m), ([0m[35m[40m'123'[0m[37m[40m))[0m @@ -2518,13 +2678,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, - [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [1m[4mgzip[0m[4m([0m[4mvalue[0m[4m, ...)[0m ══════════════════════════════════════════════════════════════════════ @@ -2534,13 +2694,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, - [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [1m[4mhex[0m[4m([0m[4mX[0m[4m)[0m ══════════════════════════════════════════════════════════════════════ @@ -2563,14 +2723,14 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdate()[0m, [1mdatetime()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, - [1mgunzip()[0m, [1mgzip()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mjulianday()[0m, - [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, - [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, - [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, - [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1mstrftime()[0m, [1msubstr()[0m, [1mtime()[0m, - [1mtimediff()[0m, [1mtimeslice()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, - [1mxpath()[0m + [1mgunzip()[0m, [1mgzip()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mjulianday()[0m, [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, + [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, + [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, + [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, + [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, + [1mstrftime()[0m, [1msubstr()[0m, [1mtime()[0m, [1mtimediff()[0m, [1mtimeslice()[0m, [1mtimezone()[0m, + [1mtimezone()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To format a duration: [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mhumanize_duration[0m[37m[40m([0m[1m[37m[40m15[0m[37m[40m [0m[1m[37m[40m*[0m[37m[40m [0m[1m[37m[40m60[0m[37m[40m) [0m @@ -2589,18 +2749,40 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1minstr()[0m, [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, - [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, - [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, - [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, - [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, - [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mhumanize_duration()[0m, [1mhumanize_id()[0m, [1minstr()[0m, [1mleftstr()[0m, [1mlength()[0m, + [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, [1mparse_url()[0m, + [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, + [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, + [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, + [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, + [1mupper()[0m, [1mxpath()[0m [4mExample[0m #1 To format an amount: [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mhumanize_file_size[0m[37m[40m([0m[1m[37m[40m10[0m[37m[40m [0m[1m[37m[40m*[0m[37m[40m [0m[1m[37m[40m1024[0m[37m[40m [0m[1m[37m[40m*[0m[37m[40m [0m[1m[37m[40m1024[0m[37m[40m) [0m +[1m[4mhumanize_id[0m[4m([0m[4mid[0m[4m)[0m +══════════════════════════════════════════════════════════════════════ + Colorize the given ID using ANSI escape codes. +[4mParameter[0m + [4mid[0m The identifier to color +[4mSee Also[0m + [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, + [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, + [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, + [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, + [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m +[4mExample[0m +#1 To colorize the ID 'cluster1': + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mhumanize_id[0m[37m[40m([0m[35m[40m'cluster1'[0m[37m[40m) [0m + + + [1m[4mifnull[0m[4m([0m[4mX[0m[4m, [0m[4mY[0m[4m)[0m ══════════════════════════════════════════════════════════════════════ Returns a copy of its first non-NULL argument, or NULL if both @@ -2626,13 +2808,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mleftstr()[0m, [1mlength()[0m, - [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, [1mparse_url()[0m, - [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, - [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, - [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, - [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, - [1mxpath()[0m + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1mleftstr()[0m, + [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, + [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, + [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExample[0m #1 To test get the position of 'b' in the string 'abc': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40minstr[0m[37m[40m([0m[35m[40m'abc'[0m[37m[40m, [0m[35m[40m'b'[0m[37m[40m) [0m @@ -2647,8 +2829,11 @@ For support questions, email: [4mptr[0m The JSON-Pointer to lookup in the object. [4mdefault[0m The default value if the value was not found [4mSee Also[0m - [1mjson_concat()[0m, [1mjson_contains()[0m, [1mjson_group_array()[0m, - [1mjson_group_object()[0m, [1myaml_to_json()[0m + [1mjson()[0m, [1mjson_array()[0m, [1mjson_array_length()[0m, [1mjson_concat()[0m, + [1mjson_contains()[0m, [1mjson_each()[0m, [1mjson_extract()[0m, [1mjson_group_array()[0m, + [1mjson_group_object()[0m, [1mjson_insert()[0m, [1mjson_object()[0m, [1mjson_quote()[0m, + [1mjson_remove()[0m, [1mjson_replace()[0m, [1mjson_set()[0m, [1mjson_tree()[0m, [1mjson_type()[0m, + [1mjson_valid()[0m, [1myaml_to_json()[0m [4mExamples[0m #1 To get the root of a JSON value: [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjget[0m[37m[40m([0m[35m[40m'1'[0m[37m[40m, [0m[35m[40m''[0m[37m[40m) [0m @@ -2691,9 +2876,65 @@ For support questions, email: +[1m[4mjson[0m[4m([0m[4mX[0m[4m)[0m +══════════════════════════════════════════════════════════════════════ + Verifies that its argument is valid JSON and returns a minified + version or throws an error. +[4mParameter[0m + [4mX[0m The string to interpret as JSON. +[4mSee Also[0m + [1mjget()[0m, [1mjson_array()[0m, [1mjson_array_length()[0m, [1mjson_concat()[0m, + [1mjson_contains()[0m, [1mjson_each()[0m, [1mjson_extract()[0m, [1mjson_group_array()[0m, + [1mjson_group_object()[0m, [1mjson_insert()[0m, [1mjson_object()[0m, [1mjson_quote()[0m, + [1mjson_remove()[0m, [1mjson_replace()[0m, [1mjson_set()[0m, [1mjson_tree()[0m, [1mjson_type()[0m, + [1mjson_valid()[0m, [1myaml_to_json()[0m + +[1m[4mjson_array[0m[4m([0m[4mX[0m[4m, ...)[0m +══════════════════════════════════════════════════════════════════════ + Constructs a JSON array from its arguments. +[4mParameter[0m + [4mX[0m The values of the JSON array +[4mSee Also[0m + [1mjget()[0m, [1mjson()[0m, [1mjson_array_length()[0m, [1mjson_concat()[0m, [1mjson_contains()[0m, + [1mjson_each()[0m, [1mjson_extract()[0m, [1mjson_group_array()[0m, [1mjson_group_object()[0m, + [1mjson_insert()[0m, [1mjson_object()[0m, [1mjson_quote()[0m, [1mjson_remove()[0m, + [1mjson_replace()[0m, [1mjson_set()[0m, [1mjson_tree()[0m, [1mjson_type()[0m, [1mjson_valid()[0m, + [1myaml_to_json()[0m +[4mExamples[0m +#1 To create an array of all types: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_array[0m[37m[40m([0m[1m[36m[40mNULL[0m[37m[40m, [0m[1m[37m[40m1[0m[37m[40m, [0m[1m[37m[40m2.1[0m[37m[40m, [0m[35m[40m'three'[0m[37m[40m, [0m[1m[37m[40mjson_array[0m[37m[40m([0m[1m[37m[40m4[0m[37m[40m), [0m[1m[37m[40mjson_object[0m[37m[40m([0m[35m[40m'five'[0m[37m[40m, [0m[35m[40m'six'[0m[37m[40m))[0m + + +#2 To create an empty array: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_array[0m[37m[40m() [0m + + + +[1m[4mjson_array_length[0m[4m([0m[4mX[0m[4m, [[0m[4mP[0m[4m])[0m +══════════════════════════════════════════════════════════════════════ + Returns the length of a JSON array. +[4mParameters[0m + [4mX[0m The JSON object. + [4mP[0m The path to the array in 'X'. +[4mSee Also[0m + [1mjget()[0m, [1mjson()[0m, [1mjson_array()[0m, [1mjson_concat()[0m, [1mjson_contains()[0m, + [1mjson_each()[0m, [1mjson_extract()[0m, [1mjson_group_array()[0m, [1mjson_group_object()[0m, + [1mjson_insert()[0m, [1mjson_object()[0m, [1mjson_quote()[0m, [1mjson_remove()[0m, + [1mjson_replace()[0m, [1mjson_set()[0m, [1mjson_tree()[0m, [1mjson_type()[0m, [1mjson_valid()[0m, + [1myaml_to_json()[0m +[4mExamples[0m +#1 To get the length of an array: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_array_length[0m[37m[40m([0m[35m[40m'[1, 2, 3]'[0m[37m[40m) [0m + + +#2 To get the length of a nested array: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_array_length[0m[37m[40m([0m[35m[40m'{"arr": [1, 2, 3]}'[0m[37m[40m, [0m[35m[40m'$.arr'[0m[37m[40m)[0m + + + [1m[4mjson_concat[0m[4m([0m[4mjson[0m[4m, [0m[4mvalue[0m[4m, ...)[0m ══════════════════════════════════════════════════════════════════════ - Returns an array with the given values concatenated onto the end. + Returns an array with the given values concatenated onto the end. If the initial value is null, the result will be an array with the given elements. If the initial value is an array, the result will be an array with the given values at the end. If the initial value @@ -2703,7 +2944,10 @@ For support questions, email: [4mjson[0m The initial JSON value. [4mvalue[0m The value(s) to add to the end of the array. [4mSee Also[0m - [1mjget()[0m, [1mjson_contains()[0m, [1mjson_group_array()[0m, [1mjson_group_object()[0m, + [1mjget()[0m, [1mjson()[0m, [1mjson_array()[0m, [1mjson_array_length()[0m, [1mjson_contains()[0m, + [1mjson_each()[0m, [1mjson_extract()[0m, [1mjson_group_array()[0m, [1mjson_group_object()[0m, + [1mjson_insert()[0m, [1mjson_object()[0m, [1mjson_quote()[0m, [1mjson_remove()[0m, + [1mjson_replace()[0m, [1mjson_set()[0m, [1mjson_tree()[0m, [1mjson_type()[0m, [1mjson_valid()[0m, [1myaml_to_json()[0m [4mExamples[0m #1 To append the number 4 to null: @@ -2726,7 +2970,10 @@ For support questions, email: [4mjson[0m The JSON value to query. [4mvalue[0m The value to look for in the first argument [4mSee Also[0m - [1mjget()[0m, [1mjson_concat()[0m, [1mjson_group_array()[0m, [1mjson_group_object()[0m, + [1mjget()[0m, [1mjson()[0m, [1mjson_array()[0m, [1mjson_array_length()[0m, [1mjson_concat()[0m, + [1mjson_each()[0m, [1mjson_extract()[0m, [1mjson_group_array()[0m, [1mjson_group_object()[0m, + [1mjson_insert()[0m, [1mjson_object()[0m, [1mjson_quote()[0m, [1mjson_remove()[0m, + [1mjson_replace()[0m, [1mjson_set()[0m, [1mjson_tree()[0m, [1mjson_type()[0m, [1mjson_valid()[0m, [1myaml_to_json()[0m [4mExamples[0m #1 To test if a JSON array contains the number 4: @@ -2738,13 +2985,69 @@ For support questions, email: +[1m[4mjson_each[0m[4m([0m[4mX[0m[4m, [[0m[4mP[0m[4m])[0m +══════════════════════════════════════════════════════════════════════ + A table-valued-function that returns the children of the top-level + JSON value +[4mParameters[0m + [4mX[0m The JSON value to query + [4mP[0m The path to the value to query +[4mResults[0m + [4mkey[0m The array index for elements of an array or + property names of the object + [4mvalue[0m The value for the current element + [4mtype[0m The type of the current element + [4matom[0m The SQL value of the element, if it is a + primitive type + [4mfullkey[0m The path to the current element +[4mSee Also[0m + [1mjget()[0m, [1mjson()[0m, [1mjson_array()[0m, [1mjson_array_length()[0m, [1mjson_concat()[0m, + [1mjson_contains()[0m, [1mjson_extract()[0m, [1mjson_group_array()[0m, + [1mjson_group_object()[0m, [1mjson_insert()[0m, [1mjson_object()[0m, [1mjson_quote()[0m, + [1mjson_remove()[0m, [1mjson_replace()[0m, [1mjson_set()[0m, [1mjson_tree()[0m, [1mjson_type()[0m, + [1mjson_valid()[0m, [1myaml_to_json()[0m +[4mExample[0m +#1 To iterate over an array: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40m*[0m[37m[40m [0m[1m[36m[40mFROM[0m[37m[40m [0m[1m[37m[40mjson_each[0m[37m[40m([0m[35m[40m'[null,1,"two",{"three":4.5}]'[0m[37m[40m)[0m + + + +[1m[4mjson_extract[0m[4m([0m[4mX[0m[4m, [0m[4mP[0m[4m, ...)[0m +══════════════════════════════════════════════════════════════════════ + Returns the value(s) from the given JSON at the given path(s). +[4mParameters[0m + [4mX[0m The JSON value. + [4mP[0m The path to extract. +[4mSee Also[0m + [1mjget()[0m, [1mjson()[0m, [1mjson_array()[0m, [1mjson_array_length()[0m, [1mjson_concat()[0m, + [1mjson_contains()[0m, [1mjson_each()[0m, [1mjson_group_array()[0m, [1mjson_group_object()[0m, + [1mjson_insert()[0m, [1mjson_object()[0m, [1mjson_quote()[0m, [1mjson_remove()[0m, + [1mjson_replace()[0m, [1mjson_set()[0m, [1mjson_tree()[0m, [1mjson_type()[0m, [1mjson_valid()[0m, + [1myaml_to_json()[0m +[4mExamples[0m +#1 To get a number: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_extract[0m[37m[40m([0m[35m[40m'{"num": 1}'[0m[37m[40m, [0m[35m[40m'$.num'[0m[37m[40m) [0m + + +#2 To get two numbers: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_extract[0m[37m[40m([0m[35m[40m'{"num": 1, "val": 2}'[0m[37m[40m, [0m[35m[40m'$.num'[0m[37m[40m, [0m[35m[40m'$.val'[0m[37m[40m)[0m + + +#3 To get an object: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_extract[0m[37m[40m([0m[35m[40m'{"obj": {"sub": 1}}'[0m[37m[40m, [0m[35m[40m'$.obj'[0m[37m[40m)[0m + + + [1m[4mjson_group_array[0m[4m([0m[4mvalue[0m[4m, ...)[0m ══════════════════════════════════════════════════════════════════════ Collect the given values from a query into a JSON array [4mParameter[0m [4mvalue[0m The values to append to the array [4mSee Also[0m - [1mjget()[0m, [1mjson_concat()[0m, [1mjson_contains()[0m, [1mjson_group_object()[0m, + [1mjget()[0m, [1mjson()[0m, [1mjson_array()[0m, [1mjson_array_length()[0m, [1mjson_concat()[0m, + [1mjson_contains()[0m, [1mjson_each()[0m, [1mjson_extract()[0m, [1mjson_group_object()[0m, + [1mjson_insert()[0m, [1mjson_object()[0m, [1mjson_quote()[0m, [1mjson_remove()[0m, + [1mjson_replace()[0m, [1mjson_set()[0m, [1mjson_tree()[0m, [1mjson_type()[0m, [1mjson_valid()[0m, [1myaml_to_json()[0m [4mExamples[0m #1 To create an array from arguments: @@ -2763,7 +3066,10 @@ For support questions, email: [4mname[0m The property name for the value [4mvalue[0m The value to add to the object [4mSee Also[0m - [1mjget()[0m, [1mjson_concat()[0m, [1mjson_contains()[0m, [1mjson_group_array()[0m, + [1mjget()[0m, [1mjson()[0m, [1mjson_array()[0m, [1mjson_array_length()[0m, [1mjson_concat()[0m, + [1mjson_contains()[0m, [1mjson_each()[0m, [1mjson_extract()[0m, [1mjson_group_array()[0m, + [1mjson_insert()[0m, [1mjson_object()[0m, [1mjson_quote()[0m, [1mjson_remove()[0m, + [1mjson_replace()[0m, [1mjson_set()[0m, [1mjson_tree()[0m, [1mjson_type()[0m, [1mjson_valid()[0m, [1myaml_to_json()[0m [4mExamples[0m #1 To create an object from arguments: @@ -2775,17 +3081,242 @@ For support questions, email: +[1m[4mjson_insert[0m[4m([0m[4mX[0m[4m, [0m[4mP[0m[4m, [0m[4mY[0m[4m)[0m +══════════════════════════════════════════════════════════════════════ + Inserts values into a JSON object/array at the given locations, if + it does not already exist +[4mParameters[0m + [4mX[0m The JSON value to update + [4mP[0m The path to the insertion point. A '#' array index means + append the value + [4mY[0m The value to insert +[4mSee Also[0m + [1mjget()[0m, [1mjson()[0m, [1mjson_array()[0m, [1mjson_array_length()[0m, [1mjson_concat()[0m, + [1mjson_contains()[0m, [1mjson_each()[0m, [1mjson_extract()[0m, [1mjson_group_array()[0m, + [1mjson_group_object()[0m, [1mjson_object()[0m, [1mjson_quote()[0m, [1mjson_remove()[0m, + [1mjson_replace()[0m, [1mjson_set()[0m, [1mjson_tree()[0m, [1mjson_type()[0m, [1mjson_valid()[0m, + [1myaml_to_json()[0m +[4mExamples[0m +#1 To append to an array: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_insert[0m[37m[40m([0m[35m[40m'[1, 2]'[0m[37m[40m, [0m[35m[40m'$[#]'[0m[37m[40m, [0m[1m[37m[40m3[0m[37m[40m) [0m + + +#2 To update an object: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_insert[0m[37m[40m([0m[35m[40m'{"a": 1}'[0m[37m[40m, [0m[35m[40m'$.b'[0m[37m[40m, [0m[1m[37m[40m2[0m[37m[40m) [0m + + +#3 To ensure a value is set: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_insert[0m[37m[40m([0m[35m[40m'{"a": 1}'[0m[37m[40m, [0m[35m[40m'$.a'[0m[37m[40m, [0m[1m[37m[40m2[0m[37m[40m) [0m + + +#4 To update multiple values: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_insert[0m[37m[40m([0m[35m[40m'{"a": 1}'[0m[37m[40m, [0m[35m[40m'$.b'[0m[37m[40m, [0m[1m[37m[40m2[0m[37m[40m, [0m[35m[40m'$.c'[0m[37m[40m, [0m[1m[37m[40m3[0m[37m[40m)[0m + + + +[1m[4mjson_object[0m[4m([0m[4mN[0m[4m, [0m[4mV[0m[4m)[0m +══════════════════════════════════════════════════════════════════════ + Create a JSON object from the given arguments +[4mParameters[0m + [4mN[0m The property name + [4mV[0m The property value +[4mSee Also[0m + [1mjget()[0m, [1mjson()[0m, [1mjson_array()[0m, [1mjson_array_length()[0m, [1mjson_concat()[0m, + [1mjson_contains()[0m, [1mjson_each()[0m, [1mjson_extract()[0m, [1mjson_group_array()[0m, + [1mjson_group_object()[0m, [1mjson_insert()[0m, [1mjson_quote()[0m, [1mjson_remove()[0m, + [1mjson_replace()[0m, [1mjson_set()[0m, [1mjson_tree()[0m, [1mjson_type()[0m, [1mjson_valid()[0m, + [1myaml_to_json()[0m +[4mExamples[0m +#1 To create an object: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_object[0m[37m[40m([0m[35m[40m'a'[0m[37m[40m, [0m[1m[37m[40m1[0m[37m[40m, [0m[35m[40m'b'[0m[37m[40m, [0m[35m[40m'c'[0m[37m[40m) [0m + + +#2 To create an empty object: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_object[0m[37m[40m() [0m + + + +[1m[4mjson_quote[0m[4m([0m[4mX[0m[4m)[0m +══════════════════════════════════════════════════════════════════════ + Returns the JSON representation of the given value, if it is not + already JSON +[4mParameter[0m + [4mX[0m The value to convert +[4mSee Also[0m + [1mjget()[0m, [1mjson()[0m, [1mjson_array()[0m, [1mjson_array_length()[0m, [1mjson_concat()[0m, + [1mjson_contains()[0m, [1mjson_each()[0m, [1mjson_extract()[0m, [1mjson_group_array()[0m, + [1mjson_group_object()[0m, [1mjson_insert()[0m, [1mjson_object()[0m, [1mjson_remove()[0m, + [1mjson_replace()[0m, [1mjson_set()[0m, [1mjson_tree()[0m, [1mjson_type()[0m, [1mjson_valid()[0m, + [1myaml_to_json()[0m +[4mExamples[0m +#1 To convert a string: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_quote[0m[37m[40m([0m[35m[40m'Hello, World!'[0m[37m[40m) [0m + + +#2 To pass through an existing JSON value: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_quote[0m[37m[40m([0m[1m[37m[40mjson[0m[37m[40m([0m[35m[40m'"Hello, World!"'[0m[37m[40m)) [0m + + + +[1m[4mjson_remove[0m[4m([0m[4mX[0m[4m, [0m[4mP[0m[4m, ...)[0m +══════════════════════════════════════════════════════════════════════ + Removes paths from a JSON value +[4mParameters[0m + [4mX[0m The JSON value to update + [4mP[0m The paths to remove +[4mSee Also[0m + [1mjget()[0m, [1mjson()[0m, [1mjson_array()[0m, [1mjson_array_length()[0m, [1mjson_concat()[0m, + [1mjson_contains()[0m, [1mjson_each()[0m, [1mjson_extract()[0m, [1mjson_group_array()[0m, + [1mjson_group_object()[0m, [1mjson_insert()[0m, [1mjson_object()[0m, [1mjson_quote()[0m, + [1mjson_replace()[0m, [1mjson_set()[0m, [1mjson_tree()[0m, [1mjson_type()[0m, [1mjson_valid()[0m, + [1myaml_to_json()[0m +[4mExamples[0m +#1 To remove elements of an array: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_remove[0m[37m[40m([0m[35m[40m'[1,2,3]'[0m[37m[40m, [0m[35m[40m'$[1]'[0m[37m[40m, [0m[35m[40m'$[1]'[0m[37m[40m) [0m + + +#2 To remove object properties: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_remove[0m[37m[40m([0m[35m[40m'{"a":1,"b":2}'[0m[37m[40m, [0m[35m[40m'$.b'[0m[37m[40m) [0m + + + +[1m[4mjson_replace[0m[4m([0m[4mX[0m[4m, [0m[4mP[0m[4m, [0m[4mY[0m[4m)[0m +══════════════════════════════════════════════════════════════════════ + Replaces existing values in a JSON object/array at the given + locations +[4mParameters[0m + [4mX[0m The JSON value to update + [4mP[0m The path to replace + [4mY[0m The new value for the property +[4mSee Also[0m + [1mjget()[0m, [1mjson()[0m, [1mjson_array()[0m, [1mjson_array_length()[0m, [1mjson_concat()[0m, + [1mjson_contains()[0m, [1mjson_each()[0m, [1mjson_extract()[0m, [1mjson_group_array()[0m, + [1mjson_group_object()[0m, [1mjson_insert()[0m, [1mjson_object()[0m, [1mjson_quote()[0m, + [1mjson_remove()[0m, [1mjson_set()[0m, [1mjson_tree()[0m, [1mjson_type()[0m, [1mjson_valid()[0m, + [1myaml_to_json()[0m +[4mExamples[0m +#1 To replace an existing value: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_replace[0m[37m[40m([0m[35m[40m'{"a": 1}'[0m[37m[40m, [0m[35m[40m'$.a'[0m[37m[40m, [0m[1m[37m[40m2[0m[37m[40m) [0m + + +#2 To replace a value without creating a new property: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_replace[0m[37m[40m([0m[35m[40m'{"a": 1}'[0m[37m[40m, [0m[35m[40m'$.a'[0m[37m[40m, [0m[1m[37m[40m2[0m[37m[40m, [0m[35m[40m'$.b'[0m[37m[40m, [0m[1m[37m[40m3[0m[37m[40m)[0m + + + +[1m[4mjson_set[0m[4m([0m[4mX[0m[4m, [0m[4mP[0m[4m, [0m[4mY[0m[4m)[0m +══════════════════════════════════════════════════════════════════════ + Inserts or replaces existing values in a JSON object/array at the + given locations +[4mParameters[0m + [4mX[0m The JSON value to update + [4mP[0m The path to the insertion point. A '#' array index means + append the value + [4mY[0m The value to set +[4mSee Also[0m + [1mjget()[0m, [1mjson()[0m, [1mjson_array()[0m, [1mjson_array_length()[0m, [1mjson_concat()[0m, + [1mjson_contains()[0m, [1mjson_each()[0m, [1mjson_extract()[0m, [1mjson_group_array()[0m, + [1mjson_group_object()[0m, [1mjson_insert()[0m, [1mjson_object()[0m, [1mjson_quote()[0m, + [1mjson_remove()[0m, [1mjson_replace()[0m, [1mjson_tree()[0m, [1mjson_type()[0m, [1mjson_valid()[0m, + [1myaml_to_json()[0m +[4mExamples[0m +#1 To replace an existing array element: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_set[0m[37m[40m([0m[35m[40m'[1, 2]'[0m[37m[40m, [0m[35m[40m'$[1]'[0m[37m[40m, [0m[1m[37m[40m3[0m[37m[40m) [0m + + +#2 To replace a value and create a new property: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_set[0m[37m[40m([0m[35m[40m'{"a": 1}'[0m[37m[40m, [0m[35m[40m'$.a'[0m[37m[40m, [0m[1m[37m[40m2[0m[37m[40m, [0m[35m[40m'$.b'[0m[37m[40m, [0m[1m[37m[40m3[0m[37m[40m) [0m + + + +[1m[4mjson_tree[0m[4m([0m[4mX[0m[4m, [[0m[4mP[0m[4m])[0m +══════════════════════════════════════════════════════════════════════ + A table-valued-function that recursively descends through a JSON + value +[4mParameters[0m + [4mX[0m The JSON value to query + [4mP[0m The path to the value to query +[4mResults[0m + [4mkey[0m The array index for elements of an array or + property names of the object + [4mvalue[0m The value for the current element + [4mtype[0m The type of the current element + [4matom[0m The SQL value of the element, if it is a + primitive type + [4mfullkey[0m The path to the current element + [4mpath[0m The path to the container of this element +[4mSee Also[0m + [1mjget()[0m, [1mjson()[0m, [1mjson_array()[0m, [1mjson_array_length()[0m, [1mjson_concat()[0m, + [1mjson_contains()[0m, [1mjson_each()[0m, [1mjson_extract()[0m, [1mjson_group_array()[0m, + [1mjson_group_object()[0m, [1mjson_insert()[0m, [1mjson_object()[0m, [1mjson_quote()[0m, + [1mjson_remove()[0m, [1mjson_replace()[0m, [1mjson_set()[0m, [1mjson_type()[0m, [1mjson_valid()[0m, + [1myaml_to_json()[0m +[4mExample[0m +#1 To iterate over an array: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[36m[40mkey[0m[37m[40m,[0m[37m[40mvalue[0m[37m[40m,[0m[37m[40mtype[0m[37m[40m,[0m[37m[40matom[0m[37m[40m,[0m[37m[40mfullkey[0m[37m[40m,[0m[37m[40mpath[0m[37m[40m [0m[1m[36m[40mFROM[0m + [37m[40m [0m[1m[37m[40mjson_tree[0m[37m[40m([0m[35m[40m'[null,1,"two",{"three":4.5}]'[0m[37m[40m)[0m + + + +[1m[4mjson_type[0m[4m([0m[4mX[0m[4m, [[0m[4mP[0m[4m])[0m +══════════════════════════════════════════════════════════════════════ + Returns the type of a JSON value +[4mParameters[0m + [4mX[0m The JSON value to query + [4mP[0m The path to the value +[4mSee Also[0m + [1mjget()[0m, [1mjson()[0m, [1mjson_array()[0m, [1mjson_array_length()[0m, [1mjson_concat()[0m, + [1mjson_contains()[0m, [1mjson_each()[0m, [1mjson_extract()[0m, [1mjson_group_array()[0m, + [1mjson_group_object()[0m, [1mjson_insert()[0m, [1mjson_object()[0m, [1mjson_quote()[0m, + [1mjson_remove()[0m, [1mjson_replace()[0m, [1mjson_set()[0m, [1mjson_tree()[0m, [1mjson_valid()[0m, + [1myaml_to_json()[0m +[4mExamples[0m +#1 To get the type of a value: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_type[0m[37m[40m([0m[35m[40m'[null,1,2.1,"three",{"four":5}]'[0m[37m[40m)[0m + + +#2 To get the type of an array element: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_type[0m[37m[40m([0m[35m[40m'[null,1,2.1,"three",{"four":5}]'[0m[37m[40m, [0m[35m[40m'$[0]'[0m[37m[40m)[0m + + +#3 To get the type of a string: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_type[0m[37m[40m([0m[35m[40m'[null,1,2.1,"three",{"four":5}]'[0m[37m[40m, [0m[35m[40m'$[3]'[0m[37m[40m)[0m + + + +[1m[4mjson_valid[0m[4m([0m[4mX[0m[4m)[0m +══════════════════════════════════════════════════════════════════════ + Tests if the given value is valid JSON +[4mParameter[0m + [4mX[0m The value to check +[4mSee Also[0m + [1mjget()[0m, [1mjson()[0m, [1mjson_array()[0m, [1mjson_array_length()[0m, [1mjson_concat()[0m, + [1mjson_contains()[0m, [1mjson_each()[0m, [1mjson_extract()[0m, [1mjson_group_array()[0m, + [1mjson_group_object()[0m, [1mjson_insert()[0m, [1mjson_object()[0m, [1mjson_quote()[0m, + [1mjson_remove()[0m, [1mjson_replace()[0m, [1mjson_set()[0m, [1mjson_tree()[0m, [1mjson_type()[0m, + [1myaml_to_json()[0m +[4mExamples[0m +#1 To check an empty string: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_valid[0m[37m[40m([0m[35m[40m''[0m[37m[40m) [0m + + +#2 To check a string: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjson_valid[0m[37m[40m([0m[35m[40m'"a"'[0m[37m[40m) [0m + + + [1m[4mjulianday[0m[4m([0m[4mtimestring[0m[4m, [0m[4mmodifier[0m[4m, ...)[0m ══════════════════════════════════════════════════════════════════════ Returns the number of days since noon in Greenwich on November 24, 4714 B.C. [4mParameters[0m - [4mtimestring[0m The string to convert to a date with time. + [4mtimestring[0m The string to convert to a date with + time. [4mmodifier[0m A transformation that is applied to the value to the left. [4mSee Also[0m [1mdate()[0m, [1mdatetime()[0m, [1mhumanize_duration()[0m, [1mstrftime()[0m, [1mtime()[0m, - [1mtimediff()[0m, [1mtimeslice()[0m + [1mtimediff()[0m, [1mtimeslice()[0m, [1mtimezone()[0m [4mExamples[0m #1 To get the julian day from the timestamp '2017-01-02T03:04:05': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mjulianday[0m[37m[40m([0m[35m[40m'2017-01-02T03:04:05'[0m[37m[40m) [0m @@ -2802,11 +3333,13 @@ For support questions, email: [1m[4mlag[0m[4m([0m[4mexpr[0m[4m, [[0m[4moffset[0m[4m], [[0m[4mdefault[0m[4m])[0m ══════════════════════════════════════════════════════════════════════ - Returns the result of evaluating the expression against the previous - row in the partition. + Returns the result of evaluating the expression against the + previous row in the partition. [4mParameters[0m - [4mexpr[0m The expression to execute over the previous row - [4moffset[0m The offset from the current row in the partition + [4mexpr[0m The expression to execute over the previous + row + [4moffset[0m The offset from the current row in the + partition [4mdefault[0m The default value if the previous row does not exist instead of NULL [4mSee Also[0m @@ -2821,8 +3354,8 @@ For support questions, email: [1m[4mlast_value[0m[4m([0m[4mexpr[0m[4m)[0m ══════════════════════════════════════════════════════════════════════ - Returns the result of evaluating the expression against the last row - in the window frame. + Returns the result of evaluating the expression against the last + row in the window frame. [4mParameter[0m [4mexpr[0m The expression to execute over the last row [4mSee Also[0m @@ -2831,13 +3364,14 @@ For support questions, email: [1m[4mlead[0m[4m([0m[4mexpr[0m[4m, [[0m[4moffset[0m[4m], [[0m[4mdefault[0m[4m])[0m ══════════════════════════════════════════════════════════════════════ - Returns the result of evaluating the expression against the next row - in the partition. + Returns the result of evaluating the expression against the next + row in the partition. [4mParameters[0m [4mexpr[0m The expression to execute over the next row - [4moffset[0m The offset from the current row in the partition - [4mdefault[0m The default value if the next row does not exist - instead of NULL + [4moffset[0m The offset from the current row in the + partition + [4mdefault[0m The default value if the next row does not + exist instead of NULL [4mSee Also[0m [1mcume_dist()[0m, [1mdense_rank()[0m, [1mfirst_value()[0m, [1mlag()[0m, [1mlast_value()[0m, [1mnth_value()[0m, [1mntile()[0m, [1mpercent_rank()[0m, [1mrank()[0m, [1mrow_number()[0m @@ -2852,13 +3386,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mlength()[0m, - [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, [1mparse_url()[0m, - [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, - [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, - [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, - [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, - [1mxpath()[0m + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, + [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, + [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To get the first character of the string 'abc': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mleftstr[0m[37m[40m([0m[35m[40m'abc'[0m[37m[40m, [0m[1m[37m[40m1[0m[37m[40m) [0m @@ -2878,13 +3412,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, [1mparse_url()[0m, - [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, - [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, - [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, - [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, - [1mxpath()[0m + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, + [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, + [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExample[0m #1 To get the length of the string 'abc': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mlength[0m[37m[40m([0m[35m[40m'abc'[0m[37m[40m) [0m @@ -2895,12 +3429,12 @@ For support questions, email: ══════════════════════════════════════════════════════════════════════ Match a string against a pattern [4mParameters[0m - [4mpattern[0m The pattern to match. A percent symbol (%) will - match zero or more characters and an underscore (_) will - match a single character. + [4mpattern[0m The pattern to match. A percent symbol (%) + will match zero or more characters and an underscore (_) + will match a single character. [4mstr[0m The string to match - [4mescape[0m The escape character that can be used to prefix - a literal percent or underscore in the pattern. + [4mescape[0m The escape character that can be used to + prefix a literal percent or underscore in the pattern. [4mExamples[0m #1 To test if the string 'aabcc' contains the letter 'b': @@ -2981,6 +3515,11 @@ For support questions, email: +[1m[4mlog_msg_line[0m[4m()[0m +══════════════════════════════════════════════════════════════════════ + Return the starting line number of the focused log message. + + [1m[4mlog_top_datetime[0m[4m()[0m ══════════════════════════════════════════════════════════════════════ Return the timestamp of the line at the top of the log view. @@ -2988,7 +3527,7 @@ For support questions, email: [1m[4mlog_top_line[0m[4m()[0m ══════════════════════════════════════════════════════════════════════ - Return the line number at the top of the log view. + Return the number of the focused line of the log view. [1m[4mlogfmt2json[0m[4m([0m[4mstr[0m[4m)[0m @@ -2999,13 +3538,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, [1mparse_url()[0m, - [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, - [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, - [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, - [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, - [1mxpath()[0m + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, + [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, + [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExample[0m #1 To extract key/value pairs from a log message: [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mlogfmt2json[0m[37m[40m([0m[35m[40m'foo=1 bar=2 name="Rolo Tomassi"'[0m[37m[40m)[0m @@ -3021,13 +3560,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, [1mparse_url()[0m, - [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, - [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, - [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, - [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, - [1mxpath()[0m + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, + [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, + [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExample[0m #1 To lowercase the string 'AbC': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mlower[0m[37m[40m([0m[35m[40m'AbC'[0m[37m[40m) [0m @@ -3044,13 +3583,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, [1mparse_url()[0m, - [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, - [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, - [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, - [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, - [1mxpath()[0m + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, + [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, + [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To trim the leading space characters from the string ' abc': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mltrim[0m[37m[40m([0m[35m[40m' abc'[0m[37m[40m) [0m @@ -3066,8 +3605,8 @@ For support questions, email: Returns the argument with the maximum value, or return NULL if any argument is NULL. [4mParameter[0m - [4mX[0m The numbers to find the maximum of. If only one argument is - given, this function operates as an aggregate. + [4mX[0m The numbers to find the maximum of. If only one argument + is given, this function operates as an aggregate. [4mSee Also[0m [1mabs()[0m, [1macos()[0m, [1macosh()[0m, [1masin()[0m, [1masinh()[0m, [1matan()[0m, [1matan2()[0m, [1matanh()[0m, [1matn2()[0m, [1mavg()[0m, [1mceil()[0m, [1mdegrees()[0m, [1mexp()[0m, [1mfloor()[0m, [1mlog()[0m, [1mlog10()[0m, @@ -3088,8 +3627,8 @@ For support questions, email: Returns the argument with the minimum value, or return NULL if any argument is NULL. [4mParameter[0m - [4mX[0m The numbers to find the minimum of. If only one argument is - given, this function operates as an aggregate. + [4mX[0m The numbers to find the minimum of. If only one argument + is given, this function operates as an aggregate. [4mSee Also[0m [1mabs()[0m, [1macos()[0m, [1macosh()[0m, [1masin()[0m, [1masinh()[0m, [1matan()[0m, [1matan2()[0m, [1matanh()[0m, [1matn2()[0m, [1mavg()[0m, [1mceil()[0m, [1mdegrees()[0m, [1mexp()[0m, [1mfloor()[0m, [1mlog()[0m, [1mlog10()[0m, @@ -3107,8 +3646,8 @@ For support questions, email: [1m[4mnth_value[0m[4m([0m[4mexpr[0m[4m, [0m[4mN[0m[4m)[0m ══════════════════════════════════════════════════════════════════════ - Returns the result of evaluating the expression against the nth row - in the window frame. + Returns the result of evaluating the expression against the nth + row in the window frame. [4mParameters[0m [4mexpr[0m The expression to execute over the nth row [4mN[0m The row number @@ -3153,13 +3692,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadl()[0m, [1mpadr()[0m, [1mparse_url()[0m, - [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, - [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, - [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, - [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, - [1mxpath()[0m + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadl()[0m, [1mpadr()[0m, + [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, + [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To pad the string 'abc' to a length of six characters: [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mpadc[0m[37m[40m([0m[35m[40m'abc'[0m[37m[40m, [0m[1m[37m[40m6[0m[37m[40m) [0m[1m[37m[40m||[0m[37m[40m [0m[35m[40m'def'[0m[37m[40m [0m @@ -3180,13 +3719,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadr()[0m, [1mparse_url()[0m, - [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, - [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, - [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, - [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, - [1mxpath()[0m + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadr()[0m, + [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, + [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To pad the string 'abc' to a length of six characters: [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mpadl[0m[37m[40m([0m[35m[40m'abc'[0m[37m[40m, [0m[1m[37m[40m6[0m[37m[40m) [0m @@ -3207,13 +3746,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mparse_url()[0m, - [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, - [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, - [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, - [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, - [1mxpath()[0m + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, + [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To pad the string 'abc' to a length of six characters: [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mpadr[0m[37m[40m([0m[35m[40m'abc'[0m[37m[40m, [0m[1m[37m[40m6[0m[37m[40m) [0m[1m[37m[40m||[0m[37m[40m [0m[35m[40m'def'[0m[37m[40m [0m @@ -3226,31 +3765,33 @@ For support questions, email: [1m[4mparse_url[0m[4m([0m[4murl[0m[4m)[0m ══════════════════════════════════════════════════════════════════════ - Parse a URL and return the components in a JSON object. Limitations: - not all URL schemes are supported and repeated query parameters are - not captured. + Parse a URL and return the components in a JSON object. + Limitations: not all URL schemes are supported and repeated query + parameters are not captured. [4mParameter[0m [4murl[0m The URL to parse [4mResults[0m [4mscheme[0m The URL's scheme - [4musername[0m The name of the user specified in the URL + [4musername[0m The name of the user specified in the + URL [4mpassword[0m The password specified in the URL [4mhost[0m The host name / IP specified in the URL [4mport[0m The port specified in the URL [4mpath[0m The path specified in the URL [4mquery[0m The query string in the URL - [4mparameters[0m An object containing the query parameters + [4mparameters[0m An object containing the query + parameters [4mfragment[0m The fragment specified in the URL [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, - [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, - [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, - [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1munparse_url()[0m, - [1mupper()[0m, [1mxpath()[0m + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, + [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To parse the URL 'https://example.com/search?q=hello%20world': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mparse_url[0m[37m[40m([0m[35m[40m'https://example.com/search?q=hello%20world'[0m[37m[40m)[0m @@ -3301,23 +3842,23 @@ For support questions, email: [1m[4mprintf[0m[4m([0m[4mformat[0m[4m, [0m[4mX[0m[4m)[0m ══════════════════════════════════════════════════════════════════════ - Returns a string with this functions arguments substituted into the - given format. Substitution points are specified using percent (%) - options, much like the standard C printf() function. + Returns a string with this functions arguments substituted into + the given format. Substitution points are specified using percent + (%) options, much like the standard C printf() function. [4mParameters[0m [4mformat[0m The format of the string to return. - [4mX[0m The argument to substitute at a given position in - the format. + [4mX[0m The argument to substitute at a given position + in the format. [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, - [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, - [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, - [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, - [1mxpath()[0m + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, + [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To substitute 'World' into the string 'Hello, %s!': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mprintf[0m[37m[40m([0m[35m[40m'Hello, %s!'[0m[37m[40m, [0m[35m[40m'World'[0m[37m[40m) [0m @@ -3340,13 +3881,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, - [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, - [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, - [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, - [1mxpath()[0m + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mregexp_capture()[0m, + [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, + [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExample[0m #1 To capitalize the words in the string 'hello, world!': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mproper[0m[37m[40m([0m[35m[40m'hello, world!'[0m[37m[40m) [0m @@ -3385,11 +3926,17 @@ For support questions, email: -[1m[4mraise_error[0m[4m([0m[4mmsg[0m[4m)[0m +[1m[4mraise_error[0m[4m([0m[4mmsg[0m[4m, [[0m[4mreason[0m[4m])[0m ══════════════════════════════════════════════════════════════════════ Raises an error with the given message when executed -[4mParameter[0m - [4mmsg[0m The error message +[4mParameters[0m + [4mmsg[0m The error message + [4mreason[0m The reason the error occurred + +[4mExample[0m +#1 To raise an error if a variable is not set: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mifnull[0m[37m[40m([0m[37m[40m$val[0m[37m[40m, [0m[1m[37m[40mraise_error[0m[37m[40m([0m[35m[40m'please set $val'[0m[37m[40m, [0m[35m[40m'because'[0m[37m[40m))[0m + [1m[4mrandom[0m[4m()[0m @@ -3454,23 +4001,24 @@ For support questions, email: regex. [4mcapture_name[0m The name of the capture in the regex. - [4mcapture_count[0m The total number of captures in the - regex. + [4mcapture_count[0m The total number of captures in + the regex. [4mrange_start[0m The start of the capture in the input string. - [4mrange_stop[0m The stop of the capture in the input + [4mrange_stop[0m The stop of the capture in the + input string. + [4mcontent[0m The captured value from the string. - [4mcontent[0m The captured value from the string. [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture_into_json()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, - [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, - [1mxpath()[0m + [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, + [1mupper()[0m, [1mxpath()[0m [4mExample[0m #1 To extract the key/value pairs 'a'/1 and 'b'/2 from the string 'a=1; b=2': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40m*[0m[37m[40m [0m[1m[36m[40mFROM[0m[37m[40m [0m[1m[37m[40mregexp_capture[0m[37m[40m([0m[35m[40m'a=1; b=2'[0m[37m[40m, [0m[35m[40m'(\w+)=(\d+)'[0m[37m[40m)[0m @@ -3498,12 +4046,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_match()[0m, - [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, - [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, - [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, + [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, [1mstartswith()[0m, + [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, + [1mupper()[0m, [1mxpath()[0m [4mExample[0m #1 To extract the key/value pairs 'a'/1 and 'b'/2 from the string 'a=1; b=2': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40m*[0m[37m[40m [0m[1m[36m[40mFROM[0m[37m[40m [0m[1m[37m[40mregexp_capture_into_json[0m[37m[40m([0m[35m[40m'a=1; b=2'[0m[37m[40m, [0m[35m[40m'(\w+)=(\d+)'[0m[37m[40m)[0m @@ -3520,13 +4069,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_replace()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, - [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To capture the digits from the string '123': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mregexp_match[0m[37m[40m([0m[35m[40m'(\d+)'[0m[37m[40m, [0m[35m[40m'123'[0m[37m[40m) [0m @@ -3555,13 +4104,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_match()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, - [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To replace the word at the start of the string 'Hello, World!' with 'Goodbye': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mregexp_replace[0m[37m[40m([0m[35m[40m'Hello, World!'[0m[37m[40m, [0m[35m[40m'^(\w+)'[0m[37m[40m, [0m[35m[40m'Goodbye'[0m[37m[40m)[0m @@ -3577,20 +4126,21 @@ For support questions, email: Returns a string formed by substituting the replacement string for every occurrence of the old string in the given string. [4mParameters[0m - [4mstr[0m The string to perform substitutions on. + [4mstr[0m The string to perform substitutions + on. [4mold[0m The string to be replaced. - [4mreplacement[0m The string to replace any occurrences of - the old string with. + [4mreplacement[0m The string to replace any occurrences + of the old string with. [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, - [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To replace the string 'x' with 'z' in 'abc': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[36m[40mreplace[0m[37m[40m([0m[35m[40m'abc'[0m[37m[40m, [0m[35m[40m'x'[0m[37m[40m, [0m[35m[40m'z'[0m[37m[40m) [0m @@ -3610,13 +4160,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, - [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, - [1mupper()[0m, [1mxpath()[0m + [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, [1municode()[0m, + [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExample[0m #1 To repeat the string 'abc' three times: [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mreplicate[0m[37m[40m([0m[35m[40m'abc'[0m[37m[40m, [0m[1m[37m[40m3[0m[37m[40m) [0m @@ -3631,13 +4181,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, - [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExample[0m #1 To reverse the string 'abc': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mreverse[0m[37m[40m([0m[35m[40m'abc'[0m[37m[40m) [0m @@ -3654,13 +4204,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrtrim()[0m, [1msparkline()[0m, [1mspooky_hash()[0m, - [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, - [1mupper()[0m, [1mxpath()[0m + [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, [1municode()[0m, + [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To get the last character of the string 'abc': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mrightstr[0m[37m[40m([0m[35m[40m'abc'[0m[37m[40m, [0m[1m[37m[40m1[0m[37m[40m) [0m @@ -3673,8 +4223,8 @@ For support questions, email: [1m[4mround[0m[4m([0m[4mnum[0m[4m, [[0m[4mdigits[0m[4m])[0m ══════════════════════════════════════════════════════════════════════ - Returns a floating-point value rounded to the given number of digits - to the right of the decimal point. + Returns a floating-point value rounded to the given number of + digits to the right of the decimal point. [4mParameters[0m [4mnum[0m The value to round. [4mdigits[0m The number of digits to the right of the decimal @@ -3700,8 +4250,8 @@ For support questions, email: [1m[4mrow_number[0m[4m()[0m ══════════════════════════════════════════════════════════════════════ - Returns the number of the row within the current partition, starting - from 1. + Returns the number of the row within the current partition, + starting from 1. [4mSee Also[0m [1mcume_dist()[0m, [1mdense_rank()[0m, [1mfirst_value()[0m, [1mlag()[0m, [1mlast_value()[0m, [1mlead()[0m, [1mnth_value()[0m, [1mntile()[0m, [1mpercent_rank()[0m, [1mrank()[0m @@ -3722,13 +4272,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, - [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To trim the space characters from the end of the string 'abc ': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mrtrim[0m[37m[40m([0m[35m[40m'abc '[0m[37m[40m) [0m @@ -3739,6 +4289,20 @@ For support questions, email: +[1m[4mshell_exec[0m[4m([0m[4mcmd[0m[4m, [[0m[4minput[0m[4m], [[0m[4moptions[0m[4m])[0m +══════════════════════════════════════════════════════════════════════ + Executes a shell command and returns its output. +[4mParameters[0m + [4mcmd[0m The command to execute. + [4minput[0m A blob of data to write to the command's + standard input. + [4moptions[0m A JSON object containing options for the + execution with the following properties: + [4menv[0m - An object containing the environment + variables to set or, if NULL, to unset. +[4mSee Also[0m + + [1m[4msign[0m[4m([0m[4mnum[0m[4m)[0m ══════════════════════════════════════════════════════════════════════ Returns the sign of the given number as -1, 0, or 1 @@ -3765,10 +4329,10 @@ For support questions, email: [1m[4msparkline[0m[4m([0m[4mvalue[0m[4m, [[0m[4mupper[0m[4m])[0m ══════════════════════════════════════════════════════════════════════ - Function used to generate a sparkline bar chart. The non-aggregate - version converts a single numeric value on a range to a bar chart - character. The aggregate version returns a string with a bar - character for every numeric input + Function used to generate a sparkline bar chart. The + non-aggregate version converts a single numeric value on a range to + a bar chart character. The aggregate version returns a string with + a bar character for every numeric input [4mParameters[0m [4mvalue[0m The numeric value to convert [4mupper[0m The upper bound of the numeric range. The @@ -3777,13 +4341,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1mspooky_hash()[0m, - [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, - [1mupper()[0m, [1mxpath()[0m + [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, [1municode()[0m, + [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To get the unicode block element for the value 32 in the range of 0-128: [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40msparkline[0m[37m[40m([0m[1m[37m[40m32[0m[37m[40m, [0m[1m[37m[40m128[0m[37m[40m) [0m @@ -3802,13 +4366,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, - [1mupper()[0m, [1mxpath()[0m + [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, [1municode()[0m, + [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To produce a hash for the string 'Hello, World!': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mspooky_hash[0m[37m[40m([0m[35m[40m'Hello, World!'[0m[37m[40m) [0m @@ -3829,8 +4393,8 @@ For support questions, email: [1m[4msqlite_compileoption_get[0m[4m([0m[4mN[0m[4m)[0m ══════════════════════════════════════════════════════════════════════ - Returns the N-th compile-time option used to build SQLite or NULL if - N is out of range. + Returns the N-th compile-time option used to build SQLite or NULL + if N is out of range. [4mParameter[0m [4mN[0m The option number to get @@ -3850,8 +4414,8 @@ For support questions, email: [1m[4msqlite_source_id[0m[4m()[0m ══════════════════════════════════════════════════════════════════════ - Returns a string that identifies the specific version of the source - code that was used to build the SQLite library. + Returns a string that identifies the specific version of the + source code that was used to build the SQLite library. [1m[4msqlite_version[0m[4m()[0m @@ -3884,13 +4448,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, - [1mupper()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, [1municode()[0m, + [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To test if the string 'foobar' starts with 'foo': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mstartswith[0m[37m[40m([0m[35m[40m'foobar'[0m[37m[40m, [0m[35m[40m'foo'[0m[37m[40m) [0m @@ -3911,12 +4475,12 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, + [1mspooky_hash()[0m, [1mstartswith()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExample[0m #1 To get the 'b', 'c', and 'd' characters from the string 'abcabc': @@ -3926,17 +4490,19 @@ For support questions, email: [1m[4mstrftime[0m[4m([0m[4mformat[0m[4m, [0m[4mtimestring[0m[4m, [0m[4mmodifier[0m[4m, ...)[0m ══════════════════════════════════════════════════════════════════════ - Returns the date formatted according to the format string specified - as the first argument. + Returns the date formatted according to the format string + specified as the first argument. [4mParameters[0m - [4mformat[0m A format string with substitutions similar - to those found in the strftime() standard C library. - [4mtimestring[0m The string to convert to a date with time. + [4mformat[0m A format string with substitutions + similar to those found in the strftime() standard C + library. + [4mtimestring[0m The string to convert to a date with + time. [4mmodifier[0m A transformation that is applied to the value to the left. [4mSee Also[0m [1mdate()[0m, [1mdatetime()[0m, [1mhumanize_duration()[0m, [1mjulianday()[0m, [1mtime()[0m, - [1mtimediff()[0m, [1mtimeslice()[0m + [1mtimediff()[0m, [1mtimeslice()[0m, [1mtimezone()[0m [4mExamples[0m #1 To get the year from the timestamp '2017-01-02T03:04:05': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mstrftime[0m[37m[40m([0m[35m[40m'%Y'[0m[37m[40m, [0m[35m[40m'2017-01-02T03:04:05'[0m[37m[40m) [0m @@ -3969,13 +4535,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1mtrim()[0m, [1municode()[0m, - [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To get the substring starting at the second character until the end of the string 'abc': @@ -4024,7 +4590,7 @@ For support questions, email: value to the left. [4mSee Also[0m [1mdate()[0m, [1mdatetime()[0m, [1mhumanize_duration()[0m, [1mjulianday()[0m, [1mstrftime()[0m, - [1mtimediff()[0m, [1mtimeslice()[0m + [1mtimediff()[0m, [1mtimeslice()[0m, [1mtimezone()[0m [4mExamples[0m #1 To get the time portion of the timestamp '2017-01-02T03:04:05': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mtime[0m[37m[40m([0m[35m[40m'2017-01-02T03:04:05'[0m[37m[40m) [0m @@ -4047,7 +4613,7 @@ For support questions, email: [4mtime2[0m The timestamp to subtract from the first [4mSee Also[0m [1mdate()[0m, [1mdatetime()[0m, [1mhumanize_duration()[0m, [1mjulianday()[0m, [1mstrftime()[0m, - [1mtime()[0m, [1mtimeslice()[0m + [1mtime()[0m, [1mtimeslice()[0m, [1mtimezone()[0m [4mExamples[0m #1 To get the difference between two timestamps: [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mtimediff[0m[37m[40m([0m[35m[40m'2017-02-03T04:05:06'[0m[37m[40m, [0m[35m[40m'2017-02-03T04:05:00'[0m[37m[40m)[0m @@ -4060,14 +4626,14 @@ For support questions, email: [1m[4mtimeslice[0m[4m([0m[4mtime[0m[4m, [0m[4mslice[0m[4m)[0m ══════════════════════════════════════════════════════════════════════ - Return the start of the slice of time that the given timestamp falls - in. If the time falls outside of the slice, NULL is returned. + Return the start of the slice of time that the given timestamp + falls in. If the time falls outside of the slice, NULL is returned. [4mParameters[0m [4mtime[0m The timestamp to get the time slice for. [4mslice[0m The size of the time slices [4mSee Also[0m [1mdate()[0m, [1mdatetime()[0m, [1mhumanize_duration()[0m, [1mjulianday()[0m, [1mstrftime()[0m, - [1mtime()[0m, [1mtimediff()[0m + [1mtime()[0m, [1mtimediff()[0m, [1mtimezone()[0m [4mExamples[0m #1 To get the timestamp rounded down to the start of the ten minute slice: [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mtimeslice[0m[37m[40m([0m[35m[40m'2017-01-01T05:05:00'[0m[37m[40m, [0m[35m[40m'10m'[0m[37m[40m) [0m @@ -4084,6 +4650,30 @@ For support questions, email: +[1m[4mtimezone[0m[4m([0m[4mtz[0m[4m, [0m[4mts[0m[4m)[0m +══════════════════════════════════════════════════════════════════════ + Convert a timestamp to the given timezone +[4mParameters[0m + [4mtz[0m The target timezone + [4mts[0m The source timestamp +[4mSee Also[0m + [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdate()[0m, [1mdatetime()[0m, [1mdecode()[0m, + [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, + [1mgunzip()[0m, [1mgzip()[0m, [1mhumanize_duration()[0m, [1mhumanize_duration()[0m, + [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, [1mjulianday()[0m, [1mleftstr()[0m, + [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, + [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, + [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1mstrftime()[0m, [1msubstr()[0m, [1mtime()[0m, + [1mtimediff()[0m, [1mtimeslice()[0m, [1mtrim()[0m, [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, + [1mxpath()[0m +[4mExample[0m +#1 To convert a time to America/Los_Angeles: + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mtimezone[0m[37m[40m([0m[35m[40m'America/Los_Angeles'[0m[37m[40m, [0m[35m[40m'2022-03-02T10:00'[0m[37m[40m)[0m + + + [1m[4mtotal[0m[4m([0m[4mX[0m[4m)[0m ══════════════════════════════════════════════════════════════════════ Returns the sum of the values in the group as a floating-point. @@ -4103,8 +4693,8 @@ For support questions, email: [1m[4mtotal_changes[0m[4m()[0m ══════════════════════════════════════════════════════════════════════ - Returns the number of row changes caused by INSERT, UPDATE or DELETE - statements since the current database connection was opened. + Returns the number of row changes caused by INSERT, UPDATE or + DELETE statements since the current database connection was opened. [1m[4mtrim[0m[4m([0m[4mstr[0m[4m, [[0m[4mchars[0m[4m])[0m @@ -4119,13 +4709,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1municode()[0m, - [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExamples[0m #1 To trim spaces from the start and end of the string ' abc ': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mtrim[0m[37m[40m([0m[35m[40m' abc '[0m[37m[40m) [0m @@ -4162,12 +4752,12 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, [1munparse_url()[0m, [1mupper()[0m, [1mxpath()[0m [4mExample[0m #1 To get the unicode code point for the first character of 'abc': @@ -4191,13 +4781,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, - [1mupper()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1mupper()[0m, [1mxpath()[0m [4mExample[0m #1 To unparse the object '{"scheme": "https", "host": "example.com"}': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40munparse_url[0m[37m[40m([0m[35m[40m'{"scheme": "https", "host": "example.com"}'[0m[37m[40m)[0m @@ -4213,13 +4803,13 @@ For support questions, email: [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, - [1munparse_url()[0m, [1mxpath()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mxpath()[0m [4mExample[0m #1 To uppercase the string 'aBc': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mupper[0m[37m[40m([0m[35m[40m'aBc'[0m[37m[40m) [0m @@ -4236,31 +4826,34 @@ For support questions, email: [4mxmldoc[0m The XML document as a string. [4mResults[0m [4mresult[0m The result of the XPATH expression. - [4mnode_path[0m The absolute path to the node containing the - result. - [4mnode_attr[0m The node's attributes stored in JSON object. + [4mnode_path[0m The absolute path to the node containing + the result. + [4mnode_attr[0m The node's attributes stored in JSON + object. [4mnode_text[0m The node's text value. [4mSee Also[0m [1manonymize()[0m, [1mchar()[0m, [1mcharindex()[0m, [1mdecode()[0m, [1mencode()[0m, [1mendswith()[0m, [1mextract()[0m, [1mgroup_concat()[0m, [1mgroup_spooky_hash()[0m, [1mgunzip()[0m, [1mgzip()[0m, - [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1minstr()[0m, [1mleftstr()[0m, - [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, [1mpadr()[0m, - [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, + [1mhumanize_duration()[0m, [1mhumanize_file_size()[0m, [1mhumanize_id()[0m, [1minstr()[0m, + [1mleftstr()[0m, [1mlength()[0m, [1mlogfmt2json()[0m, [1mlower()[0m, [1mltrim()[0m, [1mpadc()[0m, [1mpadl()[0m, + [1mpadr()[0m, [1mparse_url()[0m, [1mprintf()[0m, [1mproper()[0m, [1mregexp_capture()[0m, [1mregexp_capture_into_json()[0m, [1mregexp_match()[0m, [1mregexp_replace()[0m, [1mreplace()[0m, [1mreplicate()[0m, [1mreverse()[0m, [1mrightstr()[0m, [1mrtrim()[0m, [1msparkline()[0m, - [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtrim()[0m, [1municode()[0m, - [1munparse_url()[0m, [1mupper()[0m + [1mspooky_hash()[0m, [1mstartswith()[0m, [1mstrfilter()[0m, [1msubstr()[0m, [1mtimezone()[0m, [1mtrim()[0m, + [1municode()[0m, [1munparse_url()[0m, [1mupper()[0m [4mExamples[0m #1 To select the XML nodes on the path '/abc/def': [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40m*[0m[37m[40m [0m[1m[36m[40mFROM[0m[37m[40m [0m[1m[37m[40mxpath[0m[37m[40m([0m[35m[40m'/abc/def'[0m[37m[40m, [0m[35m[40m'<abc><def a="b">Hello</def><def>Bye</def></abc>'[0m[37m[40m)[0m #2 To select all 'a' attributes on the path '/abc/def': - [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40m*[0m[37m[40m [0m[1m[36m[40mFROM[0m[37m[40m [0m[1m[37m[40mxpath[0m[37m[40m([0m[35m[40m'/abc/def/@a'[0m[37m[40m, [0m[35m[40m'<abc><def a="b">Hello</def><def>Bye</def></abc>'[0m[37m[40m)[0m + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40m*[0m[37m[40m [0m[1m[36m[40mFROM[0m[37m[40m [0m[1m[37m[40mxpath[0m[37m[40m([0m[35m[40m'/abc/def/@a'[0m[37m[40m, [0m[35m[40m'<abc><def[0m + [35m[40m [0m[35m[40ma="b">Hello</def><def>Bye</def></abc>'[0m[37m[40m)[0m #3 To select the text nodes on the path '/abc/def': - [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40m*[0m[37m[40m [0m[1m[36m[40mFROM[0m[37m[40m [0m[1m[37m[40mxpath[0m[37m[40m([0m[35m[40m'/abc/def/text()'[0m[37m[40m, [0m[35m[40m'<abc><def a="b">Hello ★</def></abc>'[0m[37m[40m)[0m + [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40m*[0m[37m[40m [0m[1m[36m[40mFROM[0m[37m[40m [0m[1m[37m[40mxpath[0m[37m[40m([0m[35m[40m'/abc/def/text()'[0m[37m[40m, [0m[35m[40m'<abc><def a="b">Hello[0m + [35m[40m [0m[35m[40m★</def></abc>'[0m[37m[40m)[0m @@ -4270,8 +4863,11 @@ For support questions, email: [4mParameter[0m [4myaml[0m The YAML value to convert to JSON. [4mSee Also[0m - [1mjget()[0m, [1mjson_concat()[0m, [1mjson_contains()[0m, [1mjson_group_array()[0m, - [1mjson_group_object()[0m + [1mjget()[0m, [1mjson()[0m, [1mjson_array()[0m, [1mjson_array_length()[0m, [1mjson_concat()[0m, + [1mjson_contains()[0m, [1mjson_each()[0m, [1mjson_extract()[0m, [1mjson_group_array()[0m, + [1mjson_group_object()[0m, [1mjson_insert()[0m, [1mjson_object()[0m, [1mjson_quote()[0m, + [1mjson_remove()[0m, [1mjson_replace()[0m, [1mjson_set()[0m, [1mjson_tree()[0m, [1mjson_type()[0m, + [1mjson_valid()[0m [4mExample[0m #1 To convert the document "abc: def": [37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40myaml_to_json[0m[37m[40m([0m[35m[40m'abc: def'[0m[37m[40m) [0m @@ -4290,7 +4886,8 @@ For support questions, email: Attach a database file to the current connection. [4mParameters[0m [4mfilename[0m The path to the database file. - [4mschema-name[0m The prefix for tables in this database. + [4mschema-name[0m The prefix for tables in this + database. [4mExample[0m #1 To attach the database file '/tmp/customers.db' with the name customers: @@ -4306,8 +4903,9 @@ For support questions, email: [4mParameters[0m [4mbase-expr[0m The base expression that is used for comparison in the branches - [4mcmp-expr[0m The expression to test if this branch should - be taken + [4mcmp-expr[0m The expression to test if this branch + should be taken + [4mthen-expr[0m - The result for this branch. [4melse-expr[0m The result of this CASE if no branches matched. @@ -4321,8 +4919,8 @@ For support questions, email: ══════════════════════════════════════════════════════════════════════ Assign a name to a SELECT statement [4mParameters[0m - [4mIF NOT EXISTS[0m Do not create the view if it already - exists + [4mIF NOT EXISTS[0m Do not create the view if it + already exists [4mschema-name.[0m The database to create the view in [4mview-name[0m The name of the view [4mselect-stmt[0m The SELECT statement the view @@ -4341,7 +4939,8 @@ For support questions, email: ══════════════════════════════════════════════════════════════════════ Detach a database from the current connection. [4mParameter[0m - [4mschema-name[0m The prefix for tables in this database. + [4mschema-name[0m The prefix for tables in this + database. [4mExample[0m #1 To detach the database named 'customers': @@ -4383,10 +4982,10 @@ For support questions, email: [4mtable[0m The table(s) to query for data [4mcond[0m The conditions used to select the rows to return. - [4mgrouping-expr[0m The expression to use when grouping - rows. - [4mordering-term[0m The values to use when ordering the - result set. + [4mgrouping-expr[0m The expression to use when + grouping rows. + [4mordering-term[0m The values to use when ordering + the result set. [4mlimit-expr[0m The maximum number of rows to return. @@ -4402,8 +5001,10 @@ For support questions, email: [4mParameters[0m [4mtable[0m The table to update [4mcolumn-name[0m The columns in the table to update. - [4mcond[0m The condition used to determine whether - a row should be updated. + [4mexpr[0m - The values to place into the + column. + [4mcond[0m The condition used to determine + whether a row should be updated. [4mExample[0m #1 To mark the syslog message at line 40: @@ -4416,7 +5017,7 @@ For support questions, email: Create a temporary view that exists only for the duration of a SQL statement. [4mParameters[0m - [4mcte-table-name[0m The name for the temporary table. + [4mcte-table-name[0m The name for the temporary + table. [4mselect-stmt[0m The SELECT statement used to populate the temporary table. - diff --git a/test/expected/test_cmds.sh_b755a8b48c0f602f0270500b0117b76e11db546e.out b/test/expected/test_cmds.sh_b755a8b48c0f602f0270500b0117b76e11db546e.out index 5fb4d90..e27bfe5 100644 --- a/test/expected/test_cmds.sh_b755a8b48c0f602f0270500b0117b76e11db546e.out +++ b/test/expected/test_cmds.sh_b755a8b48c0f602f0270500b0117b76e11db546e.out @@ -33,5 +33,6 @@ Apr 7 07:32:56 Tim-Stacks-iMac.local logger[234]: Bad data { abc, 123, 456 -) -}] + ) +} +] diff --git a/test/expected/test_cmds.sh_c7fabc25374ff47c47931f63b1d697061b816a28.out b/test/expected/test_cmds.sh_c7fabc25374ff47c47931f63b1d697061b816a28.out index 76c53dd..fe0221c 100644 --- a/test/expected/test_cmds.sh_c7fabc25374ff47c47931f63b1d697061b816a28.out +++ b/test/expected/test_cmds.sh_c7fabc25374ff47c47931f63b1d697061b816a28.out @@ -1,2 +1,2 @@ -[7m Sat Nov 03 09:20:0[0m[1m[7m[31m0 1 normal 2 errors [0m[7m[32m 0 warnings [0m 1 marks -[7m Sat Nov 03 09:45:0[0m0 1 normal 0 errors 0 warnings 0 marks +[7m Sat Nov 03 09:20:00[0m[1m[7m[31m 1 normal 2 errors [0m[7m[32m 0 warnings [0m 1 marks +[7m Sat Nov 03 09:45:00[0m 1 normal 0 errors 0 warnings 0 marks diff --git a/test/expected/test_cmds.sh_ccd326da92d1cacda63501cd1a3077381a18e8f2.out b/test/expected/test_cmds.sh_ccd326da92d1cacda63501cd1a3077381a18e8f2.out index bc67837..0c0137a 100644 --- a/test/expected/test_cmds.sh_ccd326da92d1cacda63501cd1a3077381a18e8f2.out +++ b/test/expected/test_cmds.sh_ccd326da92d1cacda63501cd1a3077381a18e8f2.out @@ -1 +1 @@ -[7m [0m[1m[7m[31mS[0mat Nov 03 00:00:00 2 normal 2 errors 0 warnings 0 marks +[7m Sat Nov 03 00:00:00 2 normal [0m[1m[7m[31m 2 errors 0 warnings [0m 0 marks diff --git a/test/expected/test_cmds.sh_d0d0ff9b68adc17136329f457fe52d5addcb12c0.err b/test/expected/test_cmds.sh_d0d0ff9b68adc17136329f457fe52d5addcb12c0.err new file mode 100644 index 0000000..a55e4f8 --- /dev/null +++ b/test/expected/test_cmds.sh_d0d0ff9b68adc17136329f457fe52d5addcb12c0.err @@ -0,0 +1,6 @@ +[1m[31m✘ error[0m: invalid epoch time: 16120724091612072409 -- Value too large to be stored in data type +[36m --> [0m[1mcommand-option[0m:1 +[36m | [0m[37m[40m:[0m[1m[36m[40munix-time[0m[37m[40m 16120724091612072409 [0m +[36m =[0m [36mhelp[0m: [4m:[0m[1m[4munix-time[0m[4m [0m[4mseconds[0m + ══════════════════════════════════════════════════════════════════════ + Convert epoch time to a human-readable form diff --git a/test/expected/test_cmds.sh_d0d0ff9b68adc17136329f457fe52d5addcb12c0.out b/test/expected/test_cmds.sh_d0d0ff9b68adc17136329f457fe52d5addcb12c0.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_cmds.sh_d0d0ff9b68adc17136329f457fe52d5addcb12c0.out diff --git a/test/expected/test_cmds.sh_d1afefacbdd387f02562c8633968b0162a588502.err b/test/expected/test_cmds.sh_d1afefacbdd387f02562c8633968b0162a588502.err new file mode 100644 index 0000000..040fef2 --- /dev/null +++ b/test/expected/test_cmds.sh_d1afefacbdd387f02562c8633968b0162a588502.err @@ -0,0 +1,6 @@ +[1m[31m✘ error[0m: {test_dir}/logfile_access_log.0 is not a directory +[36m --> [0m[1mcommand-option[0m:1 +[36m | [0m[37m[40m:[0m[1m[36m[40mcd[0m[37m[40m {test_dir}/logfile_access_log.0[0m +[36m =[0m [36mhelp[0m: [4m:[0m[1m[4mcd[0m[4m [0m[4mdir[0m + ══════════════════════════════════════════════════════════════════════ + Change the current directory diff --git a/test/expected/test_cmds.sh_d1afefacbdd387f02562c8633968b0162a588502.out b/test/expected/test_cmds.sh_d1afefacbdd387f02562c8633968b0162a588502.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_cmds.sh_d1afefacbdd387f02562c8633968b0162a588502.out diff --git a/test/expected/test_cmds.sh_d7eebacdcf2cb194f25fa4ef97b7b5376b442467.err b/test/expected/test_cmds.sh_d7eebacdcf2cb194f25fa4ef97b7b5376b442467.err deleted file mode 100644 index 07df1b2..0000000 --- a/test/expected/test_cmds.sh_d7eebacdcf2cb194f25fa4ef97b7b5376b442467.err +++ /dev/null @@ -1,7 +0,0 @@ -[1m[31m✘ error[0m: invalid timestamp: 2022-06-16Tabc - [1m[31mreason[0m: the leading part of the timestamp was matched, however, the trailing text “Tabc” was not -[36m --> [0m[1mcommand-option[0m:1 -[36m | [0m[37m[40m:[0m[1m[36m[40mgoto[0m[37m[40m 2022-06-16Tabc [0m -[36m | [0m[37m[40m [0m[32m[40m^--^ unrecognized input[0m[37m[40m [0m -[36m =[0m [36mnote[0m: input matched time format “%Y-%m-%d” -[36m =[0m [36mhelp[0m: fix the timestamp or remove the trailing text diff --git a/test/expected/test_cmds.sh_d836c84398c831c976df46f46fe3bf5983c44c37.out b/test/expected/test_cmds.sh_d836c84398c831c976df46f46fe3bf5983c44c37.out index 1d3eae4..926f0f5 100644 --- a/test/expected/test_cmds.sh_d836c84398c831c976df46f46fe3bf5983c44c37.out +++ b/test/expected/test_cmds.sh_d836c84398c831c976df46f46fe3bf5983c44c37.out @@ -1,2 +1,2 @@ -[1m[4mlog_top_line() [0m +[1m[4mlog_top_line()[0m[1m[4m [0m 51 diff --git a/test/expected/test_cmds.sh_da5f7160b967e60dbd772573614e2da89c5e22b2.err b/test/expected/test_cmds.sh_da5f7160b967e60dbd772573614e2da89c5e22b2.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_cmds.sh_da5f7160b967e60dbd772573614e2da89c5e22b2.err diff --git a/test/expected/test_cmds.sh_da5f7160b967e60dbd772573614e2da89c5e22b2.out b/test/expected/test_cmds.sh_da5f7160b967e60dbd772573614e2da89c5e22b2.out new file mode 100644 index 0000000..c9c79dc --- /dev/null +++ b/test/expected/test_cmds.sh_da5f7160b967e60dbd772573614e2da89c5e22b2.out @@ -0,0 +1 @@ +2009-07-20T15:59:26.000 -0700 diff --git a/test/expected/test_cmds.sh_dbdd62995fdefc8318053af05a32416eccfa79fc.out b/test/expected/test_cmds.sh_dbdd62995fdefc8318053af05a32416eccfa79fc.out index f3d0606..24a89e7 100644 --- a/test/expected/test_cmds.sh_dbdd62995fdefc8318053af05a32416eccfa79fc.out +++ b/test/expected/test_cmds.sh_dbdd62995fdefc8318053af05a32416eccfa79fc.out @@ -1 +1 @@ -[7m [0m[1m[7m[31mS[0mat Nov 03 08:00:00 2 normal 2 errors 0 warnings 0 marks +[7m Sat Nov 03 08:00:00 2 normal [0m[1m[7m[31m 2 errors 0 warnings [0m 0 marks diff --git a/test/expected/test_cmds.sh_df6f4cea16bb8f20e6408fe4b40335e6de8a7f18.out b/test/expected/test_cmds.sh_df6f4cea16bb8f20e6408fe4b40335e6de8a7f18.out index e905c55..85a13ff 100644 --- a/test/expected/test_cmds.sh_df6f4cea16bb8f20e6408fe4b40335e6de8a7f18.out +++ b/test/expected/test_cmds.sh_df6f4cea16bb8f20e6408fe4b40335e6de8a7f18.out @@ -1,3 +1,3 @@ -10.0.0.1 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/aberrant HTTP/1.0" 200 134 "-" "gPXE/0.9.7" -10.0.0.1 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/abject/ablaze/able.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" -10.0.0.1 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/abject/ablaze/aboard.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" +10.0.0.1 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/abashed HTTP/1.0" 200 134 "-" "gPXE/0.9.7" +10.0.0.1 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/aberrant/abhorrent/abiding.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +10.0.0.1 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/aberrant/abhorrent/ablaze.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_cmds.sh_e7e8244fac65bc51dbd5af31be476fe3b8776bfc.out b/test/expected/test_cmds.sh_e7e8244fac65bc51dbd5af31be476fe3b8776bfc.out index 21e4506..012e2ef 100644 --- a/test/expected/test_cmds.sh_e7e8244fac65bc51dbd5af31be476fe3b8776bfc.out +++ b/test/expected/test_cmds.sh_e7e8244fac65bc51dbd5af31be476fe3b8776bfc.out @@ -1,12 +1,12 @@ { -[35m "foo [0mbar" : null, -[35m "array" : [[0m -[35m 1,[0m -[35m 2,[0m -[35m 3[0m -[35m ],[0m -[35m "obj" : [0m{ - "one[35m" : 1[0m, - [35m [0m"two" [35m: tru[0me + [35m"foo bar"[0m : [1m[36mnull[0m, + [35m"array"[0m : [ + [1m1[0m, + [1m2[0m, + [1m3[0m + ], + [35m"obj"[0m : { + [35m"one"[0m : [1m1[0m, + [35m"two"[0m : [1m[36mtrue[0m } } diff --git a/test/expected/test_cmds.sh_eb22c3e94c536a1bfaeae0c40d271b5b4b08f4fc.out b/test/expected/test_cmds.sh_eb22c3e94c536a1bfaeae0c40d271b5b4b08f4fc.out index 6599581..96a0a22 100644 --- a/test/expected/test_cmds.sh_eb22c3e94c536a1bfaeae0c40d271b5b4b08f4fc.out +++ b/test/expected/test_cmds.sh_eb22c3e94c536a1bfaeae0c40d271b5b4b08f4fc.out @@ -1,3 +1,3 @@ -{"log_line":0,"log_part":null,"log_time":"2009-07-20 22:59:26.000","log_idle_msecs":0,"log_level":"info","log_mark":0,"log_comment":null,"log_tags":null,"log_filters":null,"c_ip":"192.168.202.254","cs_method":"GET","cs_referer":"-","cs_uri_query":null,"cs_uri_stem":"/vmw/cgi/tramp","cs_user_agent":"gPXE/0.9.7","cs_username":"-","cs_version":"HTTP/1.0","sc_bytes":134,"sc_status":200,"cs_host":null} -{"log_line":1,"log_part":null,"log_time":"2009-07-20 22:59:29.000","log_idle_msecs":3000,"log_level":"error","log_mark":0,"log_comment":null,"log_tags":null,"log_filters":null,"c_ip":"192.168.202.254","cs_method":"GET","cs_referer":"-","cs_uri_query":null,"cs_uri_stem":"/vmw/vSphere/default/vmkboot.gz","cs_user_agent":"gPXE/0.9.7","cs_username":"-","cs_version":"HTTP/1.0","sc_bytes":46210,"sc_status":404,"cs_host":null} -{"log_line":2,"log_part":null,"log_time":"2009-07-20 22:59:29.000","log_idle_msecs":0,"log_level":"info","log_mark":0,"log_comment":null,"log_tags":null,"log_filters":null,"c_ip":"192.168.202.254","cs_method":"GET","cs_referer":"-","cs_uri_query":null,"cs_uri_stem":"/vmw/vSphere/default/vmkernel.gz","cs_user_agent":"gPXE/0.9.7","cs_username":"-","cs_version":"HTTP/1.0","sc_bytes":78929,"sc_status":200,"cs_host":null} +{"log_line":0,"log_time":"2009-07-20 22:59:26.000","log_level":"info","c_ip":"192.168.202.254","cs_method":"GET","cs_referer":"-","cs_uri_query":null,"cs_uri_stem":"/vmw/cgi/tramp","cs_user_agent":"gPXE/0.9.7","cs_username":"-","cs_version":"HTTP/1.0","sc_bytes":134,"sc_status":200,"cs_host":null,"log_part":null,"log_idle_msecs":0,"log_mark":0,"log_comment":null,"log_tags":null,"log_annotations":null,"log_filters":null} +{"log_line":1,"log_time":"2009-07-20 22:59:29.000","log_level":"error","c_ip":"192.168.202.254","cs_method":"GET","cs_referer":"-","cs_uri_query":null,"cs_uri_stem":"/vmw/vSphere/default/vmkboot.gz","cs_user_agent":"gPXE/0.9.7","cs_username":"-","cs_version":"HTTP/1.0","sc_bytes":46210,"sc_status":404,"cs_host":null,"log_part":null,"log_idle_msecs":3000,"log_mark":0,"log_comment":null,"log_tags":null,"log_annotations":null,"log_filters":null} +{"log_line":2,"log_time":"2009-07-20 22:59:29.000","log_level":"info","c_ip":"192.168.202.254","cs_method":"GET","cs_referer":"-","cs_uri_query":null,"cs_uri_stem":"/vmw/vSphere/default/vmkernel.gz","cs_user_agent":"gPXE/0.9.7","cs_username":"-","cs_version":"HTTP/1.0","sc_bytes":78929,"sc_status":200,"cs_host":null,"log_part":null,"log_idle_msecs":0,"log_mark":0,"log_comment":null,"log_tags":null,"log_annotations":null,"log_filters":null} diff --git a/test/expected/test_cmds.sh_ec3a64cad41b070a1d04e2bfc3dc14cb2d964091.err b/test/expected/test_cmds.sh_ec3a64cad41b070a1d04e2bfc3dc14cb2d964091.err new file mode 100644 index 0000000..5874e8a --- /dev/null +++ b/test/expected/test_cmds.sh_ec3a64cad41b070a1d04e2bfc3dc14cb2d964091.err @@ -0,0 +1,6 @@ +[1m[31m✘ error[0m: Unable to get timezone: bad-zone -- bad-zone not found in timezone database +[36m --> [0m[1mcommand-option[0m:2 +[36m | [0m[37m[40m:[0m[1m[36m[40mconvert-time-to[0m[37m[40m bad-zone [0m +[36m =[0m [36mhelp[0m: [4m:[0m[1m[4mconvert-time-to[0m[4m [0m[4mzone[0m + ══════════════════════════════════════════════════════════════════════ + Convert the focused timestamp to the given timezone diff --git a/test/expected/test_cmds.sh_ec3a64cad41b070a1d04e2bfc3dc14cb2d964091.out b/test/expected/test_cmds.sh_ec3a64cad41b070a1d04e2bfc3dc14cb2d964091.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_cmds.sh_ec3a64cad41b070a1d04e2bfc3dc14cb2d964091.out diff --git a/test/expected/test_config.sh_13fa2428c26fa12e732209620e21466b36bab252.err b/test/expected/test_config.sh_13fa2428c26fa12e732209620e21466b36bab252.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_config.sh_13fa2428c26fa12e732209620e21466b36bab252.err diff --git a/test/expected/test_config.sh_13fa2428c26fa12e732209620e21466b36bab252.out b/test/expected/test_config.sh_13fa2428c26fa12e732209620e21466b36bab252.out new file mode 100644 index 0000000..3d14be3 --- /dev/null +++ b/test/expected/test_config.sh_13fa2428c26fa12e732209620e21466b36bab252.out @@ -0,0 +1 @@ +Hello, /finn at seattle! diff --git a/test/expected/test_config.sh_5105c29004e297521310ca0bd0fd560b01c2c549.err b/test/expected/test_config.sh_5105c29004e297521310ca0bd0fd560b01c2c549.err deleted file mode 100644 index 092b26a..0000000 --- a/test/expected/test_config.sh_5105c29004e297521310ca0bd0fd560b01c2c549.err +++ /dev/null @@ -1,20 +0,0 @@ -[1m[31m✘ error[0m: '[1mbad[0m' is not a supported configuration $schema version -[36m --> [0m[1m{test_dir}/bad-config2/formats/invalid-config/config.bad-schema.json[0m:2 -[36m | [0m[37m[40m "$schema": "bad" [0m -[36m =[0m [36mnote[0m: expecting one of the following $schema values: - [1m https://lnav.org/schemas/config-v1.schema.json[0m -[36m =[0m [36mhelp[0m: [1mProperty Synopsis[0m - [1m/$schema[0m [4m<schema-uri>[0m - [1mDescription[0m - The URI that specifies the schema that describes this type of file - [1mExample[0m - https://lnav.org/schemas/config-v1.schema.json -[1m[31m✘ error[0m: invalid JSON -[36m --> [0m[1m{test_dir}/bad-config2/formats/invalid-config/config.malformed.json[0m:3 -[36m | [0mparse error: object key and value must be separated by a colon (':') -[36m | [0m "ui": "theme", "abc", "def": "" } -[36m | [0m (right here) ------^ -[36m | [0m -[1m[31m✘ error[0m: invalid JSON - [1m[31mreason[0m: parse error: premature EOF -[36m --> [0m[1m{test_dir}/bad-config2/formats/invalid-config/config.truncated.json[0m:3 diff --git a/test/expected/test_config.sh_a0907769aba112d628e7ebe39c4ec252e5e0bc69.err b/test/expected/test_config.sh_a0907769aba112d628e7ebe39c4ec252e5e0bc69.err index ec11ba5..f04b83a 100644 --- a/test/expected/test_config.sh_a0907769aba112d628e7ebe39c4ec252e5e0bc69.err +++ b/test/expected/test_config.sh_a0907769aba112d628e7ebe39c4ec252e5e0bc69.err @@ -1,4 +1,23 @@ -[1m[31m✘ error[0m: '[1mbad[0m' is not a supported configuration $schema version +[33m⚠ warning[0m: unexpected value for property “[1m/ui/theme-defs/invalid-theme/styles/text/bad-property[0m” +[36m --> [0m[1m{test_dir}/bad-config2/configs/invalid-theme/config.json[0m:9 +[36m | [0m[37m[40m "bad-property": "abc"[0m +[36m =[0m [36mhelp[0m: [1mAvailable Properties[0m + [1mcolor[0m [4m#hex|color_name[0m + [1mbackground-color[0m [4m#hex|color_name[0m + [1munderline[0m + [1mbold[0m +[1m[31m✘ error[0m: “abc(” is not a valid regular expression + [1m[31mreason[0m: missing closing parenthesis +[36m --> [0m[1m/ui/theme-defs/invalid-theme/highlights/foobar/pattern[0m +[36m | [0m[37m[40mabc[0m[1m[7m[32m[40m([0m[37m[40m [0m +[36m | [0m[37m[40m [0m[1m[31m[40m^ [0m[1m[31m[40mmissing closing parenthesis[0m[37m[40m [0m +[36m --> [0m[1m{test_dir}/bad-config2/configs/invalid-theme/config.json[0m:14 +[36m | [0m[37m[40m "pattern": "abc("[0m +[36m =[0m [36mhelp[0m: [1mProperty Synopsis[0m + [1m/ui/theme-defs/invalid-theme/highlights/foobar/pattern[0m [4mregular expression[0m + [1mDescription[0m + The regular expression to highlight +[1m[31m✘ error[0m: “[1mbad[0m” is not a supported configuration $schema version [36m --> [0m[1m{test_dir}/bad-config2/formats/invalid-config/config.bad-schema.json[0m:2 [36m | [0m[37m[40m "$schema": "bad" [0m [36m =[0m [36mnote[0m: expecting one of the following $schema values: @@ -36,3 +55,28 @@ [1m[31m✘ error[0m: invalid JSON [1m[31mreason[0m: parse error: premature EOF [36m --> [0m[1m{test_dir}/bad-config2/formats/invalid-config/config.truncated.json[0m:3 +[1m[31m✘ error[0m: missing value for property “[1m/log/annotations/org.lnav.test.no-condition/condition[0m” + [1m[31mreason[0m: incomplete input +[36m --> [0m[1m/log/annotations/org.lnav.test.no-condition/condition[0m +[36m =[0m [36mhelp[0m: [1mProperty Synopsis[0m + [1m/log/annotations/org.lnav.test.no-condition/condition[0m [4m<SQL-expression>[0m + [1mDescription[0m + The SQLite expression to execute for a log message that determines whether or not this annotation is applicable. The expression is evaluated the same way as a filter expression +[1m[31m✘ error[0m: missing value for property “[1m/log/annotations/org.lnav.test.no-handler/handler[0m” + [1m[31mreason[0m: Every annotation requires a handler +[36m =[0m [36mhelp[0m: [1mProperty Synopsis[0m + [1m/log/annotations/org.lnav.test.no-handler/handler[0m [4m<script>[0m + [1mDescription[0m + The script to execute to generate the annotation content. A JSON object with the log message content will be sent to the script on the standard input +[1m[31m✘ error[0m: invalid value for property “[1m/ui/theme-defs/invalid-theme/styles/text/color[0m” + [1m[31mreason[0m: invalid color -- “InvalidColor” +[1m[31m | [0m [1m[31mreason[0m: Unknown color: 'InvalidColor'. See https://jonasjacek.github.io/colors/ for a list of supported color names +[36m --> [0m[1m{test_dir}/bad-config2/configs/invalid-theme/config.json[0m:8 +[36m =[0m [36mhelp[0m: [1mProperty Synopsis[0m + [1m/ui/theme-defs/invalid-theme/styles/text/color[0m [4m#hex|color_name[0m + [1mDescription[0m + The foreground color value for this style. The value can be the name of an xterm color, the hexadecimal value, or a theme variable reference. + [1mExamples[0m + #fff + Green + $black diff --git a/test/expected/test_config.sh_d708b6fd32d83ce0ee00ca5383388308ba5a06e1.err b/test/expected/test_config.sh_d708b6fd32d83ce0ee00ca5383388308ba5a06e1.err index 93cba93..1849a63 100644 --- a/test/expected/test_config.sh_d708b6fd32d83ce0ee00ca5383388308ba5a06e1.err +++ b/test/expected/test_config.sh_d708b6fd32d83ce0ee00ca5383388308ba5a06e1.err @@ -1,6 +1,6 @@ [1m[31m✘ error[0m: invalid value for property “[1m/ui/theme[0m” [1m[31mreason[0m: unknown theme -- “baddy” -[1m[31m | [0m [36m =[0m [36mhelp[0m: The available themes are: default, eldar, grayscale, monocai, night-owl, solarized-dark, solarized-light +[1m[31m | [0m [36m =[0m [36mhelp[0m: The available themes are: default, dracula, eldar, grayscale, monocai, night-owl, solarized-dark, solarized-light [36m --> [0m[1mcommand-option[0m:1 [36m =[0m [36mhelp[0m: [1mProperty Synopsis[0m [1m/ui/theme[0m [4mtheme_name[0m diff --git a/test/expected/test_format_installer.sh_1e08efc3b8c7b67d944a1f8c475cd31d98d5b4f6.err b/test/expected/test_format_installer.sh_1e08efc3b8c7b67d944a1f8c475cd31d98d5b4f6.err new file mode 100644 index 0000000..8b4f3e4 --- /dev/null +++ b/test/expected/test_format_installer.sh_1e08efc3b8c7b67d944a1f8c475cd31d98d5b4f6.err @@ -0,0 +1,2 @@ +[1m[31m✘ error[0m: unable to open configuration file: [1m/non-existent/file[0m + [1m[31mreason[0m: No such file or directory diff --git a/test/expected/test_format_installer.sh_1e08efc3b8c7b67d944a1f8c475cd31d98d5b4f6.out b/test/expected/test_format_installer.sh_1e08efc3b8c7b67d944a1f8c475cd31d98d5b4f6.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_format_installer.sh_1e08efc3b8c7b67d944a1f8c475cd31d98d5b4f6.out diff --git a/test/expected/test_format_installer.sh_6cd73153a8990b8ddb8ce489e90ec667a442f7f9.err b/test/expected/test_format_installer.sh_6cd73153a8990b8ddb8ce489e90ec667a442f7f9.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_format_installer.sh_6cd73153a8990b8ddb8ce489e90ec667a442f7f9.err diff --git a/test/expected/test_format_installer.sh_6cd73153a8990b8ddb8ce489e90ec667a442f7f9.out b/test/expected/test_format_installer.sh_6cd73153a8990b8ddb8ce489e90ec667a442f7f9.out new file mode 100644 index 0000000..95b5acd --- /dev/null +++ b/test/expected/test_format_installer.sh_6cd73153a8990b8ddb8ce489e90ec667a442f7f9.out @@ -0,0 +1,2 @@ +[1m[32m✔ [0minstalled -- [1m../installer-test-home/.lnav/formats/installed/test_log.json[0m +[36m =[0m [36mnote[0m: the previously installed “[1mtest_log.json[0m” was backed up to -- [1m../installer-test-home/.lnav/formats/installed/test_log.json.bak[0m diff --git a/test/expected/test_format_installer.sh_947cbc64a150c7fe2a17e1c7a69e9a932aeaa16b.err b/test/expected/test_format_installer.sh_947cbc64a150c7fe2a17e1c7a69e9a932aeaa16b.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_format_installer.sh_947cbc64a150c7fe2a17e1c7a69e9a932aeaa16b.err diff --git a/test/expected/test_format_installer.sh_947cbc64a150c7fe2a17e1c7a69e9a932aeaa16b.out b/test/expected/test_format_installer.sh_947cbc64a150c7fe2a17e1c7a69e9a932aeaa16b.out new file mode 100644 index 0000000..8ac09f2 --- /dev/null +++ b/test/expected/test_format_installer.sh_947cbc64a150c7fe2a17e1c7a69e9a932aeaa16b.out @@ -0,0 +1 @@ +[1m[35mⓘ info[0m: file is already installed at -- [1m../installer-test-home/.lnav/formats/installed/test_log.json[0m diff --git a/test/expected/test_format_loader.sh_15e861d2327512a721fd42ae51dc5427689e0bb6.out b/test/expected/test_format_loader.sh_15e861d2327512a721fd42ae51dc5427689e0bb6.out index 5f62842..2b877c6 100644 --- a/test/expected/test_format_loader.sh_15e861d2327512a721fd42ae51dc5427689e0bb6.out +++ b/test/expected/test_format_loader.sh_15e861d2327512a721fd42ae51dc5427689e0bb6.out @@ -1,9 +1,9 @@ -log_line,log_part,log_time,log_idle_msecs,log_level,log_mark,log_comment,log_tags,log_filters -0,<NULL>,2016-06-30 12:00:01.000,0,trace,0,<NULL>,<NULL>,<NULL> -1,<NULL>,2016-06-30 12:00:02.000,1000,debug,0,<NULL>,<NULL>,<NULL> -2,<NULL>,2016-06-30 12:00:03.000,1000,debug2,0,<NULL>,<NULL>,<NULL> -3,<NULL>,2016-06-30 12:00:04.000,1000,debug3,0,<NULL>,<NULL>,<NULL> -4,<NULL>,2016-06-30 12:00:05.000,1000,info,0,<NULL>,<NULL>,<NULL> -5,<NULL>,2016-06-30 12:00:06.000,1000,warning,0,<NULL>,<NULL>,<NULL> -6,<NULL>,2016-06-30 12:00:07.000,1000,fatal,0,<NULL>,<NULL>,<NULL> -7,<NULL>,2016-06-30 12:00:08.000,1000,info,0,<NULL>,<NULL>,<NULL> +log_line,log_time,log_level,log_part,log_idle_msecs,log_mark,log_comment,log_tags,log_annotations,log_filters +0,2016-06-30 12:00:01.000,trace,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +1,2016-06-30 12:00:02.000,debug,<NULL>,1000,0,<NULL>,<NULL>,<NULL>,<NULL> +2,2016-06-30 12:00:03.000,debug2,<NULL>,1000,0,<NULL>,<NULL>,<NULL>,<NULL> +3,2016-06-30 12:00:04.000,debug3,<NULL>,1000,0,<NULL>,<NULL>,<NULL>,<NULL> +4,2016-06-30 12:00:05.000,info,<NULL>,1000,0,<NULL>,<NULL>,<NULL>,<NULL> +5,2016-06-30 12:00:06.000,warning,<NULL>,1000,0,<NULL>,<NULL>,<NULL>,<NULL> +6,2016-06-30 12:00:07.000,fatal,<NULL>,1000,0,<NULL>,<NULL>,<NULL>,<NULL> +7,2016-06-30 12:00:08.000,info,<NULL>,1000,0,<NULL>,<NULL>,<NULL>,<NULL> diff --git a/test/expected/test_format_loader.sh_3f1d6f35e8a9ae4fd3e91ffaa82a037b5a847ab7.err b/test/expected/test_format_loader.sh_3f1d6f35e8a9ae4fd3e91ffaa82a037b5a847ab7.err deleted file mode 100644 index 202b451..0000000 --- a/test/expected/test_format_loader.sh_3f1d6f35e8a9ae4fd3e91ffaa82a037b5a847ab7.err +++ /dev/null @@ -1,171 +0,0 @@ -[1m[31m✘ error[0m: “invalid(abc” is not a valid regular expression - [1m[31mreason[0m: missing closing parenthesis -[36m --> [0m[1m/invalid_props_log/tags/badtag3/pattern[0m -[36m | [0m[37m[40minvalid[0m[1m[7m[32m[40m([0m[37m[40mabc [0m -[36m | [0m[37m[40m [0m[1m[31m[40m^ [0m[1m[31m[40mmissing closing parenthesis[0m -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-properties/format.json[0m:35 -[36m | [0m[37m[40m "pattern": "invalid(abc"[0m -[36m =[0m [36mhelp[0m: [1mProperty Synopsis[0m - [1m/invalid_props_log/tags/badtag3/pattern[0m [4m<regex>[0m - [1mDescription[0m - The regular expression to match against the body of the log message - [1mExample[0m - \w+ is down -[1m[31m✘ error[0m: “abc(def” is not a valid regular expression - [1m[31mreason[0m: missing closing parenthesis -[36m --> [0m[1m/invalid_props_log/search-table/bad_table_regex/pattern[0m -[36m | [0m[37m[40mabc[0m[1m[7m[32m[40m([0m[37m[40mdef [0m -[36m | [0m[37m[40m [0m[1m[31m[40m^ [0m[1m[31m[40mmissing closing parenthesis[0m[37m[40m [0m -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-properties/format.json[0m:40 -[36m | [0m[37m[40m "pattern": "abc(def" [0m -[36m =[0m [36mhelp[0m: [1mProperty Synopsis[0m - [1m/invalid_props_log/search-table/bad_table_regex/pattern[0m [4m<regex>[0m - [1mDescription[0m - The regular expression for this search table. -[1m[31m✘ error[0m: “^(?<timestamp>\d+: (?<body>.*)$” is not a valid regular expression - [1m[31mreason[0m: missing closing parenthesis -[36m --> [0m[1m/bad_regex_log/regex/std/pattern[0m -[36m | [0m[1m[36m[40m^[0m[1m[7m[32m[40m([0m[1m[32m[40m?[0m[1m[36m[40m<[0m[37m[40mtimestamp>[0m[1m[37m[40m\d[0m[1m[36m[40m+[0m[37m[40m: [0m[1m[32m[40m([0m[1m[32m[40m?[0m[1m[36m[40m<[0m[37m[40mbody>[0m[1m[36m[40m.[0m[1m[36m[40m*[0m[1m[32m[40m)[0m[1m[36m[40m$[0m[37m[40m [0m -[36m | [0m[37m[40m [0m[1m[31m[40m^ [0m[1m[31m[40mmissing closing parenthesis[0m -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-regex/format.json[0m:6 -[36m | [0m[37m[40m "pattern": "^(?<timestamp>\\d+: (?<body>.*)$"[0m -[36m =[0m [36mhelp[0m: [1mProperty Synopsis[0m - [1m/bad_regex_log/regex/std/pattern[0m [4m<message-regex>[0m - [1mDescription[0m - The regular expression to match a log message and capture fields. -[1m[31m✘ error[0m: “(foo” is not a valid regular expression - [1m[31mreason[0m: missing closing parenthesis -[36m --> [0m[1mpattern[0m -[36m | [0m[1m[7m[32m[40m([0m[37m[40mfoo [0m -[36m | [0m[37m[40m [0m[1m[31m[40m^ [0m[1m[31m[40mmissing closing parenthesis[0m[37m[40m [0m -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-regex/format.json[0m:13 -[36m | [0m[37m[40m "error": "(foo" [0m -[36m =[0m [36mhelp[0m: [1mProperty Synopsis[0m - [1m/bad_regex_log/level/error[0m [4m<pattern|integer>[0m - [1mDescription[0m - The regular expression used to match the log text for this level. For JSON logs with numeric levels, this should be the number for the corresponding level. -[1m[31m✘ error[0m: “abc(” is not a valid regular expression - [1m[31mreason[0m: missing closing parenthesis -[36m --> [0m[1m/bad_regex_log/highlights/foobar/pattern[0m -[36m | [0m[37m[40mabc[0m[1m[7m[32m[40m([0m[37m[40m [0m -[36m | [0m[37m[40m [0m[1m[31m[40m^ [0m[1m[31m[40mmissing closing parenthesis[0m[37m[40m [0m -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-regex/format.json[0m:25 -[36m | [0m[37m[40m "pattern": "abc(" [0m -[36m =[0m [36mhelp[0m: [1mProperty Synopsis[0m - [1m/bad_regex_log/highlights/foobar/pattern[0m [4m<regex>[0m - [1mDescription[0m - A regular expression to highlight in logs of this format. -[1m[31m✘ error[0m: “foo” is not a valid value for option “[1m/bad_sample_log/value/pid/kind[0m” -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-sample/format.json[0m:24 -[36m | [0m[37m[40m "kind": "foo" [0m -[36m =[0m [36mhelp[0m: [1mProperty Synopsis[0m - [1m/bad_sample_log/value/pid/kind[0m [4m<data-type>[0m - [1mDescription[0m - The type of data in the field - [1mAllowed Values[0m - [1mstring[0m, [1minteger[0m, [1mfloat[0m, [1mboolean[0m, [1mjson[0m, [1mstruct[0m, [1mquoted[0m, [1mxml[0m -[1m[31m✘ error[0m: '[1mbad[0m' is not a supported log format $schema version -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-schema/format.json[0m:2 -[36m | [0m[37m[40m "$schema": "bad" [0m -[36m =[0m [36mnote[0m: expecting one of the following $schema values: - [1m https://lnav.org/schemas/format-v1.schema.json[0m -[36m =[0m [36mhelp[0m: [1mProperty Synopsis[0m - [1m/$schema[0m [4mThe URI of the schema for this file[0m - [1mDescription[0m - Specifies the type of this file -[1m[31m✘ error[0m: invalid pattern: “[1mincomplete-match[0m” - [1m[31mreason[0m: pattern does not match entire message -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-regex/format.json[0m:20 -[36m | [0m[37m[40m1428634687123; foo [0m -[36m | [0m[37m[40m [0m[1m[31m[40m^ matched up to here[0m[37m[40m [0m -[36m =[0m [36mnote[0m: [1mincomplete-match[0m = [1m[36m^[0m[1m[32m([0m[1m[32m?[0m[1m[36m<[0mtimestamp>[1m\d[0m[1m[36m+[0m[1m[32m)[0m; -[36m =[0m [36mhelp[0m: update the regular expression to fully capture the sample message -[1m[31m✘ error[0m: invalid sample log message: "abc: foo" - [1m[31mreason[0m: unrecognized timestamp -- abc -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-sample/format.json[0m:30 -[36m =[0m [36mnote[0m: the following custom formats were tried: - abc - [36m^ [0m“[1m%i[0m”[36m matched up to here[0m -[36m =[0m [36mhelp[0m: If the timestamp format is not supported by default, you can add a custom format with the “[1mtimestamp-format[0m” property -[1m[31m✘ error[0m: invalid sample log message: "1428634687123| debug hello" - [1m[31mreason[0m: “[1mdebug[0m” does not match the expected level of “[1minfo[0m” -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-sample/format.json[0m:33 -[36m =[0m [36mnote[0m: matched regex = [1mwith-level[0m - captured level = “debug” -[1m[31m✘ error[0m: invalid pattern: “[1mwith-level[0m” - [1m[31mreason[0m: pattern does not match entire multiline sample message -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-sample/format.json[0m:37 -[36m =[0m [36mnote[0m: [1mwith-level[0m = [1m[36m^[0m[1m[32m([0m[1m[32m?[0m[1m[36m<[0mtimestamp>[1m\d[0m[1m[36m+[0m[1m[32m)[0m\| [1m[32m([0m[1m[32m?[0m[1m[36m<[0mlevel>[1m\w[0m[1m[36m+[0m[1m[32m)[0m [1m[32m([0m[1m[32m?[0m[1m[36m<[0mbody>[1m\w[0m[1m[36m+[0m[1m[32m)[0m[1m[36m$[0m -[36m =[0m [36mhelp[0m: use “.*” to match new-lines -[1m[31m✘ error[0m: invalid sample log message: "1428634687123; foo bar" - [1m[31mreason[0m: sample does not match any patterns -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-sample/format.json[0m:41 -[36m =[0m [36mnote[0m: the following shows how each pattern matched this sample: - [37m[40m1428634687123; foo bar[0m - [36m^ [0m[1mbad-time[0m[36m matched up to here[0m - [36m^ [0m[1msemi[0m[36m matched up to here[0m - [36m^ [0m[1mstd[0m[36m matched up to here[0m - [36m^ [0m[1mwith-level[0m[36m matched up to here[0m -[36m =[0m [36mnote[0m: [1mbad-time [0m = “[1m[36m^[0m[1m[32m([0m[1m[32m?[0m[1m[36m<[0mtimestamp>[1m\w[0m[1m[36m+[0m[1m[32m)[0m: [1m[32m([0m[1m[32m?[0m[1m[36m<[0mbody>[1m\w[0m[1m[36m+[0m[1m[32m)[0m[1m[36m$[0m” - [1msemi [0m = “[1m[36m^[0m[1m[32m([0m[1m[32m?[0m[1m[36m<[0mtimestamp>[1m\d[0m[1m[36m+[0m[1m[32m)[0m; [1m[32m([0m[1m[32m?[0m[1m[36m<[0mbody>[1m\w[0m[1m[36m+[0m[1m[32m)[0m[1m[36m$[0m” - [1mstd [0m = “[1m[36m^[0m[1m[32m([0m[1m[32m?[0m[1m[36m<[0mtimestamp>[1m\d[0m[1m[36m+[0m[1m[32m)[0m: [1m[32m([0m[1m[32m?[0m[1m[36m<[0mpid>[1m\w[0m[1m[36m+[0m[1m[32m)[0m [1m[32m([0m[1m[32m?[0m[1m[36m<[0mbody>[1m[36m.[0m[1m[36m*[0m[1m[32m)[0m[1m[36m$[0m” - [1mwith-level[0m = “[1m[36m^[0m[1m[32m([0m[1m[32m?[0m[1m[36m<[0mtimestamp>[1m\d[0m[1m[36m+[0m[1m[32m)[0m\| [1m[32m([0m[1m[32m?[0m[1m[36m<[0mlevel>[1m\w[0m[1m[36m+[0m[1m[32m)[0m [1m[32m([0m[1m[32m?[0m[1m[36m<[0mbody>[1m\w[0m[1m[36m+[0m[1m[32m)[0m[1m[36m$[0m” - -[33m⚠ warning[0m: invalid pattern: “[1m/bad_sample_log/regex/semi[0m” - [33mreason[0m: pattern does not match any samples -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-sample/format.json[0m:10 -[36m =[0m [36mhelp[0m: every pattern should have at least one sample that it matches -[33m⚠ warning[0m: invalid pattern: “[1m/bad_sample_log/regex/std[0m” - [33mreason[0m: pattern does not match any samples -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-sample/format.json[0m:7 -[36m =[0m [36mhelp[0m: every pattern should have at least one sample that it matches -[33m⚠ warning[0m: invalid value “[1m/invalid_props_log/value/non-existent[0m” - [33mreason[0m: no patterns have a capture named “non-existent” -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-properties/format.json[0m:4 -[36m =[0m [36mnote[0m: the following captures are available: - [1mbody[0m, [1mpid[0m, [1mtimestamp[0m -[36m =[0m [36mhelp[0m: values are populated from captures in patterns, so at least one pattern must have a capture with this value name -[1m[31m✘ error[0m: invalid tag definition “[1m/invalid_props_log/tags/badtag[0m” - [1m[31mreason[0m: tag definitions must have a non-empty pattern -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-properties/format.json[0m:4 -[1m[31m✘ error[0m: invalid tag definition “[1m/invalid_props_log/tags/badtag2[0m” - [1m[31mreason[0m: tag definitions must have a non-empty pattern -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-properties/format.json[0m:4 -[1m[31m✘ error[0m: invalid tag definition “[1m/invalid_props_log/tags/badtag3[0m” - [1m[31mreason[0m: tag definitions must have a non-empty pattern -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-properties/format.json[0m:4 -[1m[31m✘ error[0m: invalid value for property “[1m/invalid_props_log/timestamp-field[0m” - [1m[31mreason[0m: “ts” was not found in the pattern at [1m/invalid_props_log/regex/std[0m -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-properties/format.json[0m:4 -[36m =[0m [36mnote[0m: the following captures are available: - [1mbody[0m, [1mpid[0m, [1mtimestamp[0m -[1m[31m✘ error[0m: “not a color” is not a valid color value for property “[1m/invalid_props_log/highlights/hl1/color[0m” - [1m[31mreason[0m: Unknown color: 'not a color'. See https://jonasjacek.github.io/colors/ for a list of supported color names -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-properties/format.json[0m:23 -[1m[31m✘ error[0m: “also not a color” is not a valid color value for property “[1m/invalid_props_log/highlights/hl1/background-color[0m” - [1m[31mreason[0m: Unknown color: 'also not a color'. See https://jonasjacek.github.io/colors/ for a list of supported color names -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-properties/format.json[0m:24 -[1m[31m✘ error[0m: “[1mno_regexes_log[0m” is not a valid log format - [1m[31mreason[0m: no regexes specified -[36m --> [0m[1m{test_dir}/bad-config/formats/no-regexes/format.json[0m:4 -[1m[31m✘ error[0m: “[1mno_regexes_log[0m” is not a valid log format - [1m[31mreason[0m: log message samples must be included in a format definition -[36m --> [0m[1m{test_dir}/bad-config/formats/no-regexes/format.json[0m:4 -[1m[31m✘ error[0m: “[1mno_sample_log[0m” is not a valid log format - [1m[31mreason[0m: log message samples must be included in a format definition -[36m --> [0m[1m{test_dir}/bad-config/formats/no-samples/format.json[0m:4 -[1m[31m✘ error[0m: failed to compile SQL statement - [1m[31mreason[0m: near "TALE": syntax error -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-sql/init.sql[0m:4 -[36m | [0m[32m[40m-- comment test [0m -[36m | [0m[1m[36m[40mCREATE[0m[37m[40m [0m[37m[40mTALE[0m[37m[40m [0m[1m[37m[40minvalid[0m[1m[37m[40m [0m[37m[40m([0m[37m[40mx[0m[37m[40m [0m[37m[40my[0m[37m[40m [0m[37m[40mz[0m[37m[40m); [0m -[36m | [0m[37m[40m [0m[36m[40m^ [0m[1m[31m[40mnear "TALE": syntax error[0m[37m[40m [0m -[1m[31m✘ error[0m: failed to execute SQL statement - [1m[31mreason[0m: [1m[31m✘ error[0m: “abc(” is not a valid regular expression -[1m[31m | [0m [1m[31mreason[0m: missing closing parenthesis -[1m[31m | [0m [36m --> [0m[1marg[0m -[1m[31m | [0m [36m | [0m[37m[40mabc[0m[1m[7m[32m[40m([0m[37m[40m [0m -[1m[31m | [0m [36m | [0m[37m[40m [0m[1m[31m[40m^ [0m[1m[31m[40mmissing closing parenthesis[0m -[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-sql/init2.sql[0m -[36m | [0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mregexp_match[0m[1m[7m[31m[40m([0m[35m[40m'abc('[0m[37m[40m, [0m[35m[40m'123'[0m[37m[40m) [0m -[36m | [0m[1m[36m[40mFROM[0m[37m[40m [0m[37m[40msqlite_master[0m[37m[40m; [0m diff --git a/test/expected/test_format_loader.sh_5992e2695b7e6cf1f3520dbb87af8fc2b8f27088.err b/test/expected/test_format_loader.sh_5992e2695b7e6cf1f3520dbb87af8fc2b8f27088.err index c3d7699..578c06f 100644 --- a/test/expected/test_format_loader.sh_5992e2695b7e6cf1f3520dbb87af8fc2b8f27088.err +++ b/test/expected/test_format_loader.sh_5992e2695b7e6cf1f3520dbb87af8fc2b8f27088.err @@ -104,6 +104,13 @@ [1m/$schema[0m [4mThe URI of the schema for this file[0m [1mDescription[0m Specifies the type of this file +[1m[31m✘ error[0m: SQL expression is invalid + [1m[31mreason[0m: unrecognized token: "'foobar" +[36m --> [0m[1m/bad_file_format1/converter/header/expr/default[0m +[36m | [0m[37m[40m:header[0m[37m[40m [0m[1m[36m[40mREGEXP[0m[37m[40m [0m[1m[7m[31m[40m'[0m[37m[40mfoobar [0m +[1m[31m✘ error[0m: A command is required when a converter is defined +[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-file-format/format.json[0m:4 +[36m =[0m [36mhelp[0m: The converter command transforms the file into a format that can be consumed by lnav [1m[31m✘ error[0m: invalid line format element “[1m/bad_json_log/line-format/0/field[0m” [1m[31mreason[0m: “” is not a defined value [36m --> [0m[1m{test_dir}/bad-config/formats/invalid-json-format/format.json[0m:7 @@ -160,6 +167,10 @@ [33mreason[0m: pattern does not match any samples [36m --> [0m[1m{test_dir}/bad-config/formats/invalid-sample/format.json[0m:7 [36m =[0m [36mhelp[0m: every pattern should have at least one sample that it matches +[1m[31m✘ error[0m: invalid pattern: “[1m/invalid_props_log/regex/std[0m” + [1m[31mreason[0m: no timestamp capture found in the pattern +[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-properties/format.json[0m:4 +[36m =[0m [36mhelp[0m: all log messages need a timestamp [33m⚠ warning[0m: invalid value “[1m/invalid_props_log/value/non-existent[0m” [33mreason[0m: no patterns have a capture named “non-existent” [36m --> [0m[1m{test_dir}/bad-config/formats/invalid-properties/format.json[0m:4 @@ -198,6 +209,10 @@ [1m[31m✘ error[0m: “[1mno_sample_log[0m” is not a valid log format [1m[31mreason[0m: log message samples must be included in a format definition [36m --> [0m[1m{test_dir}/bad-config/formats/no-samples/format.json[0m:4 +[1m[31m✘ error[0m: invalid sample log message: "gitea | 2023/09/24 22:15:55 cmd/web.go:223:runWeb() [I] Starting Gitea on PID: 7" + [1m[31mreason[0m: timestamp was not captured +[36m --> [0m[1m{test_dir}/bad-config/formats/invalid-no-tscap/format.json[0m:25 +[36m =[0m [36mhelp[0m: A timestamp needs to be captured in order for a line to be recognized as a log message [1m[31m✘ error[0m: failed to compile SQL statement [1m[31mreason[0m: near "TALE": syntax error [36m --> [0m[1m{test_dir}/bad-config/formats/invalid-sql/init.sql[0m:4 diff --git a/test/expected/test_format_loader.sh_a47f2b090a5d8a226783835c7ff7d1c8821f11ed.err b/test/expected/test_format_loader.sh_a47f2b090a5d8a226783835c7ff7d1c8821f11ed.err deleted file mode 100644 index f657d87..0000000 --- a/test/expected/test_format_loader.sh_a47f2b090a5d8a226783835c7ff7d1c8821f11ed.err +++ /dev/null @@ -1,61 +0,0 @@ -[1m[31m✘ error[0m: invalid JSON -[36m --> [0m[1m{test_dir}/bad-config-json/formats/invalid-json/format.json[0m:4 -[36m | [0mparse error: object key and value must be separated by a colon (':') -[36m | [0m ar_log": { "abc" } } -[36m | [0m (right here) ------^ -[36m | [0m -[1m[31m✘ error[0m: “abc(” is not a valid regular expression - [1m[31mreason[0m: missing closing parenthesis -[36m --> [0m[1m/invalid_key_log/level-pointer[0m -[36m | [0m[37m[40mabc[0m[1m[7m[32m[40m([0m[37m[40m [0m -[36m | [0m[37m[40m [0m[1m[31m[40m^ [0m[1m[31m[40mmissing closing parenthesis[0m[37m[40m [0m -[36m --> [0m[1m{test_dir}/bad-config-json/formats/invalid-key/format.json[0m:4 -[36m | [0m[37m[40m "level-pointer": "abc(", [0m -[36m =[0m [36mhelp[0m: [1mProperty Synopsis[0m - [1m/invalid_key_log/level-pointer[0m - [1mDescription[0m - A regular-expression that matches the JSON-pointer of the level property -[1m[31m✘ error[0m: “def[ghi” is not a valid regular expression - [1m[31mreason[0m: missing terminating ] for character class -[36m --> [0m[1m/invalid_key_log/file-pattern[0m -[36m | [0m[37m[40mdef[0m[1m[7m[32m[40m[[0m[37m[40mghi [0m -[36m | [0m[37m[40m [0m[1m[31m[40m^ [0m[1m[31m[40mmissing terminating ] for character class[0m -[36m --> [0m[1m{test_dir}/bad-config-json/formats/invalid-key/format.json[0m:5 -[36m | [0m[37m[40m "file-pattern": "def[ghi", [0m -[36m =[0m [36mhelp[0m: [1mProperty Synopsis[0m - [1m/invalid_key_log/file-pattern[0m - [1mDescription[0m - A regular expression that restricts this format to log files with a matching name -[33m⚠ warning[0m: unexpected value for property “[1m/invalid_key_log/value/test/identifiers[0m” -[36m --> [0m[1m{test_dir}/bad-config-json/formats/invalid-key/format.json[0m:14 -[36m | [0m[37m[40m "identifiers": true [0m -[36m =[0m [36mhelp[0m: [1mAvailable Properties[0m - [1mkind[0m [4m<data-type>[0m - [1mcollate[0m [4m<function>[0m - [1munit[0m[1m/[0m - [1midentifier[0m [4m<bool>[0m - [1mforeign-key[0m [4m<bool>[0m - [1mhidden[0m [4m<bool>[0m - [1maction-list[0m [4m<string>[0m - [1mrewriter[0m [4m<command>[0m - [1mdescription[0m [4m<string>[0m -[1m[31m✘ error[0m: “-1.2” is not a valid value for “[1m/invalid_key_log/timestamp-divisor[0m” - [1m[31mreason[0m: value cannot be less than or equal to zero -[36m --> [0m[1m{test_dir}/bad-config-json/formats/invalid-key/format.json[0m:25 -[36m | [0m[37m[40m "timestamp-divisor": -1.2 [0m -[36m =[0m [36mhelp[0m: [1mProperty Synopsis[0m - [1m/invalid_key_log/timestamp-divisor[0m [4m<number>[0m - [1mDescription[0m - The value to divide a numeric timestamp by in a JSON log. -[1m[31m✘ error[0m: “[1mfoobar_log[0m” is not a valid log format - [1m[31mreason[0m: no regexes specified -[36m --> [0m[1m{test_dir}/bad-config-json/formats/invalid-json/format.json[0m:3 -[1m[31m✘ error[0m: “[1mfoobar_log[0m” is not a valid log format - [1m[31mreason[0m: log message samples must be included in a format definition -[36m --> [0m[1m{test_dir}/bad-config-json/formats/invalid-json/format.json[0m:3 -[1m[31m✘ error[0m: “[1minvalid_key_log[0m” is not a valid log format - [1m[31mreason[0m: structured logs cannot have regexes -[36m --> [0m[1m{test_dir}/bad-config-json/formats/invalid-key/format.json[0m:4 -[1m[31m✘ error[0m: invalid line format element “[1m/invalid_key_log/line-format/0/field[0m” - [1m[31mreason[0m: “non-existent” is not a defined value -[36m --> [0m[1m{test_dir}/bad-config-json/formats/invalid-key/format.json[0m:22 diff --git a/test/expected/test_format_loader.sh_fca6c1fb9f3aaa69b3ffb2d1a8a86434b2f4a247.err b/test/expected/test_format_loader.sh_fca6c1fb9f3aaa69b3ffb2d1a8a86434b2f4a247.err index 3272370..6ce508e 100644 --- a/test/expected/test_format_loader.sh_fca6c1fb9f3aaa69b3ffb2d1a8a86434b2f4a247.err +++ b/test/expected/test_format_loader.sh_fca6c1fb9f3aaa69b3ffb2d1a8a86434b2f4a247.err @@ -58,6 +58,10 @@ [1m[31m✘ error[0m: “[1mfoobar_log[0m” is not a valid log format [1m[31mreason[0m: log message samples must be included in a format definition [36m --> [0m[1m{test_dir}/bad-config-json/formats/invalid-json/format.json[0m:3 +[1m[31m✘ error[0m: invalid pattern: “[1m/invalid_key_log/regex/foo[0m” + [1m[31mreason[0m: no timestamp capture found in the pattern +[36m --> [0m[1m{test_dir}/bad-config-json/formats/invalid-key/format.json[0m:4 +[36m =[0m [36mhelp[0m: all log messages need a timestamp [1m[31m✘ error[0m: “[1minvalid_key_log[0m” is not a valid log format [1m[31mreason[0m: structured logs cannot have regexes [36m --> [0m[1m{test_dir}/bad-config-json/formats/invalid-key/format.json[0m:4 diff --git a/test/expected/test_gantt.sh_3af11588ee36bab7e2caea0f7a24d3c9cafd2310.err b/test/expected/test_gantt.sh_3af11588ee36bab7e2caea0f7a24d3c9cafd2310.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_gantt.sh_3af11588ee36bab7e2caea0f7a24d3c9cafd2310.err diff --git a/test/expected/test_gantt.sh_3af11588ee36bab7e2caea0f7a24d3c9cafd2310.out b/test/expected/test_gantt.sh_3af11588ee36bab7e2caea0f7a24d3c9cafd2310.out new file mode 100644 index 0000000..c523914 --- /dev/null +++ b/test/expected/test_gantt.sh_3af11588ee36bab7e2caea0f7a24d3c9cafd2310.out @@ -0,0 +1,86 @@ + 2011-11-03T00:17 5m 2011-11-03T00:22 + 5m +[1m[4m[35m Duration [0m[4m|[0m[4m [0m[1m[4m[31m✘[0m[4m[33m▲[0m[4m [0m[4m|[0m[1m[4m[35m Operation[0m +[32m 844[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCwFs1P2UcUdlSxD2L[0m[7m[32ma[0m[32m [0m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCoX7zA3OJKGUOSCBY[0m[7m[32m2[0m[32m [0m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCdrfXZ1NOFPEawF21[0m[1m[7m[32m8[0m[1m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCJwUi9bdB9c1lLW44[0m[1m[7m[32m [0m[1m[32m [0m[1m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCJxSUgkInyKSHiju1[0m[7m[32m [0m[32m [0m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCT0JIh479jXIGt0Po[0m[7m[32m1[0m[32m [0m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC6Q4Vm14ZJIlZhsXq[0m[1m[7m[32mk[0m[1m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 1s070[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCtgxRAqDLvrRUQdqe[0m[1m[7m[32m [0m[1m[32m [0m[1m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCdysLK1XpcrXOpVDu[0m[7m[32mh[0m[32m [0m[32m192.168.2.76[0m +[32m 200[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC6nSoj1Qco9PGyslz[0m[7m[32m6[0m[32m [0m[32m192.168.2.76[0m +[1m[32m 23s044[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCN5hnY3x51j6Hr1v4[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCdZUPH2DKOE7zzCLE[0m[1m[7m[32m3[0m[1m[32m [0m[1m[32m192.168.2.76[0m +[32m 32s388[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCmWpC33jXuKpXNLci[0m[7m[32me[0m[7m[32m 1[0m[32m92.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCsBgiE1WmGP4Yo749[0m[7m[32mh[0m[32m [0m[32m192.168.2.76[0m +[1m[32m 657[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCYfHyC28tAhkLYkXB[0m[1m[7m[32m7[0m[1m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCtANmVrHYMtkWqPE5[0m[1m[7m[32m [0m[1m[32m [0m[1m[32m192.168.2.76[0m +[32m 647[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCSTH8n1O1nv0ztxNQ[0m[7m[32md[0m[32m [0m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC4uDKU5tpeRU9Su19[0m[7m[32m [0m[32m [0m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCEh6Ka2HInkNSH01L2[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 4s840[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCjPGiy13ncXKxU765j[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 6s895[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCPoz7NUpXISemlNSd[0m[32m [0m[7m[32m [0m[32m192.168.2.76[0m +[32m 6s837[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCt6ixh35y9AEr7J7o9[0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m 6s889[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCaEFHq2HVQ5iGJQiD9[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 6s875[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCjinlH2fzDtvzI9637[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 6s884[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCedw7H3ddE2yLiLoXc[0m[7m[32m [0m[32m192.168.2.76[0m +[32m 6s917[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCAUlC249svUfE6q0g3[0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCIJIDL1ULo4HpT24Gl[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 016[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCLsqp41RLUd83arUQb[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 166[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCbCciH11995WKkobR1[0m[7m[32m [0m[32m192.168.2.76[0m +[32m 457[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mClcvKE1dqsEFQu46m9[0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCaP2LpLGvsmX7yJO[0m[1m[32m [0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 043[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCNbPns4mOMGgjI8Ele[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 557[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC185u7u9Q4qhJPhzl[0m[32m [0m[7m[32m [0m[32m192.168.2.76[0m +[32m 129[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCKzjfhsJ8vrn2rrfg[0m[32m [0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m 562[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCiIjAe1n5MnPOVpQ9f[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCGv2Tp4Ngt8MmKmVRd[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 7s071[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC5DisEMFU77Wk9Kae[0m[32m [0m[7m[32m [0m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCs5yEZ3ELZTeuTOsP4[0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m 4s667[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCu4gIx1BDNtGOl7Ht2[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 1s288[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCRgW2I2zo3SInm6iT8[0m[1m[32m [0m[1m[7m[32m1[0m[1m[32m92.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCWJhMU2cTLEnseTmCb[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[32m 042[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCejI402rKGtdBXij4f[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC2KnU34GcVV6amo8va[0m[1m[32m [0m[1m[7m[32m1[0m[1m[32m92.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC5vx4911iSMAJuShFd[0m[1m[32m [0m[1m[7m[32m1[0m[1m[32m92.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCbUCgw1DrIGcXzONB7[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[32m 502[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC96j2X1DixgLTj2Oi8[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCYYyja3FFNEnftw3K6[0m[1m[32m [0m[1m[7m[32m1[0m[1m[32m92.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m█[0m[1m[33m [0m[1m[32m [0m[1m[32mCBHHuR1xFnm5C5CQB[0m[1m[7m[32mc[0m[1m[32m [0m[1m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCD1jfU3p9abEm77mzf[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC0K9DaoPFkfnzwlZa[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[1m[32m 616[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCbQAWi3GX2bCmX5L56[0m[1m[32m 1[0m[1m[7m[32m9[0m[1m[32m2.168.2.76[0m +[1m[32m 298[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCd8s2R3OGDgkhnvSu9[0m[1m[32m 1[0m[1m[7m[32m9[0m[1m[32m2.168.2.76[0m +[32m 205[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCBeaXe4Iyj1gXd2Iq[0m[32m 1[0m[7m[32m9[0m[32m2.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCmWpSw3VtjiAceBCwf[0m[32m 1[0m[7m[32m9[0m[32m2.168.2.76[0m +[1m[32m 1m12s201[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCbNCgO1MzloHRNeY4f[0m[1m[32m 1[0m[1m[7m[32m92.168.2[0m[1m[32m.76[0m +[1m[32m 315[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCX1GjC4vn52UY1uDv6[0m[1m[32m 1[0m[1m[7m[32m9[0m[1m[32m2.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCaPClb1Bf0RrRGtyWi[0m[32m 1[0m[7m[32m9[0m[32m2.168.2.76[0m +[32m 35s642[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCibfNy1QQW4ImDWRq5[0m[32m 1[0m[7m[32m92.1[0m[32m68.2.76[0m +[1m[32m 1m11s547[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCTRXSR3blXJE5ZE7Ij[0m[1m[32m 1[0m[1m[7m[32m92.168.2[0m[1m[32m.76[0m +[1m[32m 1m11s536[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCnGze54kQWWpKqrrZ4[0m[1m[32m 1[0m[1m[7m[32m92.168.2[0m[1m[32m.76[0m +[32m 12s337[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC3TZMB4CrUwYfkGJy1[0m[32m 1[0m[7m[32m9[0m[32m2.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCK957ERTz8lBycly4[0m[32m 1[0m[7m[32m9[0m[32m2.168.2.76[0m +[1m[32m 1s309[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCO5QKYQkcSdxQFA35[0m[1m[32m 19[0m[1m[7m[32m2[0m[1m[32m.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCurHpb1TGZOktTRNP1[0m[1m[32m 19[0m[1m[7m[32m2[0m[1m[32m.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCuUKOQ1R3CqKBgeTdf[0m[32m 19[0m[7m[32m2[0m[32m.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC3xkHgJnzZszVSTpi[0m[32m 192[0m[7m[32m.[0m[32m168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCMrjgF2XLmRh9C9TR4[0m[1m[32m 192[0m[1m[7m[32m.[0m[1m[32m168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC2vQ8sVgyADHjtEda[0m[1m[32m 192.[0m[1m[7m[32m1[0m[1m[32m68.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCD69521bDXIAb4IkW[0m[32m 192.[0m[7m[32m1[0m[32m68.2.76[0m +[32m 6s648[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCC3vUI3gFB04zLvWRa[0m[32m 192.[0m[7m[32m1[0m[32m68.2.76[0m +[1m[32m 2s666[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC7Krri4g9tZfHniGXh[0m[1m[32m 192.1[0m[1m[7m[32m6[0m[1m[32m8.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCmxyBl2c8XAMTuHEk4[0m[1m[32m 192.1[0m[1m[7m[32m6[0m[1m[32m8.2.76[0m +[32m 499[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCSvs6v26bQqFylkk6l[0m[32m 192.1[0m[7m[32m6[0m[32m8.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC4pHul1H3OeWYz7o7i[0m[32m 192.1[0m[7m[32m6[0m[32m8.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC7Lcvr4vsTf6eYpBva[0m[1m[32m 192.1[0m[1m[7m[32m6[0m[1m[32m8.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCV8faD4L1sLL5kDwN9[0m[1m[32m 192.1[0m[1m[7m[32m6[0m[1m[32m8.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCxyAKs10ppnHFP6O8i[0m[32m 192.1[0m[7m[32m6[0m[32m8.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC6MrHk2C7rLuJqhjsg[0m[32m 192.1[0m[7m[32m6[0m[32m8.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCvfUrT2DgYXXoZw9Ah[0m[1m[32m 192.1[0m[1m[7m[32m6[0m[1m[32m8.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCBX0254QJoklXNbvv2[0m[1m[32m 192.1[0m[1m[7m[32m6[0m[1m[32m8.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC6Ym6jvMgikT0xTTc[0m[32m 192.168.2[0m[7m[32m.[0m[32m76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCRNn9f1zKNlzHSM5pa[0m[32m 192.168.2[0m[7m[32m.[0m[32m76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCJLgi92kpp2gLgGTE5[0m[1m[32m 192.168.2[0m[1m[7m[32m.[0m[1m[32m76[0m diff --git a/test/expected/test_gantt.sh_63500be50fc6743d8312133e2030cbbc39ca15ff.err b/test/expected/test_gantt.sh_63500be50fc6743d8312133e2030cbbc39ca15ff.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_gantt.sh_63500be50fc6743d8312133e2030cbbc39ca15ff.err diff --git a/test/expected/test_gantt.sh_63500be50fc6743d8312133e2030cbbc39ca15ff.out b/test/expected/test_gantt.sh_63500be50fc6743d8312133e2030cbbc39ca15ff.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_gantt.sh_63500be50fc6743d8312133e2030cbbc39ca15ff.out diff --git a/test/expected/test_gantt.sh_74a94ee9103eac5e8e78ca57bccf49efa3827a9d.err b/test/expected/test_gantt.sh_74a94ee9103eac5e8e78ca57bccf49efa3827a9d.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_gantt.sh_74a94ee9103eac5e8e78ca57bccf49efa3827a9d.err diff --git a/test/expected/test_gantt.sh_74a94ee9103eac5e8e78ca57bccf49efa3827a9d.out b/test/expected/test_gantt.sh_74a94ee9103eac5e8e78ca57bccf49efa3827a9d.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_gantt.sh_74a94ee9103eac5e8e78ca57bccf49efa3827a9d.out diff --git a/test/expected/test_gantt.sh_83db753dd2669f801810f311e2d7d74397e10f26.err b/test/expected/test_gantt.sh_83db753dd2669f801810f311e2d7d74397e10f26.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_gantt.sh_83db753dd2669f801810f311e2d7d74397e10f26.err diff --git a/test/expected/test_gantt.sh_83db753dd2669f801810f311e2d7d74397e10f26.out b/test/expected/test_gantt.sh_83db753dd2669f801810f311e2d7d74397e10f26.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_gantt.sh_83db753dd2669f801810f311e2d7d74397e10f26.out diff --git a/test/expected/test_gantt.sh_8fed8a7400042814ba13e50be5e3bd1741d82119.err b/test/expected/test_gantt.sh_8fed8a7400042814ba13e50be5e3bd1741d82119.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_gantt.sh_8fed8a7400042814ba13e50be5e3bd1741d82119.err diff --git a/test/expected/test_gantt.sh_8fed8a7400042814ba13e50be5e3bd1741d82119.out b/test/expected/test_gantt.sh_8fed8a7400042814ba13e50be5e3bd1741d82119.out new file mode 100644 index 0000000..ffa9459 --- /dev/null +++ b/test/expected/test_gantt.sh_8fed8a7400042814ba13e50be5e3bd1741d82119.out @@ -0,0 +1,85 @@ + 2011-11-03T00:17 5m 2011-11-03T00:22 + 5m +[1m[4m[35m Duration [0m[4m|[0m[4m [0m[1m[4m[31m✘[0m[4m[33m▲[0m[4m [0m[4m|[0m[1m[4m[35m Operation[0m +[32m 844[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCwFs1P2UcUdlSxD2L[0m[7m[32ma[0m[32m [0m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCoX7zA3OJKGUOSCBY[0m[7m[32m2[0m[32m [0m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCdrfXZ1NOFPEawF21[0m[1m[7m[32m8[0m[1m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCJwUi9bdB9c1lLW44[0m[1m[7m[32m [0m[1m[32m [0m[1m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCJxSUgkInyKSHiju1[0m[7m[32m [0m[32m [0m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCT0JIh479jXIGt0Po[0m[7m[32m1[0m[32m [0m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC6Q4Vm14ZJIlZhsXq[0m[1m[7m[32mk[0m[1m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 1s070[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCtgxRAqDLvrRUQdqe[0m[1m[7m[32m [0m[1m[32m [0m[1m[32m192.168.2.76[0m +[32m 200[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC6nSoj1Qco9PGyslz[0m[7m[32m6[0m[32m [0m[32m192.168.2.76[0m +[32m 23s044[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCN5hnY3x51j6Hr1v4[0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCdZUPH2DKOE7zzCLE[0m[1m[7m[32m3[0m[1m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 32s388[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCmWpC33jXuKpXNLci[0m[1m[7m[32me[0m[1m[7m[32m 1[0m[1m[32m92.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCsBgiE1WmGP4Yo749[0m[7m[32mh[0m[32m [0m[32m192.168.2.76[0m +[32m 657[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCYfHyC28tAhkLYkXB[0m[7m[32m7[0m[32m [0m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCtANmVrHYMtkWqPE5[0m[1m[7m[32m [0m[1m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 647[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCSTH8n1O1nv0ztxNQ[0m[1m[7m[32md[0m[1m[32m [0m[1m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC4uDKU5tpeRU9Su19[0m[7m[32m [0m[32m [0m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCEh6Ka2HInkNSH01L2[0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m 4s840[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCjPGiy13ncXKxU765j[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 6s895[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCPoz7NUpXISemlNSd[0m[1m[32m [0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 6s837[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCt6ixh35y9AEr7J7o9[0m[7m[32m [0m[32m192.168.2.76[0m +[32m 6s889[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCaEFHq2HVQ5iGJQiD9[0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m 6s875[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCjinlH2fzDtvzI9637[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 6s884[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCedw7H3ddE2yLiLoXc[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 6s917[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCAUlC249svUfE6q0g3[0m[7m[32m [0m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCIJIDL1ULo4HpT24Gl[0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m 016[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCLsqp41RLUd83arUQb[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 166[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCbCciH11995WKkobR1[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 457[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mClcvKE1dqsEFQu46m9[0m[7m[32m [0m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCaP2LpLGvsmX7yJO[0m[32m [0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m 043[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCNbPns4mOMGgjI8Ele[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 557[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC185u7u9Q4qhJPhzl[0m[1m[32m [0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 129[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCKzjfhsJ8vrn2rrfg[0m[32m [0m[7m[32m [0m[32m192.168.2.76[0m +[32m 562[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCiIjAe1n5MnPOVpQ9f[0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCGv2Tp4Ngt8MmKmVRd[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 7s071[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC5DisEMFU77Wk9Kae[0m[1m[32m [0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCs5yEZ3ELZTeuTOsP4[0m[7m[32m [0m[32m192.168.2.76[0m +[32m 4s667[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCu4gIx1BDNtGOl7Ht2[0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m 1s288[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCRgW2I2zo3SInm6iT8[0m[1m[32m [0m[1m[7m[32m1[0m[1m[32m92.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCWJhMU2cTLEnseTmCb[0m[1m[32m [0m[1m[7m[32m1[0m[1m[32m92.168.2.76[0m +[32m 042[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCejI402rKGtdBXij4f[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC2KnU34GcVV6amo8va[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC5vx4911iSMAJuShFd[0m[1m[32m [0m[1m[7m[32m1[0m[1m[32m92.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCbUCgw1DrIGcXzONB7[0m[1m[32m [0m[1m[7m[32m1[0m[1m[32m92.168.2.76[0m +[32m 502[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC96j2X1DixgLTj2Oi8[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCYYyja3FFNEnftw3K6[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m█[0m[1m[33m [0m[1m[32m [0m[1m[32mCBHHuR1xFnm5C5CQB[0m[1m[7m[32mc[0m[1m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCD1jfU3p9abEm77mzf[0m[1m[32m [0m[1m[7m[32m1[0m[1m[32m92.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC0K9DaoPFkfnzwlZa[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[32m 616[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCbQAWi3GX2bCmX5L56[0m[32m 1[0m[7m[32m9[0m[32m2.168.2.76[0m +[1m[32m 298[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCd8s2R3OGDgkhnvSu9[0m[1m[32m 1[0m[1m[7m[32m9[0m[1m[32m2.168.2.76[0m +[1m[32m 205[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCBeaXe4Iyj1gXd2Iq[0m[1m[32m 1[0m[1m[7m[32m9[0m[1m[32m2.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCmWpSw3VtjiAceBCwf[0m[32m 1[0m[7m[32m9[0m[32m2.168.2.76[0m +[32m 1m12s201[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCbNCgO1MzloHRNeY4f[0m[32m 1[0m[7m[32m92.168.2[0m[32m.76[0m +[1m[32m 315[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCX1GjC4vn52UY1uDv6[0m[1m[32m 1[0m[1m[7m[32m9[0m[1m[32m2.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCaPClb1Bf0RrRGtyWi[0m[1m[32m 1[0m[1m[7m[32m9[0m[1m[32m2.168.2.76[0m +[32m 35s642[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCibfNy1QQW4ImDWRq5[0m[32m 1[0m[7m[32m92.1[0m[32m68.2.76[0m +[32m 1m11s547[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCTRXSR3blXJE5ZE7Ij[0m[32m 1[0m[7m[32m92.168.2[0m[32m.76[0m +[1m[32m 1m11s536[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCnGze54kQWWpKqrrZ4[0m[1m[32m 1[0m[1m[7m[32m92.168.2[0m[1m[32m.76[0m +[1m[32m 12s337[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC3TZMB4CrUwYfkGJy1[0m[1m[32m 1[0m[1m[7m[32m9[0m[1m[32m2.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCK957ERTz8lBycly4[0m[32m 1[0m[7m[32m9[0m[32m2.168.2.76[0m +[32m 1s309[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCO5QKYQkcSdxQFA35[0m[32m 19[0m[7m[32m2[0m[32m.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCurHpb1TGZOktTRNP1[0m[1m[32m 19[0m[1m[7m[32m2[0m[1m[32m.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCuUKOQ1R3CqKBgeTdf[0m[1m[32m 19[0m[1m[7m[32m2[0m[1m[32m.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC3xkHgJnzZszVSTpi[0m[32m 192[0m[7m[32m.[0m[32m168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCMrjgF2XLmRh9C9TR4[0m[32m 192[0m[7m[32m.[0m[32m168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC2vQ8sVgyADHjtEda[0m[1m[32m 192.[0m[1m[7m[32m1[0m[1m[32m68.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCD69521bDXIAb4IkW[0m[1m[32m 192.[0m[1m[7m[32m1[0m[1m[32m68.2.76[0m +[32m 6s648[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCC3vUI3gFB04zLvWRa[0m[32m 192.[0m[7m[32m1[0m[32m68.2.76[0m +[32m 2s666[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC7Krri4g9tZfHniGXh[0m[32m 192.1[0m[7m[32m6[0m[32m8.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCmxyBl2c8XAMTuHEk4[0m[1m[32m 192.1[0m[1m[7m[32m6[0m[1m[32m8.2.76[0m +[1m[32m 499[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCSvs6v26bQqFylkk6l[0m[1m[32m 192.1[0m[1m[7m[32m6[0m[1m[32m8.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC4pHul1H3OeWYz7o7i[0m[32m 192.1[0m[7m[32m6[0m[32m8.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC7Lcvr4vsTf6eYpBva[0m[32m 192.1[0m[7m[32m6[0m[32m8.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCV8faD4L1sLL5kDwN9[0m[1m[32m 192.1[0m[1m[7m[32m6[0m[1m[32m8.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCxyAKs10ppnHFP6O8i[0m[1m[32m 192.1[0m[1m[7m[32m6[0m[1m[32m8.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC6MrHk2C7rLuJqhjsg[0m[32m 192.1[0m[7m[32m6[0m[32m8.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCvfUrT2DgYXXoZw9Ah[0m[32m 192.1[0m[7m[32m6[0m[32m8.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCBX0254QJoklXNbvv2[0m[1m[32m 192.1[0m[1m[7m[32m6[0m[1m[32m8.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC6Ym6jvMgikT0xTTc[0m[1m[32m 192.168.2[0m[1m[7m[32m.[0m[1m[32m76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCRNn9f1zKNlzHSM5pa[0m[32m 192.168.2[0m[7m[32m.[0m[32m76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCJLgi92kpp2gLgGTE5[0m[32m 192.168.2[0m[7m[32m.[0m[32m76[0m diff --git a/test/expected/test_gantt.sh_b013ab41c3cca76cf05a01ca1ba65888be247ada.err b/test/expected/test_gantt.sh_b013ab41c3cca76cf05a01ca1ba65888be247ada.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_gantt.sh_b013ab41c3cca76cf05a01ca1ba65888be247ada.err diff --git a/test/expected/test_gantt.sh_b013ab41c3cca76cf05a01ca1ba65888be247ada.out b/test/expected/test_gantt.sh_b013ab41c3cca76cf05a01ca1ba65888be247ada.out new file mode 100644 index 0000000..67a56e3 --- /dev/null +++ b/test/expected/test_gantt.sh_b013ab41c3cca76cf05a01ca1ba65888be247ada.out @@ -0,0 +1,70 @@ + 2011-11-03T00:17 5m 2011-11-03T00:22 + 5m +[1m[4m[35m Duration [0m[4m|[0m[4m [0m[1m[4m[31m✘[0m[4m[33m▲[0m[4m [0m[4m|[0m[1m[4m[35m Operation[0m +[32m 23s044[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCN5hnY3x51j6Hr1v4[0m[7m[32m [0m[32m192.168.2.76[0m +[32m 32s388[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCmWpC33jXuKpXNLci[0m[7m[32me[0m[7m[32m 1[0m[32m92.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCEh6Ka2HInkNSH01L2[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 4s840[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCjPGiy13ncXKxU765j[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 6s895[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCPoz7NUpXISemlNSd[0m[32m [0m[7m[32m [0m[32m192.168.2.76[0m +[32m 6s837[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCt6ixh35y9AEr7J7o9[0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m 6s889[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCaEFHq2HVQ5iGJQiD9[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 6s875[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCjinlH2fzDtvzI9637[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 6s884[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCedw7H3ddE2yLiLoXc[0m[7m[32m [0m[32m192.168.2.76[0m +[32m 6s917[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCAUlC249svUfE6q0g3[0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCIJIDL1ULo4HpT24Gl[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 016[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCLsqp41RLUd83arUQb[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 166[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCbCciH11995WKkobR1[0m[7m[32m [0m[32m192.168.2.76[0m +[32m 457[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mClcvKE1dqsEFQu46m9[0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCaP2LpLGvsmX7yJO[0m[1m[32m [0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 043[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCNbPns4mOMGgjI8Ele[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 557[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC185u7u9Q4qhJPhzl[0m[32m [0m[7m[32m [0m[32m192.168.2.76[0m +[32m 129[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCKzjfhsJ8vrn2rrfg[0m[32m [0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m 562[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCiIjAe1n5MnPOVpQ9f[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCGv2Tp4Ngt8MmKmVRd[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 7s071[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC5DisEMFU77Wk9Kae[0m[32m [0m[7m[32m [0m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCs5yEZ3ELZTeuTOsP4[0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m 4s667[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCu4gIx1BDNtGOl7Ht2[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 1s288[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCRgW2I2zo3SInm6iT8[0m[1m[32m [0m[1m[7m[32m1[0m[1m[32m92.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCWJhMU2cTLEnseTmCb[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[32m 042[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCejI402rKGtdBXij4f[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC2KnU34GcVV6amo8va[0m[1m[32m [0m[1m[7m[32m1[0m[1m[32m92.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC5vx4911iSMAJuShFd[0m[1m[32m [0m[1m[7m[32m1[0m[1m[32m92.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCbUCgw1DrIGcXzONB7[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[32m 502[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC96j2X1DixgLTj2Oi8[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCYYyja3FFNEnftw3K6[0m[1m[32m [0m[1m[7m[32m1[0m[1m[32m92.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m█[0m[1m[33m [0m[1m[32m [0m[1m[32mCBHHuR1xFnm5C5CQB[0m[1m[7m[32mc[0m[1m[32m [0m[1m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCD1jfU3p9abEm77mzf[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC0K9DaoPFkfnzwlZa[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[1m[32m 616[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCbQAWi3GX2bCmX5L56[0m[1m[32m 1[0m[1m[7m[32m9[0m[1m[32m2.168.2.76[0m +[1m[32m 298[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCd8s2R3OGDgkhnvSu9[0m[1m[32m 1[0m[1m[7m[32m9[0m[1m[32m2.168.2.76[0m +[32m 205[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCBeaXe4Iyj1gXd2Iq[0m[32m 1[0m[7m[32m9[0m[32m2.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCmWpSw3VtjiAceBCwf[0m[32m 1[0m[7m[32m9[0m[32m2.168.2.76[0m +[1m[32m 1m12s201[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCbNCgO1MzloHRNeY4f[0m[1m[32m 1[0m[1m[7m[32m92.168.2[0m[1m[32m.76[0m +[1m[32m 315[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCX1GjC4vn52UY1uDv6[0m[1m[32m 1[0m[1m[7m[32m9[0m[1m[32m2.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCaPClb1Bf0RrRGtyWi[0m[32m 1[0m[7m[32m9[0m[32m2.168.2.76[0m +[32m 35s642[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCibfNy1QQW4ImDWRq5[0m[32m 1[0m[7m[32m92.1[0m[32m68.2.76[0m +[1m[32m 1m11s547[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCTRXSR3blXJE5ZE7Ij[0m[1m[32m 1[0m[1m[7m[32m92.168.2[0m[1m[32m.76[0m +[1m[32m 1m11s536[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCnGze54kQWWpKqrrZ4[0m[1m[32m 1[0m[1m[7m[32m92.168.2[0m[1m[32m.76[0m +[32m 12s337[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC3TZMB4CrUwYfkGJy1[0m[32m 1[0m[7m[32m9[0m[32m2.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCK957ERTz8lBycly4[0m[32m 1[0m[7m[32m9[0m[32m2.168.2.76[0m +[1m[32m 1s309[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCO5QKYQkcSdxQFA35[0m[1m[32m 19[0m[1m[7m[32m2[0m[1m[32m.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCurHpb1TGZOktTRNP1[0m[1m[32m 19[0m[1m[7m[32m2[0m[1m[32m.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCuUKOQ1R3CqKBgeTdf[0m[32m 19[0m[7m[32m2[0m[32m.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC3xkHgJnzZszVSTpi[0m[32m 192[0m[7m[32m.[0m[32m168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCMrjgF2XLmRh9C9TR4[0m[1m[32m 192[0m[1m[7m[32m.[0m[1m[32m168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC2vQ8sVgyADHjtEda[0m[1m[32m 192.[0m[1m[7m[32m1[0m[1m[32m68.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCD69521bDXIAb4IkW[0m[32m 192.[0m[7m[32m1[0m[32m68.2.76[0m +[32m 6s648[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCC3vUI3gFB04zLvWRa[0m[32m 192.[0m[7m[32m1[0m[32m68.2.76[0m +[1m[32m 2s666[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC7Krri4g9tZfHniGXh[0m[1m[32m 192.1[0m[1m[7m[32m6[0m[1m[32m8.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCmxyBl2c8XAMTuHEk4[0m[1m[32m 192.1[0m[1m[7m[32m6[0m[1m[32m8.2.76[0m +[32m 499[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCSvs6v26bQqFylkk6l[0m[32m 192.1[0m[7m[32m6[0m[32m8.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC4pHul1H3OeWYz7o7i[0m[32m 192.1[0m[7m[32m6[0m[32m8.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC7Lcvr4vsTf6eYpBva[0m[1m[32m 192.1[0m[1m[7m[32m6[0m[1m[32m8.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCV8faD4L1sLL5kDwN9[0m[1m[32m 192.1[0m[1m[7m[32m6[0m[1m[32m8.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCxyAKs10ppnHFP6O8i[0m[32m 192.1[0m[7m[32m6[0m[32m8.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC6MrHk2C7rLuJqhjsg[0m[32m 192.1[0m[7m[32m6[0m[32m8.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCvfUrT2DgYXXoZw9Ah[0m[1m[32m 192.1[0m[1m[7m[32m6[0m[1m[32m8.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCBX0254QJoklXNbvv2[0m[1m[32m 192.1[0m[1m[7m[32m6[0m[1m[32m8.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC6Ym6jvMgikT0xTTc[0m[32m 192.168.2[0m[7m[32m.[0m[32m76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCRNn9f1zKNlzHSM5pa[0m[32m 192.168.2[0m[7m[32m.[0m[32m76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCJLgi92kpp2gLgGTE5[0m[1m[32m 192.168.2[0m[1m[7m[32m.[0m[1m[32m76[0m diff --git a/test/expected/test_gantt.sh_cde7947f361e5f3d4cd1bbc3f7458f426b6a8eb4.err b/test/expected/test_gantt.sh_cde7947f361e5f3d4cd1bbc3f7458f426b6a8eb4.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_gantt.sh_cde7947f361e5f3d4cd1bbc3f7458f426b6a8eb4.err diff --git a/test/expected/test_gantt.sh_cde7947f361e5f3d4cd1bbc3f7458f426b6a8eb4.out b/test/expected/test_gantt.sh_cde7947f361e5f3d4cd1bbc3f7458f426b6a8eb4.out new file mode 100644 index 0000000..75ceff3 --- /dev/null +++ b/test/expected/test_gantt.sh_cde7947f361e5f3d4cd1bbc3f7458f426b6a8eb4.out @@ -0,0 +1,4 @@ + 2011-11-03T00:17 5m 2011-11-03T00:22 + 5m +[1m[4m[35m Duration [0m[4m|[0m[4m [0m[1m[4m[31m✘[0m[4m[33m▲[0m[4m [0m[4m|[0m[1m[4m[35m Operation[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCdysLK1XpcrXOpVDu[0m[7m[32mh[0m[32m [0m[32m192.168.2.76[0m diff --git a/test/expected/test_gantt.sh_e6a4681a5a671c84c020dc91d7ce03c9d17fde07.err b/test/expected/test_gantt.sh_e6a4681a5a671c84c020dc91d7ce03c9d17fde07.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_gantt.sh_e6a4681a5a671c84c020dc91d7ce03c9d17fde07.err diff --git a/test/expected/test_gantt.sh_e6a4681a5a671c84c020dc91d7ce03c9d17fde07.out b/test/expected/test_gantt.sh_e6a4681a5a671c84c020dc91d7ce03c9d17fde07.out new file mode 100644 index 0000000..8e609b1 --- /dev/null +++ b/test/expected/test_gantt.sh_e6a4681a5a671c84c020dc91d7ce03c9d17fde07.out @@ -0,0 +1,70 @@ + 2011-11-03T00:17 5m 2011-11-03T00:22 + 5m +[1m[4m[35m Duration [0m[4m|[0m[4m [0m[1m[4m[31m✘[0m[4m[33m▲[0m[4m [0m[4m|[0m[1m[4m[35m Operation[0m +[32m 844[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCwFs1P2UcUdlSxD2L[0m[7m[32ma[0m[32m [0m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCoX7zA3OJKGUOSCBY[0m[7m[32m2[0m[32m [0m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCdrfXZ1NOFPEawF21[0m[1m[7m[32m8[0m[1m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCJwUi9bdB9c1lLW44[0m[1m[7m[32m [0m[1m[32m [0m[1m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCJxSUgkInyKSHiju1[0m[7m[32m [0m[32m [0m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCT0JIh479jXIGt0Po[0m[7m[32m1[0m[32m [0m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC6Q4Vm14ZJIlZhsXq[0m[1m[7m[32mk[0m[1m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 1s070[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCtgxRAqDLvrRUQdqe[0m[1m[7m[32m [0m[1m[32m [0m[1m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCdysLK1XpcrXOpVDu[0m[7m[32mh[0m[32m [0m[32m192.168.2.76[0m +[32m 200[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC6nSoj1Qco9PGyslz[0m[7m[32m6[0m[32m [0m[32m192.168.2.76[0m +[1m[32m 23s044[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCN5hnY3x51j6Hr1v4[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCdZUPH2DKOE7zzCLE[0m[1m[7m[32m3[0m[1m[32m [0m[1m[32m192.168.2.76[0m +[32m 32s388[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCmWpC33jXuKpXNLci[0m[7m[32me[0m[7m[32m 1[0m[32m92.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCsBgiE1WmGP4Yo749[0m[7m[32mh[0m[32m [0m[32m192.168.2.76[0m +[1m[32m 657[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCYfHyC28tAhkLYkXB[0m[1m[7m[32m7[0m[1m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCtANmVrHYMtkWqPE5[0m[1m[7m[32m [0m[1m[32m [0m[1m[32m192.168.2.76[0m +[32m 647[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCSTH8n1O1nv0ztxNQ[0m[7m[32md[0m[32m [0m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC4uDKU5tpeRU9Su19[0m[7m[32m [0m[32m [0m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCEh6Ka2HInkNSH01L2[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 4s840[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCjPGiy13ncXKxU765j[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 6s895[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCPoz7NUpXISemlNSd[0m[32m [0m[7m[32m [0m[32m192.168.2.76[0m +[32m 6s837[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCt6ixh35y9AEr7J7o9[0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m 6s889[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCaEFHq2HVQ5iGJQiD9[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 6s875[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCjinlH2fzDtvzI9637[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 6s884[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCedw7H3ddE2yLiLoXc[0m[7m[32m [0m[32m192.168.2.76[0m +[32m 6s917[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCAUlC249svUfE6q0g3[0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCIJIDL1ULo4HpT24Gl[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 016[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCLsqp41RLUd83arUQb[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 166[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCbCciH11995WKkobR1[0m[7m[32m [0m[32m192.168.2.76[0m +[32m 457[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mClcvKE1dqsEFQu46m9[0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCaP2LpLGvsmX7yJO[0m[1m[32m [0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 043[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCNbPns4mOMGgjI8Ele[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 557[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC185u7u9Q4qhJPhzl[0m[32m [0m[7m[32m [0m[32m192.168.2.76[0m +[32m 129[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCKzjfhsJ8vrn2rrfg[0m[32m [0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m 562[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCiIjAe1n5MnPOVpQ9f[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCGv2Tp4Ngt8MmKmVRd[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[32m 7s071[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC5DisEMFU77Wk9Kae[0m[32m [0m[7m[32m [0m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCs5yEZ3ELZTeuTOsP4[0m[7m[32m [0m[32m192.168.2.76[0m +[1m[32m 4s667[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCu4gIx1BDNtGOl7Ht2[0m[1m[7m[32m [0m[1m[32m192.168.2.76[0m +[1m[32m 1s288[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCRgW2I2zo3SInm6iT8[0m[1m[32m [0m[1m[7m[32m1[0m[1m[32m92.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCWJhMU2cTLEnseTmCb[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[32m 042[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCejI402rKGtdBXij4f[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC2KnU34GcVV6amo8va[0m[1m[32m [0m[1m[7m[32m1[0m[1m[32m92.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mC5vx4911iSMAJuShFd[0m[1m[32m [0m[1m[7m[32m1[0m[1m[32m92.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCbUCgw1DrIGcXzONB7[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[32m 502[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC96j2X1DixgLTj2Oi8[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCYYyja3FFNEnftw3K6[0m[1m[32m [0m[1m[7m[32m1[0m[1m[32m92.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m█[0m[1m[33m [0m[1m[32m [0m[1m[32mCBHHuR1xFnm5C5CQB[0m[1m[7m[32mc[0m[1m[32m [0m[1m[32m192.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCD1jfU3p9abEm77mzf[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC0K9DaoPFkfnzwlZa[0m[32m [0m[7m[32m1[0m[32m92.168.2.76[0m +[1m[32m 616[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCbQAWi3GX2bCmX5L56[0m[1m[32m 1[0m[1m[7m[32m9[0m[1m[32m2.168.2.76[0m +[1m[32m 298[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCd8s2R3OGDgkhnvSu9[0m[1m[32m 1[0m[1m[7m[32m9[0m[1m[32m2.168.2.76[0m +[32m 205[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCBeaXe4Iyj1gXd2Iq[0m[32m 1[0m[7m[32m9[0m[32m2.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCmWpSw3VtjiAceBCwf[0m[32m 1[0m[7m[32m9[0m[32m2.168.2.76[0m +[1m[32m 1m12s201[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCbNCgO1MzloHRNeY4f[0m[1m[32m 1[0m[1m[7m[32m92.168.2[0m[1m[32m.76[0m +[1m[32m 315[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCX1GjC4vn52UY1uDv6[0m[1m[32m 1[0m[1m[7m[32m9[0m[1m[32m2.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCaPClb1Bf0RrRGtyWi[0m[32m 1[0m[7m[32m9[0m[32m2.168.2.76[0m +[32m 35s642[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCibfNy1QQW4ImDWRq5[0m[32m 1[0m[7m[32m92.1[0m[32m68.2.76[0m +[1m[32m 1m11s547[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCTRXSR3blXJE5ZE7Ij[0m[1m[32m 1[0m[1m[7m[32m92.168.2[0m[1m[32m.76[0m +[1m[32m 1m11s536[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCnGze54kQWWpKqrrZ4[0m[1m[32m 1[0m[1m[7m[32m92.168.2[0m[1m[32m.76[0m +[32m 12s337[0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC3TZMB4CrUwYfkGJy1[0m[32m 1[0m[7m[32m9[0m[32m2.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCK957ERTz8lBycly4[0m[32m 1[0m[7m[32m9[0m[32m2.168.2.76[0m +[1m[32m 1s309[0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCO5QKYQkcSdxQFA35[0m[1m[32m 19[0m[1m[7m[32m2[0m[1m[32m.168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCurHpb1TGZOktTRNP1[0m[1m[32m 19[0m[1m[7m[32m2[0m[1m[32m.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mCuUKOQ1R3CqKBgeTdf[0m[32m 19[0m[7m[32m2[0m[32m.168.2.76[0m +[32m [0m[32m [0m[1m[31m [0m[33m [0m[32m [0m[32mC3xkHgJnzZszVSTpi[0m[32m 192[0m[7m[32m.[0m[32m168.2.76[0m +[1m[32m [0m[1m[32m [0m[1m[31m [0m[1m[33m [0m[1m[32m [0m[1m[32mCMrjgF2XLmRh9C9TR4[0m[1m[32m 192[0m[1m[7m[32m.[0m[1m[32m168.2.76[0m diff --git a/test/expected/test_json_format.sh_168cac40c27f547044c89d39eb0ff2ef81da4b21.out b/test/expected/test_json_format.sh_168cac40c27f547044c89d39eb0ff2ef81da4b21.out index 55657f7..dd6c9d2 100644 --- a/test/expected/test_json_format.sh_168cac40c27f547044c89d39eb0ff2ef81da4b21.out +++ b/test/expected/test_json_format.sh_168cac40c27f547044c89d39eb0ff2ef81da4b21.out @@ -1,11 +1,11 @@ -{"ts": "2013-09-06T20:00:48.124817Z", "lvl": "TRACE", "msg": "trace test"} -{"ts": "2013-09-06T20:00:49.124817Z", "lvl": "INFO", "msg": "Starting up \u001B[0;32mservice\u001B[0m"} +{"ts": "2013-09-06T20:00:48.124817Z", "logger": "com.example.foo.bar.bazzer", "lvl": "TRACE", "msg": "trace test"} +{"ts": "2013-09-06T20:00:49.124817Z", "logger": "com.example.demo", "lvl": "INFO", "msg": "Starting up \u001B[0;32mservice\u001B[0m"} {"ts": "2013-09-06T22:00:49.124817Z", "lvl": "INFO", "msg": "Shutting down service", "user": "steve@example.com"} -{"ts": "2013-09-06T22:00:59.124817Z", "lvl": "DEBUG5", "msg": "Details...\n"} -{"ts": "2013-09-06T22:00:59.124817Z", "lvl": "DEBUG4", "msg": "Details...\n"} +{"ts": "2013-09-06T22:00:59.124817Z", "lvl": "DEBUG5", "msg": "D\bDetails...\n"} +{"ts": "2013-09-06T22:00:59.124817Z", "lvl": "DEBUG4", "msg": "D\bDe\betails...\n"} {"ts": "2013-09-06T22:00:59.124817Z", "lvl": "DEBUG3", "msg": "Details...\n"} {"ts": "2013-09-06T22:00:59.124817Z", "lvl": "DEBUG2", "msg": "Details...\n"} -{"ts": "2013-09-06T22:00:59.124817Z", "lvl": "DEBUG", "msg": "Details..."} +{"ts": "2013-09-06 22:01:00Z", "lvl": "DEBUG", "msg": "Details..."} {"ts": "2013-09-06T22:01:49.124817Z", "lvl": "STATS", "msg": "1 beat per second"} {"ts": "2013-09-06T22:01:49.124817Z", "lvl": "WARNING", "msg": "not looking good"} {"ts": "2013-09-06T22:01:49.124817Z", "lvl": "ERROR", "msg": "looking bad"} diff --git a/test/expected/test_json_format.sh_1bb0fd243e916546aea22029245ac590dae17a86.out b/test/expected/test_json_format.sh_1bb0fd243e916546aea22029245ac590dae17a86.out index 59872f2..c85be78 100644 --- a/test/expected/test_json_format.sh_1bb0fd243e916546aea22029245ac590dae17a86.out +++ b/test/expected/test_json_format.sh_1bb0fd243e916546aea22029245ac590dae17a86.out @@ -1,14 +1,14 @@ -log_line,log_part,log_time,log_idle_msecs,log_level,log_mark,log_comment,log_tags,log_filters,@fields/user,@fields/trace# -0,<NULL>,2013-09-06 20:00:48.124,0,trace,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> -2,<NULL>,2013-09-06 20:00:49.124,1000,info,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> -4,<NULL>,2013-09-06 22:00:49.124,7200000,info,0,<NULL>,<NULL>,<NULL>,steve@example.com,<NULL> -7,<NULL>,2013-09-06 22:00:59.124,10000,debug5,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> -9,<NULL>,2013-09-06 22:00:59.124,0,debug4,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> -11,<NULL>,2013-09-06 22:00:59.124,0,debug3,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> -13,<NULL>,2013-09-06 22:00:59.124,0,debug2,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> -15,<NULL>,2013-09-06 22:00:59.124,0,debug,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> -17,<NULL>,2013-09-06 22:01:49.124,50000,stats,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> -19,<NULL>,2013-09-06 22:01:49.124,0,warning,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> -21,<NULL>,2013-09-06 22:01:49.124,0,error,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> -23,<NULL>,2013-09-06 22:01:49.124,0,critical,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> -25,<NULL>,2013-09-06 22:01:49.124,0,fatal,0,<NULL>,<NULL>,<NULL>,<NULL>,line:1 +log_line,log_time,log_level,@fields/user,@fields/trace#,log_part,log_idle_msecs,log_mark,log_comment,log_tags,log_annotations,log_filters +0,2013-09-06 20:00:48.124,trace,<NULL>,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +2,2013-09-06 20:00:49.124,info,<NULL>,<NULL>,<NULL>,1000,0,<NULL>,<NULL>,<NULL>,<NULL> +4,2013-09-06 22:00:49.124,info,steve@example.com,<NULL>,<NULL>,7200000,0,<NULL>,<NULL>,<NULL>,<NULL> +7,2013-09-06 22:00:59.124,debug5,<NULL>,<NULL>,<NULL>,10000,0,<NULL>,<NULL>,<NULL>,<NULL> +9,2013-09-06 22:00:59.124,debug4,<NULL>,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +11,2013-09-06 22:00:59.124,debug3,<NULL>,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +13,2013-09-06 22:00:59.124,debug2,<NULL>,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +15,2013-09-06 22:00:59.124,debug,<NULL>,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +17,2013-09-06 22:01:49.124,stats,<NULL>,<NULL>,<NULL>,50000,0,<NULL>,<NULL>,<NULL>,<NULL> +19,2013-09-06 22:01:49.124,warning,<NULL>,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +21,2013-09-06 22:01:49.124,error,<NULL>,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +23,2013-09-06 22:01:49.124,critical,<NULL>,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +25,2013-09-06 22:01:49.124,fatal,<NULL>,line:1,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> diff --git a/test/expected/test_json_format.sh_40223ac4742883f883ccc61044bfffd6e102cca6.out b/test/expected/test_json_format.sh_40223ac4742883f883ccc61044bfffd6e102cca6.out index 0dc139f..53d473d 100644 --- a/test/expected/test_json_format.sh_40223ac4742883f883ccc61044bfffd6e102cca6.out +++ b/test/expected/test_json_format.sh_40223ac4742883f883ccc61044bfffd6e102cca6.out @@ -1,194 +1,212 @@ [ { "log_line": 0, - "log_part": null, "log_time": "2013-09-06 20:00:48.124", - "log_idle_msecs": 0, "log_level": "trace", - "log_mark": 0, - "log_comment": null, - "log_tags": null, - "log_filters": null, "arr": null, "obj": null, + "logger": "com.example.foo.bar.bazzer", "lvl": "TRACE", - "user": null + "user": null, + "log_part": null, + "log_idle_msecs": 0, + "log_mark": 0, + "log_comment": null, + "log_tags": null, + "log_annotations": null, + "log_filters": null }, { "log_line": 2, - "log_part": null, "log_time": "2013-09-06 20:00:49.124", - "log_idle_msecs": 1000, "log_level": "info", - "log_mark": 0, - "log_comment": null, - "log_tags": null, - "log_filters": null, "arr": null, "obj": null, + "logger": "com.example.demo", "lvl": "INFO", - "user": null + "user": null, + "log_part": null, + "log_idle_msecs": 1000, + "log_mark": 0, + "log_comment": null, + "log_tags": null, + "log_annotations": null, + "log_filters": null }, { "log_line": 4, - "log_part": null, "log_time": "2013-09-06 22:00:49.124", - "log_idle_msecs": 7200000, "log_level": "info", - "log_mark": 0, - "log_comment": null, - "log_tags": null, - "log_filters": null, "arr": null, "obj": null, + "logger": null, "lvl": "INFO", - "user": "steve@example.com" + "user": "steve@example.com", + "log_part": null, + "log_idle_msecs": 7200000, + "log_mark": 0, + "log_comment": null, + "log_tags": null, + "log_annotations": null, + "log_filters": null }, { "log_line": 7, - "log_part": null, "log_time": "2013-09-06 22:00:59.124", - "log_idle_msecs": 10000, "log_level": "debug5", - "log_mark": 0, - "log_comment": null, - "log_tags": null, - "log_filters": null, "arr": null, "obj": null, + "logger": null, "lvl": "DEBUG5", - "user": null + "user": null, + "log_part": null, + "log_idle_msecs": 10000, + "log_mark": 0, + "log_comment": null, + "log_tags": null, + "log_annotations": null, + "log_filters": null }, { "log_line": 9, - "log_part": null, "log_time": "2013-09-06 22:00:59.124", - "log_idle_msecs": 0, "log_level": "debug4", - "log_mark": 0, - "log_comment": null, - "log_tags": null, - "log_filters": null, "arr": null, "obj": null, + "logger": null, "lvl": "DEBUG4", - "user": null - }, - { - "log_line": 11, + "user": null, "log_part": null, - "log_time": "2013-09-06 22:00:59.124", "log_idle_msecs": 0, - "log_level": "debug3", "log_mark": 0, "log_comment": null, "log_tags": null, - "log_filters": null, + "log_annotations": null, + "log_filters": null + }, + { + "log_line": 11, + "log_time": "2013-09-06 22:00:59.124", + "log_level": "debug3", "arr": null, "obj": null, + "logger": null, "lvl": "DEBUG3", - "user": null - }, - { - "log_line": 13, + "user": null, "log_part": null, - "log_time": "2013-09-06 22:00:59.124", "log_idle_msecs": 0, - "log_level": "debug2", "log_mark": 0, "log_comment": null, "log_tags": null, - "log_filters": null, + "log_annotations": null, + "log_filters": null + }, + { + "log_line": 13, + "log_time": "2013-09-06 22:00:59.124", + "log_level": "debug2", "arr": null, "obj": null, + "logger": null, "lvl": "DEBUG2", - "user": null - }, - { - "log_line": 15, + "user": null, "log_part": null, - "log_time": "2013-09-06 22:00:59.124", "log_idle_msecs": 0, - "log_level": "debug", "log_mark": 0, "log_comment": null, "log_tags": null, - "log_filters": null, + "log_annotations": null, + "log_filters": null + }, + { + "log_line": 15, + "log_time": "2013-09-06 22:01:00.000", + "log_level": "debug", "arr": null, "obj": null, + "logger": null, "lvl": "DEBUG", - "user": null + "user": null, + "log_part": null, + "log_idle_msecs": 876, + "log_mark": 0, + "log_comment": null, + "log_tags": null, + "log_annotations": null, + "log_filters": null }, { "log_line": 17, - "log_part": null, "log_time": "2013-09-06 22:01:49.124", - "log_idle_msecs": 50000, "log_level": "stats", - "log_mark": 0, - "log_comment": null, - "log_tags": null, - "log_filters": null, "arr": null, "obj": null, + "logger": null, "lvl": "STATS", - "user": null + "user": null, + "log_part": null, + "log_idle_msecs": 49124, + "log_mark": 0, + "log_comment": null, + "log_tags": null, + "log_annotations": null, + "log_filters": null }, { "log_line": 19, - "log_part": null, "log_time": "2013-09-06 22:01:49.124", - "log_idle_msecs": 0, "log_level": "warning", - "log_mark": 0, - "log_comment": null, - "log_tags": null, - "log_filters": null, "arr": null, "obj": null, + "logger": null, "lvl": "WARNING", - "user": null - }, - { - "log_line": 21, + "user": null, "log_part": null, - "log_time": "2013-09-06 22:01:49.124", "log_idle_msecs": 0, - "log_level": "error", "log_mark": 0, "log_comment": null, "log_tags": null, - "log_filters": null, + "log_annotations": null, + "log_filters": null + }, + { + "log_line": 21, + "log_time": "2013-09-06 22:01:49.124", + "log_level": "error", "arr": null, "obj": null, + "logger": null, "lvl": "ERROR", - "user": null - }, - { - "log_line": 23, + "user": null, "log_part": null, - "log_time": "2013-09-06 22:01:49.124", "log_idle_msecs": 0, - "log_level": "critical", "log_mark": 0, "log_comment": null, "log_tags": null, - "log_filters": null, + "log_annotations": null, + "log_filters": null + }, + { + "log_line": 23, + "log_time": "2013-09-06 22:01:49.124", + "log_level": "critical", "arr": null, "obj": null, + "logger": null, "lvl": "CRITICAL", - "user": null - }, - { - "log_line": 25, + "user": null, "log_part": null, - "log_time": "2013-09-06 22:01:49.124", "log_idle_msecs": 0, - "log_level": "fatal", "log_mark": 0, "log_comment": null, "log_tags": null, - "log_filters": null, + "log_annotations": null, + "log_filters": null + }, + { + "log_line": 25, + "log_time": "2013-09-06 22:01:49.124", + "log_level": "fatal", "arr": [ "hi", { @@ -199,7 +217,15 @@ "field1": "hi", "field2": 2 }, + "logger": null, "lvl": "FATAL", - "user": null + "user": null, + "log_part": null, + "log_idle_msecs": 0, + "log_mark": 0, + "log_comment": null, + "log_tags": null, + "log_annotations": null, + "log_filters": null } ] diff --git a/test/expected/test_json_format.sh_4315a3d6124c14cbe3c474b6dbf4cc8720a9859f.out b/test/expected/test_json_format.sh_4315a3d6124c14cbe3c474b6dbf4cc8720a9859f.out index 9b7fbf1..2063d71 100644 --- a/test/expected/test_json_format.sh_4315a3d6124c14cbe3c474b6dbf4cc8720a9859f.out +++ b/test/expected/test_json_format.sh_4315a3d6124c14cbe3c474b6dbf4cc8720a9859f.out @@ -1,3 +1,3 @@ -2017-03-24T20:06:26.240 1.1.1.1 GET 200 443 /example/uri/5 -[31m2017-03-24T20:12:47.764[0m[31m [0m[31m1.1.1.1[0m[31m [0m[31mGET[0m[31m 500 4433 [0m[31m/example/uri/5[0m -[33m2017-03-24T20:15:31.694[0m[33m [0m[33m1.1.1.1[0m[33m [0m[33mGET[0m[33m 400 44345 [0m[33m/example/uri/5[0m +2017-03-24T20:06:26.240Z 1.1.1.1 GET 200 443 /example/uri/5 +[31m2017-03-24T20:12:47.764Z[0m[31m [0m[31m1.1.1.1[0m[31m [0m[31mGET[0m[31m 500 4433 [0m[31m/example/uri/5[0m +[33m2017-03-24T20:15:31.694Z[0m[33m [0m[33m1.1.1.1[0m[33m [0m[33mGET[0m[33m 400 44345 [0m[33m/example/uri/5[0m diff --git a/test/expected/test_json_format.sh_469f005b0708d629bc95f0c48a5e390f440c1fef.out b/test/expected/test_json_format.sh_469f005b0708d629bc95f0c48a5e390f440c1fef.out index ee41abb..8a1d53c 100644 --- a/test/expected/test_json_format.sh_469f005b0708d629bc95f0c48a5e390f440c1fef.out +++ b/test/expected/test_json_format.sh_469f005b0708d629bc95f0c48a5e390f440c1fef.out @@ -1,29 +1,29 @@ -[2013-09-06T20:00:48.124] TRACE trace test +[2013-09-06T20:00:48.124817Z] ⋮ <c.e.foo.bar.bazzer > trace test -[2013-09-06T20:00:49.124] INFO Starting up [32mservice[0m +[2013-09-06T20:00:49.124817Z] ⋮ <com.example.demo > Starting up [32mservice[0m -[2013-09-06T22:00:49.124] INFO Shutting down service +[2013-09-06T22:00:49.124817Z] ⋮ Shutting down service user: steve@example.com -[2013-09-06T22:00:59.124] DEBUG5 Details... +[2013-09-06T22:00:59.124817Z] ⋮ [1mD[0metails... -[2013-09-06T22:00:59.124] DEBUG4 Details... +[2013-09-06T22:00:59.124817Z] ⋮ [1mDe[0mtails... -[2013-09-06T22:00:59.124] DEBUG3 Details... +[2013-09-06T22:00:59.124817Z] ⋮ Details... -[2013-09-06T22:00:59.124] DEBUG2 Details... +[2013-09-06T22:00:59.124817Z] ⋮ Details... -[2013-09-06T22:00:59.124] DEBUG Details... +[2013-09-06 22:01:00Z] ⋮ Details... -[2013-09-06T22:01:49.124] STATS 1 beat per second +[2013-09-06T22:01:49.124817Z] ⋮ 1 beat per second -[33m[2[0m[33m013-09-06T22:01:49.124][0m[33m WARNING n[0m[33mot looking good[0m +[33m[[0m[33m2013-09-06T22:01:49.124817Z[0m[33m] [0m[33m⋮[0m[33m [0m[33mnot looking good[0m -[31m[2[0m[31m013-09-06T22:01:49.124][0m[31m ERROR l[0m[31mooking bad[0m +[31m[[0m[31m2013-09-06T22:01:49.124817Z[0m[31m] [0m[31m⋮[0m[31m [0m[31mlooking bad[0m -[31m[2[0m[31m013-09-06T22:01:49.124][0m[31m CRITICAL s[0m[31mooo bad[0m +[31m[[0m[31m2013-09-06T22:01:49.124817Z[0m[31m] [0m[31m⋮[0m[31m [0m[31msooo bad[0m -[31m[2[0m[31m013-09-06T22:01:49.124][0m[31m FATAL s[0m[31mhoot[0m +[31m[[0m[31m2013-09-06T22:01:49.124817Z[0m[31m] [0m[31m⋮[0m[31m [0m[31mshoot[0m [31m obj: { "field1" : "hi", "field2": 2 }[0m [31m arr: ["hi", {"sub1": true}][0m diff --git a/test/expected/test_json_format.sh_5795c5ffd98ae581b30c6f0983349bf7a6a84501.err b/test/expected/test_json_format.sh_5795c5ffd98ae581b30c6f0983349bf7a6a84501.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_json_format.sh_5795c5ffd98ae581b30c6f0983349bf7a6a84501.err diff --git a/test/expected/test_json_format.sh_5795c5ffd98ae581b30c6f0983349bf7a6a84501.out b/test/expected/test_json_format.sh_5795c5ffd98ae581b30c6f0983349bf7a6a84501.out new file mode 100644 index 0000000..94d521d --- /dev/null +++ b/test/expected/test_json_format.sh_5795c5ffd98ae581b30c6f0983349bf7a6a84501.out @@ -0,0 +1,52 @@ +2024-01-01T15:00:00Z MemberEvent mujianwu added Envoy-Z-Lab to Uotan-Dev/UotanWorkStation-ROM-Builder +2024-01-01T15:00:00Z PushEvent mdmaid69 committed “float further safety possibly strike” to mdmaid69/reimagined-giggle +2024-01-01T15:00:00Z ForkEvent SynthWave-Systems forked SynthWave-Systems/ampleforth-contracts from ampleforth/ampleforth-contracts +2024-01-01T15:00:00Z PullRequestEvent tobexyz closed pull-request #90 “merge latest release to master” in tobexyz/yaacc-code +2024-01-01T15:00:00Z PushEvent dim12512a committed “Empty Commit” to dim12512a/Repo5 +2024-01-01T15:00:00Z PushEvent github-shvabra committed “new change” to saby/ios-sabycom +2024-01-01T15:00:00Z CreateEvent roman1923 repository off main in roman1923/no-woo-small-cta-fast-food-shop +2024-01-01T15:00:00Z PushEvent appref5555ix63 committed “Empty Commit” to appref5555ix63/Repo4 +2024-01-01T15:00:00Z PullRequestReviewEvent megusasuke0 created review 1799820649 for pull-request #1 “Feature/lesson01” in megusasuke0/frontendhandson +2024-01-01T15:00:00Z PushEvent dim12512a committed “Empty Commit” to dim12512a/Repo6 +2024-01-01T15:00:00Z ForkEvent Shadowxiaomo forked Shadowxiaomo/MemDumper from kp7742/MemDumper +2024-01-01T15:00:00Z PushEvent Jinyeong1611 committed “방향값 추가” to Jinyeong1611/pacman +2024-01-01T15:00:00Z PullRequestEvent dependabot closed pull-request #911 “Bump @storybook/addon-a11y from 7.5.3 to 7.6.3” in DNNCommunity/dnn-elements +2024-01-01T15:00:01Z PushEvent ColeMalinchock1 committed “Update backup JSON file” to ColeMalinchock1/HGT-JSON-Server +2024-01-01T15:00:01Z PushEvent uyenlexx committed “update navbar and search” to HoanqDucAnh/Keebie +2024-01-01T15:00:01Z DeleteEvent direwolf-github branch direwolf-github/ephemeral-ci-f72a7b4a +2024-01-01T15:00:01Z PushEvent Zarakkhan-dev committed “khtam” to Zarakkhan-dev/LegalaiAssistentBackend +2024-01-01T15:00:01Z PushEvent appref5555ix63 committed “Empty Commit” to appref5555ix63/Repo2 +2024-01-01T15:00:01Z ForkEvent tarinisunil forked tarinisunil/Get_Better_at_CP_in_2_Months from sahilbansal17/Get_Better_at_CP_in_2_Months +2024-01-01T15:00:01Z ForkEvent jackblack369 forked jackblack369/danswer from danswer-ai/danswer +2024-01-01T15:00:01Z ForkEvent vineetp6 forked vineetp6/pydub from jiaaro/pydub +2024-01-01T15:00:01Z PushEvent lhduc94 committed “push book” to lhduc94/kungfupandas +2024-01-01T15:00:01Z PushEvent ranadebsaha committed “Add files via upload” to ranadebsaha/DSA +2024-01-01T15:00:01Z PushEvent harmanpa committed “Add ability for STL and DXF parsers to read from InputStream rather than just files” to harmanpa/jgeom +2024-01-01T15:00:01Z PushEvent dim12512a committed “Empty Commit” to dim12512a/Repo6 +2024-01-01T15:00:01Z PushEvent namson26 committed “ industry talk PPG and Habib” to namson26/Technology-Information-System +2024-01-01T15:00:01Z PushEvent mdmaid69 committed “last recover hurt off claim” to mdmaid69/reimagined-giggle +2024-01-01T15:00:01Z PushEvent dim12512a committed “Empty Commit” to dim12512a/Repo7 +2024-01-01T15:00:01Z PullRequestEvent tomgransden closed pull-request #26 “Dev/tg/add firestore” in tomgransden/MyTummyHurtsApp +2024-01-01T15:00:01Z PushEvent dim12512a committed “Empty Commit” to dim12512a/Repo7 +2024-01-01T15:00:01Z PushEvent vedant-z committed “Update to 2 in STEP and README.md” to Exp-Intro-to-GitHub-Flow-Cohort-1/series-intro-to-github-flow-vedant-z + payload/commits#/message: Create PROFILE.md + payload/commits#/message: Update to 3 in STEP and README.md +2024-01-01T15:00:01Z WatchEvent morteza-rp started MasoudKaviani/filoger_fanap_402 +2024-01-01T15:00:01Z PushEvent B74LABgit committed “committing files” to B74LABgit/CAM +2024-01-01T15:00:01Z PushEvent sdhz151 sdhz153/Actions-OpenWrt +2024-01-01T15:00:01Z CreateEvent UjjawalSah repository off main in UjjawalSah/ModernFarming +2024-01-01T15:00:01Z PushEvent wodcoredev committed “Update index.html” to wod-core/website +2024-01-01T15:00:01Z PushEvent Vsonneveld committed “The genre has been updated” to Vsonneveld/foroxity-genres +2024-01-01T15:00:01Z PushEvent diphons committed “cpu_input_boost: use MI_DRM notifier” to diphons/sdm845-419 +2024-01-01T15:00:01Z PushEvent l1nky-1337 committed “README.md” to l1nky-1337/TimeFn-Updated +2024-01-01T15:00:01Z CreateEvent luiz8910 repository off main in luiz8910/codeflix +2024-01-01T15:00:01Z PushEvent Owl3CM committed “sync” to Owl3CM/Eze-Scripts +2024-01-01T15:00:01Z PullRequestReviewEvent SamboyCoding created review 1799820647 for pull-request #255 “Support Type Parameters in Call Analysis” in SamboyCoding/Cpp2IL +2024-01-01T15:00:01Z PushEvent lu146enza committed “Empty Commit” to lu146enza/Repo9 +2024-01-01T15:00:01Z PushEvent fdvorak committed “automated commit 2024-01-01 15:59:14” to fdvorak/sandWind +2024-01-01T15:00:01Z PushEvent github-shvabra committed “new change” to saby/ios-sabycom +2024-01-01T15:00:01Z DeleteEvent artamonovkirill branch tomtom-international/goji-http-client +2024-01-01T15:00:01Z PullRequestEvent github-actions closed pull-request #45 “build(deps-dev): bump ts-node from 10.9.1 to 10.9.2” in jckimble/Github-Graph-Background +2024-01-01T15:00:01Z PushEvent leegical committed “Upload by PicGo” to leegical/Blog_img +2024-01-01T15:00:01Z CreateEvent mohil298 repository off main in mohil298/PCB-Designing +2024-01-01T15:00:01Z PullRequestReviewEvent ehsandeep created review 1799820657 for pull-request #1102 “chore(deps): bump github.com/projectdiscovery/goflags from 0.1.32 to 0.1.33 in /v2” in projectdiscovery/subfinder diff --git a/test/expected/test_json_format.sh_6767b91d715338c24c67e928b59c560c84ddf4be.out b/test/expected/test_json_format.sh_6767b91d715338c24c67e928b59c560c84ddf4be.out index 19672db..9809b55 100644 --- a/test/expected/test_json_format.sh_6767b91d715338c24c67e928b59c560c84ddf4be.out +++ b/test/expected/test_json_format.sh_6767b91d715338c24c67e928b59c560c84ddf4be.out @@ -1,41 +1,41 @@ -2023-03-24T14:26:16.243 renovate[7] DEBUG Found gitlabci-include package files +2023-03-24T14:26:16.243Z renovate[7] DEBUG Found gitlabci-include package files logContext: qjifsaDDI repository: webgui/custom-icons-transformer -2023-03-24T14:26:16.243 renovate[7] DEBUG Found npm package files +2023-03-24T14:26:16.243Z renovate[7] DEBUG Found npm package files logContext: qjifsaDDI repository: webgui/custom-icons-transformer -2023-03-24T14:26:16.243 renovate[7] DEBUG [/Users/trentm/tm/node-bunyan/examples/src.js:20:Wuzzle.woos] Found 3 package file(s) +2023-03-24T14:26:16.243Z renovate[7] DEBUG [/Users/trentm/tm/node-bunyan/examples/src.js:20:Wuzzle.woos] Found 3 package file(s) logContext: qjifsaDDI repository: webgui/custom-icons-transformer -2023-03-24T14:26:16.243 renovate[7] INFO Dependency extraction complete +2023-03-24T14:26:16.243Z renovate[7] INFO Dependency extraction complete logContext: qjifsaDDI repository: webgui/custom-icons-transformer baseBranch: main stats: {"managers":{"gitlabci":{"fileCount":1,"depCount":1},"gitlabci-include":{"fileCount":1,"depCount":1},"npm":{"fileCount":1,"depCount":15}},"total":{"fileCount":3,"depCount":17}} -2023-03-24T14:26:16.390 renovate[7] DEBUG Dependency node has unsupported/unversioned value lts-bullseye-slim (versioning=docker) +2023-03-24T14:26:16.390Z renovate[7] DEBUG Dependency node has unsupported/unversioned value lts-bullseye-slim (versioning=docker) logContext: qjifsaDDI repository: webgui/custom-icons-transformer -2023-03-24T14:26:17.493 renovate[7] DEBUG Release 2.8.7 is pending status checks +2023-03-24T14:26:17.493Z renovate[7] DEBUG Release 2.8.7 is pending status checks logContext: qjifsaDDI repository: webgui/custom-icons-transformer depName: prettier check: stabilityDays -2023-03-24T14:26:17.897 renovate[7] DEBUG Release 4.4.1 is pending status checks +2023-03-24T14:26:17.897Z renovate[7] DEBUG Release 4.4.1 is pending status checks logContext: qjifsaDDI repository: webgui/custom-icons-transformer depName: rimraf check: stabilityDays -2023-03-24T14:26:17.897 renovate[7] DEBUG All releases are pending - using latest +2023-03-24T14:26:17.897Z renovate[7] DEBUG All releases are pending - using latest logContext: qjifsaDDI repository: webgui/custom-icons-transformer depName: rimraf bucket: non-major -2023-03-24T14:26:18.330 renovate[7] DEBUG Release 2.10.0 is pending status checks +2023-03-24T14:26:18.330Z renovate[7] DEBUG Release 2.10.0 is pending status checks logContext: qjifsaDDI repository: webgui/custom-icons-transformer depName: prettier-plugin-svelte check: stabilityDays -2023-03-24T14:26:18.331 renovate[7] DEBUG All releases are pending - using latest +2023-03-24T14:26:18.331Z renovate[7] DEBUG All releases are pending - using latest logContext: qjifsaDDI repository: webgui/custom-icons-transformer depName: prettier-plugin-svelte diff --git a/test/expected/test_json_format.sh_6fbe20faa161ab9fa77df7568fff84bf3e47e920.out b/test/expected/test_json_format.sh_6fbe20faa161ab9fa77df7568fff84bf3e47e920.out index 128f5ab..3363f23 100644 --- a/test/expected/test_json_format.sh_6fbe20faa161ab9fa77df7568fff84bf3e47e920.out +++ b/test/expected/test_json_format.sh_6fbe20faa161ab9fa77df7568fff84bf3e47e920.out @@ -1,4 +1,4 @@ -log_line,log_part,log_time,log_idle_msecs,log_level,log_mark,log_comment,log_tags,log_filters,user,cl -0,<NULL>,2013-09-06 20:00:49.124,0,info,0,<NULL>,<NULL>,<NULL>,<NULL>,com.exmaple.foo -1,<NULL>,2013-09-06 22:00:49.124,7200000,info,0,<NULL>,<NULL>,<NULL>,steve@example.com,com.exmaple.foo -3,<NULL>,2013-09-06 22:01:49.124,60000,error,0,<NULL>,<NULL>,<NULL>,<NULL>,com.exmaple.foo +log_line,log_time,log_level,user,cl,log_part,log_idle_msecs,log_mark,log_comment,log_tags,log_annotations,log_filters +0,2013-09-06 20:00:49.124,info,<NULL>,com.exmaple.foo,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +1,2013-09-06 22:00:49.124,info,steve@example.com,com.exmaple.foo,<NULL>,7200000,0,<NULL>,<NULL>,<NULL>,<NULL> +3,2013-09-06 22:01:49.124,error,<NULL>,com.exmaple.foo,<NULL>,60000,0,<NULL>,<NULL>,<NULL>,<NULL> diff --git a/test/expected/test_json_format.sh_7724d1a96d74d4418dd44d7416270f9bb64b2564.out b/test/expected/test_json_format.sh_7724d1a96d74d4418dd44d7416270f9bb64b2564.out index c861d3a..16d7261 100644 --- a/test/expected/test_json_format.sh_7724d1a96d74d4418dd44d7416270f9bb64b2564.out +++ b/test/expected/test_json_format.sh_7724d1a96d74d4418dd44d7416270f9bb64b2564.out @@ -1,29 +1,29 @@ -2013-09-06T20:00:48.124 TRACE trace test +2013-09-06T20:00:48.124817Z TRACE trace test @fields: { "lvl": "TRACE", "msg": "trace test"} -2013-09-06T20:00:49.124 INFO Starting up service +2013-09-06T20:00:49.124817Z INFO Starting up service @fields: { "lvl": "INFO", "msg": "Starting up service"} -2013-09-06T22:00:49.124 INFO Shutting down service +2013-09-06T22:00:49.124817Z INFO Shutting down service @fields/user: steve@example.com @fields: { "lvl": "INFO", "msg": "Shutting down service", "user": "steve@example.com"} -2013-09-06T22:00:59.124 DEBUG5 Details... +2013-09-06T22:00:59.124817Z DEBUG5 Details... @fields: { "lvl": "DEBUG5", "msg": "Details..."} -2013-09-06T22:00:59.124 DEBUG4 Details... +2013-09-06T22:00:59.124817Z DEBUG4 Details... @fields: { "lvl": "DEBUG4", "msg": "Details..."} -2013-09-06T22:00:59.124 DEBUG3 Details... +2013-09-06T22:00:59.124817Z DEBUG3 Details... @fields: { "lvl": "DEBUG3", "msg": "Details..."} -2013-09-06T22:00:59.124 DEBUG2 Details... +2013-09-06T22:00:59.124817Z DEBUG2 Details... @fields: { "lvl": "DEBUG2", "msg": "Details..."} -2013-09-06T22:00:59.124 DEBUG Details... +2013-09-06T22:00:59.124817Z DEBUG Details... @fields: { "lvl": "DEBUG", "msg": "Details..."} -2013-09-06T22:01:49.124 STATS 1 beat per second +2013-09-06T22:01:49.124817Z STATS 1 beat per second @fields: { "lvl": "STATS", "msg": "1 beat per second"} -[33m2013-09-06T22:01:49.124[0m[33m WARNING [0m[33mnot looking good[0m +[33m2013-09-06T22:01:49.124817Z[0m[33m WARNING [0m[33mnot looking good[0m [33m @fields: { "lvl": "WARNING", "msg": "not looking good"}[0m -[31m2013-09-06T22:01:49.124[0m[31m ERROR [0m[31mlooking bad[0m +[31m2013-09-06T22:01:49.124817Z[0m[31m ERROR [0m[31mlooking bad[0m [31m @fields: { "lvl": "ERROR", "msg": "looking bad"}[0m -[31m2013-09-06T22:01:49.124[0m[31m CRITICAL [0m[31msooo bad[0m +[31m2013-09-06T22:01:49.124817Z[0m[31m CRITICAL [0m[31msooo bad[0m [31m @fields: { "lvl": "CRITICAL", "msg": "sooo bad"}[0m -[31m2013-09-06T22:01:49.124[0m[31m FATAL [0m[31mshoot[0m +[31m2013-09-06T22:01:49.124817Z[0m[31m FATAL [0m[31mshoot[0m [31m @fields/trace#: line:1[0m [31m @fields/trace#: line:2[0m [31m @fields: { "lvl": "FATAL", "msg": "shoot", "trace": ["line:1", "line:2"]}[0m diff --git a/test/expected/test_json_format.sh_7c6529f6bf4a0cb565f5665fdcba032f0ae1ebbe.out b/test/expected/test_json_format.sh_7c6529f6bf4a0cb565f5665fdcba032f0ae1ebbe.out index ce295e2..72f625a 100644 --- a/test/expected/test_json_format.sh_7c6529f6bf4a0cb565f5665fdcba032f0ae1ebbe.out +++ b/test/expected/test_json_format.sh_7c6529f6bf4a0cb565f5665fdcba032f0ae1ebbe.out @@ -1,12 +1,12 @@ -2013-09-06T20:00:48.124 TRACE trace test +2013-09-06T20:00:48.124817Z TRACE trace test @fields: { "lvl": "TRACE", "msg": "trace test"} -2013-09-06T20:00:49.124 INFO Starting up service +2013-09-06T20:00:49.124817Z INFO Starting up service @fields: { "lvl": "INFO", "msg": "Starting up service"} [offset: 186] {"ts": "2013-09-06T22:00:49.124817Z", "@fields": { "lvl": "INFO", "msg": "Shutting down service\nline2\nline3\nline4\nline5\nline6\nline7\nline8\nline9\nline10 parse error: premature EOF {"ts": "2013-09-06T22:00:49.124 (right here) ------^ -2013-09-06T22:00:59.124 DEBUG5 Details... +2013-09-06T22:00:59.124817Z DEBUG5 Details... @fields: { "lvl": "DEBUG5", "msg": "Details..."} -2013-09-06T22:00:59.222 DEBUG4 Details... +2013-09-06T22:00:59.222222Z DEBUG4 Details... @fields: { "lvl": "DEBUG4", "msg": "Details..."} diff --git a/test/expected/test_json_format.sh_80959e2bb6a7fdf938c2e4dbd7d7c81eb84fa072.out b/test/expected/test_json_format.sh_80959e2bb6a7fdf938c2e4dbd7d7c81eb84fa072.out index 63376a4..4656a00 100644 --- a/test/expected/test_json_format.sh_80959e2bb6a7fdf938c2e4dbd7d7c81eb84fa072.out +++ b/test/expected/test_json_format.sh_80959e2bb6a7fdf938c2e4dbd7d7c81eb84fa072.out @@ -1,6 +1,6 @@ -2013-09-06T20:00:48.124 TRACE trace test +2013-09-06T20:00:48.124817Z TRACE trace test @fields: { "lvl": "TRACE", "msg": "trace test"} -2013-09-06T20:00:49.124 INFO Starting up service +2013-09-06T20:00:49.124817Z INFO Starting up service @fields: { "lvl": "INFO", "msg": "Starting up service"} [offset: 186] {"ts": "2013-09-06T22:00:49.124817Z", "@fields": { "lvl": "INFO", "msg": parse error: premature EOF diff --git a/test/expected/test_json_format.sh_84a71e94dc34661a70bb9015b67ba00e93e9cfb5.out b/test/expected/test_json_format.sh_84a71e94dc34661a70bb9015b67ba00e93e9cfb5.out index 58b44ab..474ad83 100644 --- a/test/expected/test_json_format.sh_84a71e94dc34661a70bb9015b67ba00e93e9cfb5.out +++ b/test/expected/test_json_format.sh_84a71e94dc34661a70bb9015b67ba00e93e9cfb5.out @@ -1,2 +1,2 @@ -[31m2018-08-21T14:04:21.221[0m[31m 38708007 [0m[31mmedusa-GpsLocator.service[0m[31m [0m[31mpython[0m[31m[[0m[31m184[0m[31m] FATAL [0m[31mGPS Reference longitude: 7.358143333[0m -2018-08-21T14:04:21.221 38708007 medusa-GpsLocator.service python[184] INFO GPS Reference latitude: 46.908706667 +[31m2018-08-21T14:04:21.221373Z[0m[31m 38708007 [0m[31mmedusa-GpsLocator.service[0m[31m [0m[31mpython[0m[31m[[0m[31m184[0m[31m] FATAL [0m[31mGPS Reference longitude: 7.358143333[0m +2018-08-21T14:04:21.221373Z 38708007 medusa-GpsLocator.service python[184] INFO GPS Reference latitude: 46.908706667 diff --git a/test/expected/test_json_format.sh_85d03b1b41a7f819af135d2521a8f2c59418e907.out b/test/expected/test_json_format.sh_85d03b1b41a7f819af135d2521a8f2c59418e907.out index 660e90e..48ec77c 100644 --- a/test/expected/test_json_format.sh_85d03b1b41a7f819af135d2521a8f2c59418e907.out +++ b/test/expected/test_json_format.sh_85d03b1b41a7f819af135d2521a8f2c59418e907.out @@ -1,14 +1,14 @@ -log_line,log_part,log_time,log_idle_msecs,log_level,log_mark,log_comment,log_tags,log_filters,arr,obj,lvl,user -0,<NULL>,2013-09-06 20:00:48.124,0,trace,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,TRACE,<NULL> -2,<NULL>,2013-09-06 20:00:49.124,1000,info,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,INFO,<NULL> -4,<NULL>,2013-09-06 22:00:49.124,7200000,info,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,INFO,steve@example.com -7,<NULL>,2013-09-06 22:00:59.124,10000,debug5,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,DEBUG5,<NULL> -9,<NULL>,2013-09-06 22:00:59.124,0,debug4,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,DEBUG4,<NULL> -11,<NULL>,2013-09-06 22:00:59.124,0,debug3,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,DEBUG3,<NULL> -13,<NULL>,2013-09-06 22:00:59.124,0,debug2,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,DEBUG2,<NULL> -15,<NULL>,2013-09-06 22:00:59.124,0,debug,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,DEBUG,<NULL> -17,<NULL>,2013-09-06 22:01:49.124,50000,stats,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,STATS,<NULL> -19,<NULL>,2013-09-06 22:01:49.124,0,warning,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,WARNING,<NULL> -21,<NULL>,2013-09-06 22:01:49.124,0,error,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,ERROR,<NULL> -23,<NULL>,2013-09-06 22:01:49.124,0,critical,0,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,CRITICAL,<NULL> -25,<NULL>,2013-09-06 22:01:49.124,0,fatal,0,<NULL>,<NULL>,<NULL>,"[""hi"", {""sub1"": true}]","{ ""field1"" : ""hi"", ""field2"": 2 }",FATAL,<NULL> +log_line,log_time,log_level,arr,obj,logger,lvl,user,log_part,log_idle_msecs,log_mark,log_comment,log_tags,log_annotations,log_filters +0,2013-09-06 20:00:48.124,trace,<NULL>,<NULL>,com.example.foo.bar.bazzer,TRACE,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +2,2013-09-06 20:00:49.124,info,<NULL>,<NULL>,com.example.demo,INFO,<NULL>,<NULL>,1000,0,<NULL>,<NULL>,<NULL>,<NULL> +4,2013-09-06 22:00:49.124,info,<NULL>,<NULL>,<NULL>,INFO,steve@example.com,<NULL>,7200000,0,<NULL>,<NULL>,<NULL>,<NULL> +7,2013-09-06 22:00:59.124,debug5,<NULL>,<NULL>,<NULL>,DEBUG5,<NULL>,<NULL>,10000,0,<NULL>,<NULL>,<NULL>,<NULL> +9,2013-09-06 22:00:59.124,debug4,<NULL>,<NULL>,<NULL>,DEBUG4,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +11,2013-09-06 22:00:59.124,debug3,<NULL>,<NULL>,<NULL>,DEBUG3,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +13,2013-09-06 22:00:59.124,debug2,<NULL>,<NULL>,<NULL>,DEBUG2,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +15,2013-09-06 22:01:00.000,debug,<NULL>,<NULL>,<NULL>,DEBUG,<NULL>,<NULL>,876,0,<NULL>,<NULL>,<NULL>,<NULL> +17,2013-09-06 22:01:49.124,stats,<NULL>,<NULL>,<NULL>,STATS,<NULL>,<NULL>,49124,0,<NULL>,<NULL>,<NULL>,<NULL> +19,2013-09-06 22:01:49.124,warning,<NULL>,<NULL>,<NULL>,WARNING,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +21,2013-09-06 22:01:49.124,error,<NULL>,<NULL>,<NULL>,ERROR,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +23,2013-09-06 22:01:49.124,critical,<NULL>,<NULL>,<NULL>,CRITICAL,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +25,2013-09-06 22:01:49.124,fatal,"[""hi"", {""sub1"": true}]","{ ""field1"" : ""hi"", ""field2"": 2 }",<NULL>,FATAL,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> diff --git a/test/expected/test_json_format.sh_895283eeb4c10e9c1702fafd13723c8085944f88.err b/test/expected/test_json_format.sh_895283eeb4c10e9c1702fafd13723c8085944f88.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_json_format.sh_895283eeb4c10e9c1702fafd13723c8085944f88.err diff --git a/test/expected/test_json_format.sh_895283eeb4c10e9c1702fafd13723c8085944f88.out b/test/expected/test_json_format.sh_895283eeb4c10e9c1702fafd13723c8085944f88.out new file mode 100644 index 0000000..143d8af --- /dev/null +++ b/test/expected/test_json_format.sh_895283eeb4c10e9c1702fafd13723c8085944f88.out @@ -0,0 +1,20 @@ +2023-10-01T02:39:09+00:00 twv 10.0.0.1 INFO files_antivirus Tried to scan non file + user: admin + method: + url: -- +2023-10-01T02:39:09+00:00 twv INFO files_antivirus Tried to scan non file + user: -- + method: + url: -- +2023-10-01T02:50:03+00:00 pZp INFO fulltextsearch_elasticsearch Request: PUT http://elasticsearch:9200/nextcloud/_doc/files%3A1780281 + user: -- + method: +[4m url: --[0m +2023-10-16T01:47:44+00:00 WO0 192.168.1.1 INFO memories Memories: Updated item successfully + user: jeff + method: PATCH + url: -- +2023-10-16T01:50:18+00:00 Sbl 192.168.1.1 INFO files_versions Mark to expire /Documents/phat.txt next version should be 1697407738 or smaller. (prevTimestamp: 1697411338; step: 3600 + user: jeff + method: + url: -- diff --git a/test/expected/test_json_format.sh_90a037c7d9d70ac4ca97158271ea242787313377.out b/test/expected/test_json_format.sh_90a037c7d9d70ac4ca97158271ea242787313377.out deleted file mode 100644 index 30ddacc..0000000 --- a/test/expected/test_json_format.sh_90a037c7d9d70ac4ca97158271ea242787313377.out +++ /dev/null @@ -1,3 +0,0 @@ -2017-03-24T20:06:26.240 1.1.1.1 GET 200 /example/uri/5 -[31m2017-03-24T20:12:47.764[0m[31m [0m[31m1.1.1.1[0m[31m [0m[31mGET[0m[31m 500 [0m[31m/example/uri/5[0m -[33m2017-03-24T20:15:31.694[0m[33m [0m[33m1.1.1.1[0m[33m [0m[33mGET[0m[33m 400 [0m[33m/example/uri/5[0m diff --git a/test/expected/test_json_format.sh_952297a90e312d2184fe3e4df795ddc731b096c9.out b/test/expected/test_json_format.sh_952297a90e312d2184fe3e4df795ddc731b096c9.out index 7cb7336..6de63a2 100644 --- a/test/expected/test_json_format.sh_952297a90e312d2184fe3e4df795ddc731b096c9.out +++ b/test/expected/test_json_format.sh_952297a90e312d2184fe3e4df795ddc731b096c9.out @@ -1,4 +1,4 @@ -[-09-06T22:00:49.124] INFO Shutting down service +[-09-06T22:00:49.124817Z] INFO Shutting down service user: steve@example.com diff --git a/test/expected/test_json_format.sh_a06b3cdd46b387e72d6faa4cce648b8b11ae870b.out b/test/expected/test_json_format.sh_a06b3cdd46b387e72d6faa4cce648b8b11ae870b.out index c3b21be..264a35e 100644 --- a/test/expected/test_json_format.sh_a06b3cdd46b387e72d6faa4cce648b8b11ae870b.out +++ b/test/expected/test_json_format.sh_a06b3cdd46b387e72d6faa4cce648b8b11ae870b.out @@ -1,29 +1,29 @@ - -[2013-09-06T20:00:48.124] ⋮ trace testbork bork bork - -[2013-09-06T20:00:49.124] ⋮ Starting up [32mservice[0mbork bork bork - -[2013-09-06T22:00:49.124] ⋮ Shutting down servicebork bork bork + +[2013-09-06T20:00:48.124817Z] ⋮ <c.e.foo.bar.bazzer > trace testbork bork bork + +[2013-09-06T20:00:49.124817Z] ⋮ <com.example.demo > Starting up [32mservice[0mbork bork bork + +[2013-09-06T22:00:49.124817Z] ⋮ Shutting down servicebork bork bork user: mailto:steve@example.com - -[2013-09-06T22:00:59.124] ⋮ Details... + +[2013-09-06T22:00:59.124817Z] ⋮ [1mD[0metails... bork bork bork - -[2013-09-06T22:00:59.124] ⋮ Details... + +[2013-09-06T22:00:59.124817Z] ⋮ [1mDe[0mtails... bork bork bork - -[2013-09-06T22:00:59.124] ⋮ Details... + +[2013-09-06T22:00:59.124817Z] ⋮ Details... bork bork bork - -[2013-09-06T22:00:59.124] ⋮ Details... + +[2013-09-06T22:00:59.124817Z] ⋮ Details... bork bork bork - -[2013-09-06T22:00:59.124] ⋮ Details...bork bork bork - -[2013-09-06T22:01:49.124] ⋮ 1 beat per secondbork bork bork - -[33m[[0m[33m2013-09-06T22:01:49.124[0m[33m] [0m[33m⋮[0m[33m [0m[33mnot looking goodbork bork bork[0m - -[31m[[0m[31m2013-09-06T22:01:49.124[0m[31m] [0m[31m⋮[0m[31m [0m[31mlooking bad[0m[31mbork bork bork[0m - -[31m[[0m[31m2013-09-06T22:01:49.124[0m[31m] [0m[31m⋮[0m[31m [0m[31msooo bad[0m[31mbork bork bork[0m + +[2013-09-06 22:01:00Z] ⋮ Details...bork bork bork + +[2013-09-06T22:01:49.124817Z] ⋮ 1 beat per secondbork bork bork + +[33m[[0m[33m2013-09-06T22:01:49.124817Z[0m[33m] [0m[33m⋮[0m[33m [0m[33mnot looking goodbork bork bork[0m + +[31m[[0m[31m2013-09-06T22:01:49.124817Z[0m[31m] [0m[31m⋮[0m[31m [0m[31mlooking badbork bork bork[0m + +[31m[[0m[31m2013-09-06T22:01:49.124817Z[0m[31m] [0m[31m⋮[0m[31m [0m[31msooo badbork bork bork[0m diff --git a/test/expected/test_json_format.sh_a6be47f1311ed92feaf303142fcb103deb80f456.out b/test/expected/test_json_format.sh_a6be47f1311ed92feaf303142fcb103deb80f456.out deleted file mode 100644 index b356898..0000000 --- a/test/expected/test_json_format.sh_a6be47f1311ed92feaf303142fcb103deb80f456.out +++ /dev/null @@ -1,4 +0,0 @@ -log_line,log_part,log_time,log_idle_msecs,log_level,log_mark,log_comment,log_tags,log_filters,client_ip,request/method,request/uri,request/size,response/status,details1,details2,details3 -0,<NULL>,2017-03-24 20:06:26.240,0,info,0,<NULL>,<NULL>,<NULL>,1.1.1.1,GET,/example/uri/5,166,200,<NULL>,<NULL>,<NULL> -1,<NULL>,2017-03-24 20:12:47.764,381524,critical,0,<NULL>,<NULL>,<NULL>,1.1.1.1,GET,/example/uri/5,166,500,<NULL>,<NULL>,<NULL> -2,<NULL>,2017-03-24 20:15:31.694,163930,warning,0,<NULL>,<NULL>,<NULL>,1.1.1.1,GET,/example/uri/5,166,400,"{""foo"": ""bar""}","{""foo"": ""bar""}","{""foo"": ""bar""}" diff --git a/test/expected/test_json_format.sh_ad3a238d03493de305544f9b30a0c69d4f474d3a.out b/test/expected/test_json_format.sh_ad3a238d03493de305544f9b30a0c69d4f474d3a.out index db5fbef..399bb82 100644 --- a/test/expected/test_json_format.sh_ad3a238d03493de305544f9b30a0c69d4f474d3a.out +++ b/test/expected/test_json_format.sh_ad3a238d03493de305544f9b30a0c69d4f474d3a.out @@ -1 +1 @@ -87.226.160.250 2022-10-30T00:00:02.000 "HEAD / HTTP/1.1" 301 570 +87.226.160.250 [2022-10-30T00:00:02Z] "HEAD / HTTP/1.1" 301 570 diff --git a/test/expected/test_json_format.sh_c1a23804c39b0f74642286d69865ee9d0961a58a.out b/test/expected/test_json_format.sh_c1a23804c39b0f74642286d69865ee9d0961a58a.out index 889eb99..dc77753 100644 --- a/test/expected/test_json_format.sh_c1a23804c39b0f74642286d69865ee9d0961a58a.out +++ b/test/expected/test_json_format.sh_c1a23804c39b0f74642286d69865ee9d0961a58a.out @@ -1,2 +1,2 @@ -2022-09-24T00:00:09.484 Hello, World! -2022-09-24T00:00:19.222 Goodbye, World! +2022-09-24T00:00:09.484000000Z Hello, World! +2022-09-24T00:00:19.222000123Z Goodbye, World! diff --git a/test/expected/test_json_format.sh_c60050b3469f37c5b0864e1dc7eb354e91d6ec81.out b/test/expected/test_json_format.sh_c60050b3469f37c5b0864e1dc7eb354e91d6ec81.out index abb3b80..2e9cd45 100644 --- a/test/expected/test_json_format.sh_c60050b3469f37c5b0864e1dc7eb354e91d6ec81.out +++ b/test/expected/test_json_format.sh_c60050b3469f37c5b0864e1dc7eb354e91d6ec81.out @@ -1,4 +1,4 @@ -[31m2016-08-03T12:06:31.009[0m[31m - [0m[31m;Exception initializing page context;[0m[31m java.lang.NoClassDefFoundError: javax/el/StaticFieldELResolver[0m +[31m2016-08-03T17:06:31.009+0000[0m[31m - [0m[31m;Exception initializing page context;[0m[31m java.lang.NoClassDefFoundError: javax/el/StaticFieldELResolver[0m [31m at org.apache.jasper.runtime.JspFactoryImpl.internalGetPageContext(JspFactoryImpl.java:172)[0m [31m at org.apache.jasper.runtime.JspFactoryImpl.getPageContext(JspFactoryImpl.java:123)[0m [31m at org.apache.jsp.errors._404_002dnot_002dfound_jsp._jspService(_404_002dnot_002dfound_jsp.java:38)[0m @@ -41,7 +41,7 @@ [31m thread_name: http-bio-[0m[31m0.0.0.0[0m[31m-8081-exec-198[0m [31m level: ERROR[0m [31m customer: foobaz[0m -[31m2016-08-03T12:06:31.009[0m[31m - [0m[31m;Exception initializing page context;[0m[31m [0m +[31m2016-08-03T17:06:31.009+0000[0m[31m - [0m[31m;Exception initializing page context;[0m[31m [0m [31m @version: 1[0m [31m logger_name: [0m[31morg.apache.jasper.runtime.JspFactoryImpl[0m [31m thread_name: http-bio-[0m[31m0.0.0.0[0m[31m-8081-exec-198[0m diff --git a/test/expected/test_json_format.sh_d0ec34389274affb70a5a76ba4789d51fd60f602.out b/test/expected/test_json_format.sh_d0ec34389274affb70a5a76ba4789d51fd60f602.out index aa47418..6495db7 100644 --- a/test/expected/test_json_format.sh_d0ec34389274affb70a5a76ba4789d51fd60f602.out +++ b/test/expected/test_json_format.sh_d0ec34389274affb70a5a76ba4789d51fd60f602.out @@ -1,4 +1,4 @@ -log_line,log_part,log_time,log_idle_msecs,log_level,log_mark,log_comment,log_tags,log_filters,client_ip,request/method,request/uri,request/size,response/status,response/size,details1,details2,details3 -0,<NULL>,2017-03-24 20:06:26.240,0,info,0,<NULL>,<NULL>,<NULL>,1.1.1.1,GET,/example/uri/5,166,200,443,<NULL>,<NULL>,<NULL> -1,<NULL>,2017-03-24 20:12:47.764,381524,critical,0,<NULL>,<NULL>,<NULL>,1.1.1.1,GET,/example/uri/5,166,500,4433,<NULL>,<NULL>,<NULL> -2,<NULL>,2017-03-24 20:15:31.694,163930,warning,0,<NULL>,<NULL>,<NULL>,1.1.1.1,GET,/example/uri/5,166,400,44345,"{""foo"": ""bar""}","{""foo"": ""bar""}","{""foo"": ""bar""}" +log_line,log_time,log_level,client_ip,request/method,request/uri,request/size,response/status,response/size,details1,details2,details3,log_part,log_idle_msecs,log_mark,log_comment,log_tags,log_annotations,log_filters +0,2017-03-24 20:06:26.240,info,1.1.1.1,GET,/example/uri/5,166,200,443,<NULL>,<NULL>,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +1,2017-03-24 20:12:47.764,critical,1.1.1.1,GET,/example/uri/5,166,500,4433,<NULL>,<NULL>,<NULL>,<NULL>,381524,0,<NULL>,<NULL>,<NULL>,<NULL> +2,2017-03-24 20:15:31.694,warning,1.1.1.1,GET,/example/uri/5,166,400,44345,"{""foo"": ""bar""}","{""foo"": ""bar""}","{""foo"": ""bar""}",<NULL>,163930,0,<NULL>,<NULL>,<NULL>,<NULL> diff --git a/test/expected/test_json_format.sh_d7362cffc8335c2fe6b6527315de59bd6f5dcc7f.out b/test/expected/test_json_format.sh_d7362cffc8335c2fe6b6527315de59bd6f5dcc7f.out index 9a1c882..c65a346 100644 --- a/test/expected/test_json_format.sh_d7362cffc8335c2fe6b6527315de59bd6f5dcc7f.out +++ b/test/expected/test_json_format.sh_d7362cffc8335c2fe6b6527315de59bd6f5dcc7f.out @@ -1,3 +1,3 @@ -2017-03-24T16:06:26.240 1.1.1.1 GET 200 443 /example/uri/5 -[31m2017-03-24T16:12:47.764[0m[31m [0m[31m1.1.1.1[0m[31m [0m[31mGET[0m[31m 500 4433 [0m[31m/example/uri/5[0m -[33m2017-03-24T16:15:31.694[0m[33m [0m[33m1.1.1.1[0m[33m [0m[33mGET[0m[33m 400 44345 [0m[33m/example/uri/5[0m +2017-03-24T16:06:26.240-0400 1.1.1.1 GET 200 443 /example/uri/5 +[31m2017-03-24T16:12:47.764-0400[0m[31m [0m[31m1.1.1.1[0m[31m [0m[31mGET[0m[31m 500 4433 [0m[31m/example/uri/5[0m +[33m2017-03-24T16:15:31.694-0400[0m[33m [0m[33m1.1.1.1[0m[33m [0m[33mGET[0m[33m 400 44345 [0m[33m/example/uri/5[0m diff --git a/test/expected/test_json_format.sh_dfff27a651650a04d93de9a06ab5480e94ce3a79.out b/test/expected/test_json_format.sh_dfff27a651650a04d93de9a06ab5480e94ce3a79.out index db24336..379fc40 100644 --- a/test/expected/test_json_format.sh_dfff27a651650a04d93de9a06ab5480e94ce3a79.out +++ b/test/expected/test_json_format.sh_dfff27a651650a04d93de9a06ab5480e94ce3a79.out @@ -1,4 +1,4 @@ -log_line,log_part,log_time,log_idle_msecs,log_level,log_mark,log_comment,log_tags,log_filters,client_ip,request/method,request/uri,request/size,response/status,response/size,details1,details2,details3 -0,<NULL>,2017-03-24 16:06:26.240,0,info,0,<NULL>,<NULL>,<NULL>,1.1.1.1,GET,/example/uri/5,166,200,443,<NULL>,<NULL>,<NULL> -1,<NULL>,2017-03-24 16:12:47.764,381524,critical,0,<NULL>,<NULL>,<NULL>,1.1.1.1,GET,/example/uri/5,166,500,4433,<NULL>,<NULL>,<NULL> -2,<NULL>,2017-03-24 16:15:31.694,163930,warning,0,<NULL>,<NULL>,<NULL>,1.1.1.1,GET,/example/uri/5,166,400,44345,"{""foo"": ""bar""}","{""foo"": ""bar""}","{""foo"": ""bar""}" +log_line,log_time,log_level,client_ip,request/method,request/uri,request/size,response/status,response/size,details1,details2,details3,log_part,log_idle_msecs,log_mark,log_comment,log_tags,log_annotations,log_filters +0,2017-03-24 16:06:26.240,info,1.1.1.1,GET,/example/uri/5,166,200,443,<NULL>,<NULL>,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +1,2017-03-24 16:12:47.764,critical,1.1.1.1,GET,/example/uri/5,166,500,4433,<NULL>,<NULL>,<NULL>,<NULL>,381524,0,<NULL>,<NULL>,<NULL>,<NULL> +2,2017-03-24 16:15:31.694,warning,1.1.1.1,GET,/example/uri/5,166,400,44345,"{""foo"": ""bar""}","{""foo"": ""bar""}","{""foo"": ""bar""}",<NULL>,163930,0,<NULL>,<NULL>,<NULL>,<NULL> diff --git a/test/expected/test_json_format.sh_e36401aa54bc61de71f8dcbe66ea16effa59ea52.out b/test/expected/test_json_format.sh_e36401aa54bc61de71f8dcbe66ea16effa59ea52.out index 05d531a..f80f324 100644 --- a/test/expected/test_json_format.sh_e36401aa54bc61de71f8dcbe66ea16effa59ea52.out +++ b/test/expected/test_json_format.sh_e36401aa54bc61de71f8dcbe66ea16effa59ea52.out @@ -1,2 +1,2 @@ -87.226.160.250 2022-10-30T00:00:02.000 "HEAD / HTTP/1.1" 301 570 +87.226.160.250 [2022-10-30T00:00:02Z] "HEAD / HTTP/1.1" 301 570 RayID: 761fde4e984e5ab2 diff --git a/test/expected/test_json_format.sh_f740026626ab554dacb249762d8be7d6539b8c6e.out b/test/expected/test_json_format.sh_f740026626ab554dacb249762d8be7d6539b8c6e.out index 52f2372..d1cb873 100644 --- a/test/expected/test_json_format.sh_f740026626ab554dacb249762d8be7d6539b8c6e.out +++ b/test/expected/test_json_format.sh_f740026626ab554dacb249762d8be7d6539b8c6e.out @@ -1,2 +1,2 @@ -[2013-09-06T20:00:49.124] INFO Starting up [32mservice[0m +[2013-09-06T20:00:49.124817Z] ⋮ <com.example.demo > Starting up [32mservice[0m diff --git a/test/expected/test_json_format.sh_fe19b7ebd349cd689b3f5c22618eab5ce995e68e.out b/test/expected/test_json_format.sh_fe19b7ebd349cd689b3f5c22618eab5ce995e68e.out index 325af1f..87d2dd4 100644 --- a/test/expected/test_json_format.sh_fe19b7ebd349cd689b3f5c22618eab5ce995e68e.out +++ b/test/expected/test_json_format.sh_fe19b7ebd349cd689b3f5c22618eab5ce995e68e.out @@ -1,4 +1,4 @@ --09-06T22:00:49.124 INFO Shutting down service +-09-06T22:00:49.124817Z INFO Shutting down service @fields/user: steve@example.com @fields: { "lvl": "INFO", "msg": "Shutting down service", "user": "steve@example.com"} diff --git a/test/expected/test_logfile.sh_00877d2e9dadab916a02005a068410dfbd85ec74.err b/test/expected/test_logfile.sh_00877d2e9dadab916a02005a068410dfbd85ec74.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_logfile.sh_00877d2e9dadab916a02005a068410dfbd85ec74.err diff --git a/test/expected/test_logfile.sh_00877d2e9dadab916a02005a068410dfbd85ec74.out b/test/expected/test_logfile.sh_00877d2e9dadab916a02005a068410dfbd85ec74.out new file mode 100644 index 0000000..c271f3c --- /dev/null +++ b/test/expected/test_logfile.sh_00877d2e9dadab916a02005a068410dfbd85ec74.out @@ -0,0 +1,4 @@ +[31mNov 03 16:23:38[0m[31m [0m[31mveridian[0m[31m [0m[31mautomount[0m[31m[[0m[31m7998[0m[31m][0m[31m: [0m[31mlookup(file): lookup for foobar failed[0m +Nov 03 16:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +[31mNov 03 16:23:38[0m[31m [0m[31mveridian[0m[31m [0m[31mautomount[0m[31m[[0m[31m7999[0m[31m][0m[31m: [0m[31mlookup(file): lookup for opt failed[0m +Nov 03 16:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages diff --git a/test/expected/test_logfile.sh_08d731a04c877a34819b35de185e30a74c9fd497.out b/test/expected/test_logfile.sh_08d731a04c877a34819b35de185e30a74c9fd497.out index 9b2a7cd..1d2ec4e 100644 --- a/test/expected/test_logfile.sh_08d731a04c877a34819b35de185e30a74c9fd497.out +++ b/test/expected/test_logfile.sh_08d731a04c877a34819b35de185e30a74c9fd497.out @@ -1,3 +1,3 @@ -2600-12-03 09:23:00.000000 0: -2600-12-03 09:23:00.000000 0: -2600-12-03 09:23:00.000000 0: +2600-01-03 09:23:00 0: +00:2 0 00:00:00 0: +2600-01-03 09:23:00 0: diff --git a/test/expected/test_logfile.sh_18d9a7beeb09041993d0d6da488fc8192d111bd9.err b/test/expected/test_logfile.sh_18d9a7beeb09041993d0d6da488fc8192d111bd9.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_logfile.sh_18d9a7beeb09041993d0d6da488fc8192d111bd9.err diff --git a/test/expected/test_logfile.sh_18d9a7beeb09041993d0d6da488fc8192d111bd9.out b/test/expected/test_logfile.sh_18d9a7beeb09041993d0d6da488fc8192d111bd9.out new file mode 100644 index 0000000..6e52658 --- /dev/null +++ b/test/expected/test_logfile.sh_18d9a7beeb09041993d0d6da488fc8192d111bd9.out @@ -0,0 +1,3 @@ + File Offset 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f ASCII + 0 23 44 61 74 65 3a 09 33 2f 39 2f 33 2f 30 85 20 #Date:_3 /9/3/0×_ + 10 32 0a 30 0a 2_0_ diff --git a/test/expected/test_logfile.sh_1c6eee38f66356fcd9a9f0faedaea6dbcc901060.out b/test/expected/test_logfile.sh_1c6eee38f66356fcd9a9f0faedaea6dbcc901060.out deleted file mode 100644 index ff67043..0000000 --- a/test/expected/test_logfile.sh_1c6eee38f66356fcd9a9f0faedaea6dbcc901060.out +++ /dev/null @@ -1,2 +0,0 @@ -[1m[4m filepath [0m[1m[4m descriptor [0m[1m[4m mimetype [0m[1m[4m content [0m -[1m{test_dir}/logfile_syslog.1.gz[0m[1m [0m[1mnet.zlib.gzip.header[0m[1m [0m[1mapplication/json[0m[1m [0m[1m{"name":"logfile_syslog.1","mtime":"2007-11-03T16:23:00.000","comment":""} [0m diff --git a/test/expected/test_logfile.sh_218ecb88b4753010c4264b3ac351260b4811612f.out b/test/expected/test_logfile.sh_218ecb88b4753010c4264b3ac351260b4811612f.out index 4ed341d..683602c 100644 --- a/test/expected/test_logfile.sh_218ecb88b4753010c4264b3ac351260b4811612f.out +++ b/test/expected/test_logfile.sh_218ecb88b4753010c4264b3ac351260b4811612f.out @@ -1,2 +1,2 @@ -[1m[4mbasename(filepath) [0m[1m[4m descriptor [0m[1m[4m mimetype [0m[1m[4m content [0m -[1mlogfile_syslog.1.gz[0m[1m [0m[1mnet.zlib.gzip.header[0m[1m [0m[1mapplication/json[0m[1m [0m[1m{"name":"logfile_syslog.1","mtime":"2007-11-03T09:23:00.000","comment":""} [0m +[1m[4mbasename(filepath) [0m[1m[4m [0m[1m[4m descriptor [0m[1m[4m [0m[1m[4m mimetype [0m[1m[4m [0m[1m[4m content [0m[1m[4m [0m +logfile_syslog.1.gz net.zlib.gzip.header application/json {"name":"logfile_syslog.1","mtime":"2007-11-03T09:23:00.000","comment":""} diff --git a/test/expected/test_logfile.sh_290a3c49e53c2229a7400c107338fa0bb38375e2.out b/test/expected/test_logfile.sh_290a3c49e53c2229a7400c107338fa0bb38375e2.out index 7731fde..3052066 100644 --- a/test/expected/test_logfile.sh_290a3c49e53c2229a7400c107338fa0bb38375e2.out +++ b/test/expected/test_logfile.sh_290a3c49e53c2229a7400c107338fa0bb38375e2.out @@ -1,2 +1,2 @@ -#Fields: ? ) -0 + File Offset 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f ASCII + 0 23 46 69 65 6c 64 73 3a 20 f9 09 29 0a 30 0a #Fields: _×_)_0_ diff --git a/test/expected/test_logfile.sh_2e72d848a51ac1eb476b973c61fe43a65d579ba5.err b/test/expected/test_logfile.sh_2e72d848a51ac1eb476b973c61fe43a65d579ba5.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_logfile.sh_2e72d848a51ac1eb476b973c61fe43a65d579ba5.err diff --git a/test/expected/test_logfile.sh_2e72d848a51ac1eb476b973c61fe43a65d579ba5.out b/test/expected/test_logfile.sh_2e72d848a51ac1eb476b973c61fe43a65d579ba5.out new file mode 100644 index 0000000..1925cdc --- /dev/null +++ b/test/expected/test_logfile.sh_2e72d848a51ac1eb476b973c61fe43a65d579ba5.out @@ -0,0 +1,2 @@ +[1m[4m options_path [0m[1m[4m [0m[1m[4m options [0m[1m[4m [0m +{test_dir}/logfile_syslog.0 {"default-zone":"America/Los_Angeles"} diff --git a/test/expected/test_logfile.sh_341e491abcf8772422bafb8b0eaea6492da230f6.err b/test/expected/test_logfile.sh_341e491abcf8772422bafb8b0eaea6492da230f6.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_logfile.sh_341e491abcf8772422bafb8b0eaea6492da230f6.err diff --git a/test/expected/test_logfile.sh_341e491abcf8772422bafb8b0eaea6492da230f6.out b/test/expected/test_logfile.sh_341e491abcf8772422bafb8b0eaea6492da230f6.out new file mode 100644 index 0000000..f625ce6 --- /dev/null +++ b/test/expected/test_logfile.sh_341e491abcf8772422bafb8b0eaea6492da230f6.out @@ -0,0 +1,3 @@ +Aug 27 14:22:01 2022 -- 613 +Aug 27 14:22:01 2022 -- 694 +Aug 27 14:22:01 2022 -- 888 diff --git a/test/expected/test_logfile.sh_3fc6bfd8a6160817211f3e14fde957af75b9dbe7.out b/test/expected/test_logfile.sh_3fc6bfd8a6160817211f3e14fde957af75b9dbe7.out index 8d8b6ce..6a73ecb 100644 --- a/test/expected/test_logfile.sh_3fc6bfd8a6160817211f3e14fde957af75b9dbe7.out +++ b/test/expected/test_logfile.sh_3fc6bfd8a6160817211f3e14fde957af75b9dbe7.out @@ -1,2 +1,3 @@ -#Date: 20?0-2-02 -0 + File Offset 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f ASCII + 0 23 44 61 74 65 3a 09 32 30 80 30 2d 32 2d 30 32 #Date:_2 0×0-2-02 + 10 0a 30 0a _0_ diff --git a/test/expected/test_logfile.sh_82d65f4dac07b1623f8202444d5b9144096e8243.err b/test/expected/test_logfile.sh_82d65f4dac07b1623f8202444d5b9144096e8243.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_logfile.sh_82d65f4dac07b1623f8202444d5b9144096e8243.err diff --git a/test/expected/test_logfile.sh_82d65f4dac07b1623f8202444d5b9144096e8243.out b/test/expected/test_logfile.sh_82d65f4dac07b1623f8202444d5b9144096e8243.out new file mode 100644 index 0000000..409849c --- /dev/null +++ b/test/expected/test_logfile.sh_82d65f4dac07b1623f8202444d5b9144096e8243.out @@ -0,0 +1,3 @@ +192.168.202.254 - - [20/Jul/2009:15:59:26 -0700] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:15:59:29 -0700] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:15:59:29 -0700] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_logfile.sh_8a5e754cd471e5fdcdaede49c9290903acd7aad6.err b/test/expected/test_logfile.sh_8a5e754cd471e5fdcdaede49c9290903acd7aad6.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_logfile.sh_8a5e754cd471e5fdcdaede49c9290903acd7aad6.err diff --git a/test/expected/test_logfile.sh_8a5e754cd471e5fdcdaede49c9290903acd7aad6.out b/test/expected/test_logfile.sh_8a5e754cd471e5fdcdaede49c9290903acd7aad6.out new file mode 100644 index 0000000..dbd0803 --- /dev/null +++ b/test/expected/test_logfile.sh_8a5e754cd471e5fdcdaede49c9290903acd7aad6.out @@ -0,0 +1,3 @@ +Jul 20 15:59:26 2009 -- 000 +Jul 20 15:59:29 2009 -- 000 +Jul 20 15:59:29 2009 -- 000 diff --git a/test/expected/test_logfile.sh_c18e14a26d8261c9f72747118a469266121d5459.out b/test/expected/test_logfile.sh_c18e14a26d8261c9f72747118a469266121d5459.out index 0733b93..0635648 100644 --- a/test/expected/test_logfile.sh_c18e14a26d8261c9f72747118a469266121d5459.out +++ b/test/expected/test_logfile.sh_c18e14a26d8261c9f72747118a469266121d5459.out @@ -1,3 +1,3 @@ -log_line log_part log_time log_idle_msecs log_level log_mark log_comment log_tags log_filters col_0 col_1 - 0 <NULL> 2021-05-19 08:00:01.000 0 info 0 <NULL> <NULL> <NULL> 1 /abc/def - 2 <NULL> 2021-05-19 08:00:03.000 2000 info 0 <NULL> <NULL> <NULL> 3 /ghi/jkl +log_line log_time log_level col_0 col_1 log_part log_idle_msecs log_mark log_comment log_tags log_annotations log_filters + 0 2021-05-19 08:00:01.000 info 1 /abc/def <NULL> 0 0 <NULL> <NULL> <NULL> <NULL> + 2 2021-05-19 08:00:03.000 info 3 /ghi/jkl <NULL> 2000 0 <NULL> <NULL> <NULL> <NULL> diff --git a/test/expected/test_logfile.sh_cc368d4b4bb6a9b9c79bd5a70ffa1f2d9d01e286.err b/test/expected/test_logfile.sh_cc368d4b4bb6a9b9c79bd5a70ffa1f2d9d01e286.err new file mode 100644 index 0000000..36412d9 --- /dev/null +++ b/test/expected/test_logfile.sh_cc368d4b4bb6a9b9c79bd5a70ffa1f2d9d01e286.err @@ -0,0 +1,15 @@ +[1m[31m✘ error[0m: “bad” is not a valid timezone + [1m[31mreason[0m: bad not found in timezone database +[36m --> [0m[1mcommand-option[0m:1 +[36m | [0m[37m[40m:[0m[1m[36m[40mset-file-timezone[0m[37m[40m bad [0m +[36m =[0m [36mnote[0m: did you mean one of the following? + [1mAmerica/Bahia_Banderas[0m + [1mAsia/Ashkhabad[0m + [1mBrazil/DeNoronha[0m + [1mAmerica/Barbados[0m + [1mAsia/Baghdad[0m +[36m =[0m [36mhelp[0m: [4m:[0m[1m[4mset-file-timezone[0m[4m [0m[4mzone[0m[4m [[0m[4mpattern[0m[4m][0m + ══════════════════════════════════════════════════════════════════════ + Set the timezone to use for log messages that do not include a + timezone. The timezone is applied to the focused file or the given + glob pattern. diff --git a/test/expected/test_logfile.sh_cc368d4b4bb6a9b9c79bd5a70ffa1f2d9d01e286.out b/test/expected/test_logfile.sh_cc368d4b4bb6a9b9c79bd5a70ffa1f2d9d01e286.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_logfile.sh_cc368d4b4bb6a9b9c79bd5a70ffa1f2d9d01e286.out diff --git a/test/expected/test_logfile.sh_ccb0d31813367c8d9dc5b5df383fac5b780711c1.err b/test/expected/test_logfile.sh_ccb0d31813367c8d9dc5b5df383fac5b780711c1.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_logfile.sh_ccb0d31813367c8d9dc5b5df383fac5b780711c1.err diff --git a/test/expected/test_logfile.sh_ccb0d31813367c8d9dc5b5df383fac5b780711c1.out b/test/expected/test_logfile.sh_ccb0d31813367c8d9dc5b5df383fac5b780711c1.out new file mode 100644 index 0000000..1bf2d2a --- /dev/null +++ b/test/expected/test_logfile.sh_ccb0d31813367c8d9dc5b5df383fac5b780711c1.out @@ -0,0 +1,3 @@ +Aug 27 10:22:01 2022 -- 613 +Aug 27 10:22:01 2022 -- 694 +Aug 27 10:22:01 2022 -- 888 diff --git a/test/expected/test_logfile.sh_d14f6d8888652321206549df8a9535399f0fd372.err b/test/expected/test_logfile.sh_d14f6d8888652321206549df8a9535399f0fd372.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_logfile.sh_d14f6d8888652321206549df8a9535399f0fd372.err diff --git a/test/expected/test_logfile.sh_d14f6d8888652321206549df8a9535399f0fd372.out b/test/expected/test_logfile.sh_d14f6d8888652321206549df8a9535399f0fd372.out new file mode 100644 index 0000000..c271f3c --- /dev/null +++ b/test/expected/test_logfile.sh_d14f6d8888652321206549df8a9535399f0fd372.out @@ -0,0 +1,4 @@ +[31mNov 03 16:23:38[0m[31m [0m[31mveridian[0m[31m [0m[31mautomount[0m[31m[[0m[31m7998[0m[31m][0m[31m: [0m[31mlookup(file): lookup for foobar failed[0m +Nov 03 16:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +[31mNov 03 16:23:38[0m[31m [0m[31mveridian[0m[31m [0m[31mautomount[0m[31m[[0m[31m7999[0m[31m][0m[31m: [0m[31mlookup(file): lookup for opt failed[0m +Nov 03 16:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages diff --git a/test/expected/test_logfile.sh_de8d59879fe6aa5a012b0748ff77ae26c07aea89.err b/test/expected/test_logfile.sh_de8d59879fe6aa5a012b0748ff77ae26c07aea89.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_logfile.sh_de8d59879fe6aa5a012b0748ff77ae26c07aea89.err diff --git a/test/expected/test_logfile.sh_de8d59879fe6aa5a012b0748ff77ae26c07aea89.out b/test/expected/test_logfile.sh_de8d59879fe6aa5a012b0748ff77ae26c07aea89.out new file mode 100644 index 0000000..6feae9d --- /dev/null +++ b/test/expected/test_logfile.sh_de8d59879fe6aa5a012b0748ff77ae26c07aea89.out @@ -0,0 +1,4 @@ +[31mNov 03 13:23:38[0m[31m [0m[31mveridian[0m[31m [0m[31mautomount[0m[31m[[0m[31m7998[0m[31m][0m[31m: [0m[31mlookup(file): lookup for foobar failed[0m +Nov 03 13:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +[31mNov 03 13:23:38[0m[31m [0m[31mveridian[0m[31m [0m[31mautomount[0m[31m[[0m[31m7999[0m[31m][0m[31m: [0m[31mlookup(file): lookup for opt failed[0m +Nov 03 13:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages diff --git a/test/expected/test_logfile.sh_e840b674cd65936a72bd64b1dac1524d16fe44c3.out b/test/expected/test_logfile.sh_e840b674cd65936a72bd64b1dac1524d16fe44c3.out index 9de987f..f551cf0 100644 --- a/test/expected/test_logfile.sh_e840b674cd65936a72bd64b1dac1524d16fe44c3.out +++ b/test/expected/test_logfile.sh_e840b674cd65936a72bd64b1dac1524d16fe44c3.out @@ -1,11 +1,11 @@ -[1m[4m log_time [0m[1m[4m log_body [0m -[1m2022-09-19 09:24:04.000[0m[1m [0m[1mtid:1d1f - Mux ID not found in mapping dictionary [0m +[1m[4m log_time [0m[1m[4m [0m[1m[4m log_body [0m[1m[4m [0m +2022-09-19 09:24:04.000 tid:1d1f - Mux ID not found in mapping dictionary 2022-09-19 09:24:04.000 tid:1d1f - Can't handle disconnect with invalid ecid [1m2022-09-19 09:24:20.000[0m[1m [0m[1mEntered:_AMMuxedDeviceDisconnected, mux-device:1003 [0m -2022-09-19 09:24:20.000 Entered:_AMMuxedDeviceDisconnected, mux-device:1003 -[1m2022-09-19 09:24:20.000[0m[1m [0m[1mEntered:__thr_AMMuxedDeviceDisconnected, mux-device:1003 [0m +[1m2022-09-19 09:24:20.000[0m[1m [0m[1mEntered:_AMMuxedDeviceDisconnected, mux-device:1003 [0m +2022-09-19 09:24:20.000 Entered:__thr_AMMuxedDeviceDisconnected, mux-device:1003 2022-09-19 09:24:20.000 Entered:__thr_AMMuxedDeviceDisconnected, mux-device:1003 [1m2022-09-19 09:24:20.000[0m[1m [0m[1mtid:191f - Mux ID not found in mapping dictionary [0m -2022-09-19 09:24:20.000 tid:1d1f - Mux ID not found in mapping dictionary -[1m2022-09-19 09:24:20.000[0m[1m [0m[1mtid:191f - Can't handle disconnect with invalid ecid [0m +[1m2022-09-19 09:24:20.000[0m[1m [0m[1mtid:1d1f - Mux ID not found in mapping dictionary [0m +2022-09-19 09:24:20.000 tid:191f - Can't handle disconnect with invalid ecid 2022-09-19 09:24:20.000 tid:1d1f - Can't handle disconnect with invalid ecid diff --git a/test/expected/test_logfile.sh_f171f265d8d45a2707e8b9f53e938f574c614d25.err b/test/expected/test_logfile.sh_f171f265d8d45a2707e8b9f53e938f574c614d25.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_logfile.sh_f171f265d8d45a2707e8b9f53e938f574c614d25.err diff --git a/test/expected/test_logfile.sh_f171f265d8d45a2707e8b9f53e938f574c614d25.out b/test/expected/test_logfile.sh_f171f265d8d45a2707e8b9f53e938f574c614d25.out new file mode 100644 index 0000000..c210568 --- /dev/null +++ b/test/expected/test_logfile.sh_f171f265d8d45a2707e8b9f53e938f574c614d25.out @@ -0,0 +1,3 @@ +Aug 27 07:22:01 2022 -- 613 +Aug 27 07:22:01 2022 -- 694 +Aug 27 07:22:01 2022 -- 888 diff --git a/test/expected/test_meta.sh_0ae5840c0758ec95a397493ac3c3d4fabd397a34.err b/test/expected/test_meta.sh_0ae5840c0758ec95a397493ac3c3d4fabd397a34.err new file mode 100644 index 0000000..8b8ac40 --- /dev/null +++ b/test/expected/test_meta.sh_0ae5840c0758ec95a397493ac3c3d4fabd397a34.err @@ -0,0 +1,7 @@ +[1m[31m✘ error[0m: unexpected JSON value +[36m --> [0m[1mcommand-option[0m:1 +[36m | [0m[37m[40m;[0m[1m[36m[40mUPDATE[0m[37m[40m [0m[37m[40maccess_log[0m[37m[40m [0m[1m[36m[40mSET[0m[37m[40m [0m[37m[40mlog_annotations[0m[37m[40m [0m[1m[37m[40m=[0m[37m[40m [0m[35m[40m'1'[0m[37m[40m [0m[1m[36m[40mWHERE[0m[37m[40m [0m[37m[40mlog_line[0m[37m[40m [0m[1m[37m[40m=[0m[37m[40m [0m[1m[37m[40m0[0m +[36m --> [0m[1mlog_annotations[0m:1 +[36m | [0m[37m[40m1 [0m +[36m =[0m [36mhelp[0m: [1mAvailable Properties[0m + [1m(.*)[0m diff --git a/test/expected/test_meta.sh_0ae5840c0758ec95a397493ac3c3d4fabd397a34.out b/test/expected/test_meta.sh_0ae5840c0758ec95a397493ac3c3d4fabd397a34.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_meta.sh_0ae5840c0758ec95a397493ac3c3d4fabd397a34.out diff --git a/test/expected/test_meta.sh_41f643bb4f720130625b042563e9591bee4ae588.out b/test/expected/test_meta.sh_41f643bb4f720130625b042563e9591bee4ae588.out index 171d0f7..d2ad552 100644 --- a/test/expected/test_meta.sh_41f643bb4f720130625b042563e9591bee4ae588.out +++ b/test/expected/test_meta.sh_41f643bb4f720130625b042563e9591bee4ae588.out @@ -1,2 +1,2 @@ -[1m[4mlog_tags [0m +[1m[4mlog_tags[0m[1m[4m [0m ["#foo"] diff --git a/test/expected/test_meta.sh_4283bf9128e0396c4ff141faf68279d5a3d8ac63.err b/test/expected/test_meta.sh_4283bf9128e0396c4ff141faf68279d5a3d8ac63.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_meta.sh_4283bf9128e0396c4ff141faf68279d5a3d8ac63.err diff --git a/test/expected/test_meta.sh_4283bf9128e0396c4ff141faf68279d5a3d8ac63.out b/test/expected/test_meta.sh_4283bf9128e0396c4ff141faf68279d5a3d8ac63.out new file mode 100644 index 0000000..f1362fc --- /dev/null +++ b/test/expected/test_meta.sh_4283bf9128e0396c4ff141faf68279d5a3d8ac63.out @@ -0,0 +1,41 @@ +#!lnav -Nf +# This file is an export of an lnav session. You can type +# '|/path/to/this/file' in lnav to execute this file and +# restore the state of the session. + +;SELECT raise_error('This session export was made with a newer version of lnav, please upgrade to ' || '0.11.2' || ' or later') + WHERE lnav_version() < '0.11.2' COLLATE naturalcase + +# The files loaded into the session were: + + +# Set this environment variable to override this value or edit this script. +;INSERT OR IGNORE INTO environ (name, value) VALUES ('LOG_DIR_0', '{top_srcdir_parent}') +:open $LOG_DIR_0/lnav/test/logfile_access_log.0 + +:rebuild + + +# The following SQL statements will restore the bookmarks, +# comments, and tags that were added in the session. + +;SELECT total_changes() AS before_mark_changes +;UPDATE all_logs SET log_mark = 0, log_comment = NULL, log_tags = NULL, log_annotations = '{"org.lnav.test":"Hello, <span style=\"color: #f00\">World</span>!\n"}' WHERE log_time_msecs = 1248130766000 AND log_format = 'access_log' AND log_line_hash = 'v1:3f7e0f10f2473f83b2b4eacccfc9b4e2' +;UPDATE all_logs SET log_mark = 0, log_comment = NULL, log_tags = '["#foo"]', log_annotations = NULL WHERE log_time_msecs = 1248130769000 AND log_format = 'access_log' AND log_line_hash = 'v1:7ad4831dd06e0d6b0ffd965c7d65285f' + +;SELECT 2 - (total_changes() - $before_mark_changes) AS failed_mark_changes +;SELECT echoln(printf('%sERROR%s: failed to restore %d bookmarks', + $ansi_red, $ansi_norm, $failed_mark_changes)) + WHERE $failed_mark_changes != 0 + + +# The following SQL statements will restore the filters that +# were added in the session. + +;REPLACE INTO lnav_view_filters (view_name, enabled, type, language, pattern) VALUES ('log', 0, 'in', 'regex', 'credential status') + + +# The following commands will restore the state of the LOG view. + +:switch-to-view log +:goto 0 diff --git a/test/expected/test_meta.sh_65325d1bcb58e530a8d681685fea56803f67a2eb.err b/test/expected/test_meta.sh_65325d1bcb58e530a8d681685fea56803f67a2eb.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_meta.sh_65325d1bcb58e530a8d681685fea56803f67a2eb.err diff --git a/test/expected/test_meta.sh_65325d1bcb58e530a8d681685fea56803f67a2eb.out b/test/expected/test_meta.sh_65325d1bcb58e530a8d681685fea56803f67a2eb.out new file mode 100644 index 0000000..25d62c1 --- /dev/null +++ b/test/expected/test_meta.sh_65325d1bcb58e530a8d681685fea56803f67a2eb.out @@ -0,0 +1,2 @@ +[1m[4mlog_line[0m[1m[4m [0m[1m[4m log_tags [0m[1m[4m [0m + 46 ["#bro-test"] diff --git a/test/expected/test_meta.sh_aae427fe704f131f8466fbfc9e7967c2e874530a.err b/test/expected/test_meta.sh_aae427fe704f131f8466fbfc9e7967c2e874530a.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_meta.sh_aae427fe704f131f8466fbfc9e7967c2e874530a.err diff --git a/test/expected/test_meta.sh_aae427fe704f131f8466fbfc9e7967c2e874530a.out b/test/expected/test_meta.sh_aae427fe704f131f8466fbfc9e7967c2e874530a.out new file mode 100644 index 0000000..fc8266d --- /dev/null +++ b/test/expected/test_meta.sh_aae427fe704f131f8466fbfc9e7967c2e874530a.out @@ -0,0 +1,2 @@ +[1m[4mlog_line[0m[1m[4m [0m[1m[4mlog_annotations[0m[1m[4m [0m + 0 {"abc":"def"} diff --git a/test/expected/test_meta.sh_ad2f396f332d14ed6e95936983bc7e4aeea0bfac.err b/test/expected/test_meta.sh_ad2f396f332d14ed6e95936983bc7e4aeea0bfac.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_meta.sh_ad2f396f332d14ed6e95936983bc7e4aeea0bfac.err diff --git a/test/expected/test_meta.sh_ad2f396f332d14ed6e95936983bc7e4aeea0bfac.out b/test/expected/test_meta.sh_ad2f396f332d14ed6e95936983bc7e4aeea0bfac.out new file mode 100644 index 0000000..9fe4123 --- /dev/null +++ b/test/expected/test_meta.sh_ad2f396f332d14ed6e95936983bc7e4aeea0bfac.out @@ -0,0 +1,7 @@ +192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" +[32m ├ org.lnav.test:[0m +[32m ╰ [0mHello, [31mWorld[0m! +[31m192.168.202.254[0m[31m - [0m[31m-[0m[31m [[0m[31m20/Jul/2009:22:59:29 +0000[0m[31m] "[0m[31mGET[0m[31m [0m[31m/vmw/vSphere/default/vmkboot.gz[0m[31m [0m[31mHTTP/1.0[0m[31m" 404 46210 "[0m[31m-[0m[31m" "[0m[31mgPXE/0.9.7[0m[31m"[0m +[32m 📝 Annotations available, focus on this line and use [0m[32m[40m:annotate[0m[32m to apply them[0m +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" +[32m 📝 Annotations available, focus on this line and use [0m[32m[40m:annotate[0m[32m to apply them[0m diff --git a/test/expected/test_meta.sh_b622c04c2bede5371bfa6f2627b0474049ecc5e9.err b/test/expected/test_meta.sh_b622c04c2bede5371bfa6f2627b0474049ecc5e9.err new file mode 100644 index 0000000..cf52340 --- /dev/null +++ b/test/expected/test_meta.sh_b622c04c2bede5371bfa6f2627b0474049ecc5e9.err @@ -0,0 +1,6 @@ +[1m[31m✘ error[0m: invalid JSON + [1m[31mreason[0m: parse error: premature EOF +[36m --> [0m[1mcommand-option[0m:1 +[36m | [0m[37m[40m;[0m[1m[36m[40mUPDATE[0m[37m[40m [0m[37m[40maccess_log[0m[37m[40m [0m[1m[36m[40mSET[0m[37m[40m [0m[37m[40mlog_annotations[0m[37m[40m [0m[1m[37m[40m=[0m[37m[40m [0m[35m[40m'{"abc": "def"'[0m[37m[40m [0m[1m[36m[40mWHERE[0m[37m[40m [0m[37m[40mlog_line[0m[37m[40m [0m[1m[37m[40m=[0m[37m[40m [0m[1m[37m[40m0[0m +[36m --> [0m[1mlog_annotations[0m:1 +[36m | [0m[37m[40m{"abc": "def" [0m diff --git a/test/expected/test_meta.sh_b622c04c2bede5371bfa6f2627b0474049ecc5e9.out b/test/expected/test_meta.sh_b622c04c2bede5371bfa6f2627b0474049ecc5e9.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_meta.sh_b622c04c2bede5371bfa6f2627b0474049ecc5e9.out diff --git a/test/expected/test_meta.sh_c75128169049bd88d5eaf8b84a7f617e5ae5d936.out b/test/expected/test_meta.sh_c75128169049bd88d5eaf8b84a7f617e5ae5d936.out index 8462ae3..6f1aae9 100644 --- a/test/expected/test_meta.sh_c75128169049bd88d5eaf8b84a7f617e5ae5d936.out +++ b/test/expected/test_meta.sh_c75128169049bd88d5eaf8b84a7f617e5ae5d936.out @@ -1,4 +1,4 @@ -[1m[4mlog_line [0m[1m[4m log_comment [0m[1m[4mlog_tags [0m -[1m 0[0m[1m [0m[1mHello, World![0m[1m [0m[1m["#foo"] [0m +[1m[4mlog_line[0m[1m[4m [0m[1m[4m log_comment [0m[1m[4m [0m[1m[4mlog_tags[0m[1m[4m [0m + 0 Hello, World! ["#foo"] 1 <NULL> <NULL> [1m 2[0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m diff --git a/test/expected/test_meta.sh_d6af0b41066ca3be0bbce89c83c011f4ecfa516e.out b/test/expected/test_meta.sh_d6af0b41066ca3be0bbce89c83c011f4ecfa516e.out index a3e5357..6300f44 100644 --- a/test/expected/test_meta.sh_d6af0b41066ca3be0bbce89c83c011f4ecfa516e.out +++ b/test/expected/test_meta.sh_d6af0b41066ca3be0bbce89c83c011f4ecfa516e.out @@ -1,5 +1,5 @@ [7m192.168.202.254[0m[7m - [0m[7m-[0m[7m [[0m[7m20/Jul/2009:22:59:26 +0000[0m[7m] "[0m[7mGET[0m[7m [0m[7m/vmw/cgi/tramp[0m[7m [0m[7mHTTP/1.0[0m[7m" 200 134 "[0m[7m-[0m[7m" "[0m[7mgPXE/0.9.7[0m[7m"[0m -[7m[31m192.168.202.254[0m[7m[31m - [0m[7m[31m-[0m[7m[31m [[0m[7m[31m20/Jul/2009:22:59:29 +0000[0m[7m[31m] "[0m[7m[31mGET[0m[7m[31m [0m[7m[31m/vmw/vSphere/default/vmkboot.gz[0m[7m[31m [0m[7m[31mHTTP/1.0[0m[7m[31m" 404 46210 "[0m[7m[31m-[0m[7m[31m" "[0m[7m[31mgPXE/0.9.7[0m[7m[31m"[0m ├ [32mHello, World![0m └ #foo +[7m[31m192.168.202.254[0m[7m[31m - [0m[7m[31m-[0m[7m[31m [[0m[7m[31m20/Jul/2009:22:59:29 +0000[0m[7m[31m] "[0m[7m[31mGET[0m[7m[31m [0m[7m[31m/vmw/vSphere/default/vmkboot.gz[0m[7m[31m [0m[7m[31mHTTP/1.0[0m[7m[31m" 404 46210 "[0m[7m[31m-[0m[7m[31m" "[0m[7m[31mgPXE/0.9.7[0m[7m[31m"[0m [7m192.168.202.254[0m[7m - [0m[7m-[0m[7m [[0m[7m20/Jul/2009:22:59:29 +0000[0m[7m] "[0m[7mGET[0m[7m [0m[7m/vmw/vSphere/default/vmkernel.gz[0m[7m [0m[7mHTTP/1.0[0m[7m" 200 78929 "[0m[7m-[0m[7m" "[0m[7mgPXE/0.9.7[0m[7m"[0m diff --git a/test/expected/test_meta.sh_f7c55356df0d71c51eb7629c5a81f347083ce1ef.err b/test/expected/test_meta.sh_f7c55356df0d71c51eb7629c5a81f347083ce1ef.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_meta.sh_f7c55356df0d71c51eb7629c5a81f347083ce1ef.err diff --git a/test/expected/test_meta.sh_f7c55356df0d71c51eb7629c5a81f347083ce1ef.out b/test/expected/test_meta.sh_f7c55356df0d71c51eb7629c5a81f347083ce1ef.out new file mode 100644 index 0000000..25d62c1 --- /dev/null +++ b/test/expected/test_meta.sh_f7c55356df0d71c51eb7629c5a81f347083ce1ef.out @@ -0,0 +1,2 @@ +[1m[4mlog_line[0m[1m[4m [0m[1m[4m log_tags [0m[1m[4m [0m + 46 ["#bro-test"] diff --git a/test/expected/test_pretty_print.sh_3c255c3c8b28df9d694b329a265e8b8140dae4a2.out b/test/expected/test_pretty_print.sh_3c255c3c8b28df9d694b329a265e8b8140dae4a2.out index 35fadf8..974a0b4 100644 --- a/test/expected/test_pretty_print.sh_3c255c3c8b28df9d694b329a265e8b8140dae4a2.out +++ b/test/expected/test_pretty_print.sh_3c255c3c8b28df9d694b329a265e8b8140dae4a2.out @@ -1,8 +1,8 @@ { -[35m "wra[0mpper": [ + [35m"wrapper"[0m: [ {[35m"message"[0m:[35m""[0m -[35m select Id from Account where id = $sfid[0m -[35m ^[0m -[35m ERROR at Row:1:Column:34[0m -[35m line 1:34 no viable alternative at character '$'[0m -[35m""[0m}]} +[35m [0m[35m [0m[35m select Id from Account where id = $sfid[0m +[35m [0m[35m [0m[35m [0m[35m [0m[35m ^[0m +[35m [0m[35m [0m[35m ERROR at Row:1:Column:34[0m +[35m [0m[35m [0m[35m line[0m 1:34 no viable alternative at character '$' +""}]} diff --git a/test/expected/test_pretty_print.sh_7192f8f68adb14705c8a60e73ff8248c61c7fd03.out b/test/expected/test_pretty_print.sh_7192f8f68adb14705c8a60e73ff8248c61c7fd03.out index 613cc3a..18f1d8a 100644 --- a/test/expected/test_pretty_print.sh_7192f8f68adb14705c8a60e73ff8248c61c7fd03.out +++ b/test/expected/test_pretty_print.sh_7192f8f68adb14705c8a60e73ff8248c61c7fd03.out @@ -1,5 +1,5 @@ 2015-04-18T13:16:30.003 { "wrapper": {"msg": r"" Hello, - World! -""}} + + ""}} diff --git a/test/expected/test_pretty_print.sh_a5bee322ea3374690e44a88a16cb6b84feaa11d3.out b/test/expected/test_pretty_print.sh_a5bee322ea3374690e44a88a16cb6b84feaa11d3.out index 0ac4c9a..f9264f7 100644 --- a/test/expected/test_pretty_print.sh_a5bee322ea3374690e44a88a16cb6b84feaa11d3.out +++ b/test/expected/test_pretty_print.sh_a5bee322ea3374690e44a88a16cb6b84feaa11d3.out @@ -1,3 +1,2 @@ Hello World - diff --git a/test/expected/test_prql.sh_06900fac5c2e854b1208320b753fcd43d4ba63a3.err b/test/expected/test_prql.sh_06900fac5c2e854b1208320b753fcd43d4ba63a3.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_prql.sh_06900fac5c2e854b1208320b753fcd43d4ba63a3.err diff --git a/test/expected/test_prql.sh_06900fac5c2e854b1208320b753fcd43d4ba63a3.out b/test/expected/test_prql.sh_06900fac5c2e854b1208320b753fcd43d4ba63a3.out new file mode 100644 index 0000000..8b17a01 --- /dev/null +++ b/test/expected/test_prql.sh_06900fac5c2e854b1208320b753fcd43d4ba63a3.out @@ -0,0 +1,2 @@ +[1m[4mlog_line[0m[1m[4m [0m[1m[4m log_time [0m[1m[4m [0m[1m[4mlog_level[0m[1m[4m [0m[1m[4m c_ip [0m[1m[4m [0m[1m[4mcs_method[0m[1m[4m [0m[1m[4mcs_referer[0m[1m[4m [0m[1m[4mcs_uri_query[0m[1m[4m [0m[1m[4m cs_uri_stem [0m[1m[4m [0m[1m[4mcs_user_agent[0m[1m[4m [0m[1m[4mcs_username[0m[1m[4m [0m[1m[4mcs_version[0m[1m[4m [0m[1m[4m[7m sc_bytes [0m[1m[4m [0m[1m[4msc_status[0m[1m[4m [0m[1m[4mcs_host[0m[1m[4m [0m[1m[4mlog_part[0m[1m[4m [0m[1m[4m[7mlog_idle_msecs[0m[1m[4m [0m[1m[4mlog_mark[0m[1m[4m [0m[1m[4mlog_comment[0m[1m[4m [0m[1m[4mlog_tags[0m[1m[4m [0m[1m[4mlog_annotations[0m[1m[4m [0m[1m[4mlog_filters[0m[1m[4m [0m + 0 2009-07-20 22:59:26.000 info 192.168.202.254 GET - <NULL> /vmw/cgi/tramp gPXE/0.9.7 - HTTP/1.0 [1m[7m 134[0m 200 <NULL> <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> diff --git a/test/expected/test_prql.sh_15ebcd913f56cde35af26c6300533d6e76bf1b55.err b/test/expected/test_prql.sh_15ebcd913f56cde35af26c6300533d6e76bf1b55.err new file mode 100644 index 0000000..2d3ebea --- /dev/null +++ b/test/expected/test_prql.sh_15ebcd913f56cde35af26c6300533d6e76bf1b55.err @@ -0,0 +1,10 @@ +[1m[31m✘ error[0m: unable to compile PRQL: [1m[36mfrom[0m access_log | [1m[36mtake[0m abc + [1m[31mreason[0m: `take` expected int or range, but found this.access_log.abc +[36m =[0m [36mnote[0m: Error: + ╭─[:1:24] + │ + 1 │ from access_log | take abc + │ ─┬─ + │ ╰─── `take` expected int or range, but found this.access_log.abc + ───╯ + diff --git a/test/expected/test_prql.sh_15ebcd913f56cde35af26c6300533d6e76bf1b55.out b/test/expected/test_prql.sh_15ebcd913f56cde35af26c6300533d6e76bf1b55.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_prql.sh_15ebcd913f56cde35af26c6300533d6e76bf1b55.out diff --git a/test/expected/test_prql.sh_451e242cdfa2db9005d4fe752a7b05d1ab5cba29.err b/test/expected/test_prql.sh_451e242cdfa2db9005d4fe752a7b05d1ab5cba29.err new file mode 100644 index 0000000..1c7eb34 --- /dev/null +++ b/test/expected/test_prql.sh_451e242cdfa2db9005d4fe752a7b05d1ab5cba29.err @@ -0,0 +1,10 @@ +[1m[31m✘ error[0m: unable to compile PRQL: [1m[36mfrom[0m db.access_log | [1m[36mtake[0m abc + [1m[31mreason[0m: `take` expected int or range, but found this.access_log.abc +[36m =[0m [36mnote[0m: Error: + ╭─[:1:27] + │ + 1 │ from db.access_log | take abc + │ ─┬─ + │ ╰─── `take` expected int or range, but found this.access_log.abc + ───╯ + diff --git a/test/expected/test_prql.sh_451e242cdfa2db9005d4fe752a7b05d1ab5cba29.out b/test/expected/test_prql.sh_451e242cdfa2db9005d4fe752a7b05d1ab5cba29.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_prql.sh_451e242cdfa2db9005d4fe752a7b05d1ab5cba29.out diff --git a/test/expected/test_prql.sh_45d57a042092ffdcd28ea35a892f02859e78f33d.err b/test/expected/test_prql.sh_45d57a042092ffdcd28ea35a892f02859e78f33d.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_prql.sh_45d57a042092ffdcd28ea35a892f02859e78f33d.err diff --git a/test/expected/test_prql.sh_45d57a042092ffdcd28ea35a892f02859e78f33d.out b/test/expected/test_prql.sh_45d57a042092ffdcd28ea35a892f02859e78f33d.out new file mode 100644 index 0000000..e73b017 --- /dev/null +++ b/test/expected/test_prql.sh_45d57a042092ffdcd28ea35a892f02859e78f33d.out @@ -0,0 +1,2 @@ +[1m[4mlog_line [0m[1m[4m log_time [0m[1m[4mlog_level [0m[1m[4m c_ip [0m[1m[4mcs_method [0m[1m[4mcs_referer [0m[1m[4mcs_uri_query [0m[1m[4m cs_uri_stem [0m[1m[4mcs_user_agent [0m[1m[4mcs_username [0m[1m[4mcs_version [0m[1m[4m[7msc_bytes [0m[1m[4msc_status [0m[1m[4mcs_host [0m[1m[4mlog_part [0m[1m[4m[7mlog_idle_msecs [0m[1m[4mlog_mark [0m[1m[4mlog_comment [0m[1m[4mlog_tags [0m[1m[4mlog_annotations [0m[1m[4mlog_filters [0m + 0 2009-07-20 22:59:26.000 info 192.168.202.254 GET - <NULL> /vmw/cgi/tramp gPXE/0.9.7 - HTTP/1.0 [1m 134[0m 200 <NULL> <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> diff --git a/test/expected/test_prql.sh_5aea925b5ad95f55ce6b1b07b7046bc3d7310137.err b/test/expected/test_prql.sh_5aea925b5ad95f55ce6b1b07b7046bc3d7310137.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_prql.sh_5aea925b5ad95f55ce6b1b07b7046bc3d7310137.err diff --git a/test/expected/test_prql.sh_5aea925b5ad95f55ce6b1b07b7046bc3d7310137.out b/test/expected/test_prql.sh_5aea925b5ad95f55ce6b1b07b7046bc3d7310137.out new file mode 100644 index 0000000..3c62603 --- /dev/null +++ b/test/expected/test_prql.sh_5aea925b5ad95f55ce6b1b07b7046bc3d7310137.out @@ -0,0 +1,4 @@ +[1m[4m tslice [0m[1m[4m [0m[1m[4m v [0m[1m[4m [0m +2011-11-03 00:19:00.000 [7m{"a.fsdn.com":33,"Other":31,"ad.[0m[7mdoubleclick.net":10,"www.goo⋯[0m[7m"\xaf"dia.com"[0m[7m:6,"s0.2m[0m[7mdn.net":[0m[7m5,"googl[0m[7meads.g.[0m[7mdoubl[0m[7mecli[0m[7mck[0m.net":3} +2011-11-03 00:20:00.000 [7m{"www.bro-ids.org":24,"[0m[7mwww.google.com[0m[7m":15,"[0m[7msearc[0m[7mh.twi[0m[7mtter[0m[7m.[0m[7mc[0m[7m⋯[0m"\x8b""\xaf"ds.org":2,"ad.doubleclick.net":1,"cont-sjl-1.pandora.com":1} +[1m2011-11-03 00:21:00.000[0m[1m [0m[1m[7m{[0m[1m[7m"[0m[1m[7mw[0m[1m[7mw[0m[1m[7mw[0m[1m.google.com":2,"ajax.googleapis.com":1,"api.twitter.com":1,"search.twitter.com":1,"www.bro-ids.org":1} [0m diff --git a/test/expected/test_regex101.sh_2158f1f011ba8e1b152396c072790c076fdb8ce8.err b/test/expected/test_regex101.sh_2158f1f011ba8e1b152396c072790c076fdb8ce8.err index bbcd290..e69de29 100644 --- a/test/expected/test_regex101.sh_2158f1f011ba8e1b152396c072790c076fdb8ce8.err +++ b/test/expected/test_regex101.sh_2158f1f011ba8e1b152396c072790c076fdb8ce8.err @@ -1,3 +0,0 @@ -[33m⚠ warning[0m: not deleting regex101 entry “[1mzpEnjV[0m” - [33mreason[0m: delete code is not known for this entry -[36m =[0m [36mnote[0m: formats created by importing a regex101.com entry will not have a delete code diff --git a/test/expected/test_regex101.sh_366730cac50b4a09b7de4b84641791470b1cb9a3.out b/test/expected/test_regex101.sh_366730cac50b4a09b7de4b84641791470b1cb9a3.out index 7f5397d..8035940 100644 --- a/test/expected/test_regex101.sh_366730cac50b4a09b7de4b84641791470b1cb9a3.out +++ b/test/expected/test_regex101.sh_366730cac50b4a09b7de4b84641791470b1cb9a3.out @@ -3,7 +3,7 @@ "unit_test_log": { "regex": { "std": { - "pattern": "\\[(?<timestamp>\\d+\\/\\d+\\/\\d+ \\d+:\\d+:\\d+) (?<jobserver>[\\w.]+) (?<workqueue>[\\w.]+) (?<processid>\\d+)\\] (?<body>.*)$" + "pattern": "(?<timestamp>[A-Za-z]+ [A-Za-z]+ +[0-9]+ [0-9]+:[0-9]+:[0-9]+ [0-9]+) : (?<level>[A-Z][a-z]+): (?<seq>\\([0-9]+\\) )?(?<body>.*)$" } } } diff --git a/test/expected/test_regex101.sh_3d18474a3e472fff6e23e0c41337ec9188fee591.err b/test/expected/test_regex101.sh_3d18474a3e472fff6e23e0c41337ec9188fee591.err index 32c87d4..7450da8 100644 --- a/test/expected/test_regex101.sh_3d18474a3e472fff6e23e0c41337ec9188fee591.err +++ b/test/expected/test_regex101.sh_3d18474a3e472fff6e23e0c41337ec9188fee591.err @@ -1,34 +1,13 @@ -[1m[31m✘ error[0m: invalid value “[1m/unit_test_log/value/jobserver[0m” - [1m[31mreason[0m: no patterns have a capture named “jobserver” -[36m =[0m [36mnote[0m: the following captures are available: - -[36m =[0m [36mhelp[0m: values are populated from captures in patterns, so at least one pattern must have a capture with this value name -[1m[31m✘ error[0m: invalid value “[1m/unit_test_log/value/processid[0m” - [1m[31mreason[0m: no patterns have a capture named “processid” -[36m =[0m [36mnote[0m: the following captures are available: - -[36m =[0m [36mhelp[0m: values are populated from captures in patterns, so at least one pattern must have a capture with this value name -[1m[31m✘ error[0m: invalid value “[1m/unit_test_log/value/timestamp[0m” - [1m[31mreason[0m: no patterns have a capture named “timestamp” -[36m =[0m [36mnote[0m: the following captures are available: - -[36m =[0m [36mhelp[0m: values are populated from captures in patterns, so at least one pattern must have a capture with this value name -[1m[31m✘ error[0m: invalid value “[1m/unit_test_log/value/workqueue[0m” - [1m[31mreason[0m: no patterns have a capture named “workqueue” -[36m =[0m [36mnote[0m: the following captures are available: - -[36m =[0m [36mhelp[0m: values are populated from captures in patterns, so at least one pattern must have a capture with this value name -[1m[31m✘ error[0m: invalid sample log message: "[03/22/2021 02:00:02 job1074.example.com db.db81.example_events 54026] {\"ELAPSED\":\"0.011\",\"LEVEL\":\"info\",\"MESSAGE\":\"finished in 0.011\\n\",\"PREFIX\":\"YFgyWQriCmsAAofJAAAAHg\",\"ROUTINGKEY\":\"EXAMPLE1366.Example.Events._Publish\"}" - [1m[31mreason[0m: sample does not match any patterns -[36m --> [0m[1mregex101-home/.lnav/formats/installed/unit_test_log.json[0m:26 -[36m =[0m [36mnote[0m: the following shows how each pattern matched this sample: - [37m[40m[03/22/2021 02:00:02 job1074.example.com db.db81.example_events 54026] {"ELAPSED":"0.011","LEVEL":"info","MESSAGE":"finished in 0.011\n","PREFIX":"YFgyWQriCmsAAofJAAAAHg","ROUTINGKEY":"EXAMPLE1366.Example.Events._Publish"}[0m -[36m =[0m [36mnote[0m: [1mstd[0m = “” - -[1m[31m✘ error[0m: invalid sample log message: "[03/22/2021 02:00:02 job1074.example.com db.db81.example_events 54026] {\"ELAPSED\":\"0.011\",\"LEVEL\":\"info\",\"MESSAGE\":\"finished in 0.011\\n\",\"PREFIX\":\"YFgyWQriCmsAAofJAAAAHg\",\"ROUTINGKEY\":\"EXAMPLE1366.Example.Events._Publish\"}" - [1m[31mreason[0m: sample does not match any patterns -[36m --> [0m[1mregex101-home/.lnav/formats/installed/unit_test_log.json[0m:30 -[36m =[0m [36mnote[0m: the following shows how each pattern matched this sample: - [37m[40m[03/22/2021 02:00:02 job1074.example.com db.db81.example_events 54026] {"ELAPSED":"0.011","LEVEL":"info","MESSAGE":"finished in 0.011\n","PREFIX":"YFgyWQriCmsAAofJAAAAHg","ROUTINGKEY":"EXAMPLE1366.Example.Events._Publish"}[0m -[36m =[0m [36mnote[0m: [1mstd[0m = “” - +[1m[31m✘ error[0m: invalid pattern: “[1m/unit_test_log/regex/std[0m” + [1m[31mreason[0m: no timestamp capture found in the pattern +[36m =[0m [36mhelp[0m: all log messages need a timestamp +[1m[31m✘ error[0m: invalid value for property “[1m/unit_test_log/timestamp-field[0m” + [1m[31mreason[0m: “timestamp” was not found in the pattern at [1m/unit_test_log/regex/std[0m +[1m[31m✘ error[0m: invalid value for property “[1m/unit_test_log/timestamp-field[0m” + [1m[31mreason[0m: “timestamp” was not found in the pattern at [1m/unit_test_log/regex/std[0m +[1m[31m✘ error[0m: invalid value for property “[1m/unit_test_log/timestamp-field[0m” + [1m[31mreason[0m: “timestamp” was not found in the pattern at [1m/unit_test_log/regex/std[0m +[1m[31m✘ error[0m: invalid value for property “[1m/unit_test_log/timestamp-field[0m” + [1m[31mreason[0m: “timestamp” was not found in the pattern at [1m/unit_test_log/regex/std[0m +[1m[31m✘ error[0m: invalid value for property “[1m/unit_test_log/timestamp-field[0m” + [1m[31mreason[0m: “timestamp” was not found in the pattern at [1m/unit_test_log/regex/std[0m diff --git a/test/expected/test_regex101.sh_7991a5b617867cf37c9f7baa85ffa425f7d455a2.err b/test/expected/test_regex101.sh_7991a5b617867cf37c9f7baa85ffa425f7d455a2.err index 450b99b..ec9b9c5 100644 --- a/test/expected/test_regex101.sh_7991a5b617867cf37c9f7baa85ffa425f7d455a2.err +++ b/test/expected/test_regex101.sh_7991a5b617867cf37c9f7baa85ffa425f7d455a2.err @@ -1,5 +1,5 @@ [1m[31m✘ error[0m: expecting an operation to perform on the [1mstd[0m regex using regex101.com [36m =[0m [36mhelp[0m: the available subcommands are: - • [1m[36mpush[0m: create/update an entry for this regex on regex101.com - • [1m[36mpull[0m: create a patch format file for this regular expression based on the entry in regex101.com - • [1m[36mdelete[0m: delete the entry regex101.com that was created by a push operation + [33m•[0m [1m[36mpush[0m: create/update an entry for this regex on regex101.com + [33m•[0m [1m[36mpull[0m: create a patch format file for this regular expression based on the entry in regex101.com + [33m•[0m [1m[36mdelete[0m: delete the entry regex101.com that was created by a push operation diff --git a/test/expected/test_regex101.sh_8e93a3b6b941847c71409a297779fbb0a6666a51.err b/test/expected/test_regex101.sh_8e93a3b6b941847c71409a297779fbb0a6666a51.err index db47111..e3e6069 100644 --- a/test/expected/test_regex101.sh_8e93a3b6b941847c71409a297779fbb0a6666a51.err +++ b/test/expected/test_regex101.sh_8e93a3b6b941847c71409a297779fbb0a6666a51.err @@ -1,3 +1,3 @@ [1m[31m✘ error[0m: expecting an operation to perform on the [1mstd[0m regular expression [36m =[0m [36mhelp[0m: the available subcommands are: - • [1m[36mregex101[0m: use regex101.com to edit this regular expression + [33m•[0m [1m[36mregex101[0m: use regex101.com to edit this regular expression diff --git a/test/expected/test_regex101.sh_cbd859487e4ea011cd6e0f0f114d70158bfd8b43.out b/test/expected/test_regex101.sh_cbd859487e4ea011cd6e0f0f114d70158bfd8b43.out index c06f523..b4c5d30 100644 --- a/test/expected/test_regex101.sh_cbd859487e4ea011cd6e0f0f114d70158bfd8b43.out +++ b/test/expected/test_regex101.sh_cbd859487e4ea011cd6e0f0f114d70158bfd8b43.out @@ -4,30 +4,35 @@ "description": "Format file generated from regex101 entry -- https://regex101.com/r/zpEnjV/2", "regex": { "std": { - "pattern": "\\[(?<timestamp>\\d+\\/\\d+\\/\\d+ \\d+:\\d+:\\d+) (?<jobserver>[\\w.]+) (?<workqueue>[\\w.]+) (?<processid>\\d+)\\] (?<body>.*)$" + "pattern": "(?<timestamp>[A-Za-z]+ [A-Za-z]+ +[0-9]+ [0-9]+:[0-9]+:[0-9]+ [0-9]+) : (?<level>[A-Z][a-z]+): (?<seq>\\([0-9]+\\) )?(?<body>.*)$" } }, "value": { - "jobserver": { + "level": { "kind": "string" }, - "processid": { + "seq": { "kind": "string" }, "timestamp": { "kind": "string" - }, - "workqueue": { - "kind": "string" } }, "sample": [ { - "line": "[03/22/2021 02:00:02 job1074.example.com db.db81.example_events 54026] {\"ELAPSED\":\"0.011\",\"LEVEL\":\"info\",\"MESSAGE\":\"finished in 0.011\\n\",\"PREFIX\":\"YFgyWQriCmsAAofJAAAAHg\",\"ROUTINGKEY\":\"EXAMPLE1366.Example.Events._Publish\"}" + "line": "Fri Jul 15 23:12:58 2016 : Info: Loaded virtual server <default>" + }, + { + "line": "Fri Jul 15 23:12:58 2016 : Warning: Ignoring \"sql\" (see raddb/mods-available/README.rst)" + }, + { + "line": "Wed Oct 18 22:17:43 2023 : Info: (102211) radutmp: NAS wifi-router rebooted (Accounting-Off packet seen)" + }, + { + "line": "Fri Oct 20 18:50:05 2023 : Auth: (105290) Login OK: [iphonese3] (from client wifi-router port 0 via TLS tunnel)" }, { - "description": "sample 1", - "line": "[03/22/2021 02:00:02 job1074.example.com db.db81.example_events 54026] {\"ELAPSED\":\"0.011\",\"LEVEL\":\"info\",\"MESSAGE\":\"finished in 0.011\\n\",\"PREFIX\":\"YFgyWQriCmsAAofJAAAAHg\",\"ROUTINGKEY\":\"EXAMPLE1366.Example.Events._Publish\"}" + "line": "Fri Oct 20 18:50:05 2023 : Auth: (105291) Login OK: [iphonese3] (from client wifi-router port 197 cli 22-2E-28-D6-F5-CC)" } ] } diff --git a/test/expected/test_regex101.sh_d84597760285c3964b258726341e018f6cd49954.err b/test/expected/test_regex101.sh_d84597760285c3964b258726341e018f6cd49954.err index 85a97ba..ea8c31d 100644 --- a/test/expected/test_regex101.sh_d84597760285c3964b258726341e018f6cd49954.err +++ b/test/expected/test_regex101.sh_d84597760285c3964b258726341e018f6cd49954.err @@ -2,6 +2,6 @@ [36m =[0m [36mnote[0m: this regex is currently associated with the following regex101.com entry: [1mhttps://regex101.com/r/zpEnjV[0m [36m =[0m [36mhelp[0m: the available subcommands are: - • [1m[36mpush[0m: create/update an entry for this regex on regex101.com - • [1m[36mpull[0m: create a patch format file for this regular expression based on the entry in regex101.com - • [1m[36mdelete[0m: delete the entry regex101.com that was created by a push operation + [33m•[0m [1m[36mpush[0m: create/update an entry for this regex on regex101.com + [33m•[0m [1m[36mpull[0m: create a patch format file for this regular expression based on the entry in regex101.com + [33m•[0m [1m[36mdelete[0m: delete the entry regex101.com that was created by a push operation diff --git a/test/expected/test_sessions.sh_33ab03afda2c9331a289fcbd1abdbc1c37b2e87b.err b/test/expected/test_sessions.sh_33ab03afda2c9331a289fcbd1abdbc1c37b2e87b.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sessions.sh_33ab03afda2c9331a289fcbd1abdbc1c37b2e87b.err diff --git a/test/expected/test_sessions.sh_33ab03afda2c9331a289fcbd1abdbc1c37b2e87b.out b/test/expected/test_sessions.sh_33ab03afda2c9331a289fcbd1abdbc1c37b2e87b.out new file mode 100644 index 0000000..2a19a15 --- /dev/null +++ b/test/expected/test_sessions.sh_33ab03afda2c9331a289fcbd1abdbc1c37b2e87b.out @@ -0,0 +1,11 @@ +2011-11-03 00:20:39.348046 ⋮ 192.168.2.76 52099 192.150.187.43 80 2 GET www.bro-ids.org /frames/header.html http://git.bro-ids.org/ 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 3516 200 OK - - (empty) - - - - - - Fzea5XNhn9eNRMvx7 - text/html +2011-11-03 00:20:39.448670 ⋮ 192.168.2.76 52109 192.150.187.43 80 1 GET www.bro-ids.org /frames/footer.html http://git.bro-ids.org/ 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 6695 200 OK - - (empty) - - - - - - FkCp6k4tqksK3tiSy7 - text/html +2011-11-03 00:20:39.463465 ⋮ 192.168.2.76 52099 192.150.187.43 80 3 GET www.bro-ids.org /images/logo-bro-small.png http://www.bro-ids.org/frames/header.html 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 6075 200 OK - - (empty) - - - - - - Fw6FlF4WtotJFNXmHb - image/png +2011-11-03 00:20:39.786857 ⋮ 192.168.2.76 52110 199.59.148.201 80 1 GET search.twitter.com /search.json?&q=#BroIDS&rpp=2&callback=jsonp1320279639636 http://www.bro-ids.org/frames/footer.html 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 1543 200 OK - - (empty) - - - - - - Feut0t346XEHsQ0OC7 - text/plain +2011-11-03 00:21:12.372857 ⋮ 192.168.2.76 52111 192.150.187.43 80 1 GET www.bro-ids.org /research/index.html http://www.bro-ids.org/frames/header.html 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 47728 200 OK - - (empty) - - - - - - FOze0l2aT79uPyMiv7 - text/html +2011-11-03 00:21:13.121725 ⋮ 192.168.2.76 52087 209.85.145.95 80 7 GET ajax.googleapis.com /ajax/services/feed/load?v=1.0&callback=jsonp1320279672539&q=http://blog.bro-ids.org/feeds/posts/default&num=5 http://www.bro-ids.org/research/index.html 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 6584 200 OK - - (empty) - - - - - - FXEXQEMH8DrEuAdg8 - text/plain +2011-11-03 00:21:13.123842 ⋮ 192.168.2.76 52089 74.125.225.83 80 4 GET www.google.com /uds/css/clear.gif http://www.google.com/uds/api/search/1.0/473bb688d0c0dd605119ad983f5a4386/default+en.css 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 0 304 Not Modified - - (empty) - - - - - - - - - +2011-11-03 00:21:13.123121 ⋮ 192.168.2.76 52084 74.125.225.83 80 9 GET www.google.com /uds/css/small-logo.png http://www.bro-ids.org/research/index.html 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 0 304 Not Modified - - (empty) - - - - - - - - - +2011-11-03 00:21:13.198815 ⋮ 192.168.2.76 52112 199.59.148.201 80 1 GET search.twitter.com /search.json?&q=#BroIDS&rpp=2&callback=jsonp1320279672537 http://www.bro-ids.org/research/index.html 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 1543 200 OK - - (empty) - - - - - - Fzjgwn8xXem3Esvk - text/plain +#close 2017-04-16-21-36-10 +2011-11-03 00:21:13.204466 ⋮ 192.168.2.76 52113 199.59.148.20 80 1 GET api.twitter.com /1/statuses/user_timeline.json?screen_name=Bro_IDS&count=2&include_rts=1&callback=jsonp1320279672538 http://www.bro-ids.org/research/index.html 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 6095 200 OK - - (empty) - - - - - - FAVIuu2XZQyVznfnq8 - text/plain diff --git a/test/expected/test_sessions.sh_639b83ce8f67975dfdc7086946ec287b43b6fa8c.err b/test/expected/test_sessions.sh_639b83ce8f67975dfdc7086946ec287b43b6fa8c.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sessions.sh_639b83ce8f67975dfdc7086946ec287b43b6fa8c.err diff --git a/test/expected/test_sessions.sh_639b83ce8f67975dfdc7086946ec287b43b6fa8c.out b/test/expected/test_sessions.sh_639b83ce8f67975dfdc7086946ec287b43b6fa8c.out new file mode 100644 index 0000000..4023598 --- /dev/null +++ b/test/expected/test_sessions.sh_639b83ce8f67975dfdc7086946ec287b43b6fa8c.out @@ -0,0 +1,89 @@ +[ + { + "top_meta": { + "time": "2009-07-20 22:59:29.000", + "file": "{test_dir}/logfile_access_log.0", + "anchor": "#middle", + "breadcrumbs": [ + { + "display_value": "⊑ middle", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "middle" + } + ] + }, + { + "display_value": "2009-07-20T22:59:29.000", + "search_placeholder": "(Enter an absolute or relative time)", + "possibilities": [ + { + "display_value": "-1 day" + }, + { + "display_value": "-1h" + }, + { + "display_value": "-30m" + }, + { + "display_value": "-15m" + }, + { + "display_value": "-5m" + }, + { + "display_value": "-1m" + }, + { + "display_value": "+1m" + }, + { + "display_value": "+5m" + }, + { + "display_value": "+15m" + }, + { + "display_value": "+30m" + }, + { + "display_value": "+1h" + }, + { + "display_value": "+1 day" + } + ] + }, + { + "display_value": "access_log", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "access_log" + } + ] + }, + { + "display_value": "logfile_access_log.0[2]", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "logfile_access_log.0" + } + ] + }, + { + "display_value": "192.168.202.254", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "192.168.202.254" + } + ] + } + ] + } + } +] diff --git a/test/expected/test_sessions.sh_6d87ff483d5785c58fb271a405ff1c35e4f83cd9.out b/test/expected/test_sessions.sh_6d87ff483d5785c58fb271a405ff1c35e4f83cd9.out index eb9e677..8b72915 100644 --- a/test/expected/test_sessions.sh_6d87ff483d5785c58fb271a405ff1c35e4f83cd9.out +++ b/test/expected/test_sessions.sh_6d87ff483d5785c58fb271a405ff1c35e4f83cd9.out @@ -3,8 +3,8 @@ # '|/path/to/this/file' in lnav to execute this file and # restore the state of the session. -;SELECT raise_error('This session export was made with a newer version of lnav, please upgrade to ' || '0.11.2' || ' or later') - WHERE lnav_version() < '0.11.2' COLLATE naturalcase +;SELECT raise_error('This session export was made with a newer version of lnav, please upgrade to ' || '0.12.2' || ' or later') + WHERE lnav_version() < '0.12.2' COLLATE naturalcase # The files loaded into the session were: @@ -21,7 +21,7 @@ # comments, and tags that were added in the session. ;SELECT total_changes() AS before_mark_changes -;UPDATE all_logs SET log_mark = 1, log_comment = NULL, log_tags = NULL WHERE log_time_msecs = 1248130769000 AND log_format = 'access_log' AND log_line_hash = 'v1:b05c1bdfe75cde41e151c89087e31951' +;UPDATE all_logs SET log_mark = 1, log_comment = NULL, log_tags = NULL, log_annotations = NULL WHERE log_time_msecs = 1248130769000 AND log_format = 'access_log' AND log_line_hash = 'v1:b05c1bdfe75cde41e151c89087e31951' ;SELECT 1 - (total_changes() - $before_mark_changes) AS failed_mark_changes ;SELECT echoln(printf('%sERROR%s: failed to restore %d bookmarks', diff --git a/test/expected/test_sessions.sh_8732dad5481be991ca7f291d9c5451c7b016cea7.out b/test/expected/test_sessions.sh_8732dad5481be991ca7f291d9c5451c7b016cea7.out deleted file mode 100644 index a1e2e6f..0000000 --- a/test/expected/test_sessions.sh_8732dad5481be991ca7f291d9c5451c7b016cea7.out +++ /dev/null @@ -1,33 +0,0 @@ -#!lnav -Nf -# This file is an export of an lnav session. You can type -# '|/path/to/this/file' in lnav to execute this file and -# restore the state of the session. - -;SELECT raise_error('This session export was made with a newer version of lnav, please upgrade to ' || '0.11.0' || ' or later') - WHERE lnav_version() < '0.11.0' COLLATE naturalcase - -# The files loaded into the session were: - - -;INSERT OR IGNORE INTO environ (name, value) VALUES ('LOG_DIR_0', '{top_srcdir_parent}') -:open $LOG_DIR_0/lnav/test/logfile_access_log.0 - -:rebuild - - -# The following SQL statements will restore the bookmarks, -# comments, and tags that were added in the session. - -;SELECT total_changes() AS before_mark_changes -;UPDATE all_logs SET log_mark = 1, log_comment = NULL, log_tags = NULL WHERE log_time_msecs = 1248130769000 AND log_format = 'access_log' AND log_line_hash = 'v1:b05c1bdfe75cde41e151c89087e31951' - -;SELECT 1 - (total_changes() - $before_mark_changes) AS failed_mark_changes -;SELECT echoln(printf('%sERROR%s: failed to restore %d bookmarks', - $ansi_red, $ansi_norm, $failed_mark_changes)) - WHERE $failed_mark_changes != 0 - - -# The following commands will restore the state of the LOG view. - -:switch-to-view log -:goto 1 diff --git a/test/expected/test_sessions.sh_9978aaa475513f9981840e612f853a7707ffcf90.out b/test/expected/test_sessions.sh_9978aaa475513f9981840e612f853a7707ffcf90.out index 3c84ede..20f826b 100644 --- a/test/expected/test_sessions.sh_9978aaa475513f9981840e612f853a7707ffcf90.out +++ b/test/expected/test_sessions.sh_9978aaa475513f9981840e612f853a7707ffcf90.out @@ -9,3 +9,4 @@ db schema pretty spectro +gantt diff --git a/test/expected/test_sessions.sh_ba1ded92531350668301431db64df2d2f4a2e9ee.err b/test/expected/test_sessions.sh_ba1ded92531350668301431db64df2d2f4a2e9ee.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sessions.sh_ba1ded92531350668301431db64df2d2f4a2e9ee.err diff --git a/test/expected/test_sessions.sh_ba1ded92531350668301431db64df2d2f4a2e9ee.out b/test/expected/test_sessions.sh_ba1ded92531350668301431db64df2d2f4a2e9ee.out new file mode 100644 index 0000000..0e301c3 --- /dev/null +++ b/test/expected/test_sessions.sh_ba1ded92531350668301431db64df2d2f4a2e9ee.out @@ -0,0 +1,5 @@ +192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7" + ├ org.lnav.test: + ╰ Hello, World! +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7" +192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7" diff --git a/test/expected/test_sessions.sh_e57697be4d81ac8e5b2b2fa84f919b2d494978f3.err b/test/expected/test_sessions.sh_e57697be4d81ac8e5b2b2fa84f919b2d494978f3.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sessions.sh_e57697be4d81ac8e5b2b2fa84f919b2d494978f3.err diff --git a/test/expected/test_sessions.sh_e57697be4d81ac8e5b2b2fa84f919b2d494978f3.out b/test/expected/test_sessions.sh_e57697be4d81ac8e5b2b2fa84f919b2d494978f3.out new file mode 100644 index 0000000..2a19a15 --- /dev/null +++ b/test/expected/test_sessions.sh_e57697be4d81ac8e5b2b2fa84f919b2d494978f3.out @@ -0,0 +1,11 @@ +2011-11-03 00:20:39.348046 ⋮ 192.168.2.76 52099 192.150.187.43 80 2 GET www.bro-ids.org /frames/header.html http://git.bro-ids.org/ 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 3516 200 OK - - (empty) - - - - - - Fzea5XNhn9eNRMvx7 - text/html +2011-11-03 00:20:39.448670 ⋮ 192.168.2.76 52109 192.150.187.43 80 1 GET www.bro-ids.org /frames/footer.html http://git.bro-ids.org/ 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 6695 200 OK - - (empty) - - - - - - FkCp6k4tqksK3tiSy7 - text/html +2011-11-03 00:20:39.463465 ⋮ 192.168.2.76 52099 192.150.187.43 80 3 GET www.bro-ids.org /images/logo-bro-small.png http://www.bro-ids.org/frames/header.html 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 6075 200 OK - - (empty) - - - - - - Fw6FlF4WtotJFNXmHb - image/png +2011-11-03 00:20:39.786857 ⋮ 192.168.2.76 52110 199.59.148.201 80 1 GET search.twitter.com /search.json?&q=#BroIDS&rpp=2&callback=jsonp1320279639636 http://www.bro-ids.org/frames/footer.html 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 1543 200 OK - - (empty) - - - - - - Feut0t346XEHsQ0OC7 - text/plain +2011-11-03 00:21:12.372857 ⋮ 192.168.2.76 52111 192.150.187.43 80 1 GET www.bro-ids.org /research/index.html http://www.bro-ids.org/frames/header.html 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 47728 200 OK - - (empty) - - - - - - FOze0l2aT79uPyMiv7 - text/html +2011-11-03 00:21:13.121725 ⋮ 192.168.2.76 52087 209.85.145.95 80 7 GET ajax.googleapis.com /ajax/services/feed/load?v=1.0&callback=jsonp1320279672539&q=http://blog.bro-ids.org/feeds/posts/default&num=5 http://www.bro-ids.org/research/index.html 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 6584 200 OK - - (empty) - - - - - - FXEXQEMH8DrEuAdg8 - text/plain +2011-11-03 00:21:13.123842 ⋮ 192.168.2.76 52089 74.125.225.83 80 4 GET www.google.com /uds/css/clear.gif http://www.google.com/uds/api/search/1.0/473bb688d0c0dd605119ad983f5a4386/default+en.css 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 0 304 Not Modified - - (empty) - - - - - - - - - +2011-11-03 00:21:13.123121 ⋮ 192.168.2.76 52084 74.125.225.83 80 9 GET www.google.com /uds/css/small-logo.png http://www.bro-ids.org/research/index.html 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 0 304 Not Modified - - (empty) - - - - - - - - - +2011-11-03 00:21:13.198815 ⋮ 192.168.2.76 52112 199.59.148.201 80 1 GET search.twitter.com /search.json?&q=#BroIDS&rpp=2&callback=jsonp1320279672537 http://www.bro-ids.org/research/index.html 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 1543 200 OK - - (empty) - - - - - - Fzjgwn8xXem3Esvk - text/plain +#close 2017-04-16-21-36-10 +2011-11-03 00:21:13.204466 ⋮ 192.168.2.76 52113 199.59.148.20 80 1 GET api.twitter.com /1/statuses/user_timeline.json?screen_name=Bro_IDS&count=2&include_rts=1&callback=jsonp1320279672538 http://www.bro-ids.org/research/index.html 1.1 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 0 6095 200 OK - - (empty) - - - - - - FAVIuu2XZQyVznfnq8 - text/plain diff --git a/test/expected/test_sessions.sh_e988439404f2e97604641c8d087855f3efe052e4.err b/test/expected/test_sessions.sh_e988439404f2e97604641c8d087855f3efe052e4.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sessions.sh_e988439404f2e97604641c8d087855f3efe052e4.err diff --git a/test/expected/test_sessions.sh_e39648f425c3f291c9d1c0d14595a019abd0cb48.out b/test/expected/test_sessions.sh_e988439404f2e97604641c8d087855f3efe052e4.out index 0473e9d..05b7505 100644 --- a/test/expected/test_sessions.sh_e39648f425c3f291c9d1c0d14595a019abd0cb48.out +++ b/test/expected/test_sessions.sh_e988439404f2e97604641c8d087855f3efe052e4.out @@ -3,12 +3,13 @@ # '|/path/to/this/file' in lnav to execute this file and # restore the state of the session. -;SELECT raise_error('This session export was made with a newer version of lnav, please upgrade to ' || '0.11.0' || ' or later') - WHERE lnav_version() < '0.11.0' COLLATE naturalcase +;SELECT raise_error('This session export was made with a newer version of lnav, please upgrade to ' || '0.12.2' || ' or later') + WHERE lnav_version() < '0.12.2' COLLATE naturalcase # The files loaded into the session were: +# Set this environment variable to override this value or edit this script. ;INSERT OR IGNORE INTO environ (name, value) VALUES ('LOG_DIR_0', '{test_dir}') :open $LOG_DIR_0/support-dump/logfile_access_log.0 @@ -19,7 +20,7 @@ # comments, and tags that were added in the session. ;SELECT total_changes() AS before_mark_changes -;UPDATE all_logs SET log_mark = 1, log_comment = NULL, log_tags = NULL WHERE log_time_msecs = 1248130769000 AND log_format = 'access_log' AND log_line_hash = 'v1:b05c1bdfe75cde41e151c89087e31951' +;UPDATE all_logs SET log_mark = 0, log_comment = NULL, log_tags = NULL, log_annotations = '{"org.lnav.test":"Hello, <span style=\"color: #f00\">World</span>!\n"}' WHERE log_time_msecs = 1248130766000 AND log_format = 'access_log' AND log_line_hash = 'v1:3f7e0f10f2473f83b2b4eacccfc9b4e2' ;SELECT 1 - (total_changes() - $before_mark_changes) AS failed_mark_changes ;SELECT echoln(printf('%sERROR%s: failed to restore %d bookmarks', @@ -27,7 +28,13 @@ WHERE $failed_mark_changes != 0 +# The following SQL statements will restore the filters that +# were added in the session. + +;REPLACE INTO lnav_view_filters (view_name, enabled, type, language, pattern) VALUES ('log', 0, 'in', 'regex', 'credential status') + + # The following commands will restore the state of the LOG view. :switch-to-view log -:goto 1 +:goto 0 diff --git a/test/expected/test_shlexer.sh_14dd967cb2af90899c9e5e45d00b676b5a3163aa.out b/test/expected/test_shlexer.sh_14dd967cb2af90899c9e5e45d00b676b5a3163aa.out index fd072bc..0dd4080 100644 --- a/test/expected/test_shlexer.sh_14dd967cb2af90899c9e5e45d00b676b5a3163aa.out +++ b/test/expected/test_shlexer.sh_14dd967cb2af90899c9e5e45d00b676b5a3163aa.out @@ -1,7 +1,8 @@ ~ foo til ^ wsp ^ +eof ^ eval -- ../test foo split: - 0 -- ../test - 1 -- foo + 0 ^ -- ../test + 1 ^-^ -- foo diff --git a/test/expected/test_shlexer.sh_2781f5dd570580cbe746ad91b58a28b8371283b3.out b/test/expected/test_shlexer.sh_2781f5dd570580cbe746ad91b58a28b8371283b3.out index b7ba9e8..2081fa3 100644 --- a/test/expected/test_shlexer.sh_2781f5dd570580cbe746ad91b58a28b8371283b3.out +++ b/test/expected/test_shlexer.sh_2781f5dd570580cbe746ad91b58a28b8371283b3.out @@ -1,7 +1,8 @@ ~nonexistent/bar baz til ^----------^ wsp ^ +eof ^ eval -- ~nonexistent/bar baz split: - 0 -- ~nonexistent/bar - 1 -- baz + 0 ^--------------^ -- ~nonexistent/bar + 1 ^-^ -- baz diff --git a/test/expected/test_shlexer.sh_2af44d06fc137a77bc230be86376ccad23a2806b.out b/test/expected/test_shlexer.sh_2af44d06fc137a77bc230be86376ccad23a2806b.out index 85cca78..8d6bcc0 100644 --- a/test/expected/test_shlexer.sh_2af44d06fc137a77bc230be86376ccad23a2806b.out +++ b/test/expected/test_shlexer.sh_2af44d06fc137a77bc230be86376ccad23a2806b.out @@ -1,2 +1,2 @@ \ -err ^ +err ^ -- invalid escape diff --git a/test/expected/test_shlexer.sh_6858e530a8ecb77cbaec1a7507768dd5a1942ac9.out b/test/expected/test_shlexer.sh_6858e530a8ecb77cbaec1a7507768dd5a1942ac9.out index f677b17..6869e6d 100644 --- a/test/expected/test_shlexer.sh_6858e530a8ecb77cbaec1a7507768dd5a1942ac9.out +++ b/test/expected/test_shlexer.sh_6858e530a8ecb77cbaec1a7507768dd5a1942ac9.out @@ -1,5 +1,6 @@ ${FOO} qrf ^----^ +eof ^ eval -- bar split: - 0 -- bar + 0 ^----^ -- bar diff --git a/test/expected/test_shlexer.sh_7f31e16ea2469da7a4328c93c7bcc8e109f84d2f.out b/test/expected/test_shlexer.sh_7f31e16ea2469da7a4328c93c7bcc8e109f84d2f.out index 630eb1c..46009ec 100644 --- a/test/expected/test_shlexer.sh_7f31e16ea2469da7a4328c93c7bcc8e109f84d2f.out +++ b/test/expected/test_shlexer.sh_7f31e16ea2469da7a4328c93c7bcc8e109f84d2f.out @@ -2,6 +2,7 @@ dst ^ qrf ^----^ den ^ +eof ^ eval -- "abc xyz 123" split: - 0 -- abc xyz 123 + 0 ^--------------^ -- abc xyz 123 diff --git a/test/expected/test_shlexer.sh_8aeebcdef56edd783579eaaddaff7c5cc127bb86.out b/test/expected/test_shlexer.sh_8aeebcdef56edd783579eaaddaff7c5cc127bb86.out index 759e75b..5eda1e5 100644 --- a/test/expected/test_shlexer.sh_8aeebcdef56edd783579eaaddaff7c5cc127bb86.out +++ b/test/expected/test_shlexer.sh_8aeebcdef56edd783579eaaddaff7c5cc127bb86.out @@ -1,6 +1,7 @@ 'abc $DEF 123' sst ^ sen ^ +eof ^ eval -- 'abc $DEF 123' split: - 0 -- abc $DEF 123 + 0 ^------------^ -- abc $DEF 123 diff --git a/test/expected/test_shlexer.sh_8e9addb0e5b6f4254d81dd89ecf12783109644bb.out b/test/expected/test_shlexer.sh_8e9addb0e5b6f4254d81dd89ecf12783109644bb.out index 2cbee1a..6ea7ec2 100644 --- a/test/expected/test_shlexer.sh_8e9addb0e5b6f4254d81dd89ecf12783109644bb.out +++ b/test/expected/test_shlexer.sh_8e9addb0e5b6f4254d81dd89ecf12783109644bb.out @@ -2,6 +2,7 @@ dst ^ ref ^--^ den ^ +eof ^ eval -- "abc xyz 123" split: - 0 -- abc xyz 123 + 0 ^------------^ -- abc xyz 123 diff --git a/test/expected/test_shlexer.sh_90961e6728e96d0a44535a6c9907cc990c10316c.out b/test/expected/test_shlexer.sh_90961e6728e96d0a44535a6c9907cc990c10316c.out index 9a2b2a7..1fc686b 100644 --- a/test/expected/test_shlexer.sh_90961e6728e96d0a44535a6c9907cc990c10316c.out +++ b/test/expected/test_shlexer.sh_90961e6728e96d0a44535a6c9907cc990c10316c.out @@ -1,6 +1,7 @@ "def" dst ^ den ^ +eof ^ eval -- "def" split: - 0 -- def + 0 ^---^ -- def diff --git a/test/expected/test_shlexer.sh_95c4e861804a5434900fdb4d67b149d1baa2edf4.out b/test/expected/test_shlexer.sh_95c4e861804a5434900fdb4d67b149d1baa2edf4.out index 30a7791..465073b 100644 --- a/test/expected/test_shlexer.sh_95c4e861804a5434900fdb4d67b149d1baa2edf4.out +++ b/test/expected/test_shlexer.sh_95c4e861804a5434900fdb4d67b149d1baa2edf4.out @@ -1,5 +1,6 @@ $FOO ref ^--^ +eof ^ eval -- bar split: - 0 -- bar + 0 ^--^ -- bar diff --git a/test/expected/test_shlexer.sh_d7fe5f6b8fc9ba00539fad0fa0bfb08319d8b04b.out b/test/expected/test_shlexer.sh_d7fe5f6b8fc9ba00539fad0fa0bfb08319d8b04b.out index a2ae7ff..8feba4e 100644 --- a/test/expected/test_shlexer.sh_d7fe5f6b8fc9ba00539fad0fa0bfb08319d8b04b.out +++ b/test/expected/test_shlexer.sh_d7fe5f6b8fc9ba00539fad0fa0bfb08319d8b04b.out @@ -1,6 +1,7 @@ 'abc' sst ^ sen ^ +eof ^ eval -- 'abc' split: - 0 -- abc + 0 ^---^ -- abc diff --git a/test/expected/test_shlexer.sh_d9d46422a913e3a06ddbd262933ef5352c30e68f.out b/test/expected/test_shlexer.sh_d9d46422a913e3a06ddbd262933ef5352c30e68f.out index def9d5c..5f35534 100644 --- a/test/expected/test_shlexer.sh_d9d46422a913e3a06ddbd262933ef5352c30e68f.out +++ b/test/expected/test_shlexer.sh_d9d46422a913e3a06ddbd262933ef5352c30e68f.out @@ -2,8 +2,9 @@ wsp ^ ref ^--^ wsp ^^ +eof ^ eval -- abc xyz 123 split: - 0 -- abc - 1 -- xyz - 2 -- 123 + 0 ^-^ -- abc + 1 ^--^ -- xyz + 2 ^-^ -- 123 diff --git a/test/expected/test_shlexer.sh_e0599f0b53d1bd27af767113853f8e84291f137d.out b/test/expected/test_shlexer.sh_e0599f0b53d1bd27af767113853f8e84291f137d.out index 9b84999..eece1b6 100644 --- a/test/expected/test_shlexer.sh_e0599f0b53d1bd27af767113853f8e84291f137d.out +++ b/test/expected/test_shlexer.sh_e0599f0b53d1bd27af767113853f8e84291f137d.out @@ -1,6 +1,7 @@ '"' sst ^ sen ^ +eof ^ eval -- '"' split: - 0 -- " + 0 ^-^ -- " diff --git a/test/expected/test_shlexer.sh_e8fa2239ab17e7563d0c524f5400a79d6ff8bfda.out b/test/expected/test_shlexer.sh_e8fa2239ab17e7563d0c524f5400a79d6ff8bfda.out index a668d4d..41a0f64 100644 --- a/test/expected/test_shlexer.sh_e8fa2239ab17e7563d0c524f5400a79d6ff8bfda.out +++ b/test/expected/test_shlexer.sh_e8fa2239ab17e7563d0c524f5400a79d6ff8bfda.out @@ -1,6 +1,7 @@ "'" dst ^ den ^ +eof ^ eval -- "'" split: - 0 -- ' + 0 ^-^ -- ' diff --git a/test/expected/test_shlexer.sh_e99fe1cde36b85ebbab86ca820f55ec861cdc20b.err b/test/expected/test_shlexer.sh_e99fe1cde36b85ebbab86ca820f55ec861cdc20b.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_shlexer.sh_e99fe1cde36b85ebbab86ca820f55ec861cdc20b.err diff --git a/test/expected/test_shlexer.sh_e99fe1cde36b85ebbab86ca820f55ec861cdc20b.out b/test/expected/test_shlexer.sh_e99fe1cde36b85ebbab86ca820f55ec861cdc20b.out new file mode 100644 index 0000000..9a7083d --- /dev/null +++ b/test/expected/test_shlexer.sh_e99fe1cde36b85ebbab86ca820f55ec861cdc20b.out @@ -0,0 +1,6 @@ + abc +wsp ^ +eof ^ +eval -- abc +split: + 0 ^-^ -- abc diff --git a/test/expected/test_sql.sh_09416e332d9b2f76743836b72e71b6e4492e594e.err b/test/expected/test_sql.sh_09416e332d9b2f76743836b72e71b6e4492e594e.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_09416e332d9b2f76743836b72e71b6e4492e594e.err diff --git a/test/expected/test_sql.sh_09416e332d9b2f76743836b72e71b6e4492e594e.out b/test/expected/test_sql.sh_09416e332d9b2f76743836b72e71b6e4492e594e.out new file mode 100644 index 0000000..4b7bf9a --- /dev/null +++ b/test/expected/test_sql.sh_09416e332d9b2f76743836b72e71b6e4492e594e.out @@ -0,0 +1,3 @@ +group_concat(cs_uri_stem),sc_status +"/vmw/cgi/tramp,/vmw/vSphere/default/vmkernel.gz",200 +/vmw/vSphere/default/vmkboot.gz,404 diff --git a/test/expected/test_sql.sh_0a5d13b62da4cb66a59a51b0240b5fe0b6036b7e.out b/test/expected/test_sql.sh_0a5d13b62da4cb66a59a51b0240b5fe0b6036b7e.out index 386f1e3..332a12e 100644 --- a/test/expected/test_sql.sh_0a5d13b62da4cb66a59a51b0240b5fe0b6036b7e.out +++ b/test/expected/test_sql.sh_0a5d13b62da4cb66a59a51b0240b5fe0b6036b7e.out @@ -1,2 +1,2 @@ -[1m[4m lnav_top_file() [0m +[1m[4m lnav_top_file() [0m[1m[4m [0m {test_dir}/logfile_access_log.0 diff --git a/test/expected/test_sql.sh_13429aed81d7edfd47b57e9cdb8a25c43aff35c4.out b/test/expected/test_sql.sh_13429aed81d7edfd47b57e9cdb8a25c43aff35c4.out index 4acb940..a8b3bc8 100644 --- a/test/expected/test_sql.sh_13429aed81d7edfd47b57e9cdb8a25c43aff35c4.out +++ b/test/expected/test_sql.sh_13429aed81d7edfd47b57e9cdb8a25c43aff35c4.out @@ -1,2 +1,2 @@ -[1m[4mlog_line [0m[1m[4mlog_part [0m[1m[4m log_time [0m[1m[4m[7mlog_idle_msecs [0m[1m[4mlog_level [0m[1m[4mlog_mark [0m[1m[4mlog_comment [0m[1m[4mlog_tags [0m[1m[4mlog_filters [0m[1m[4m c_ip [0m[1m[4m[7mcs_bytes [0m[1m[4mcs_method [0m[1m[4mcs_uri_query [0m[1m[4m cs_uri_stem [0m[1m[4mcs_username [0m[1m[4m[7mcs_vars [0m[1m[4mcs_version [0m[1m[4ms_app [0m[1m[4ms_core [0m[1m[4ms_pid [0m[1m[4ms_req [0m[1m[4m[7ms_runtime [0m[1m[4m[7ms_switches [0m[1m[4ms_worker_reqs [0m[1m[4m[7msc_bytes [0m[1m[4m[7msc_header_bytes [0m[1m[4m[7msc_headers [0m[1m[4msc_status [0m -[1m[7m 0[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m2016-03-13 22:49:12.000[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7minfo [0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m127.0.0.1[0m[1m[7m [0m[1m[7m 696[0m[1m[7m [0m[1m[7mPOST [0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m/update_metrics[0m[1m[7m [0m[1m[7m [0m[1m[7m [0m[1m[7m [0m[1m[7m 38[0m[1m[7m [0m[1m[7mH[0m[1m[7mTTP/1.1 [0m[1m[7m [0m[1m[7m0 [0m[1m[7m [0m[1m[7m [0m[1m[7m3 [0m[1m[7m [0m[1m[7m88185[0m[1m[7m [0m[1m[7m 1[0m[1m[7m [0m[1m[7m 0.129[0m[1m[7m [0m[1m[7m 1[0m[1m[7m [0m[1m[7m 1[0m[1m[7m [0m[1m[7m 47[0m[1m[7m [0m[1m[7m 378[0m[1m[7m [0m[1m[7m 9[0m[1m[7m [0m[1m[7m [0m[1m[7m [0m[1m 200 [0m +[1m[4mlog_line[0m[1m[4m [0m[1m[4m log_time [0m[1m[4m [0m[1m[4mlog_level[0m[1m[4m [0m[1m[4m c_ip [0m[1m[4m [0m[1m[4m[7m cs_bytes [0m[1m[4m [0m[1m[4mcs_method[0m[1m[4m [0m[1m[4mcs_uri_query[0m[1m[4m [0m[1m[4m cs_uri_stem [0m[1m[4m [0m[1m[4mcs_username[0m[1m[4m [0m[1m[4m[7m cs_vars [0m[1m[4m [0m[1m[4mcs_version[0m[1m[4m [0m[1m[4ms_app[0m[1m[4m [0m[1m[4ms_core[0m[1m[4m [0m[1m[4ms_pid[0m[1m[4m [0m[1m[4ms_req[0m[1m[4m [0m[1m[4m[7ms_runtime [0m[1m[4m [0m[1m[4m[7ms_switches[0m[1m[4m [0m[1m[4ms_worker_reqs[0m[1m[4m [0m[1m[4m[7m sc_bytes [0m[1m[4m [0m[1m[4m[7msc_header_bytes[0m[1m[4m [0m[1m[4m[7msc_headers[0m[1m[4m [0m[1m[4msc_status[0m[1m[4m [0m[1m[4mlog_part[0m[1m[4m [0m[1m[4m[7mlog_idle_msecs[0m[1m[4m [0m[1m[4mlog_mark[0m[1m[4m [0m[1m[4mlog_comment[0m[1m[4m [0m[1m[4mlog_tags[0m[1m[4m [0m[1m[4mlog_annotations[0m[1m[4m [0m[1m[4mlog_filters[0m[1m[4m [0m + 0 2016-03-13 22:49:12.000 info 127.0.0.1 [1m[7m 696[0m POST <NULL> /update_metrics [1m[7m 38[0m HTTP/1.1 0 3 88185 1 [1m[7m 0.129[0m [1m[7m 1[0m 1 [1m[7m 47[0m [1m[7m 378[0m [1m[7m 9[0m 200 <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> diff --git a/test/expected/test_sql.sh_19c92996bcc884bfdb70e3d24606cf5070556a74.err b/test/expected/test_sql.sh_19c92996bcc884bfdb70e3d24606cf5070556a74.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_19c92996bcc884bfdb70e3d24606cf5070556a74.err diff --git a/test/expected/test_sql.sh_19c92996bcc884bfdb70e3d24606cf5070556a74.out b/test/expected/test_sql.sh_19c92996bcc884bfdb70e3d24606cf5070556a74.out new file mode 100644 index 0000000..b3c6c23 --- /dev/null +++ b/test/expected/test_sql.sh_19c92996bcc884bfdb70e3d24606cf5070556a74.out @@ -0,0 +1,46 @@ +[ + { + "log_line": 0, + "log_time": "2014-06-15 01:04:52.000", + "log_level": "info", + "contextid": "82e87195d704585501", + "data": "http://localhost:8086|/|<samlp:Response xmlns:samlp=\"urn:oasis:names:tc:SAML:2.0:protocol\" ID=\"s2daac0735bf476f4560aab81104b623bedfb0cbc0\" InResponseTo=\"84cbf2be33f6410bbe55877545a93f02\" Version=\"2.0\" IssueInstant=\"2014-06-15T01:04:52Z\" Destination=\"http://localhost:8086/api/1/rest/admin/org/530e42ccd6f45fd16d0d0717/saml/consume\"><saml:Issuer xmlns:saml=\"urn:oasis:names:tc:SAML:2.0:assertion\">http://openam.vagrant.dev/openam</saml:Issuer><samlp:Status xmlns:samlp=\"urn:oasis:names:tc:SAML:2.0:protocol\">\\n<samlp:StatusCode xmlns:samlp=\"urn:oasis:names:tc:SAML:2.0:protocol\"\\nValue=\"urn:oasis:names:tc:SAML:2.0:status:Success\">\\n</samlp:StatusCode>\\n</samlp:Status><saml:Assertion xmlns:saml=\"urn:oasis:names:tc:SAML:2.0:assertion\" ID=\"s2a0bee0da937e236167e99b209802056033816ac2\" IssueInstant=\"2014-06-15T01:04:52Z\" Version=\"2.0\">\\n<saml:Issuer>http://openam.vagrant.dev/openam</saml:Issuer><ds:Signature xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\">\\n<ds:SignedInfo>\\n<ds:CanonicalizationMethod Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"/>\\n<ds:SignatureMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#rsa-sha1\"/>\\n<ds:Reference URI=\"#s2a0bee0da937e236167e99b209802056033816ac2\">\\n<ds:Transforms>\\n<ds:Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"/>\\n<ds:Transform Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"/>\\n</ds:Transforms>\\n<ds:DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"/>\\n<ds:DigestValue>4uSmVzjovUdQd3px/RcnoxQBsqE=</ds:DigestValue>\\n</ds:Reference>\\n</ds:SignedInfo>\\n<ds:SignatureValue>\\nhm/grge36uA6j1OWif2bTcvVTwESjmuJa27NxepW0AiV5YlcsHDl7RAIk6k/CjsSero3bxGbm56m\\nYncOEi9F1Tu7dS0bfx+vhm/kKTPgwZctf4GWn4qQwP+KeoZywbNj9ShsYJ+zPKzXwN4xBSuPjMxP\\nNf5szzjEWpOndQO/uDs=\\n</ds:SignatureValue>\\n<ds:KeyInfo>\\n<ds:X509Data>\\n<ds:X509Certificate>\\nMIICQDCCAakCBEeNB0swDQYJKoZIhvcNAQEEBQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh\\nbGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMQwwCgYDVQQKEwNTdW4xEDAOBgNVBAsTB09w\\nZW5TU08xDTALBgNVBAMTBHRlc3QwHhcNMDgwMTE1MTkxOTM5WhcNMTgwMTEyMTkxOTM5WjBnMQsw\\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxMLU2FudGEgQ2xhcmExDDAK\\nBgNVBAoTA1N1bjEQMA4GA1UECxMHT3BlblNTTzENMAsGA1UEAxMEdGVzdDCBnzANBgkqhkiG9w0B\\nAQEFAAOBjQAwgYkCgYEArSQc/U75GB2AtKhbGS5piiLkmJzqEsp64rDxbMJ+xDrye0EN/q1U5Of+\\nRkDsaN/igkAvV1cuXEgTL6RlafFPcUX7QxDhZBhsYF9pbwtMzi4A4su9hnxIhURebGEmxKW9qJNY\\nJs0Vo5+IgjxuEWnjnnVgHTs1+mq5QYTA7E6ZyL8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB3Pw/U\\nQzPKTPTYi9upbFXlrAKMwtFf2OW4yvGWWvlcwcNSZJmTJ8ARvVYOMEVNbsT4OFcfu2/PeYoAdiDA\\ncGy/F2Zuj8XJJpuQRSE6PtQqBuDEHjjmOQJ0rV/r8mO1ZCtHRhpZ5zYRjhRC9eCbjx9VrFax0JDC\\n/FfwWigmrW0Y0Q==\\n</ds:X509Certificate>\\n</ds:X509Data>\\n</ds:KeyInfo>\\n</ds:Signature><saml:Subject>\\n<saml:NameID Format=\"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\" NameQualifier=\"http://openam.vagrant.dev/openam\">user@example.com</saml:NameID><saml:SubjectConfirmation Method=\"urn:oasis:names:tc:SAML:2.0:cm:bearer\">\\n<saml:SubjectConfirmationData InResponseTo=\"84cbf2be33f6410bbe55877545a93f02\" NotOnOrAfter=\"2014-06-15T01:14:52Z\" Recipient=\"http://localhost:8086/api/1/rest/admin/org/530e42ccd6f45fd16d0d0717/saml/consume\"/></saml:SubjectConfirmation>\\n</saml:Subject><saml:Conditions NotBefore=\"2014-06-15T00:54:52Z\" NotOnOrAfter=\"2014-06-15T01:14:52Z\">\\n<saml:AudienceRestriction>\\n<saml:Audience>http://localhost:8086</saml:Audience>\\n</saml:AudienceRestriction>\\n</saml:Conditions>\\n<saml:AuthnStatement AuthnInstant=\"2014-06-15T01:00:25Z\" SessionIndex=\"s2f9b4d4b453d12b40ef3905cc959cdb40579c2301\"><saml:AuthnContext><saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef></saml:AuthnContext></saml:AuthnStatement></saml:Assertion></samlp:Response>", + "domain": "dc=openam", + "hostname": "192.168.33.1\t", + "ipaddr": "Not Available", + "loggedby": "cn=dsameuser,ou=DSAME Users,dc=openam", + "loginid": "id=openamuser,ou=user,dc=openam", + "messageid": "SAML2-37", + "modulename": "SAML2.access", + "nameid": "user@example.com", + "log_part": null, + "log_idle_msecs": 0, + "log_mark": 0, + "log_comment": null, + "log_tags": null, + "log_annotations": null, + "log_filters": null + }, + { + "log_line": 1, + "log_time": "2014-06-15 01:04:52.000", + "log_level": "trace", + "contextid": "ec5708a7f199678a01", + "data": "vagrant|/", + "domain": "dc=openam", + "hostname": "127.0.1.1\t", + "ipaddr": "Not Available", + "loggedby": "cn=dsameuser,ou=DSAME Users,dc=openam", + "loginid": "cn=dsameuser,ou=DSAME Users,dc=openam", + "messageid": "COT-22", + "modulename": "COT.access", + "nameid": "Not Available", + "log_part": null, + "log_idle_msecs": 0, + "log_mark": 0, + "log_comment": null, + "log_tags": null, + "log_annotations": null, + "log_filters": null + } +] diff --git a/test/expected/test_sql.sh_1cbb81cfe40ee16332c5c775a74d06b945aa65c2.out b/test/expected/test_sql.sh_1cbb81cfe40ee16332c5c775a74d06b945aa65c2.out index df0e6d7..391a786 100644 --- a/test/expected/test_sql.sh_1cbb81cfe40ee16332c5c775a74d06b945aa65c2.out +++ b/test/expected/test_sql.sh_1cbb81cfe40ee16332c5c775a74d06b945aa65c2.out @@ -1,3 +1,3 @@ -[1m[4mid [0m[1m[4mfirst_name [0m[1m[4mlast_name [0m[1m[4m[7mage [0m -[1m[7m [0m[1m0[0m[1m [0m[1mPhil [0m[1m [0m[1mMyman [0m[1m [0m[1m 30 [0m -[7m 1[0m[7m [0m[7mLem [0m[7m [0m[7mHewitt [0m[7m [0m[7m 35[0m +[1m[4mid[0m[1m[4m [0m[1m[4mfirst_name[0m[1m[4m [0m[1m[4mlast_name[0m[1m[4m [0m[1m[4m[7m age [0m[1m[4m [0m + 0 Phil Myman [7m [0m 30 + 1 Lem Hewitt [7m 35[0m diff --git a/test/expected/test_sql.sh_1f892b85dc9008c7b3bab7fdf8aa372a6d5ae22c.err b/test/expected/test_sql.sh_1f892b85dc9008c7b3bab7fdf8aa372a6d5ae22c.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_1f892b85dc9008c7b3bab7fdf8aa372a6d5ae22c.err diff --git a/test/expected/test_sql.sh_1f892b85dc9008c7b3bab7fdf8aa372a6d5ae22c.out b/test/expected/test_sql.sh_1f892b85dc9008c7b3bab7fdf8aa372a6d5ae22c.out new file mode 100644 index 0000000..2c56abe --- /dev/null +++ b/test/expected/test_sql.sh_1f892b85dc9008c7b3bab7fdf8aa372a6d5ae22c.out @@ -0,0 +1,23 @@ +[ + { + "cs_headers": { + "User-Agent": "Mozilla/5.0 (Linux; Android 4.4.4; SM-G900V Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.59 Mobile Safari/537.36", + "Referer": "http://example.com/Search/SearchResults.pg?informationRecipient.languageCode.c=en", + "Host": "xzy.example.com" + } + }, + { + "cs_headers": { + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36", + "Referer": null, + "Host": "example.hello.com" + } + }, + { + "cs_headers": { + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36", + "Referer": null, + "Host": "hello.example.com" + } + } +] diff --git a/test/expected/test_sql.sh_26ace94793c68c44801e1ec496e7ab6a02304ce3.err b/test/expected/test_sql.sh_26ace94793c68c44801e1ec496e7ab6a02304ce3.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_26ace94793c68c44801e1ec496e7ab6a02304ce3.err diff --git a/test/expected/test_sql.sh_26ace94793c68c44801e1ec496e7ab6a02304ce3.out b/test/expected/test_sql.sh_26ace94793c68c44801e1ec496e7ab6a02304ce3.out new file mode 100644 index 0000000..85a077d --- /dev/null +++ b/test/expected/test_sql.sh_26ace94793c68c44801e1ec496e7ab6a02304ce3.out @@ -0,0 +1,2 @@ +name,content,length(content) +logfile_empty.0,,0 diff --git a/test/expected/test_sql.sh_2a16a6fd0ff235a7877e1ea93b22d873a3609402.err b/test/expected/test_sql.sh_2a16a6fd0ff235a7877e1ea93b22d873a3609402.err index bc74c2d..782fe5e 100644 --- a/test/expected/test_sql.sh_2a16a6fd0ff235a7877e1ea93b22d873a3609402.err +++ b/test/expected/test_sql.sh_2a16a6fd0ff235a7877e1ea93b22d873a3609402.err @@ -1,4 +1,3 @@ -[1m[31m✘ error[0m: call to [1m[4mraise_error[0m[4m([0m[4mmsg[0m[4m)[0m failed - [1m[31mreason[0m: oops! +[1m[31m✘ error[0m: oops! [36m --> [0m[1mcommand-option[0m:1 [36m | [0m[37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40mraise_error[0m[37m[40m([0m[35m[40m'oops!'[0m[37m[40m) [0m diff --git a/test/expected/test_sql.sh_2c60ed41369d667d1e2a563d54f8edf84682e526.err b/test/expected/test_sql.sh_2c60ed41369d667d1e2a563d54f8edf84682e526.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_2c60ed41369d667d1e2a563d54f8edf84682e526.err diff --git a/test/expected/test_sql.sh_2c60ed41369d667d1e2a563d54f8edf84682e526.out b/test/expected/test_sql.sh_2c60ed41369d667d1e2a563d54f8edf84682e526.out new file mode 100644 index 0000000..29ea19f --- /dev/null +++ b/test/expected/test_sql.sh_2c60ed41369d667d1e2a563d54f8edf84682e526.out @@ -0,0 +1,2 @@ +[1m[4mlog_top_line()[0m[1m[4m [0m[1m[4mlog_msg_line()[0m[1m[4m [0m + 1 0 diff --git a/test/expected/test_sql.sh_2ed3f3b18ef4ecc68e4dd3cc8041b61fcf2a59af.err b/test/expected/test_sql.sh_2ed3f3b18ef4ecc68e4dd3cc8041b61fcf2a59af.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_2ed3f3b18ef4ecc68e4dd3cc8041b61fcf2a59af.err diff --git a/test/expected/test_sql.sh_2ed3f3b18ef4ecc68e4dd3cc8041b61fcf2a59af.out b/test/expected/test_sql.sh_2ed3f3b18ef4ecc68e4dd3cc8041b61fcf2a59af.out new file mode 100644 index 0000000..90d743c --- /dev/null +++ b/test/expected/test_sql.sh_2ed3f3b18ef4ecc68e4dd3cc8041b61fcf2a59af.out @@ -0,0 +1,5 @@ +log_line,log_time,log_level,log_hostname,log_msgid,log_pid,log_pri,log_procname,log_struct,log_syslog_tag,syslog_version,log_part,log_idle_msecs,log_mark,log_comment,log_tags,log_annotations,log_filters +0,2007-11-03 09:23:38.000,error,veridian,<NULL>,7998,<NULL>,automount,<NULL>,automount[7998],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +1,2007-11-03 09:23:38.000,info,veridian,<NULL>,16442,<NULL>,automount,<NULL>,automount[16442],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +2,2007-11-03 09:23:38.000,error,veridian,<NULL>,7999,<NULL>,automount,<NULL>,automount[7999],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +3,2007-11-03 09:47:02.000,info,veridian,<NULL>,<NULL>,<NULL>,sudo,<NULL>,sudo,<NULL>,<NULL>,1404000,0,<NULL>,<NULL>,<NULL>,<NULL> diff --git a/test/expected/test_sql.sh_2f15b8a38673ac4db45dc6ed2eafe609c332575b.out b/test/expected/test_sql.sh_2f15b8a38673ac4db45dc6ed2eafe609c332575b.out index df0e6d7..391a786 100644 --- a/test/expected/test_sql.sh_2f15b8a38673ac4db45dc6ed2eafe609c332575b.out +++ b/test/expected/test_sql.sh_2f15b8a38673ac4db45dc6ed2eafe609c332575b.out @@ -1,3 +1,3 @@ -[1m[4mid [0m[1m[4mfirst_name [0m[1m[4mlast_name [0m[1m[4m[7mage [0m -[1m[7m [0m[1m0[0m[1m [0m[1mPhil [0m[1m [0m[1mMyman [0m[1m [0m[1m 30 [0m -[7m 1[0m[7m [0m[7mLem [0m[7m [0m[7mHewitt [0m[7m [0m[7m 35[0m +[1m[4mid[0m[1m[4m [0m[1m[4mfirst_name[0m[1m[4m [0m[1m[4mlast_name[0m[1m[4m [0m[1m[4m[7m age [0m[1m[4m [0m + 0 Phil Myman [7m [0m 30 + 1 Lem Hewitt [7m 35[0m diff --git a/test/expected/test_sql.sh_31df37f254255115611fc321b63374a2fa4a1cd5.out b/test/expected/test_sql.sh_31df37f254255115611fc321b63374a2fa4a1cd5.out index 5118721..2f3d6d4 100644 --- a/test/expected/test_sql.sh_31df37f254255115611fc321b63374a2fa4a1cd5.out +++ b/test/expected/test_sql.sh_31df37f254255115611fc321b63374a2fa4a1cd5.out @@ -1,2 +1,2 @@ -[1m[4m replicate('foobar', 120) [0m +[1m[4m replicate('foobar', 120) [0m[1m[4m [0m foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar⋯oobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar diff --git a/test/expected/test_sql.sh_3445b783808f174b76f55dc6b998f721a1aae271.err b/test/expected/test_sql.sh_3445b783808f174b76f55dc6b998f721a1aae271.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_3445b783808f174b76f55dc6b998f721a1aae271.err diff --git a/test/expected/test_sql.sh_3445b783808f174b76f55dc6b998f721a1aae271.out b/test/expected/test_sql.sh_3445b783808f174b76f55dc6b998f721a1aae271.out new file mode 100644 index 0000000..79125db --- /dev/null +++ b/test/expected/test_sql.sh_3445b783808f174b76f55dc6b998f721a1aae271.out @@ -0,0 +1,83 @@ +log_line,log_part,log_body +0,<NULL>,restart. +1,<NULL>,Invalid query packet. +2,<NULL>,DHCPREQUEST on eth0 to 10.1.10.1 port 67 (xid=0x654a04aa) +3,<NULL>,DHCPNAK from 10.1.10.1 (xid=0x654a04aa) +4,<NULL>,/sbin/dhclient-script : updated /etc/resolv.conf +5,<NULL>,Withdrawing address record for 10.1.10.49 on eth0. +6,<NULL>,Leaving mDNS multicast group on interface eth0.IPv4 with address 10.1.10.49. +7,<NULL>,iface.c: interface_mdns_mcast_join() called but no local address available. +8,<NULL>,Interface eth0.IPv4 no longer relevant for mDNS. +9,<NULL>,DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5 (xid=0x4e17f141) +10,<NULL>,DHCPOFFER from 10.1.10.1 +11,<NULL>,DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x4e17f141) +12,<NULL>,DHCPACK from 10.1.10.1 (xid=0x4e17f141) +13,<NULL>,New relevant interface eth0.IPv4 for mDNS. +14,<NULL>,Joining mDNS multicast group on interface eth0.IPv4 with address 10.1.10.103. +15,<NULL>,Registering new address record for 10.1.10.103 on eth0. +16,<NULL>,Withdrawing address record for 10.1.10.103 on eth0. +17,<NULL>,Leaving mDNS multicast group on interface eth0.IPv4 with address 10.1.10.103. +18,<NULL>,iface.c: interface_mdns_mcast_join() called but no local address available. +19,<NULL>,Interface eth0.IPv4 no longer relevant for mDNS. +20,<NULL>,New relevant interface eth0.IPv4 for mDNS. +21,<NULL>,Joining mDNS multicast group on interface eth0.IPv4 with address 10.1.10.103. +22,<NULL>,Registering new address record for 10.1.10.103 on eth0. +23,<NULL>,/sbin/dhclient-script : updated /etc/resolv.conf +24,10.1.10.103,bound to 10.1.10.103 -- renewal in 54694 seconds. +25,10.1.10.103,Invalid query packet. +26,10.1.10.103,Invalid query packet. +27,10.1.10.103,DHCPREQUEST on eth0 to 10.1.10.1 port 67 (xid=0x4e17f141) +28,10.1.10.103,DHCPACK from 10.1.10.1 (xid=0x4e17f141) +29,10.1.10.103,bound to 10.1.10.103 -- renewal in 8787 seconds. +30,10.1.10.103,Invalid query packet. +31,10.1.10.103,DHCPREQUEST on eth0 to 10.1.10.1 port 67 (xid=0x4e17f141) +32,10.1.10.103,DHCPACK from 10.1.10.1 (xid=0x4e17f141) +33,10.1.10.103,bound to 10.1.10.103 -- renewal in 9938 seconds. +34,10.1.10.103,Invalid query packet. +35,10.1.10.103,DHCPREQUEST on eth0 to 10.1.10.1 port 67 (xid=0x4e17f141) +36,10.1.10.103,DHCPACK from 10.1.10.1 (xid=0x4e17f141) +37,10.1.10.103,bound to 10.1.10.103 -- renewal in 2656 seconds. +38,10.1.10.103,Invalid query packet. +39,10.1.10.103,DHCPREQUEST on eth0 to 10.1.10.1 port 67 (xid=0x4e17f141) +40,10.1.10.103,DHCPACK from 10.1.10.1 (xid=0x4e17f141) +41,10.1.10.103,bound to 10.1.10.103 -- renewal in 15112 seconds. +42,10.1.10.103,Invalid query packet. +43,10.1.10.103,Invalid query packet. +44,10.1.10.103,Invalid query packet. +45,10.1.10.103,DHCPREQUEST on eth0 to 10.1.10.1 port 67 (xid=0x4e17f141) +46,10.1.10.103,DHCPNAK from 10.1.10.1 (xid=0x4e17f141) +47,10.1.10.103,/sbin/dhclient-script : updated /etc/resolv.conf +48,10.1.10.103,Withdrawing address record for 10.1.10.103 on eth0. +49,10.1.10.103,Leaving mDNS multicast group on interface eth0.IPv4 with address 10.1.10.103. +50,10.1.10.103,iface.c: interface_mdns_mcast_join() called but no local address available. +51,10.1.10.103,Interface eth0.IPv4 no longer relevant for mDNS. +52,10.1.10.103,DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5 (xid=0xd16b79d) +53,10.1.10.103,DHCPOFFER from 10.1.10.1 +54,10.1.10.103,DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0xd16b79d) +55,10.1.10.103,DHCPACK from 10.1.10.1 (xid=0xd16b79d) +56,10.1.10.103,New relevant interface eth0.IPv4 for mDNS. +57,10.1.10.103,Joining mDNS multicast group on interface eth0.IPv4 with address 10.1.10.62. +58,10.1.10.103,Registering new address record for 10.1.10.62 on eth0. +59,10.1.10.103,Withdrawing address record for 10.1.10.62 on eth0. +60,10.1.10.103,Leaving mDNS multicast group on interface eth0.IPv4 with address 10.1.10.62. +61,10.1.10.103,iface.c: interface_mdns_mcast_join() called but no local address available. +62,10.1.10.103,Interface eth0.IPv4 no longer relevant for mDNS. +63,10.1.10.103,New relevant interface eth0.IPv4 for mDNS. +64,10.1.10.103,Joining mDNS multicast group on interface eth0.IPv4 with address 10.1.10.62. +65,10.1.10.103,Registering new address record for 10.1.10.62 on eth0. +66,10.1.10.103,/sbin/dhclient-script : updated /etc/resolv.conf +67,10.1.10.62,bound to 10.1.10.62 -- renewal in 31782 seconds. +68,10.1.10.62,Invalid query packet. +69,10.1.10.62,Invalid query packet. +70,10.1.10.62,DHCPREQUEST on eth0 to 10.1.10.1 port 67 (xid=0xd16b79d) +71,10.1.10.62,DHCPACK from 10.1.10.1 (xid=0xd16b79d) +72,10.1.10.62,bound to 10.1.10.62 -- renewal in 19742 seconds. +73,10.1.10.62,Invalid query packet. +74,10.1.10.62,Invalid query packet. +75,10.1.10.62,DHCPREQUEST on eth0 to 10.1.10.1 port 67 (xid=0xd16b79d) +76,10.1.10.62,DHCPACK from 10.1.10.1 (xid=0xd16b79d) +77,10.1.10.62,bound to 10.1.10.62 -- renewal in 55327 seconds. +78,10.1.10.62,Invalid query packet. +79,10.1.10.62,Invalid response packet from host 10.1.10.10. +80,10.1.10.62,Invalid response packet from host fe80::22c9:d0ff:fe15:1b7c. +81,10.1.10.62,Invalid query packet. diff --git a/test/expected/test_sql.sh_4563a807311d0ce3d1f912843e615a6ca579cffa.err b/test/expected/test_sql.sh_4563a807311d0ce3d1f912843e615a6ca579cffa.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_4563a807311d0ce3d1f912843e615a6ca579cffa.err diff --git a/test/expected/test_sql.sh_4563a807311d0ce3d1f912843e615a6ca579cffa.out b/test/expected/test_sql.sh_4563a807311d0ce3d1f912843e615a6ca579cffa.out new file mode 100644 index 0000000..61a6828 --- /dev/null +++ b/test/expected/test_sql.sh_4563a807311d0ce3d1f912843e615a6ca579cffa.out @@ -0,0 +1,40 @@ +[ + { + "fields": { + "namespace": "inc-1-enh-domain-c14-ns-2", + "pod": "hello-inc-1-enh-domain-c14-ns-2-3-d8f465685-k75gp", + "reason": "", + "status": "Pending" + } + }, + { + "fields": { + "error": "pod inc-1-domain-c14-ns-6/fe-inc-1-domain-c14-ns-6-5-656d9bb695-4584b is not found: PodNotFound", + "namespace": "inc-1-domain-c14-ns-6", + "pod": "fe-inc-1-domain-c14-ns-6-5-656d9bb695-4584b", + "uid": "be2def59-3a08-42fd-8f84-6f64cfcefa93" + } + }, + { + "fields": { + "namespace": "inc-1-domain-c14-ns-6", + "pod": "fe-inc-1-domain-c14-ns-6-5-656d9bb695-4584b", + "uid": "be2def59-3a08-42fd-8f84-6f64cfcefa93" + } + }, + { + "fields": { + "namespace": "inc-1-domain-c14-ns-6", + "pod": "fe-inc-1-domain-c14-ns-6-5-656d9bb695-4584b", + "uid": "be2def59-3a08-42fd-8f84-6f64cfcefa93" + } + }, + { + "fields": { + "namespace": "inc-1-enh-domain-c14-ns-2", + "pod": "hello-inc-1-enh-domain-c14-ns-2-7-5ddd6bcd69-6rqct", + "reason": "", + "status": "Pending" + } + } +] diff --git a/test/expected/test_sql.sh_4a13356ccbdeb5f73fa063e292b5a6cb25e6c23e.err b/test/expected/test_sql.sh_4a13356ccbdeb5f73fa063e292b5a6cb25e6c23e.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_4a13356ccbdeb5f73fa063e292b5a6cb25e6c23e.err diff --git a/test/expected/test_sql.sh_4a13356ccbdeb5f73fa063e292b5a6cb25e6c23e.out b/test/expected/test_sql.sh_4a13356ccbdeb5f73fa063e292b5a6cb25e6c23e.out new file mode 100644 index 0000000..85511da --- /dev/null +++ b/test/expected/test_sql.sh_4a13356ccbdeb5f73fa063e292b5a6cb25e6c23e.out @@ -0,0 +1,2 @@ +log_line,log_time,log_level,bro_ts,bro_uid,bro_id_orig_h,bro_id_orig_p,bro_id_resp_h,bro_id_resp_p,bro_trans_depth,bro_method,bro_host,bro_uri,bro_referrer,bro_version,bro_user_agent,bro_request_body_len,bro_response_body_len,bro_status_code,bro_status_msg,bro_info_code,bro_info_msg,bro_tags,bro_username,bro_password,bro_proxied,bro_orig_fuids,bro_orig_filenames,bro_orig_mime_types,bro_resp_fuids,bro_resp_filenames,bro_resp_mime_types,log_part,log_idle_msecs,log_mark,log_comment,log_tags,log_annotations,log_filters +118,2011-11-03 00:19:49.337,error,1320279589.337053,CBHHuR1xFnm5C5CQBc,192.168.2.76,52074,74.125.225.76,80,1,GET,i4.ytimg.com,/vi/gDbg_GeuiSY/hqdefault.jpg,<NULL>,1.1,Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1,0,893,404,Not Found,<NULL>,<NULL>,,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,F2GiAw3j1m22R2yIg2,<NULL>,image/jpeg,<NULL>,18,0,<NULL>,<NULL>,<NULL>,<NULL> diff --git a/test/expected/test_sql.sh_5532c7a21e3f6b7df3aad10d7bdfbb7a812ae6c7.out b/test/expected/test_sql.sh_5532c7a21e3f6b7df3aad10d7bdfbb7a812ae6c7.out index dbb2a2f..53f730f 100644 --- a/test/expected/test_sql.sh_5532c7a21e3f6b7df3aad10d7bdfbb7a812ae6c7.out +++ b/test/expected/test_sql.sh_5532c7a21e3f6b7df3aad10d7bdfbb7a812ae6c7.out @@ -1,2 +1,2 @@ -log_line,log_part,log_time,log_idle_msecs,log_level,log_mark,log_comment,log_tags,log_filters,log_hostname,log_msgid,log_pid,log_pri,log_procname,log_struct,log_syslog_tag,syslog_version,col_0,TTY,PWD,USER,COMMAND -0,<NULL>,2007-11-03 09:47:02.000,0,info,0,<NULL>,<NULL>,[1],veridian,<NULL>,<NULL>,<NULL>,sudo,<NULL>,sudo,<NULL>,timstack,pts/6,/auto/wstimstack/rpms/lbuild/test,root,/usr/bin/tail /var/log/messages +log_line,log_time,log_level,log_hostname,log_msgid,log_pid,log_pri,log_procname,log_struct,log_syslog_tag,syslog_version,col_0,TTY,PWD,USER,COMMAND,log_part,log_idle_msecs,log_mark,log_comment,log_tags,log_annotations,log_filters +0,2007-11-03 09:47:02.000,info,veridian,<NULL>,<NULL>,<NULL>,sudo,<NULL>,sudo,<NULL>,timstack,pts/6,/auto/wstimstack/rpms/lbuild/test,root,/usr/bin/tail /var/log/messages,<NULL>,0,0,<NULL>,<NULL>,<NULL>,[1] diff --git a/test/expected/test_sql.sh_57edc93426e6767aa44ab2356c55327553dcdc8d.err b/test/expected/test_sql.sh_57edc93426e6767aa44ab2356c55327553dcdc8d.err index 600e19d..979055d 100644 --- a/test/expected/test_sql.sh_57edc93426e6767aa44ab2356c55327553dcdc8d.err +++ b/test/expected/test_sql.sh_57edc93426e6767aa44ab2356c55327553dcdc8d.err @@ -1,5 +1,4 @@ -[1m[31m✘ error[0m: call to [1m[4mraise_error[0m[4m([0m[4mmsg[0m[4m)[0m failed - [1m[31mreason[0m: no data was redirected to lnav's standard-input +[1m[31m✘ error[0m: no data was redirected to lnav's standard-input [36m --> [0m[1mcommand-option[0m:1 [36m | [0m[37m[40m|rename-stdin foo [0m [36m --> [0m[1m../test/.lnav/formats/default/rename-stdin.lnav[0m:7 diff --git a/test/expected/test_sql.sh_61471583c5e2f8ede3a8adefce682c27bf3924c8.err b/test/expected/test_sql.sh_61471583c5e2f8ede3a8adefce682c27bf3924c8.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_61471583c5e2f8ede3a8adefce682c27bf3924c8.err diff --git a/test/expected/test_sql.sh_61471583c5e2f8ede3a8adefce682c27bf3924c8.out b/test/expected/test_sql.sh_61471583c5e2f8ede3a8adefce682c27bf3924c8.out new file mode 100644 index 0000000..5fc70f1 --- /dev/null +++ b/test/expected/test_sql.sh_61471583c5e2f8ede3a8adefce682c27bf3924c8.out @@ -0,0 +1,11 @@ +[ + { + "sc_substatus": 0 + }, + { + "sc_substatus": 0 + }, + { + "sc_substatus": null + } +] diff --git a/test/expected/test_sql.sh_62eb85c9569e71a630d72065238559528a16114c.out b/test/expected/test_sql.sh_62eb85c9569e71a630d72065238559528a16114c.out index 898c9a8..0f485fb 100644 --- a/test/expected/test_sql.sh_62eb85c9569e71a630d72065238559528a16114c.out +++ b/test/expected/test_sql.sh_62eb85c9569e71a630d72065238559528a16114c.out @@ -1,2 +1,2 @@ -[1m[4mfilepath [0m +[1m[4mfilepath[0m[1m[4m [0m foo diff --git a/test/expected/test_sql.sh_753c343a256d1286750314957d1b4e155464e03e.out b/test/expected/test_sql.sh_753c343a256d1286750314957d1b4e155464e03e.out index 801a9af..069e77a 100644 --- a/test/expected/test_sql.sh_753c343a256d1286750314957d1b4e155464e03e.out +++ b/test/expected/test_sql.sh_753c343a256d1286750314957d1b4e155464e03e.out @@ -1,2 +1,2 @@ -[1m[4mlog_top_datetime() [0m +[1m[4mlog_top_datetime()[0m[1m[4m [0m <NULL> diff --git a/test/expected/test_sql.sh_7593b39f4be6fd2124ec7cf10835ee015d475b16.err b/test/expected/test_sql.sh_7593b39f4be6fd2124ec7cf10835ee015d475b16.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_7593b39f4be6fd2124ec7cf10835ee015d475b16.err diff --git a/test/expected/test_sql.sh_7593b39f4be6fd2124ec7cf10835ee015d475b16.out b/test/expected/test_sql.sh_7593b39f4be6fd2124ec7cf10835ee015d475b16.out new file mode 100644 index 0000000..e304578 --- /dev/null +++ b/test/expected/test_sql.sh_7593b39f4be6fd2124ec7cf10835ee015d475b16.out @@ -0,0 +1,2 @@ +[1m[4mlog_top_line()[0m[1m[4m [0m[1m[4mlog_msg_line()[0m[1m[4m [0m + 2 2 diff --git a/test/expected/test_sql.sh_764306f0e5f610ba71f521ba3d19fe158ece0ba5.out b/test/expected/test_sql.sh_764306f0e5f610ba71f521ba3d19fe158ece0ba5.out index fabc853..57b6d27 100644 --- a/test/expected/test_sql.sh_764306f0e5f610ba71f521ba3d19fe158ece0ba5.out +++ b/test/expected/test_sql.sh_764306f0e5f610ba71f521ba3d19fe158ece0ba5.out @@ -1,2 +1,2 @@ -[1m[4m col_0 [0m +[1m[4m col_0 [0m[1m[4m [0m eth0.IPv4 diff --git a/test/expected/test_sql.sh_7f664c9cda0ae1c48333e21051b5e0eeafd5b4bc.err b/test/expected/test_sql.sh_7f664c9cda0ae1c48333e21051b5e0eeafd5b4bc.err index 1a0c2b0..d068056 100644 --- a/test/expected/test_sql.sh_7f664c9cda0ae1c48333e21051b5e0eeafd5b4bc.err +++ b/test/expected/test_sql.sh_7f664c9cda0ae1c48333e21051b5e0eeafd5b4bc.err @@ -1,5 +1,4 @@ -[1m[31m✘ error[0m: call to [1m[4mraise_error[0m[4m([0m[4mmsg[0m[4m)[0m failed - [1m[31mreason[0m: expecting the new name for stdin as the first argument +[1m[31m✘ error[0m: expecting the new name for stdin as the first argument [36m --> [0m[1mcommand-option[0m:1 [36m | [0m[37m[40m|rename-stdin [0m [36m --> [0m[1m../test/.lnav/formats/default/rename-stdin.lnav[0m:6 diff --git a/test/expected/test_sql.sh_859af4cc5f57345be8dcece599419d58f332841a.err b/test/expected/test_sql.sh_859af4cc5f57345be8dcece599419d58f332841a.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_859af4cc5f57345be8dcece599419d58f332841a.err diff --git a/test/expected/test_sql.sh_859af4cc5f57345be8dcece599419d58f332841a.out b/test/expected/test_sql.sh_859af4cc5f57345be8dcece599419d58f332841a.out new file mode 100644 index 0000000..f648fc6 --- /dev/null +++ b/test/expected/test_sql.sh_859af4cc5f57345be8dcece599419d58f332841a.out @@ -0,0 +1,4 @@ +[4mMin: 0 [0m[4m[42m [0m[4m 1-23 [0m[4m[43m [0m[4m 24-48 [0m[4m[41m [0m[4m 49+[0m[4m Max: 291690[0m +[41m [0m[43mT[0m[42mh[0m[42mu[0m[42m [0m[42mN[0m[42mo[0m[42mv[0m[42m [0m[42m0[0m[42m3[0m[42m [0m[42m0[0m[42m0[0m:1[42m5[0m:00[42m [0m [42m [0m[42m [0m [42m [0m[42m [0m [42m [0m [42m [0m [42m [0m [42m [0m +▲ [1m70[0m values in the range [1m0.00[0m-[1m3788.18[0m +[43m [0m[42mT[0m[42mh[0m[42mu[0m[42m [0m[42mN[0m[42mo[0mv[42m [0m03 [42m0[0m0:[42m2[0m0:00 diff --git a/test/expected/test_sql.sh_8ee288f1508eaab0367e465e9f382e848f3282aa.out b/test/expected/test_sql.sh_8ee288f1508eaab0367e465e9f382e848f3282aa.out index b21f574..c5c0c0e 100644 --- a/test/expected/test_sql.sh_8ee288f1508eaab0367e465e9f382e848f3282aa.out +++ b/test/expected/test_sql.sh_8ee288f1508eaab0367e465e9f382e848f3282aa.out @@ -1,4 +1,4 @@ -[1m[4m log_time [0m +[1m[4m log_time [0m[1m[4m [0m 2009-07-20 22:59:26.000 2009-07-20 22:59:29.000 -2009-07-20 22:59:29.000 +[1m2009-07-20 22:59:29.000 [0m diff --git a/test/expected/test_sql.sh_9aaaa810f883f5dcf8a4d5cda4051fdf4640a65c.err b/test/expected/test_sql.sh_9aaaa810f883f5dcf8a4d5cda4051fdf4640a65c.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_9aaaa810f883f5dcf8a4d5cda4051fdf4640a65c.err diff --git a/test/expected/test_sql.sh_9aaaa810f883f5dcf8a4d5cda4051fdf4640a65c.out b/test/expected/test_sql.sh_9aaaa810f883f5dcf8a4d5cda4051fdf4640a65c.out new file mode 100644 index 0000000..a54d338 --- /dev/null +++ b/test/expected/test_sql.sh_9aaaa810f883f5dcf8a4d5cda4051fdf4640a65c.out @@ -0,0 +1,4 @@ +log_line,log_time,log_level,log_msg_format,log_msg_values,log_part,log_idle_msecs,log_mark,log_comment,log_tags,log_annotations,log_filters,log_msg_schema +0,2015-11-03 09:23:38.000,info,# is up,"{""col_0"":""eth0""}",<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,ce6143108d22799c9c7a994e21e7302e +1,2015-11-03 09:23:38.000,info,# is up,"{""col_0"":""eth1""}",<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,ce6143108d22799c9c7a994e21e7302e +2,2015-11-03 09:23:38.000,info,# is down,"{""col_0"":""eth0""}",<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,83cd119b5b6f7e79abff4d28946b7a61 diff --git a/test/expected/test_sql.sh_a7955e89791db9a252d8323436fabc51e2960731.err b/test/expected/test_sql.sh_a7955e89791db9a252d8323436fabc51e2960731.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_a7955e89791db9a252d8323436fabc51e2960731.err diff --git a/test/expected/test_sql.sh_a7955e89791db9a252d8323436fabc51e2960731.out b/test/expected/test_sql.sh_a7955e89791db9a252d8323436fabc51e2960731.out new file mode 100644 index 0000000..de137d9 --- /dev/null +++ b/test/expected/test_sql.sh_a7955e89791db9a252d8323436fabc51e2960731.out @@ -0,0 +1,3 @@ +log_line,log_time,log_level,c_ip,cs_method,cs_referer,cs_uri_query,cs_uri_stem,cs_user_agent,cs_username,cs_version,sc_bytes,sc_status,cs_host,log_part,log_idle_msecs,log_mark,log_comment,log_tags,log_annotations,log_filters +1,2015-03-24 14:02:50.000,info,127.0.0.1,GET,<NULL>,<NULL>,/includes/js/combined-javascript.js,<NULL>,-,HTTP/1.1,65508,200,<NULL>,<NULL>,6927348000,0,<NULL>,<NULL>,<NULL>,<NULL> +2,2015-03-24 14:02:50.000,error,127.0.0.1,GET,<NULL>,<NULL>,/bad.foo,<NULL>,-,HTTP/1.1,65508,404,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> diff --git a/test/expected/test_sql.sh_ae7b1f1684e14bf9c16e0d789257b6ef57cfb2b1.out b/test/expected/test_sql.sh_ae7b1f1684e14bf9c16e0d789257b6ef57cfb2b1.out index c012bd8..176be31 100644 --- a/test/expected/test_sql.sh_ae7b1f1684e14bf9c16e0d789257b6ef57cfb2b1.out +++ b/test/expected/test_sql.sh_ae7b1f1684e14bf9c16e0d789257b6ef57cfb2b1.out @@ -1,2 +1,2 @@ -[1m[4m log_time [0m +[1m[4m log_time [0m[1m[4m [0m 2009-07-20 22:59:26.000 diff --git a/test/expected/test_sql.sh_afe9cdc4898df5c4e112c13dfe3db6dc089c0d7c.out b/test/expected/test_sql.sh_afe9cdc4898df5c4e112c13dfe3db6dc089c0d7c.out index 4382802..a44dcba 100644 --- a/test/expected/test_sql.sh_afe9cdc4898df5c4e112c13dfe3db6dc089c0d7c.out +++ b/test/expected/test_sql.sh_afe9cdc4898df5c4e112c13dfe3db6dc089c0d7c.out @@ -1,4 +1,4 @@ -[1m[4m log_body [0m +[1m[4m log_body [0m[1m[4m [0m lookup(file): lookup for foobar failed attempting to mount entry /auto/opt -lookup(file): lookup for opt failed +[1mlookup(file): lookup for opt failed [0m diff --git a/test/expected/test_sql.sh_b085d26043f9661d70f82cb90ecb3c5245d25eac.out b/test/expected/test_sql.sh_b085d26043f9661d70f82cb90ecb3c5245d25eac.out index b21f574..c5c0c0e 100644 --- a/test/expected/test_sql.sh_b085d26043f9661d70f82cb90ecb3c5245d25eac.out +++ b/test/expected/test_sql.sh_b085d26043f9661d70f82cb90ecb3c5245d25eac.out @@ -1,4 +1,4 @@ -[1m[4m log_time [0m +[1m[4m log_time [0m[1m[4m [0m 2009-07-20 22:59:26.000 2009-07-20 22:59:29.000 -2009-07-20 22:59:29.000 +[1m2009-07-20 22:59:29.000 [0m diff --git a/test/expected/test_sql.sh_b5aa0561a65de7e8e22085db184c72a94b1a89a9.out b/test/expected/test_sql.sh_b5aa0561a65de7e8e22085db184c72a94b1a89a9.out index c2c44ad..c126651 100644 --- a/test/expected/test_sql.sh_b5aa0561a65de7e8e22085db184c72a94b1a89a9.out +++ b/test/expected/test_sql.sh_b5aa0561a65de7e8e22085db184c72a94b1a89a9.out @@ -1,2 +1,2 @@ -[1m[4m log_body [0m +[1m[4m log_body [0m[1m[4m [0m timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages diff --git a/test/expected/test_sql.sh_b9330763dea550bbd006d7ae6ae7ea367f831fa3.err b/test/expected/test_sql.sh_b9330763dea550bbd006d7ae6ae7ea367f831fa3.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_b9330763dea550bbd006d7ae6ae7ea367f831fa3.err diff --git a/test/expected/test_sql.sh_b9330763dea550bbd006d7ae6ae7ea367f831fa3.out b/test/expected/test_sql.sh_b9330763dea550bbd006d7ae6ae7ea367f831fa3.out new file mode 100644 index 0000000..de2964d --- /dev/null +++ b/test/expected/test_sql.sh_b9330763dea550bbd006d7ae6ae7ea367f831fa3.out @@ -0,0 +1,10 @@ +node_text +"Gambardella, Matthew" +"Ralls, Kim" +"Corets, Eva" +"Randall, Cynthia" +"Thurman, Paula" +"Knorr, Stefan" +"Kress, Peter" +"O'Brien, Tim" +"Galos, Mike" diff --git a/test/expected/test_sql.sh_bad03a996c0750733ab99c592b9011851f521a69.out b/test/expected/test_sql.sh_bad03a996c0750733ab99c592b9011851f521a69.out index 85a1303..9892416 100644 --- a/test/expected/test_sql.sh_bad03a996c0750733ab99c592b9011851f521a69.out +++ b/test/expected/test_sql.sh_bad03a996c0750733ab99c592b9011851f521a69.out @@ -1,5 +1,5 @@ -[1m[4mmatch_index [0m[1m[4m content [0m[1m[4m case match_index when 2 then replicate('abc', 1000) else '' end [0m -[1m[7m [0m[1m 0[0m[1m [0m[1m{"col_0":10}[0m[1m [0m[1m [0m -[7m 1[0m[7m [0m[7m{"col_0":50}[0m[7m [0m[7m [0m -[1m[7m 2[0m[1m[7m [0m[1m[7m{"col_0":50}[0m[1m[7m [0m[1m[7mabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc⋯bcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc [0m -[7m 3[0m[7m [0m[7m{"col_0":50}[0m[7m [0m[7m [0m +[1m[4mmatch_index[0m[1m[4m [0m[1m[4m content [0m[1m[4m [0m[1m[4m case match_index when 2 then replicate('abc', 1000) else '' end [0m[1m[4m [0m + 0 [7m{[0m"col_0":10} + 1 [7m{"col_0":50}[0m +[1m 2[0m[1m [0m[1m[7m{"col_0":50}[0m[1m [0m[1mabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc⋯bcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc [0m +[1m 3[0m[1m [0m[1m[7m{"col_0":50}[0m[1m [0m[1m [0m diff --git a/test/expected/test_sql.sh_bd46ca4560f8be6307a914e39539bbac0368080a.out b/test/expected/test_sql.sh_bd46ca4560f8be6307a914e39539bbac0368080a.out index 7041f45..f32bdce 100644 --- a/test/expected/test_sql.sh_bd46ca4560f8be6307a914e39539bbac0368080a.out +++ b/test/expected/test_sql.sh_bd46ca4560f8be6307a914e39539bbac0368080a.out @@ -1,2 +1,2 @@ -[1m[4mlnav_top_file() [0m +[1m[4mlnav_top_file()[0m[1m[4m [0m <NULL> diff --git a/test/expected/test_sql.sh_c17933125df910588b806a9d07c2655bc71198ef.err b/test/expected/test_sql.sh_c17933125df910588b806a9d07c2655bc71198ef.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_c17933125df910588b806a9d07c2655bc71198ef.err diff --git a/test/expected/test_sql.sh_c17933125df910588b806a9d07c2655bc71198ef.out b/test/expected/test_sql.sh_c17933125df910588b806a9d07c2655bc71198ef.out new file mode 100644 index 0000000..62d3056 --- /dev/null +++ b/test/expected/test_sql.sh_c17933125df910588b806a9d07c2655bc71198ef.out @@ -0,0 +1,6 @@ +log_line,log_time,log_level,bro_ts,bro_uid,bro_id_orig_h,bro_id_orig_p,bro_id_resp_h,bro_id_resp_p,bro_trans_depth,bro_method,bro_host,bro_uri,bro_referrer,bro_version,bro_user_agent,bro_request_body_len,bro_response_body_len,bro_status_code,bro_status_msg,bro_info_code,bro_info_msg,bro_tags,bro_username,bro_password,bro_proxied,bro_orig_fuids,bro_orig_filenames,bro_orig_mime_types,bro_resp_fuids,bro_resp_filenames,bro_resp_mime_types,log_part,log_idle_msecs,log_mark,log_comment,log_tags,log_annotations,log_filters +0,2011-11-03 00:19:26.452,info,1320279566.452687,CwFs1P2UcUdlSxD2La,192.168.2.76,52026,132.235.215.119,80,1,GET,www.reddit.com,/,<NULL>,1.1,Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1,0,109978,200,OK,<NULL>,<NULL>,,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,Ftw3fJ2JJF3ntMTL2,<NULL>,text/html,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +1,2011-11-03 00:19:26.831,info,1320279566.831619,CJxSUgkInyKSHiju1,192.168.2.76,52030,72.21.211.173,80,1,GET,e.thumbs.redditmedia.com,/E-pbDbmiBclPkDaX.jpg,http://www.reddit.com/,1.1,Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1,0,2300,200,OK,<NULL>,<NULL>,,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,FFTf9Zdgk3YkfCKo3,<NULL>,image/jpeg,<NULL>,379,0,<NULL>,<NULL>,<NULL>,<NULL> +2,2011-11-03 00:19:26.831,info,1320279566.831563,CJwUi9bdB9c1lLW44,192.168.2.76,52029,72.21.211.173,80,1,GET,f.thumbs.redditmedia.com,/BP5bQfy4o-C7cF6A.jpg,http://www.reddit.com/,1.1,Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1,0,2272,200,OK,<NULL>,<NULL>,,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,FfXtOj3o7aub4vbs2j,<NULL>,image/jpeg,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +3,2011-11-03 00:19:26.831,info,1320279566.831473,CoX7zA3OJKGUOSCBY2,192.168.2.76,52027,72.21.211.173,80,1,GET,e.thumbs.redditmedia.com,/SVUtep3Rhg5FTRn4.jpg,http://www.reddit.com/,1.1,Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1,0,2562,200,OK,<NULL>,<NULL>,,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,F21Ybs3PTqS6O4Q2Zh,<NULL>,image/jpeg,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +4,2011-11-03 00:19:26.831,info,1320279566.831643,CT0JIh479jXIGt0Po1,192.168.2.76,52031,72.21.211.173,80,1,GET,f.thumbs.redditmedia.com,/uuy31444rLSyKdHS.jpg,http://www.reddit.com/,1.1,Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1,0,1595,200,OK,<NULL>,<NULL>,,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,Fdk0MZ1wQmKWAJ4WH4,<NULL>,image/jpeg,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> diff --git a/test/expected/test_sql.sh_c353ef036c505b75996252138fbd4c8d22e8149c.out b/test/expected/test_sql.sh_c353ef036c505b75996252138fbd4c8d22e8149c.out index b21f574..c5c0c0e 100644 --- a/test/expected/test_sql.sh_c353ef036c505b75996252138fbd4c8d22e8149c.out +++ b/test/expected/test_sql.sh_c353ef036c505b75996252138fbd4c8d22e8149c.out @@ -1,4 +1,4 @@ -[1m[4m log_time [0m +[1m[4m log_time [0m[1m[4m [0m 2009-07-20 22:59:26.000 2009-07-20 22:59:29.000 -2009-07-20 22:59:29.000 +[1m2009-07-20 22:59:29.000 [0m diff --git a/test/expected/test_sql.sh_c5b8da04734fadf3b9eea80e0af997e38e0fb811.out b/test/expected/test_sql.sh_c5b8da04734fadf3b9eea80e0af997e38e0fb811.out index 86a4d5a..54fad85 100644 --- a/test/expected/test_sql.sh_c5b8da04734fadf3b9eea80e0af997e38e0fb811.out +++ b/test/expected/test_sql.sh_c5b8da04734fadf3b9eea80e0af997e38e0fb811.out @@ -1,3 +1,3 @@ -[1m[4mlog_line [0m[1m[4m col_0 [0m -[1m 0[0m[1m [0m[1meth0.IPv4 [0m +[1m[4mlog_line[0m[1m[4m [0m[1m[4m col_0 [0m[1m[4m [0m + 0 eth0.IPv4 7 eth0.IPv4 diff --git a/test/expected/test_sql.sh_c7e1dbf4605914720b55787785abfafdf2c4178a.out b/test/expected/test_sql.sh_c7e1dbf4605914720b55787785abfafdf2c4178a.out index 762b09c..f3306ab 100644 --- a/test/expected/test_sql.sh_c7e1dbf4605914720b55787785abfafdf2c4178a.out +++ b/test/expected/test_sql.sh_c7e1dbf4605914720b55787785abfafdf2c4178a.out @@ -1,2 +1,2 @@ -[1m[4m log_top_datetime() [0m +[1m[4m log_top_datetime() [0m[1m[4m [0m 2016-03-13 22:49:15.000 diff --git a/test/expected/test_sql.sh_d4d540f0ef7e34b693fc72078d1cf2e069f86d81.err b/test/expected/test_sql.sh_d4d540f0ef7e34b693fc72078d1cf2e069f86d81.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_d4d540f0ef7e34b693fc72078d1cf2e069f86d81.err diff --git a/test/expected/test_sql.sh_d4d540f0ef7e34b693fc72078d1cf2e069f86d81.out b/test/expected/test_sql.sh_d4d540f0ef7e34b693fc72078d1cf2e069f86d81.out new file mode 100644 index 0000000..6d2a99a --- /dev/null +++ b/test/expected/test_sql.sh_d4d540f0ef7e34b693fc72078d1cf2e069f86d81.out @@ -0,0 +1,4 @@ +[1m[4m[7m total [0m[1m[4m [0m[1m[4mlog_line[0m[1m[4m [0m[1m[4m log_time [0m[1m[4m [0m[1m[4mduration[0m[1m[4m [0m[1m[4mlog_formats[0m[1m[4m [0m[1m[4m log_msg_format [0m[1m[4m [0m +[1m[7m 2[0m 0 2007-04-28 06:53:55.000 syslog_log New relevant interface # for # +[1m[7m 2[0m 1 2007-04-28 06:53:55.000 syslog_log Joining # multicast group on interface # with address # +[1m[7m 2[0m[1m [0m[1m 2[0m[1m [0m[1m2007-04-28 06:53:55.000[0m[1m [0m[1m [0m[1m [0m[1msyslog_log [0m[1m [0m[1mRegistering new address record for # on # [0m diff --git a/test/expected/test_sql.sh_dd540973a0dc86320d84706845a15608196ae5be.err b/test/expected/test_sql.sh_dd540973a0dc86320d84706845a15608196ae5be.err index c7ee159..a179b11 100644 --- a/test/expected/test_sql.sh_dd540973a0dc86320d84706845a15608196ae5be.err +++ b/test/expected/test_sql.sh_dd540973a0dc86320d84706845a15608196ae5be.err @@ -1,5 +1,4 @@ -[1m[31m✘ error[0m: call to [1m[4mraise_error[0m[4m([0m[4mmsg[0m[4m)[0m failed - [1m[31mreason[0m: oops! +[1m[31m✘ error[0m: oops! [36m --> [0m[1mcommand-option[0m:2 [36m | [0m[37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[37m[40m$inum[0m[37m[40m, [0m[37m[40m$nul[0m[37m[40m, [0m[37m[40m$fnum[0m[37m[40m, [0m[37m[40m$str[0m[37m[40m, [0m[1m[37m[40mraise_error[0m[37m[40m([0m[35m[40m'oops!'[0m[37m[40m)[0m [36m =[0m [36mnote[0m: the bound parameters are set as follows: diff --git a/test/expected/test_sql.sh_e44c0e2834038ec8d9b0b10b993967edb711c03c.err b/test/expected/test_sql.sh_e44c0e2834038ec8d9b0b10b993967edb711c03c.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_e44c0e2834038ec8d9b0b10b993967edb711c03c.err diff --git a/test/expected/test_sql.sh_e44c0e2834038ec8d9b0b10b993967edb711c03c.out b/test/expected/test_sql.sh_e44c0e2834038ec8d9b0b10b993967edb711c03c.out new file mode 100644 index 0000000..ab55ad7 --- /dev/null +++ b/test/expected/test_sql.sh_e44c0e2834038ec8d9b0b10b993967edb711c03c.out @@ -0,0 +1,11 @@ +duration,bro_uid,req +116.438679,CwFs1P2UcUdlSxD2La,GET www.reddit.com +115.202498,CdZUPH2DKOE7zzCLE3,GET feeds.bbci.co.uk +115.121914,CdrfXZ1NOFPEawF218,GET c.thumbs.redditmedia.com +115.121837,CoX7zA3OJKGUOSCBY2,GET e.thumbs.redditmedia.com +115.12181,CJxSUgkInyKSHiju1,GET e.thumbs.redditmedia.com +115.121506,CT0JIh479jXIGt0Po1,GET f.thumbs.redditmedia.com +115.121339,CJwUi9bdB9c1lLW44,GET f.thumbs.redditmedia.com +115.119217,C6Q4Vm14ZJIlZhsXqk,GET a.thumbs.redditmedia.com +72.274459,CbNCgO1MzloHRNeY4f,GET www.google.com +71.658218,CnGze54kQWWpKqrrZ4,GET ajax.googleapis.com diff --git a/test/expected/test_sql.sh_ef3cecab4ae0b90760f728add5652378e26b2fe6.err b/test/expected/test_sql.sh_ef3cecab4ae0b90760f728add5652378e26b2fe6.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_ef3cecab4ae0b90760f728add5652378e26b2fe6.err diff --git a/test/expected/test_sql.sh_ef3cecab4ae0b90760f728add5652378e26b2fe6.out b/test/expected/test_sql.sh_ef3cecab4ae0b90760f728add5652378e26b2fe6.out new file mode 100644 index 0000000..c0c942f --- /dev/null +++ b/test/expected/test_sql.sh_ef3cecab4ae0b90760f728add5652378e26b2fe6.out @@ -0,0 +1,2 @@ +log_line,log_time,log_level,c_ip,cs_method,cs_referer,cs_uri_query,cs_uri_stem,cs_user_agent,cs_username,cs_version,sc_bytes,sc_status,cs_host,log_part,log_idle_msecs,log_mark,log_comment,log_tags,log_annotations,log_filters +1,2009-07-20 22:59:29.000,error,192.168.202.254,GET,-,<NULL>,/vmw/vSphere/default/vmkboot.gz,gPXE/0.9.7,-,HTTP/1.0,46210,404,<NULL>,<NULL>,3000,0,<NULL>,<NULL>,<NULL>,<NULL> diff --git a/test/expected/test_sql.sh_fea98f976873ee7b55e6f322dda42719a19fb3f0.err b/test/expected/test_sql.sh_fea98f976873ee7b55e6f322dda42719a19fb3f0.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_fea98f976873ee7b55e6f322dda42719a19fb3f0.err diff --git a/test/expected/test_sql.sh_fea98f976873ee7b55e6f322dda42719a19fb3f0.out b/test/expected/test_sql.sh_fea98f976873ee7b55e6f322dda42719a19fb3f0.out new file mode 100644 index 0000000..8307aba --- /dev/null +++ b/test/expected/test_sql.sh_fea98f976873ee7b55e6f322dda42719a19fb3f0.out @@ -0,0 +1,2 @@ +[1m[4mlog_top_line()[0m[1m[4m [0m[1m[4mlog_msg_line()[0m[1m[4m [0m + <NULL> <NULL> diff --git a/test/expected/test_sql.sh_ffbc3dbf8464455358a77acffa10a8dd8a080374.err b/test/expected/test_sql.sh_ffbc3dbf8464455358a77acffa10a8dd8a080374.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql.sh_ffbc3dbf8464455358a77acffa10a8dd8a080374.err diff --git a/test/expected/test_sql.sh_ffbc3dbf8464455358a77acffa10a8dd8a080374.out b/test/expected/test_sql.sh_ffbc3dbf8464455358a77acffa10a8dd8a080374.out new file mode 100644 index 0000000..b67d10f --- /dev/null +++ b/test/expected/test_sql.sh_ffbc3dbf8464455358a77acffa10a8dd8a080374.out @@ -0,0 +1,4 @@ +log_line,log_time,log_level,c_ip,cs_method,cs_referer,cs_uri_query,cs_uri_stem,cs_user_agent,cs_username,cs_version,sc_bytes,sc_status,cs_host,log_part,log_idle_msecs,log_mark,log_comment,log_tags,log_annotations,log_filters +0,2009-07-20 22:59:26.000,info,192.168.202.254,GET,-,<NULL>,/vmw/cgi/tramp,gPXE/0.9.7,-,HTTP/1.0,134,200,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> +1,2009-07-20 22:59:29.000,error,192.168.202.254,GET,-,<NULL>,/vmw/vSphere/default/vmkboot.gz,gPXE/0.9.7,-,HTTP/1.0,46210,404,<NULL>,<NULL>,3000,0,<NULL>,<NULL>,<NULL>,<NULL> +2,2009-07-20 22:59:29.000,info,192.168.202.254,GET,-,<NULL>,/vmw/vSphere/default/vmkernel.gz,gPXE/0.9.7,-,HTTP/1.0,78929,200,<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL> diff --git a/test/expected/test_sql_anno.sh_1398146cf8b4f074ec8b9752f021cf47d011bebc.err b/test/expected/test_sql_anno.sh_1398146cf8b4f074ec8b9752f021cf47d011bebc.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_anno.sh_1398146cf8b4f074ec8b9752f021cf47d011bebc.err diff --git a/test/expected/test_sql_anno.sh_1398146cf8b4f074ec8b9752f021cf47d011bebc.out b/test/expected/test_sql_anno.sh_1398146cf8b4f074ec8b9752f021cf47d011bebc.out new file mode 100644 index 0000000..7d0d083 --- /dev/null +++ b/test/expected/test_sql_anno.sh_1398146cf8b4f074ec8b9752f021cf47d011bebc.out @@ -0,0 +1,9 @@ + SELECT json_object('abc', 'def') ->> '$.abc' + sql_keyword ------ + sql_func ------------------------ + sql_ident ----------- + sql_string ----- + sql_comma - + sql_string ----- + sql_oper --- + sql_string ------- diff --git a/test/expected/test_sql_anno.sh_de46094b6e005285dc0921ef9979e36240c5042d.err b/test/expected/test_sql_anno.sh_de46094b6e005285dc0921ef9979e36240c5042d.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_anno.sh_de46094b6e005285dc0921ef9979e36240c5042d.err diff --git a/test/expected/test_sql_anno.sh_de46094b6e005285dc0921ef9979e36240c5042d.out b/test/expected/test_sql_anno.sh_de46094b6e005285dc0921ef9979e36240c5042d.out new file mode 100644 index 0000000..0dd8902 --- /dev/null +++ b/test/expected/test_sql_anno.sh_de46094b6e005285dc0921ef9979e36240c5042d.out @@ -0,0 +1,7 @@ + SELECT 0x77, 123, 123e4 + sql_keyword ------ + sql_number ---- + sql_comma - + sql_number --- + sql_comma - + sql_number ----- diff --git a/test/expected/test_sql_anno.sh_e7dae4ba18c42c416ed03afd8819200f63e89ac8.err b/test/expected/test_sql_anno.sh_e7dae4ba18c42c416ed03afd8819200f63e89ac8.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_anno.sh_e7dae4ba18c42c416ed03afd8819200f63e89ac8.err diff --git a/test/expected/test_sql_anno.sh_e7dae4ba18c42c416ed03afd8819200f63e89ac8.out b/test/expected/test_sql_anno.sh_e7dae4ba18c42c416ed03afd8819200f63e89ac8.out new file mode 100644 index 0000000..fa79088 --- /dev/null +++ b/test/expected/test_sql_anno.sh_e7dae4ba18c42c416ed03afd8819200f63e89ac8.out @@ -0,0 +1,17 @@ + from access_log | filter cs_method == 'GET' || cs_method == 'PUT' + prql_stage ---------------- + prql_transform ---- + prql_ident ---------- + prql_fqid ---------- + prql_stage ------------------------------------------------- + prql_pipe - + prql_transform ------ + prql_ident --------- + prql_fqid --------- + prql_oper -- + prql_string ----- + prql_oper -- + prql_ident --------- + prql_fqid --------- + prql_oper -- + prql_string ----- diff --git a/test/expected/test_sql_fs_func.sh_2aa83fc90c850cdd11e3136a1a02b79c5879824b.err b/test/expected/test_sql_fs_func.sh_2aa83fc90c850cdd11e3136a1a02b79c5879824b.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_fs_func.sh_2aa83fc90c850cdd11e3136a1a02b79c5879824b.err diff --git a/test/expected/test_sql_fs_func.sh_2aa83fc90c850cdd11e3136a1a02b79c5879824b.out b/test/expected/test_sql_fs_func.sh_2aa83fc90c850cdd11e3136a1a02b79c5879824b.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_fs_func.sh_2aa83fc90c850cdd11e3136a1a02b79c5879824b.out diff --git a/test/expected/test_sql_fs_func.sh_34baa8050f8278d7b68c29e53bdd9f37da0f34c8.err b/test/expected/test_sql_fs_func.sh_34baa8050f8278d7b68c29e53bdd9f37da0f34c8.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_fs_func.sh_34baa8050f8278d7b68c29e53bdd9f37da0f34c8.err diff --git a/test/expected/test_sql_fs_func.sh_34baa8050f8278d7b68c29e53bdd9f37da0f34c8.out b/test/expected/test_sql_fs_func.sh_34baa8050f8278d7b68c29e53bdd9f37da0f34c8.out new file mode 100644 index 0000000..f5e1ef9 --- /dev/null +++ b/test/expected/test_sql_fs_func.sh_34baa8050f8278d7b68c29e53bdd9f37da0f34c8.out @@ -0,0 +1,2 @@ +shell_exec('echo hi') + hi␊ diff --git a/test/expected/test_sql_fs_func.sh_9234a453403934587bbbdde355281a956d1fbe5f.err b/test/expected/test_sql_fs_func.sh_9234a453403934587bbbdde355281a956d1fbe5f.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_fs_func.sh_9234a453403934587bbbdde355281a956d1fbe5f.err diff --git a/test/expected/test_sql_fs_func.sh_9234a453403934587bbbdde355281a956d1fbe5f.out b/test/expected/test_sql_fs_func.sh_9234a453403934587bbbdde355281a956d1fbe5f.out new file mode 100644 index 0000000..2329234 --- /dev/null +++ b/test/expected/test_sql_fs_func.sh_9234a453403934587bbbdde355281a956d1fbe5f.out @@ -0,0 +1,2 @@ +st_parent st_name st_dev st_ino st_type st_mode st_nlink st_uid st_user st_gid st_group st_rdev st_size st_blksize st_blocks st_atime st_mtime st_ctime error +/ non-existent <NULL> <NULL> <NULL> <NULL> <NULL> <NULL> <NULL> <NULL> <NULL> <NULL> <NULL> <NULL> <NULL> <NULL> <NULL> <NULL> No such file or directory diff --git a/test/expected/test_sql_fs_func.sh_9e2c0a90ce333365ff7354375f2c609bc27135c8.err b/test/expected/test_sql_fs_func.sh_9e2c0a90ce333365ff7354375f2c609bc27135c8.err index c8a3fd0..cac88c8 100644 --- a/test/expected/test_sql_fs_func.sh_9e2c0a90ce333365ff7354375f2c609bc27135c8.err +++ b/test/expected/test_sql_fs_func.sh_9e2c0a90ce333365ff7354375f2c609bc27135c8.err @@ -1 +1 @@ -error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"call to readlink(path) failed","attrs":[{"start":8,"end":16,"type":"role","value":47},{"start":17,"end":21,"type":"role","value":46},{"start":8,"end":22,"type":"role","value":60}]},"reason":{"str":"unable to stat path: non-existent-link -- No such file or directory","attrs":[]},"snippets":[],"help":{"str":"","attrs":[]}} +error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"call to readlink(path) failed","attrs":[{"start":8,"end":16,"type":"role","value":49},{"start":17,"end":21,"type":"role","value":48},{"start":8,"end":22,"type":"role","value":65}]},"reason":{"str":"unable to stat path: non-existent-link -- No such file or directory","attrs":[]},"snippets":[],"notes":[],"help":{"str":"","attrs":[]}} diff --git a/test/expected/test_sql_fs_func.sh_cf670dfa1ae7ac5a074baa642068c6d26ac8e096.err b/test/expected/test_sql_fs_func.sh_cf670dfa1ae7ac5a074baa642068c6d26ac8e096.err index aa68134..fdc556a 100644 --- a/test/expected/test_sql_fs_func.sh_cf670dfa1ae7ac5a074baa642068c6d26ac8e096.err +++ b/test/expected/test_sql_fs_func.sh_cf670dfa1ae7ac5a074baa642068c6d26ac8e096.err @@ -1 +1 @@ -error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"call to realpath(path) failed","attrs":[{"start":8,"end":16,"type":"role","value":47},{"start":17,"end":21,"type":"role","value":46},{"start":8,"end":22,"type":"role","value":60}]},"reason":{"str":"Could not get real path for non-existent-path -- No such file or directory","attrs":[]},"snippets":[],"help":{"str":"","attrs":[]}} +error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"call to realpath(path) failed","attrs":[{"start":8,"end":16,"type":"role","value":49},{"start":17,"end":21,"type":"role","value":48},{"start":8,"end":22,"type":"role","value":65}]},"reason":{"str":"Could not get real path for non-existent-path -- No such file or directory","attrs":[]},"snippets":[],"notes":[],"help":{"str":"","attrs":[]}} diff --git a/test/expected/test_sql_indexes.sh_1614ebb5e2e83bab11023354dea8a0885ddf64b4.out b/test/expected/test_sql_indexes.sh_1614ebb5e2e83bab11023354dea8a0885ddf64b4.out index 7179021..f16755c 100644 --- a/test/expected/test_sql_indexes.sh_1614ebb5e2e83bab11023354dea8a0885ddf64b4.out +++ b/test/expected/test_sql_indexes.sh_1614ebb5e2e83bab11023354dea8a0885ddf64b4.out @@ -1,3 +1,3 @@ -[1m[4mlog_line [0m[1m[4mlog_part [0m[1m[4m log_time [0m[1m[4m[7mlog_idle_msecs [0m[1m[4mlog_level [0m[1m[4mlog_mark [0m[1m[4mlog_comment [0m[1m[4mlog_tags [0m[1m[4mlog_filters [0m[1m[4mlog_msg_format [0m -[1m[7m [0m[1m 1[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m2009-07-20 22:59:29.000[0m[1m [0m[1m 3000[0m[1m [0m[1merror [0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m [0m -[7m 3[0m[7m [0m[7m <NULL>[0m[7m [0m[7m2013-02-15 06:00:31.000[0m[7m [0m[7m 112777262000[0m[7m [0m[7merror [0m[7m [0m[7m 0[0m[7m [0m[7m <NULL>[0m[7m [0m[7m <NULL>[0m[7m [0m[7m <NULL>[0m[7m [0m[7m [0m +[1m[4mlog_line[0m[1m[4m [0m[1m[4m log_time [0m[1m[4m [0m[1m[4mlog_level[0m[1m[4m [0m[1m[4mlog_msg_format[0m[1m[4m [0m[1m[4mlog_msg_values[0m[1m[4m [0m[1m[4mlog_part[0m[1m[4m [0m[1m[4m[7mlog_idle_msecs[0m[1m[4m [0m[1m[4mlog_mark[0m[1m[4m [0m[1m[4mlog_comment[0m[1m[4m [0m[1m[4mlog_tags[0m[1m[4m [0m[1m[4mlog_annotations[0m[1m[4m [0m[1m[4mlog_filters[0m[1m[4m [0m + 1 2009-07-20 22:59:29.000 error null <NULL> [1m[7m [0m[1m 3000[0m 0 <NULL> <NULL> <NULL> <NULL> + 3 2013-02-15 06:00:31.000 error null <NULL> [1m[7m 112777262000[0m 0 <NULL> <NULL> <NULL> <NULL> diff --git a/test/expected/test_sql_indexes.sh_2b4945247332d01b08e6f17340f7d17f3b3649b8.err b/test/expected/test_sql_indexes.sh_2b4945247332d01b08e6f17340f7d17f3b3649b8.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_indexes.sh_2b4945247332d01b08e6f17340f7d17f3b3649b8.err diff --git a/test/expected/test_sql_indexes.sh_2b4945247332d01b08e6f17340f7d17f3b3649b8.out b/test/expected/test_sql_indexes.sh_2b4945247332d01b08e6f17340f7d17f3b3649b8.out new file mode 100644 index 0000000..240259b --- /dev/null +++ b/test/expected/test_sql_indexes.sh_2b4945247332d01b08e6f17340f7d17f3b3649b8.out @@ -0,0 +1,5 @@ +[1m[4mlog_line[0m[1m[4m [0m[1m[4m log_time [0m[1m[4m [0m[1m[4mlog_level[0m[1m[4m [0m[1m[4mlog_msg_format[0m[1m[4m [0m[1m[4mlog_msg_values[0m[1m[4m [0m[1m[4mlog_part[0m[1m[4m [0m[1m[4m[7mlog_idle_msecs[0m[1m[4m [0m[1m[4mlog_mark[0m[1m[4m [0m[1m[4mlog_comment[0m[1m[4m [0m[1m[4mlog_tags[0m[1m[4m [0m[1m[4mlog_annotations[0m[1m[4m [0m[1m[4mlog_filters[0m[1m[4m [0m + 0 2009-07-20 22:59:26.000 info null <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> + 1 2009-07-20 22:59:29.000 error null <NULL> [1m[7m [0m[1m 3000[0m 0 <NULL> <NULL> <NULL> <NULL> +[1m 2[0m[1m [0m[1m2009-07-20 22:59:29.000[0m[1m [0m[1minfo [0m[1m [0m[1m [0m[1m [0m[1mnull [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m +[1m 3[0m[1m [0m[1m2013-02-15 06:00:31.000[0m[1m [0m[1merror [0m[1m [0m[1m [0m[1m [0m[1mnull [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[7m 112777262000[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m diff --git a/test/expected/test_sql_indexes.sh_541a8e35f34a206e340a3880128b6ce137847872.out b/test/expected/test_sql_indexes.sh_541a8e35f34a206e340a3880128b6ce137847872.out index 5467779..a5e2a8e 100644 --- a/test/expected/test_sql_indexes.sh_541a8e35f34a206e340a3880128b6ce137847872.out +++ b/test/expected/test_sql_indexes.sh_541a8e35f34a206e340a3880128b6ce137847872.out @@ -1,5 +1,5 @@ -[1m[4mlog_line [0m[1m[4mlog_part [0m[1m[4m log_time [0m[1m[4m[7mlog_idle_msecs [0m[1m[4mlog_level [0m[1m[4mlog_mark [0m[1m[4mlog_comment [0m[1m[4mlog_tags [0m[1m[4mlog_filters [0m[1m[4m c_ip [0m[1m[4mcs_method [0m[1m[4mcs_referer [0m[1m[4mcs_uri_query [0m[1m[4m cs_uri_stem [0m[1m[4mcs_user_agent [0m[1m[4mcs_username [0m[1m[4mcs_version [0m[1m[4m[7msc_bytes [0m[1m[4msc_status [0m[1m[4mcs_host [0m[1m[4m log_unique_path [0m -[1m[7m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m2009-07-20 22:59:26.000[0m[1m [0m[1m 0[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m192.168.202.254[0m[1m [0m[1mGET [0m[1m [0m[1m- [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m/vmw/cgi/tramp [0m[1m [0m[1mgPXE/0.9.7 [0m[1m [0m[1m- [0m[1m [0m[1mHTTP/1.0 [0m[1m [0m[1m 134[0m[1m [0m[1m 200[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1mlogfile_access_log.0 [0m -[7m [0m[7m [0m 1 <NULL> 2009-07-20 22:59:29.000 3000 error 0 <NULL> <NULL> <NULL> 192.168.202.254 GET - <NULL> /vmw/vSphere/default/vmkboot.gz gPXE/0.9.7 - HTTP/1.0 46210 404 <NULL> logfile_access_log.0 -[1m[7m [0m[1m 2[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m2009-07-20 22:59:29.000[0m[1m [0m[1m 0[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m192.168.202.254[0m[1m [0m[1mGET [0m[1m [0m[1m- [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m/vmw/vSphere/default/vmkernel.gz[0m[1m [0m[1mgPXE/0.9.7 [0m[1m [0m[1m- [0m[1m [0m[1mHTTP/1.0 [0m[1m [0m[1m 78929[0m[1m [0m[1m 200[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1mlogfile_access_log.0 [0m -[7m 3[0m[7m [0m[7m <NULL>[0m[7m [0m[7m2013-02-15 06:00:31.000[0m[7m [0m[7m 112777262000[0m[7m [0m[7merror [0m[7m [0m[7m 0[0m[7m [0m[7m <NULL>[0m[7m [0m[7m <NULL>[0m[7m [0m[7m <NULL>[0m[7m [0m[7m10.112.81.15 [0m[7m [0m[7m<NULL> [0m[7m [0m[7m- [0m[7m [0m[7m <NULL>[0m[7m [0m[7m<NULL> [0m[7m [0m[7m- [0m[7m [0m[7m- [0m[7m [0m[7m<NULL> [0m[7m [0m[7m 0[0m[7m [0m[7m 400[0m[7m [0m[7m <NULL>[0m[7m [0m[7mlogfile_access_log.[0m1 +[1m[4mlog_line[0m[1m[4m [0m[1m[4m log_time [0m[1m[4m [0m[1m[4mlog_level[0m[1m[4m [0m[1m[4m c_ip [0m[1m[4m [0m[1m[4mcs_method[0m[1m[4m [0m[1m[4mcs_referer[0m[1m[4m [0m[1m[4mcs_uri_query[0m[1m[4m [0m[1m[4m cs_uri_stem [0m[1m[4m [0m[1m[4mcs_user_agent[0m[1m[4m [0m[1m[4mcs_username[0m[1m[4m [0m[1m[4mcs_version[0m[1m[4m [0m[1m[4m[7m sc_bytes [0m[1m[4m [0m[1m[4msc_status[0m[1m[4m [0m[1m[4mcs_host[0m[1m[4m [0m[1m[4mlog_part[0m[1m[4m [0m[1m[4m[7mlog_idle_msecs[0m[1m[4m [0m[1m[4mlog_mark[0m[1m[4m [0m[1m[4mlog_comment[0m[1m[4m [0m[1m[4mlog_tags[0m[1m[4m [0m[1m[4mlog_annotations[0m[1m[4m [0m[1m[4mlog_filters[0m[1m[4m [0m[1m[4m log_unique_path [0m[1m[4m [0m + 0 2009-07-20 22:59:26.000 info 192.168.202.254 GET - <NULL> /vmw/cgi/tramp gPXE/0.9.7 - HTTP/1.0 [1m[7m [0m[1m 134[0m 200 <NULL> <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> logfile_access_log.0 + 1 2009-07-20 22:59:29.000 error 192.168.202.254 GET - <NULL> /vmw/vSphere/default/vmkboot.gz gPXE/0.9.7 - HTTP/1.0 [1m[7m 4[0m[1m6210[0m 404 <NULL> <NULL> [1m[7m [0m[1m 3000[0m 0 <NULL> <NULL> <NULL> <NULL> logfile_access_log.0 +[1m 2[0m[1m [0m[1m2009-07-20 22:59:29.000[0m[1m [0m[1minfo [0m[1m [0m[1m192.168.202.254[0m[1m [0m[1mGET [0m[1m [0m[1m- [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m/vmw/vSphere/default/vmkernel.gz[0m[1m [0m[1mgPXE/0.9.7 [0m[1m [0m[1m- [0m[1m [0m[1mHTTP/1.0 [0m[1m [0m[1m[7m 78929[0m[1m [0m[1m 200[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1mlogfile_access_log.0 [0m +[1m 3[0m[1m [0m[1m2013-02-15 06:00:31.000[0m[1m [0m[1merror [0m[1m [0m[1m10.112.81.15[0m[1m [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m[1m [0m[1m- [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m[1m [0m[1m- [0m[1m [0m[1m- [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m[1m [0m[1m 0[0m[1m [0m[1m 400[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[7m 112777262000[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1mlogfile_access_log.1 [0m diff --git a/test/expected/test_sql_indexes.sh_59a1497c13a5e09bc8f95ef02552b2835ebea6e5.out b/test/expected/test_sql_indexes.sh_59a1497c13a5e09bc8f95ef02552b2835ebea6e5.out index 823c4d0..5c73e94 100644 --- a/test/expected/test_sql_indexes.sh_59a1497c13a5e09bc8f95ef02552b2835ebea6e5.out +++ b/test/expected/test_sql_indexes.sh_59a1497c13a5e09bc8f95ef02552b2835ebea6e5.out @@ -1,2 +1,2 @@ -[1m[4m[7m$id [0m[1m[4m[7m$parent [0m[1m[4m[7m$notused [0m[1m[4m replace($detail, 'SCAN TABLE', 'SCAN') [0m -[1m[7m 2[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7mSCAN all_logs VIRTUAL TABLE INDEX 1:SEARCH all_logs USING log_level <[0m[1m ? [0m +[1m[4m$id[0m[1m[4m [0m[1m[4m[7m $parent [0m[1m[4m [0m[1m[4m[7m $notused [0m[1m[4m [0m[1m[4m replace($detail, 'SCAN TABLE', 'SCAN') [0m[1m[4m [0m + 2 [1m 0[0m [1m 0[0m SCAN all_logs VIRTUAL TABLE INDEX 1:SEARCH all_logs USING log_level < ? diff --git a/test/expected/test_sql_indexes.sh_69fd19d56a8cd1fc9c7eb9351270eabb491f8233.out b/test/expected/test_sql_indexes.sh_69fd19d56a8cd1fc9c7eb9351270eabb491f8233.out index cb2aac6..c44444c 100644 --- a/test/expected/test_sql_indexes.sh_69fd19d56a8cd1fc9c7eb9351270eabb491f8233.out +++ b/test/expected/test_sql_indexes.sh_69fd19d56a8cd1fc9c7eb9351270eabb491f8233.out @@ -1,5 +1,5 @@ -[1m[4mlog_line [0m[1m[4mlog_part [0m[1m[4m log_time [0m[1m[4m[7mlog_idle_msecs [0m[1m[4mlog_level [0m[1m[4mlog_mark [0m[1m[4mlog_comment [0m[1m[4mlog_tags [0m[1m[4mlog_filters [0m[1m[4mlog_msg_format [0m[1m[4mlog_format [0m -[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m2009-07-20 22:59:26.000[0m[1m [0m[1m 0[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m [0m[1m [0m[1maccess_log [0m -[7m [0m 1 <NULL> 2009-07-20 22:59:29.000 3000 error 0 <NULL> <NULL> <NULL> access_log -[1m 2[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m2009-07-20 22:59:29.000[0m[1m [0m[1m 0[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m [0m[1m [0m[1maccess_log [0m -[7m 3[0m[7m [0m[7m <NULL>[0m[7m [0m[7m2013-02-15 06:00:31.000[0m[7m [0m[7m 112777262000[0m[7m [0m[7merror [0m[7m [0m[7m 0[0m[7m [0m[7m <NULL>[0m[7m [0m[7m <NULL>[0m[7m [0m[7m <NULL>[0m[7m [0m[7m [0m[7m [0m[7maccess_log[0m +[1m[4mlog_line[0m[1m[4m [0m[1m[4m log_time [0m[1m[4m [0m[1m[4mlog_level[0m[1m[4m [0m[1m[4mlog_msg_format[0m[1m[4m [0m[1m[4mlog_msg_values[0m[1m[4m [0m[1m[4mlog_part[0m[1m[4m [0m[1m[4m[7mlog_idle_msecs[0m[1m[4m [0m[1m[4mlog_mark[0m[1m[4m [0m[1m[4mlog_comment[0m[1m[4m [0m[1m[4mlog_tags[0m[1m[4m [0m[1m[4mlog_annotations[0m[1m[4m [0m[1m[4mlog_filters[0m[1m[4m [0m[1m[4mlog_format[0m[1m[4m [0m + 0 2009-07-20 22:59:26.000 info null <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> access_log + 1 2009-07-20 22:59:29.000 error null <NULL> [1m[7m [0m[1m 3000[0m 0 <NULL> <NULL> <NULL> <NULL> access_log +[1m 2[0m[1m [0m[1m2009-07-20 22:59:29.000[0m[1m [0m[1minfo [0m[1m [0m[1m [0m[1m [0m[1mnull [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1maccess_log [0m +[1m 3[0m[1m [0m[1m2013-02-15 06:00:31.000[0m[1m [0m[1merror [0m[1m [0m[1m [0m[1m [0m[1mnull [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[7m 112777262000[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1maccess_log [0m diff --git a/test/expected/test_sql_indexes.sh_6f707b6e856dbaab6f95e7e89b98dc3652021f85.out b/test/expected/test_sql_indexes.sh_6f707b6e856dbaab6f95e7e89b98dc3652021f85.out index ee48805..8e21b1b 100644 --- a/test/expected/test_sql_indexes.sh_6f707b6e856dbaab6f95e7e89b98dc3652021f85.out +++ b/test/expected/test_sql_indexes.sh_6f707b6e856dbaab6f95e7e89b98dc3652021f85.out @@ -1,3 +1,3 @@ -[1m[4mlog_line [0m[1m[4mlog_part [0m[1m[4m log_time [0m[1m[4m[7mlog_idle_msecs [0m[1m[4mlog_level [0m[1m[4mlog_mark [0m[1m[4mlog_comment [0m[1m[4mlog_tags [0m[1m[4mlog_filters [0m[1m[4mlog_msg_format [0m -[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m2009-07-20 22:59:26.000[0m[1m [0m[1m 0[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m [0m - 2 <NULL> 2009-07-20 22:59:29.000 0 info 0 <NULL> <NULL> <NULL> +[1m[4mlog_line[0m[1m[4m [0m[1m[4m log_time [0m[1m[4m [0m[1m[4mlog_level[0m[1m[4m [0m[1m[4mlog_msg_format[0m[1m[4m [0m[1m[4mlog_msg_values[0m[1m[4m [0m[1m[4mlog_part[0m[1m[4m [0m[1m[4m[7mlog_idle_msecs[0m[1m[4m [0m[1m[4mlog_mark[0m[1m[4m [0m[1m[4mlog_comment[0m[1m[4m [0m[1m[4mlog_tags[0m[1m[4m [0m[1m[4mlog_annotations[0m[1m[4m [0m[1m[4mlog_filters[0m[1m[4m [0m + 0 2009-07-20 22:59:26.000 info null <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> + 2 2009-07-20 22:59:29.000 info null <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> diff --git a/test/expected/test_sql_indexes.sh_b615b6737b1e0d383c8ce4a1db56332f11dbc158.out b/test/expected/test_sql_indexes.sh_b615b6737b1e0d383c8ce4a1db56332f11dbc158.out index 2a91985..f56f904 100644 --- a/test/expected/test_sql_indexes.sh_b615b6737b1e0d383c8ce4a1db56332f11dbc158.out +++ b/test/expected/test_sql_indexes.sh_b615b6737b1e0d383c8ce4a1db56332f11dbc158.out @@ -1,2 +1,2 @@ -[1m[4m[7m$id [0m[1m[4m[7m$parent [0m[1m[4m[7m$notused [0m[1m[4m replace($detail, 'SCAN TABLE', 'SCAN') [0m -[1m[7m 2[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7mSCAN all_logs VIRTUAL TABLE INDEX 1:SEARCH all_logs USING log_format =[0m[1m ? [0m +[1m[4m$id[0m[1m[4m [0m[1m[4m[7m $parent [0m[1m[4m [0m[1m[4m[7m $notused [0m[1m[4m [0m[1m[4m replace($detail, 'SCAN TABLE', 'SCAN') [0m[1m[4m [0m + 2 [1m 0[0m [1m 0[0m SCAN all_logs VIRTUAL TABLE INDEX 1:SEARCH all_logs USING log_format = ? diff --git a/test/expected/test_sql_indexes.sh_dab07d8de7728752ae938a174468d75e85f3ae7e.out b/test/expected/test_sql_indexes.sh_dab07d8de7728752ae938a174468d75e85f3ae7e.out index 82958af..7d20aa3 100644 --- a/test/expected/test_sql_indexes.sh_dab07d8de7728752ae938a174468d75e85f3ae7e.out +++ b/test/expected/test_sql_indexes.sh_dab07d8de7728752ae938a174468d75e85f3ae7e.out @@ -1,2 +1,2 @@ -[1m[4m[7m$id [0m[1m[4m[7m$parent [0m[1m[4m[7m$notused [0m[1m[4m replace($detail, 'SCAN TABLE', 'SCAN') [0m -[1m[7m 2[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7mSCAN access_log VIRTUAL TABLE INDEX 1:SEARCH access_log USING log_path GLOB[0m[1m ? [0m +[1m[4m$id[0m[1m[4m [0m[1m[4m[7m $parent [0m[1m[4m [0m[1m[4m[7m $notused [0m[1m[4m [0m[1m[4m replace($detail, 'SCAN TABLE', 'SCAN') [0m[1m[4m [0m + 2 [1m 0[0m [1m 0[0m SCAN access_log VIRTUAL TABLE INDEX 1:SEARCH access_log USING log_path GLOB ? diff --git a/test/expected/test_sql_indexes.sh_f7681c234d4f60df16c997a05163aeb058c52870.out b/test/expected/test_sql_indexes.sh_f7681c234d4f60df16c997a05163aeb058c52870.out index 16c7c37..240259b 100644 --- a/test/expected/test_sql_indexes.sh_f7681c234d4f60df16c997a05163aeb058c52870.out +++ b/test/expected/test_sql_indexes.sh_f7681c234d4f60df16c997a05163aeb058c52870.out @@ -1,5 +1,5 @@ -[1m[4mlog_line [0m[1m[4mlog_part [0m[1m[4m log_time [0m[1m[4m[7mlog_idle_msecs [0m[1m[4mlog_level [0m[1m[4mlog_mark [0m[1m[4mlog_comment [0m[1m[4mlog_tags [0m[1m[4mlog_filters [0m[1m[4mlog_msg_format [0m -[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m2009-07-20 22:59:26.000[0m[1m [0m[1m 0[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m [0m -[7m [0m 1 <NULL> 2009-07-20 22:59:29.000 3000 error 0 <NULL> <NULL> <NULL> -[1m 2[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m2009-07-20 22:59:29.000[0m[1m [0m[1m 0[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m [0m -[7m 3[0m[7m [0m[7m <NULL>[0m[7m [0m[7m2013-02-15 06:00:31.000[0m[7m [0m[7m 112777262000[0m[7m [0m[7merror [0m[7m [0m[7m 0[0m[7m [0m[7m <NULL>[0m[7m [0m[7m <NULL>[0m[7m [0m[7m <NULL>[0m[7m [0m[7m [0m +[1m[4mlog_line[0m[1m[4m [0m[1m[4m log_time [0m[1m[4m [0m[1m[4mlog_level[0m[1m[4m [0m[1m[4mlog_msg_format[0m[1m[4m [0m[1m[4mlog_msg_values[0m[1m[4m [0m[1m[4mlog_part[0m[1m[4m [0m[1m[4m[7mlog_idle_msecs[0m[1m[4m [0m[1m[4mlog_mark[0m[1m[4m [0m[1m[4mlog_comment[0m[1m[4m [0m[1m[4mlog_tags[0m[1m[4m [0m[1m[4mlog_annotations[0m[1m[4m [0m[1m[4mlog_filters[0m[1m[4m [0m + 0 2009-07-20 22:59:26.000 info null <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> + 1 2009-07-20 22:59:29.000 error null <NULL> [1m[7m [0m[1m 3000[0m 0 <NULL> <NULL> <NULL> <NULL> +[1m 2[0m[1m [0m[1m2009-07-20 22:59:29.000[0m[1m [0m[1minfo [0m[1m [0m[1m [0m[1m [0m[1mnull [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m +[1m 3[0m[1m [0m[1m2013-02-15 06:00:31.000[0m[1m [0m[1merror [0m[1m [0m[1m [0m[1m [0m[1mnull [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[7m 112777262000[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m diff --git a/test/expected/test_sql_json_func.sh_026077f4d573ee034467065b7e4f1878bdd4e2f2.err b/test/expected/test_sql_json_func.sh_026077f4d573ee034467065b7e4f1878bdd4e2f2.err index 9654daa..84205dc 100644 --- a/test/expected/test_sql_json_func.sh_026077f4d573ee034467065b7e4f1878bdd4e2f2.err +++ b/test/expected/test_sql_json_func.sh_026077f4d573ee034467065b7e4f1878bdd4e2f2.err @@ -1,4 +1 @@ -error: sqlite3_exec failed -- parse error: premature EOF - [123, true - (right here) ------^ - +error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"invalid JSON","attrs":[]},"reason":{"str":"parse error: premature EOF\n [123, true\n (right here) ------^","attrs":[]},"snippets":[],"notes":[],"help":{"str":"","attrs":[]}} diff --git a/test/expected/test_sql_json_func.sh_5f2feef079a51410e1f8661bfe92da1c3277f665.err b/test/expected/test_sql_json_func.sh_5f2feef079a51410e1f8661bfe92da1c3277f665.err index f784e9c..99b48bc 100644 --- a/test/expected/test_sql_json_func.sh_5f2feef079a51410e1f8661bfe92da1c3277f665.err +++ b/test/expected/test_sql_json_func.sh_5f2feef079a51410e1f8661bfe92da1c3277f665.err @@ -1 +1 @@ -error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"call to json_contains(json, value) failed","attrs":[{"start":8,"end":21,"type":"role","value":47},{"start":22,"end":26,"type":"role","value":46},{"start":28,"end":33,"type":"role","value":46},{"start":8,"end":34,"type":"role","value":60}]},"reason":{"str":"parse error: premature EOF\n [\"hi\", \"bye\", \"solong]\n (right here) ------^","attrs":[]},"snippets":[],"help":{"str":"","attrs":[]}} +error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"call to json_contains(json, value) failed","attrs":[{"start":8,"end":21,"type":"role","value":49},{"start":22,"end":26,"type":"role","value":48},{"start":28,"end":33,"type":"role","value":48},{"start":8,"end":34,"type":"role","value":65}]},"reason":{"str":"parse error: premature EOF\n [\"hi\", \"bye\", \"solong]\n (right here) ------^","attrs":[]},"snippets":[],"notes":[],"help":{"str":"","attrs":[]}} diff --git a/test/expected/test_sql_json_func.sh_e0ab80f50fb008700ab6cfb90694ed014d40e44b.err b/test/expected/test_sql_json_func.sh_e0ab80f50fb008700ab6cfb90694ed014d40e44b.err index 456ef7a..6033ba4 100644 --- a/test/expected/test_sql_json_func.sh_e0ab80f50fb008700ab6cfb90694ed014d40e44b.err +++ b/test/expected/test_sql_json_func.sh_e0ab80f50fb008700ab6cfb90694ed014d40e44b.err @@ -1 +1 @@ -error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"call to json_concat(json, value, ...) failed","attrs":[{"start":8,"end":19,"type":"role","value":47},{"start":20,"end":24,"type":"role","value":46},{"start":26,"end":31,"type":"role","value":46},{"start":8,"end":37,"type":"role","value":60}]},"reason":{"str":"Invalid JSON: parse error: premature EOF\n [null,\n (right here) ------^","attrs":[]},"snippets":[],"help":{"str":"","attrs":[]}} +error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"call to json_concat(json, value, ...) failed","attrs":[{"start":8,"end":19,"type":"role","value":49},{"start":20,"end":24,"type":"role","value":48},{"start":26,"end":31,"type":"role","value":48},{"start":8,"end":37,"type":"role","value":65}]},"reason":{"str":"Invalid JSON: parse error: premature EOF\n [null,\n (right here) ------^","attrs":[]},"snippets":[],"notes":[],"help":{"str":"","attrs":[]}} diff --git a/test/expected/test_sql_json_func.sh_f34f5dfa938a1ac7721f924beb16bbceec127a1b.err b/test/expected/test_sql_json_func.sh_f34f5dfa938a1ac7721f924beb16bbceec127a1b.err index e8eef68..cffd039 100644 --- a/test/expected/test_sql_json_func.sh_f34f5dfa938a1ac7721f924beb16bbceec127a1b.err +++ b/test/expected/test_sql_json_func.sh_f34f5dfa938a1ac7721f924beb16bbceec127a1b.err @@ -1,4 +1 @@ -error: sqlite3_exec failed -- parse error: premature EOF - [null, true, 20, 30, 40 - (right here) ------^ - +error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"invalid JSON","attrs":[]},"reason":{"str":"parse error: premature EOF\n [null, true, 20, 30, 40\n (right here) ------^","attrs":[]},"snippets":[],"notes":[],"help":{"str":"","attrs":[]}} diff --git a/test/expected/test_sql_regexp.sh_02ef03572fd2bcf39bab8e29cf1c735ff7c3f297.err b/test/expected/test_sql_regexp.sh_02ef03572fd2bcf39bab8e29cf1c735ff7c3f297.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_regexp.sh_02ef03572fd2bcf39bab8e29cf1c735ff7c3f297.err diff --git a/test/expected/test_sql_regexp.sh_02ef03572fd2bcf39bab8e29cf1c735ff7c3f297.out b/test/expected/test_sql_regexp.sh_02ef03572fd2bcf39bab8e29cf1c735ff7c3f297.out new file mode 100644 index 0000000..8948203 --- /dev/null +++ b/test/expected/test_sql_regexp.sh_02ef03572fd2bcf39bab8e29cf1c735ff7c3f297.out @@ -0,0 +1,3 @@ +[1m[4mregexp_replace(cs_uri_query, '.*rapidView=(\d+).*', '\1')[0m[1m[4m [0m +1295 +1839 diff --git a/test/expected/test_sql_regexp.sh_03257c56e85558aa0cc925b68d3af962afc25125.out b/test/expected/test_sql_regexp.sh_03257c56e85558aa0cc925b68d3af962afc25125.out index 19aa1c4..5074519 100644 --- a/test/expected/test_sql_regexp.sh_03257c56e85558aa0cc925b68d3af962afc25125.out +++ b/test/expected/test_sql_regexp.sh_03257c56e85558aa0cc925b68d3af962afc25125.out @@ -1,4 +1,4 @@ -[1m[4mmatch_index [0m[1m[4mcapture_index [0m[1m[4mcapture_name [0m[1m[4mcapture_count [0m[1m[4mrange_start [0m[1m[4mrange_stop [0m[1m[4mcontent [0m -[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 3[0m[1m [0m[1m 1[0m[1m [0m[1m 9[0m[1m [0m[1mabc=def; [0m +[1m[4mmatch_index[0m[1m[4m [0m[1m[4mcapture_index[0m[1m[4m [0m[1m[4mcapture_name[0m[1m[4m [0m[1m[4mcapture_count[0m[1m[4m [0m[1m[4mrange_start[0m[1m[4m [0m[1m[4mrange_stop[0m[1m[4m [0m[1m[4mcontent [0m[1m[4m [0m + 0 0 <NULL> 3 1 9 abc=def; 0 1 <NULL> 3 1 4 abc [1m 0[0m[1m [0m[1m 2[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 3[0m[1m [0m[1m 5[0m[1m [0m[1m 8[0m[1m [0m[1mdef [0m diff --git a/test/expected/test_sql_regexp.sh_219a579cf7744fa08ab79fadd08b521b2f18a661.err b/test/expected/test_sql_regexp.sh_219a579cf7744fa08ab79fadd08b521b2f18a661.err new file mode 100644 index 0000000..824c120 --- /dev/null +++ b/test/expected/test_sql_regexp.sh_219a579cf7744fa08ab79fadd08b521b2f18a661.err @@ -0,0 +1,7 @@ +[1m[31m✘ error[0m: “^(” is not a valid regular expression + [1m[31mreason[0m: missing closing parenthesis +[36m --> [0m[1mcommand-option[0m:1 +[36m | [0m[37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40m*[0m[37m[40m [0m[1m[36m[40mfrom[0m[37m[40m [0m[1m[37m[40mregexp_capture_into_json[0m[37m[40m([0m[35m[40m'abc=def;ghi=jkl;'[0m[37m[40m, [0m[35m[40m'^('[0m[37m[40m)[0m +[36m --> [0m[1mpattern[0m +[36m | [0m[1m[36m[40m^[0m[1m[7m[32m[40m([0m[37m[40m [0m +[36m | [0m[37m[40m [0m[1m[31m[40m^ [0m[1m[31m[40mmissing closing parenthesis[0m[37m[40m [0m diff --git a/test/expected/test_sql_regexp.sh_219a579cf7744fa08ab79fadd08b521b2f18a661.out b/test/expected/test_sql_regexp.sh_219a579cf7744fa08ab79fadd08b521b2f18a661.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_regexp.sh_219a579cf7744fa08ab79fadd08b521b2f18a661.out diff --git a/test/expected/test_sql_regexp.sh_51293df041b6969ccecc60204dce3676d0fb006d.out b/test/expected/test_sql_regexp.sh_51293df041b6969ccecc60204dce3676d0fb006d.out index 4917183..dfdbb10 100644 --- a/test/expected/test_sql_regexp.sh_51293df041b6969ccecc60204dce3676d0fb006d.out +++ b/test/expected/test_sql_regexp.sh_51293df041b6969ccecc60204dce3676d0fb006d.out @@ -1,2 +1,2 @@ -[1m[4mmatch_index [0m[1m[4m content [0m -[1m[7m 0[0m[1m[7m [0m[1m[7m{"key":"foo","value":4670}[0m[1m [0m +[1m[4mmatch_index[0m[1m[4m [0m[1m[4m content [0m[1m[4m [0m + 0 [7m{"key":"foo","value":4670}[0m diff --git a/test/expected/test_sql_regexp.sh_a610798fefdacd8d0179a4b17cd757d00fb731be.err b/test/expected/test_sql_regexp.sh_a610798fefdacd8d0179a4b17cd757d00fb731be.err new file mode 100644 index 0000000..209f89e --- /dev/null +++ b/test/expected/test_sql_regexp.sh_a610798fefdacd8d0179a4b17cd757d00fb731be.err @@ -0,0 +1,7 @@ +[1m[31m✘ error[0m: “^(” is not a valid regular expression + [1m[31mreason[0m: missing closing parenthesis +[36m --> [0m[1mcommand-option[0m:1 +[36m | [0m[37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40m*[0m[37m[40m [0m[1m[36m[40mfrom[0m[37m[40m [0m[1m[37m[40mregexp_capture[0m[37m[40m([0m[35m[40m'abc=def;ghi=jkl;'[0m[37m[40m, [0m[35m[40m'^('[0m[37m[40m)[0m +[36m --> [0m[1mpattern[0m +[36m | [0m[1m[36m[40m^[0m[1m[7m[32m[40m([0m[37m[40m [0m +[36m | [0m[37m[40m [0m[1m[31m[40m^ [0m[1m[31m[40mmissing closing parenthesis[0m[37m[40m [0m diff --git a/test/expected/test_sql_regexp.sh_a610798fefdacd8d0179a4b17cd757d00fb731be.out b/test/expected/test_sql_regexp.sh_a610798fefdacd8d0179a4b17cd757d00fb731be.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_regexp.sh_a610798fefdacd8d0179a4b17cd757d00fb731be.out diff --git a/test/expected/test_sql_regexp.sh_b841a0c09601e2419eeb99e85f7e286c889e4801.out b/test/expected/test_sql_regexp.sh_b841a0c09601e2419eeb99e85f7e286c889e4801.out index 78f05ff..8ce275a 100644 --- a/test/expected/test_sql_regexp.sh_b841a0c09601e2419eeb99e85f7e286c889e4801.out +++ b/test/expected/test_sql_regexp.sh_b841a0c09601e2419eeb99e85f7e286c889e4801.out @@ -1,27 +1,27 @@ -log_line,log_part,log_time,log_idle_msecs,log_level,log_mark,log_comment,log_tags,log_filters,log_hostname,log_msgid,log_pid,log_pri,log_procname,log_struct,log_syslog_tag,syslog_version,match_index,content -2,<NULL>,2022-08-16 00:32:15.000,199000,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,0,"{""value"":""com.apple.cdscheduler""}" -2,<NULL>,2022-08-16 00:32:15.000,199000,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,1,"{""value"":"" claims selected messages.\n\tThose messages may not appear in standard system log files or in the ASL database.""}" -5,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,0,"{""value"":""com.apple.install""}" -5,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,1,"{""value"":"" claims selected messages.\n\tThose messages may not appear in standard system log files or in the ASL database.""}" -8,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,0,"{""value"":""com.apple.authd""}" -8,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,1,"{""value"":"" sharing output destination ""}" -8,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,2,"{""value"":""/var/log/asl""}" -8,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,3,"{""value"":"" with ASL Module ""}" -8,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,4,"{""value"":""com.apple.asl""}" -8,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,5,"{""value"":"".\n\tOutput parameters from ASL Module ""}" -8,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,6,"{""value"":""com.apple.asl""}" -8,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,7,"{""value"":"" override any specified in ASL Module ""}" -8,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,8,"{""value"":""com.apple.authd""}" -8,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,9,"{""value"":"".""}" -11,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,0,"{""value"":""com.apple.authd""}" -11,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,1,"{""value"":"" sharing output destination ""}" -11,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,2,"{""value"":""/var/log/system.log""}" -11,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,3,"{""value"":"" with ASL Module ""}" -11,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,4,"{""value"":""com.apple.asl""}" -11,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,5,"{""value"":"".\n\tOutput parameters from ASL Module ""}" -11,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,6,"{""value"":""com.apple.asl""}" -11,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,7,"{""value"":"" override any specified in ASL Module ""}" -11,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,8,"{""value"":""com.apple.authd""}" -11,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,9,"{""value"":"".""}" -14,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,0,"{""value"":""com.apple.authd""}" -14,<NULL>,2022-08-16 00:32:15.000,0,info,0,<NULL>,<NULL>,<NULL>,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,1,"{""value"":"" claims selected messages.\n\tThose messages may not appear in standard system log files or in the ASL database.""}" +log_line,log_time,log_level,log_hostname,log_msgid,log_pid,log_pri,log_procname,log_struct,log_syslog_tag,syslog_version,log_part,log_idle_msecs,log_mark,log_comment,log_tags,log_annotations,log_filters,match_index,content +2,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,199000,0,<NULL>,<NULL>,<NULL>,<NULL>,0,"{""value"":""com.apple.cdscheduler""}" +2,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,199000,0,<NULL>,<NULL>,<NULL>,<NULL>,1,"{""value"":"" claims selected messages.\n\tThose messages may not appear in standard system log files or in the ASL database.""}" +5,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,0,"{""value"":""com.apple.install""}" +5,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,1,"{""value"":"" claims selected messages.\n\tThose messages may not appear in standard system log files or in the ASL database.""}" +8,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,0,"{""value"":""com.apple.authd""}" +8,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,1,"{""value"":"" sharing output destination ""}" +8,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,2,"{""value"":""/var/log/asl""}" +8,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,3,"{""value"":"" with ASL Module ""}" +8,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,4,"{""value"":""com.apple.asl""}" +8,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,5,"{""value"":"".\n\tOutput parameters from ASL Module ""}" +8,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,6,"{""value"":""com.apple.asl""}" +8,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,7,"{""value"":"" override any specified in ASL Module ""}" +8,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,8,"{""value"":""com.apple.authd""}" +8,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,9,"{""value"":"".""}" +11,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,0,"{""value"":""com.apple.authd""}" +11,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,1,"{""value"":"" sharing output destination ""}" +11,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,2,"{""value"":""/var/log/system.log""}" +11,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,3,"{""value"":"" with ASL Module ""}" +11,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,4,"{""value"":""com.apple.asl""}" +11,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,5,"{""value"":"".\n\tOutput parameters from ASL Module ""}" +11,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,6,"{""value"":""com.apple.asl""}" +11,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,7,"{""value"":"" override any specified in ASL Module ""}" +11,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,8,"{""value"":""com.apple.authd""}" +11,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,9,"{""value"":"".""}" +14,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,0,"{""value"":""com.apple.authd""}" +14,2022-08-16 00:32:15.000,info,Tims-Air,<NULL>,314,<NULL>,syslogd,<NULL>,syslogd[314],<NULL>,<NULL>,0,0,<NULL>,<NULL>,<NULL>,<NULL>,1,"{""value"":"" claims selected messages.\n\tThose messages may not appear in standard system log files or in the ASL database.""}" diff --git a/test/expected/test_sql_regexp.sh_bbd1128cf61a9af8f9dc937b46217443f42e1a7a.out b/test/expected/test_sql_regexp.sh_bbd1128cf61a9af8f9dc937b46217443f42e1a7a.out index 655ce13..43adbdc 100644 --- a/test/expected/test_sql_regexp.sh_bbd1128cf61a9af8f9dc937b46217443f42e1a7a.out +++ b/test/expected/test_sql_regexp.sh_bbd1128cf61a9af8f9dc937b46217443f42e1a7a.out @@ -1,2 +1,2 @@ -[1m[4mmatch_index [0m[1m[4m content [0m -[1m 0[0m[1m [0m[1m{"key":"foo","value":"123e"} [0m +[1m[4mmatch_index[0m[1m[4m [0m[1m[4m content [0m[1m[4m [0m + 0 {"key":"foo","value":"123e"} diff --git a/test/expected/test_sql_regexp.sh_d61af17ff19d640ddfc879460910991825eedd05.out b/test/expected/test_sql_regexp.sh_d61af17ff19d640ddfc879460910991825eedd05.out index 6e952fb..2d39ef5 100644 --- a/test/expected/test_sql_regexp.sh_d61af17ff19d640ddfc879460910991825eedd05.out +++ b/test/expected/test_sql_regexp.sh_d61af17ff19d640ddfc879460910991825eedd05.out @@ -1,2 +1,2 @@ -[1m[4mmatch_index [0m[1m[4m content [0m -[1m 0[0m[1m [0m[1m{"col_0":"abc","col_1":"def"} [0m +[1m[4mmatch_index[0m[1m[4m [0m[1m[4m content [0m[1m[4m [0m + 0 {"col_0":"abc","col_1":"def"} diff --git a/test/expected/test_sql_regexp.sh_ed6e9f13f178def009ee58c2aeea8c3c70fdb580.out b/test/expected/test_sql_regexp.sh_ed6e9f13f178def009ee58c2aeea8c3c70fdb580.out index fef8e26..ae86ce4 100644 --- a/test/expected/test_sql_regexp.sh_ed6e9f13f178def009ee58c2aeea8c3c70fdb580.out +++ b/test/expected/test_sql_regexp.sh_ed6e9f13f178def009ee58c2aeea8c3c70fdb580.out @@ -1,2 +1,2 @@ -[1m[4mmatch_index [0m[1m[4m content [0m -[1m 0[0m[1m [0m[1m{"key":"foo","value":"0x123e"} [0m +[1m[4mmatch_index[0m[1m[4m [0m[1m[4m content [0m[1m[4m [0m + 0 {"key":"foo","value":"0x123e"} diff --git a/test/expected/test_sql_search_table.sh_1a0d872ebc492fcecb2e79a0993170d5fc771a5b.out b/test/expected/test_sql_search_table.sh_1a0d872ebc492fcecb2e79a0993170d5fc771a5b.out index d56bc20..9a85781 100644 --- a/test/expected/test_sql_search_table.sh_1a0d872ebc492fcecb2e79a0993170d5fc771a5b.out +++ b/test/expected/test_sql_search_table.sh_1a0d872ebc492fcecb2e79a0993170d5fc771a5b.out @@ -1,2 +1,2 @@ -[1m[4mlog_line [0m[1m[4mlog_part [0m[1m[4m log_time [0m[1m[4m[7mlog_idle_msecs [0m[1m[4mlog_level [0m[1m[4mlog_mark [0m[1m[4mlog_comment [0m[1m[4mlog_tags [0m[1m[4mlog_filters [0m[1m[4m comp [0m[1m[4m opid [0m[1m[4m tid [0m[1m[4m user [0m[1m[4m item [0m[1m[4mprc [0m[1m[4mreason [0m[1m[4m req [0m[1m[4m sid [0m[1m[4m src [0m[1m[4m sub [0m[1m[4mvpxa_update [0m[1m[4m line [0m[1m[4m file [0m[1m[4mmatch_index [0m[1m[4m lro_id [0m[1m[4m entity [0m[1m[4m operation [0m[1m[4m SessionId [0m[1m[4m SessionSubId [0m -[1m[7m 2[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m2022-06-02 11:58:12.376[0m[1m[7m [0m[1m[7m 182[0m[1m[7m [0m[1m[7minfo [0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m<NULL>[0m[1m[7m [0m[1m[7me3979f6[0m[1m[7m [0m[1m[7m45709[0m[1m[7m [0m[1m[7m<NULL>[0m[1m[7m [0m[1m[7m<NULL>[0m[1m[7m [0m[1m[7mvpxd[0m[1m[7m [0m[1m[7m<NULL>[0m[1m[7m [0m[1m[7m<NULL>[0m[1m[7m [0m[1m[7m<NULL>[0m[1m[7m [0m[1m[7mOriginator@6876[0m[1m[7m [0m[1m[7mvpxLro[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m<NULL>[0m[1m[7m [0m[1m[7m<NULL>[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7mlro-846064[0m[1m[7m [0m[1m[7mSessionManager[0m[1m[7m [0m[1m[7mvim.SessionManager.sessionIsActive[0m[1m[7m [0m[1m[7m52626140-422b-6287-b4e4-344192c6a01d[0m[1m[7m [0m[1m[7m523e0a4b-6e83-6bcd-9342-22502dd89866[0m[1m [0m +[1m[4mlog_line[0m[1m[4m [0m[1m[4m log_time [0m[1m[4m [0m[1m[4mlog_level[0m[1m[4m [0m[1m[4m comp [0m[1m[4m [0m[1m[4m opid [0m[1m[4m [0m[1m[4m tid [0m[1m[4m [0m[1m[4m user [0m[1m[4m [0m[1m[4m file [0m[1m[4m [0m[1m[4m item [0m[1m[4m [0m[1m[4m line [0m[1m[4m [0m[1m[4mprc [0m[1m[4m [0m[1m[4mreason[0m[1m[4m [0m[1m[4m req [0m[1m[4m [0m[1m[4m sid [0m[1m[4m [0m[1m[4m src [0m[1m[4m [0m[1m[4m sub [0m[1m[4m [0m[1m[4mvpxa_update[0m[1m[4m [0m[1m[4mmatch_index[0m[1m[4m [0m[1m[4m lro_id [0m[1m[4m [0m[1m[4m entity [0m[1m[4m [0m[1m[4m operation [0m[1m[4m [0m[1m[4m SessionId [0m[1m[4m [0m[1m[4m SessionSubId [0m[1m[4m [0m[1m[4mlog_part[0m[1m[4m [0m[1m[4m[7mlog_idle_msecs[0m[1m[4m [0m[1m[4mlog_mark[0m[1m[4m [0m[1m[4mlog_comment[0m[1m[4m [0m[1m[4mlog_tags[0m[1m[4m [0m[1m[4mlog_annotations[0m[1m[4m [0m[1m[4mlog_filters[0m[1m[4m [0m + 2 2022-06-02 11:58:12.376 info <NULL> e3979f6 45709 <NULL> <NULL> <NULL> <NULL> vpxd <NULL> <NULL> <NULL> Originator@6876 vpxLro <NULL> 0 lro-846064 SessionManager vim.SessionManager.sessionIsActive 52626140-422b-6287-b4e4-344192c6a01d 523e0a4b-6e83-6bcd-9342-22502dd89866 <NULL> [1m[7m 182[0m 0 <NULL> <NULL> <NULL> <NULL> diff --git a/test/expected/test_sql_search_table.sh_3f5f74863d065418bca5a000e6ad3d9344635164.out b/test/expected/test_sql_search_table.sh_3f5f74863d065418bca5a000e6ad3d9344635164.out index c92cf49..20f031d 100644 --- a/test/expected/test_sql_search_table.sh_3f5f74863d065418bca5a000e6ad3d9344635164.out +++ b/test/expected/test_sql_search_table.sh_3f5f74863d065418bca5a000e6ad3d9344635164.out @@ -1,12 +1,12 @@ -[1m[4mlog_line [0m[1m[4mlog_part [0m[1m[4m log_time [0m[1m[4m[7mlog_idle_msecs [0m[1m[4mlog_level [0m[1m[4mlog_mark [0m[1m[4mlog_comment [0m[1m[4mlog_tags [0m[1m[4mlog_filters [0m[1m[4mmatch_index [0m[1m[4m name [0m -[1m[7m 2[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m2022-08-16 00:32:15.000[0m[1m[7m [0m[1m[7m 199000[0m[1m[7m [0m[1m[7minfo [0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7mcom.apple.cdscheduler[0m[1m [0m - 5 <NULL> 2022-08-16 00:32:15.000 0 info 0 <NULL> <NULL> <NULL> 0 com.apple.install -[1m 8[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m2022-08-16 00:32:15.000[0m[1m [0m[1m 0[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 0[0m[1m [0m[1mcom.apple.authd [0m - 8 <NULL> 2022-08-16 00:32:15.000 0 info 0 <NULL> <NULL> <NULL> 1 com.apple.asl -[1m 8[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m2022-08-16 00:32:15.000[0m[1m [0m[1m 0[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 2[0m[1m [0m[1mcom.apple.asl [0m - 8 <NULL> 2022-08-16 00:32:15.000 0 info 0 <NULL> <NULL> <NULL> 3 com.apple.authd -[1m 11[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m2022-08-16 00:32:15.000[0m[1m [0m[1m 0[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 0[0m[1m [0m[1mcom.apple.authd [0m - 11 <NULL> 2022-08-16 00:32:15.000 0 info 0 <NULL> <NULL> <NULL> 1 com.apple.asl -[1m 11[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m2022-08-16 00:32:15.000[0m[1m [0m[1m 0[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 2[0m[1m [0m[1mcom.apple.asl [0m - 11 <NULL> 2022-08-16 00:32:15.000 0 info 0 <NULL> <NULL> <NULL> 3 com.apple.authd -[1m 14[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m2022-08-16 00:32:15.000[0m[1m [0m[1m 0[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 0[0m[1m [0m[1mcom.apple.authd [0m +[1m[4mlog_line[0m[1m[4m [0m[1m[4m log_time [0m[1m[4m [0m[1m[4mlog_level[0m[1m[4m [0m[1m[4mmatch_index[0m[1m[4m [0m[1m[4m name [0m[1m[4m [0m[1m[4mlog_part[0m[1m[4m [0m[1m[4m[7mlog_idle_msecs[0m[1m[4m [0m[1m[4mlog_mark[0m[1m[4m [0m[1m[4mlog_comment[0m[1m[4m [0m[1m[4mlog_tags[0m[1m[4m [0m[1m[4mlog_annotations[0m[1m[4m [0m[1m[4mlog_filters[0m[1m[4m [0m + 2 2022-08-16 00:32:15.000 info 0 com.apple.cdscheduler <NULL> [1m[7m 199000[0m 0 <NULL> <NULL> <NULL> <NULL> + 5 2022-08-16 00:32:15.000 info 0 com.apple.install <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> +[1m 8[0m[1m [0m[1m2022-08-16 00:32:15.000[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1mcom.apple.authd [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m +[1m 8[0m[1m [0m[1m2022-08-16 00:32:15.000[0m[1m [0m[1minfo [0m[1m [0m[1m 1[0m[1m [0m[1mcom.apple.asl [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m + 8 2022-08-16 00:32:15.000 info 2 com.apple.asl <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> + 8 2022-08-16 00:32:15.000 info 3 com.apple.authd <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> +[1m 11[0m[1m [0m[1m2022-08-16 00:32:15.000[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1mcom.apple.authd [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m +[1m 11[0m[1m [0m[1m2022-08-16 00:32:15.000[0m[1m [0m[1minfo [0m[1m [0m[1m 1[0m[1m [0m[1mcom.apple.asl [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m + 11 2022-08-16 00:32:15.000 info 2 com.apple.asl <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> + 11 2022-08-16 00:32:15.000 info 3 com.apple.authd <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> +[1m 14[0m[1m [0m[1m2022-08-16 00:32:15.000[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1mcom.apple.authd [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m diff --git a/test/expected/test_sql_search_table.sh_5aaae556ecb1661602f176215e28f661d3404032.out b/test/expected/test_sql_search_table.sh_5aaae556ecb1661602f176215e28f661d3404032.out index 738eab3..ed52844 100644 --- a/test/expected/test_sql_search_table.sh_5aaae556ecb1661602f176215e28f661d3404032.out +++ b/test/expected/test_sql_search_table.sh_5aaae556ecb1661602f176215e28f661d3404032.out @@ -1,4 +1,4 @@ -[1m[4mlog_line [0m[1m[4mlog_part [0m[1m[4m log_time [0m[1m[4m[7mlog_idle_msecs [0m[1m[4mlog_level [0m[1m[4mlog_mark [0m[1m[4mlog_comment [0m[1m[4mlog_tags [0m[1m[4mlog_filters [0m[1m[4mmatch_index [0m[1m[4muser [0m[1m[4mpid [0m[1m[4m[7mcpu_pct [0m[1m[4m[7mmem_pct [0m[1m[4m[7mvsz [0m[1m[4m[7mrss [0m[1m[4mtty [0m[1m[4mstat [0m[1m[4mstart_time [0m[1m[4mcpu_time [0m[1m[4m cmd [0m[1m[4m cmd_name [0m[1m[4mcmd_args [0m -[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m2022-06-02 00:01:01.000[0m[1m [0m[1m 0[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 1[0m[1m [0m[1mroot[0m[1m [0m[1m 2[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mS [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m[kthreadd][0m[1m [0m[1m[kthreadd][0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m -[7m 12[0m[7m [0m[7m <NULL>[0m[7m [0m[7m2022-06-02 00:02:01.000[0m[7m [0m[7m 60000[0m[7m [0m[7minfo [0m[7m [0m[7m 0[0m[7m [0m[7m <NULL>[0m[7m [0m[7m <NULL>[0m[7m [0m[7m <NULL>[0m[7m [0m[7m 1[0m[7m [0m[7mroot[0m[7m [0m[7m 2[0m[7m [0m[7m 0[0m[7m [0m[7m 0[0m[7m [0m[7m 0[0m[7m [0m[7m 0[0m[7m [0m[7m? [0m[7m [0m[7mS [0m[7m [0m[7mJun01 [0m[7m [0m[7m0:00 [0m[7m [0m[7m[kthreadd][0m[7m [0m[7m[kthreadd][0m[7m [0m[7m <N[0mULL> -[1m[7m 30[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m2022-06-02 00:03:01.000[0m[1m[7m [0m[1m[7m 60000[0m[1m[7m [0m[1m[7minfo [0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m 1[0m[1m[7m [0m[1m[7mroot[0m[1m[7m [0m[1m[7m 2[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m? [0m[1m[7m [0m[1m[7mS [0m[1m[7m [0m[1m[7mJun01 [0m[1m[7m [0m[1m[7m0:00 [0m[1m[7m [0m[1m[7m[kthreadd][0m[1m[7m [0m[1m[7m[kthreadd][0m[1m[7m [0m[1m[7m <N[0m[1mULL> [0m +[1m[4mlog_line[0m[1m[4m [0m[1m[4m log_time [0m[1m[4m [0m[1m[4mlog_level[0m[1m[4m [0m[1m[4mmatch_index[0m[1m[4m [0m[1m[4muser[0m[1m[4m [0m[1m[4m ppid [0m[1m[4m [0m[1m[4mpid[0m[1m[4m [0m[1m[4m[7m cpu_pct [0m[1m[4m [0m[1m[4m[7m mem_pct [0m[1m[4m [0m[1m[4m[7m vsz [0m[1m[4m [0m[1m[4m[7m rss [0m[1m[4m [0m[1m[4mtty[0m[1m[4m [0m[1m[4mstat[0m[1m[4m [0m[1m[4mstart_time[0m[1m[4m [0m[1m[4mcpu_time[0m[1m[4m [0m[1m[4mmaj_flt[0m[1m[4m [0m[1m[4mmin_flt[0m[1m[4m [0m[1m[4m cmd [0m[1m[4m [0m[1m[4m cmd_name [0m[1m[4m [0m[1m[4mcmd_args[0m[1m[4m [0m[1m[4mlog_part[0m[1m[4m [0m[1m[4m[7mlog_idle_msecs[0m[1m[4m [0m[1m[4mlog_mark[0m[1m[4m [0m[1m[4mlog_comment[0m[1m[4m [0m[1m[4mlog_tags[0m[1m[4m [0m[1m[4mlog_annotations[0m[1m[4m [0m[1m[4mlog_filters[0m[1m[4m [0m + 0 2022-06-02 00:01:01.000 info 1 root <NULL> 2 [1m 0[0m [1m 0[0m [1m 0[0m [1m 0[0m ? S Jun01 0:00 <NULL> <NULL> [kthreadd] [kthreadd] <NULL> <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> + 12 2022-06-02 00:02:01.000 info 1 root <NULL> 2 [1m 0[0m [1m 0[0m [1m 0[0m [1m 0[0m ? S Jun01 0:00 <NULL> <NULL> [kthreadd] [kthreadd] <NULL> <NULL> [1m[7m 60000[0m 0 <NULL> <NULL> <NULL> <NULL> +[1m 30[0m[1m [0m[1m2022-06-02 00:03:01.000[0m[1m [0m[1minfo [0m[1m [0m[1m 1[0m[1m [0m[1mroot[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m 2[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mS [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[kthreadd][0m[1m [0m[1m[kthreadd][0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[7m 60000[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m diff --git a/test/expected/test_sql_search_table.sh_df0fd242f57a96d40f466493938cda0789a094fa.out b/test/expected/test_sql_search_table.sh_df0fd242f57a96d40f466493938cda0789a094fa.out index 326fcbd..7fa2742 100644 --- a/test/expected/test_sql_search_table.sh_df0fd242f57a96d40f466493938cda0789a094fa.out +++ b/test/expected/test_sql_search_table.sh_df0fd242f57a96d40f466493938cda0789a094fa.out @@ -1,24 +1,24 @@ -[1m[4mlog_line [0m[1m[4mlog_part [0m[1m[4m log_time [0m[1m[4m[7mlog_idle_msecs [0m[1m[4mlog_level [0m[1m[4mlog_mark [0m[1m[4mlog_comment [0m[1m[4mlog_tags [0m[1m[4mlog_filters [0m[1m[4mmatch_index [0m[1m[4muser [0m[1m[4mpid [0m[1m[4m[7mcpu_pct [0m[1m[4m[7mmem_pct [0m[1m[4m[7m vsz [0m[1m[4m[7mrss [0m[1m[4mtty [0m[1m[4mstat [0m[1m[4mstart_time [0m[1m[4mcpu_time [0m[1m[4m cmd [0m[1m[4m cmd_name [0m[1m[4m cmd_args [0m -[1m[7m 0[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m2022-06-02 00:01:01.000[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7minfo [0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7mroot[0m[1m[7m [0m[1m[7m 1[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m158392[0m[1m[7m [0m[1m[7m7792[0m[1m[7m [0m[1m[7m? [0m[1m[7m [0m[1m[7mSs [0m[1m[7m [0m[1m[7mJun01 [0m[1m[7m [0m[1m[7m0:14 [0m[1m[7m [0m[1m[7m/lib/systemd/systemd --switche[0m[1m[7md-root --sy[0m[1mstem --deserialize 16[0m[1m [0m[1m/lib/systemd/systemd [0m[1m [0m[1m--switched-root --system --deserialize 16 [0m - 0 <NULL> 2022-06-02 00:01:01.000 0 info 0 <NULL> <NULL> <NULL> 1 root 2 0 0 0 0 ? S Jun01 0:00 [kthreadd] [kthreadd] <NULL> -[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m2022-06-02 00:01:01.000[0m[1m [0m[1m 0[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 2[0m[1m [0m[1mroot[0m[1m [0m[1m 3[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mI< [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m[rcu_gp] [0m[1m [0m[1m[rcu_gp] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m - 0 <NULL> 2022-06-02 00:01:01.000 0 info 0 <NULL> <NULL> <NULL> 3 root 4 0 0 0 0 ? I< Jun01 0:00 [rcu_par_gp] [rcu_par_gp] <NULL> -[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m2022-06-02 00:01:01.000[0m[1m [0m[1m 0[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 4[0m[1m [0m[1mroot[0m[1m [0m[1m 6[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mI< [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m[kworker/0:0H-kblockd] [0m[1m [0m[1m[kworker/0:0H-kblockd][0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m -[7m 12[0m[7m [0m[7m <NULL>[0m[7m [0m[7m2022-06-02 00:02:01.000[0m[7m [0m[7m 60000[0m[7m [0m[7minfo [0m[7m [0m[7m 0[0m[7m [0m[7m <[0m[7mNULL>[0m[7m [0m[7m <NULL>[0m[7m [0m[7m <NULL>[0m[7m [0m[7m 0[0m[7m [0m[7mroot[0m[7m [0m[7m 1[0m[7m [0m[7m 0[0m[7m [0m[7m 0[0m[7m [0m[7m158392[0m[7m [0m[7m7792[0m[7m [0m[7m? [0m[7m [0m[7mSs [0m[7m [0m[7mJun01 [0m[7m [0m[7m0:14 [0m[7m [0m[7m/lib/systemd/systemd --switched-root --system --deserialize 16[0m[7m [0m[7m/lib/systemd/systemd [0m[7m [0m[7m--switched-root --system -[0m[7m-deserializ[0me 16 -[1m[7m 12[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m2022-06-02 00:02:01.000[0m[1m[7m [0m[1m[7m 60000[0m[1m[7m [0m[1m[7minfo [0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 1[0m[1m [0m[1mroot[0m[1m [0m[1m 2[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mS [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m[kthreadd] [0m[1m [0m[1m[kthreadd] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m -[7m 12[0m[7m [0m[7m <NULL>[0m[7m [0m[7m2022-06-02 00:02:01.000[0m[7m [0m[7m 60000[0m[7m [0m[7minfo [0m[7m [0m[7m 0[0m[7m [0m[7m <[0mNULL> <NULL> <NULL> 2 root 3 0 0 0 0 ? I< Jun01 0:00 [rcu_gp] [rcu_gp] <NULL> -[1m[7m 12[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m2022-06-02 00:02:01.000[0m[1m[7m [0m[1m[7m 60000[0m[1m[7m [0m[1m[7minfo [0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 3[0m[1m [0m[1mroot[0m[1m [0m[1m 4[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mI< [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m[rcu_par_gp] [0m[1m [0m[1m[rcu_par_gp] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m -[7m 12[0m[7m [0m[7m <NULL>[0m[7m [0m[7m2022-06-02 00:02:01.000[0m[7m [0m[7m 60000[0m[7m [0m[7minfo [0m[7m [0m[7m 0[0m[7m [0m[7m <[0mNULL> <NULL> <NULL> 4 root 6 0 0 0 0 ? I< Jun01 0:00 [kworker/0:0H-kblockd] [kworker/0:0H-kblockd] <NULL> -[1m[7m 12[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m2022-06-02 00:02:01.000[0m[1m[7m [0m[1m[7m 60000[0m[1m[7m [0m[1m[7minfo [0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 5[0m[1m [0m[1mroot[0m[1m [0m[1m 8[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mI< [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m[mm_percpu_wq] [0m[1m [0m[1m[mm_percpu_wq] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m -[7m 12[0m[7m [0m[7m <NULL>[0m[7m [0m[7m2022-06-02 00:02:01.000[0m[7m [0m[7m 60000[0m[7m [0m[7minfo [0m[7m [0m[7m 0[0m[7m [0m[7m <[0mNULL> <NULL> <NULL> 6 root 9 0 0 0 0 ? S Jun01 0:00 [ksoftirqd/0] [ksoftirqd/0] <NULL> -[1m[7m 12[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m2022-06-02 00:02:01.000[0m[1m[7m [0m[1m[7m 60000[0m[1m[7m [0m[1m[7minfo [0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 7[0m[1m [0m[1mroot[0m[1m [0m[1m 10[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mI [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:23 [0m[1m [0m[1m[rcu_sched] [0m[1m [0m[1m[rcu_sched] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m -[7m 12[0m[7m [0m[7m <NULL>[0m[7m [0m[7m2022-06-02 00:02:01.000[0m[7m [0m[7m 60000[0m[7m [0m[7minfo [0m[7m [0m[7m 0[0m[7m [0m[7m <[0mNULL> <NULL> <NULL> 8 root 11 0 0 0 0 ? I Jun01 0:00 [rcu_bh] [rcu_bh] <NULL> -[1m[7m 12[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m2022-06-02 00:02:01.000[0m[1m[7m [0m[1m[7m 60000[0m[1m[7m [0m[1m[7minfo [0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 9[0m[1m [0m[1mroot[0m[1m [0m[1m 12[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mS [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m[migration/0] [0m[1m [0m[1m[migration/0] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m -[7m 12[0m[7m [0m[7m <NULL>[0m[7m [0m[7m2022-06-02 00:02:01.000[0m[7m [0m[7m 60000[0m[7m [0m[7minfo [0m[7m [0m[7m 0[0m[7m [0m[7m <[0mNULL> <NULL> <NULL> 10 root 14 0 0 0 0 ? S Jun01 0:00 [cpuhp/0] [cpuhp/0] <NULL> -[1m[7m 30[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m2022-06-02 00:03:01.000[0m[1m[7m [0m[1m[7m 60000[0m[1m[7m [0m[1m[7minfo [0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m <[0m[1m[7mNULL>[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7mroot[0m[1m[7m [0m[1m[7m 1[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m158392[0m[1m[7m [0m[1m[7m7792[0m[1m[7m [0m[1m[7m? [0m[1m[7m [0m[1m[7mSs [0m[1m[7m [0m[1m[7mJun01 [0m[1m[7m [0m[1m[7m0:14 [0m[1m[7m [0m[1m[7m/lib/systemd/systemd --switched-root --system --deserialize 16[0m[1m[7m [0m[1m[7m/lib/systemd/systemd [0m[1m[7m [0m[1m[7m--switched-root --system -[0m[1m[7m-deserializ[0m[1me 16 [0m -[7m 30[0m[7m [0m[7m <NULL>[0m[7m [0m[7m2022-06-02 00:03:01.000[0m[7m [0m[7m 60000[0m[7m [0m[7minfo [0m[7m [0m[7m 0[0m[7m [0m[7m <[0mNULL> <NULL> <NULL> 1 root 2 0 0 0 0 ? S Jun01 0:00 [kthreadd] [kthreadd] <NULL> -[1m[7m 30[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m2022-06-02 00:03:01.000[0m[1m[7m [0m[1m[7m 60000[0m[1m[7m [0m[1m[7minfo [0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 2[0m[1m [0m[1mroot[0m[1m [0m[1m 3[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mI< [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m[rcu_gp] [0m[1m [0m[1m[rcu_gp] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m -[7m 30[0m[7m [0m[7m <NULL>[0m[7m [0m[7m2022-06-02 00:03:01.000[0m[7m [0m[7m 60000[0m[7m [0m[7minfo [0m[7m [0m[7m 0[0m[7m [0m[7m <[0mNULL> <NULL> <NULL> 3 root 4 0 0 0 0 ? I< Jun01 0:00 [rcu_par_gp] [rcu_par_gp] <NULL> -[1m[7m 30[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m2022-06-02 00:03:01.000[0m[1m[7m [0m[1m[7m 60000[0m[1m[7m [0m[1m[7minfo [0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 4[0m[1m [0m[1mroot[0m[1m [0m[1m 6[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mI< [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m[kworker/0:0H-kblockd] [0m[1m [0m[1m[kworker/0:0H-kblockd][0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m -[7m 30[0m[7m [0m[7m <NULL>[0m[7m [0m[7m2022-06-02 00:03:01.000[0m[7m [0m[7m 60000[0m[7m [0m[7minfo [0m[7m [0m[7m 0[0m[7m [0m[7m <[0mNULL> <NULL> <NULL> 5 root 8 0 0 0 0 ? I< Jun01 0:00 [mm_percpu_wq] [mm_percpu_wq] <NULL> -[1m[7m 30[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m2022-06-02 00:03:01.000[0m[1m[7m [0m[1m[7m 60000[0m[1m[7m [0m[1m[7minfo [0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 6[0m[1m [0m[1mroot[0m[1m [0m[1m 9[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mS [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m[ksoftirqd/0] [0m[1m [0m[1m[ksoftirqd/0] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m +[1m[4mlog_line[0m[1m[4m [0m[1m[4m log_time [0m[1m[4m [0m[1m[4mlog_level[0m[1m[4m [0m[1m[4mmatch_index[0m[1m[4m [0m[1m[4muser[0m[1m[4m [0m[1m[4m ppid [0m[1m[4m [0m[1m[4mpid[0m[1m[4m [0m[1m[4m[7m cpu_pct [0m[1m[4m [0m[1m[4m[7m mem_pct [0m[1m[4m [0m[1m[4m[7m vsz [0m[1m[4m [0m[1m[4m[7m rss [0m[1m[4m [0m[1m[4mtty[0m[1m[4m [0m[1m[4mstat[0m[1m[4m [0m[1m[4mstart_time[0m[1m[4m [0m[1m[4mcpu_time[0m[1m[4m [0m[1m[4mmaj_flt[0m[1m[4m [0m[1m[4mmin_flt[0m[1m[4m [0m[1m[4m cmd [0m[1m[4m [0m[1m[4m cmd_name [0m[1m[4m [0m[1m[4m cmd_args [0m[1m[4m [0m[1m[4mlog_part[0m[1m[4m [0m[1m[4m[7mlog_idle_msecs[0m[1m[4m [0m[1m[4mlog_mark[0m[1m[4m [0m[1m[4mlog_comment[0m[1m[4m [0m[1m[4mlog_tags[0m[1m[4m [0m[1m[4mlog_annotations[0m[1m[4m [0m[1m[4mlog_filters[0m[1m[4m [0m + 0 2022-06-02 00:01:01.000 info 0 root <NULL> 1 [1m 0[0m [1m 0[0m [1m[7m 158392[0m [1m[7m 7792[0m ? Ss Jun01 0:14 <NULL> <NULL> /lib/systemd/systemd --switched-root --system --deserialize 16 /lib/systemd/systemd --switched-root --system --deserialize 16 <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> + 0 2022-06-02 00:01:01.000 info 1 root <NULL> 2 [1m 0[0m [1m 0[0m [1m 0[0m [1m 0[0m ? S Jun01 0:00 <NULL> <NULL> [kthreadd] [kthreadd] <NULL> <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> +[1m 0[0m[1m [0m[1m2022-06-02 00:01:01.000[0m[1m [0m[1minfo [0m[1m [0m[1m 2[0m[1m [0m[1mroot[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m 3[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mI< [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[rcu_gp] [0m[1m [0m[1m[rcu_gp] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m +[1m 0[0m[1m [0m[1m2022-06-02 00:01:01.000[0m[1m [0m[1minfo [0m[1m [0m[1m 3[0m[1m [0m[1mroot[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m 4[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mI< [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[rcu_par_gp] [0m[1m [0m[1m[rcu_par_gp] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m + 0 2022-06-02 00:01:01.000 info 4 root <NULL> 6 [1m 0[0m [1m 0[0m [1m 0[0m [1m 0[0m ? I< Jun01 0:00 <NULL> <NULL> [kworker/0:0H-kblockd] [kworker/0:0H-kblockd] <NULL> <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> + 12 2022-06-02 00:02:01.000 info 0 root <NULL> 1 [1m 0[0m [1m 0[0m [1m[7m 158392[0m [1m[7m 7792[0m ? Ss Jun01 0:14 <NULL> <NULL> /lib/systemd/systemd --switched-root --system --deserialize 16 /lib/systemd/systemd --switched-root --system --deserialize 16 <NULL> [1m[7m 60000[0m 0 <NULL> <NULL> <NULL> <NULL> +[1m 12[0m[1m [0m[1m2022-06-02 00:02:01.000[0m[1m [0m[1minfo [0m[1m [0m[1m 1[0m[1m [0m[1mroot[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m 2[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mS [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[kthreadd] [0m[1m [0m[1m[kthreadd] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[7m 60000[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m +[1m 12[0m[1m [0m[1m2022-06-02 00:02:01.000[0m[1m [0m[1minfo [0m[1m [0m[1m 2[0m[1m [0m[1mroot[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m 3[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mI< [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[rcu_gp] [0m[1m [0m[1m[rcu_gp] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[7m 60000[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m + 12 2022-06-02 00:02:01.000 info 3 root <NULL> 4 [1m 0[0m [1m 0[0m [1m 0[0m [1m 0[0m ? I< Jun01 0:00 <NULL> <NULL> [rcu_par_gp] [rcu_par_gp] <NULL> <NULL> [1m[7m 60000[0m 0 <NULL> <NULL> <NULL> <NULL> + 12 2022-06-02 00:02:01.000 info 4 root <NULL> 6 [1m 0[0m [1m 0[0m [1m 0[0m [1m 0[0m ? I< Jun01 0:00 <NULL> <NULL> [kworker/0:0H-kblockd] [kworker/0:0H-kblockd] <NULL> <NULL> [1m[7m 60000[0m 0 <NULL> <NULL> <NULL> <NULL> +[1m 12[0m[1m [0m[1m2022-06-02 00:02:01.000[0m[1m [0m[1minfo [0m[1m [0m[1m 5[0m[1m [0m[1mroot[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m 8[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mI< [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[mm_percpu_wq] [0m[1m [0m[1m[mm_percpu_wq] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[7m 60000[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m +[1m 12[0m[1m [0m[1m2022-06-02 00:02:01.000[0m[1m [0m[1minfo [0m[1m [0m[1m 6[0m[1m [0m[1mroot[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m 9[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mS [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[ksoftirqd/0] [0m[1m [0m[1m[ksoftirqd/0] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[7m 60000[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m + 12 2022-06-02 00:02:01.000 info 7 root <NULL> 10 [1m 0[0m [1m 0[0m [1m 0[0m [1m 0[0m ? I Jun01 0:23 <NULL> <NULL> [rcu_sched] [rcu_sched] <NULL> <NULL> [1m[7m 60000[0m 0 <NULL> <NULL> <NULL> <NULL> + 12 2022-06-02 00:02:01.000 info 8 root <NULL> 11 [1m 0[0m [1m 0[0m [1m 0[0m [1m 0[0m ? I Jun01 0:00 <NULL> <NULL> [rcu_bh] [rcu_bh] <NULL> <NULL> [1m[7m 60000[0m 0 <NULL> <NULL> <NULL> <NULL> +[1m 12[0m[1m [0m[1m2022-06-02 00:02:01.000[0m[1m [0m[1minfo [0m[1m [0m[1m 9[0m[1m [0m[1mroot[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m 12[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mS [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[migration/0] [0m[1m [0m[1m[migration/0] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[7m 60000[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m +[1m 12[0m[1m [0m[1m2022-06-02 00:02:01.000[0m[1m [0m[1minfo [0m[1m [0m[1m 10[0m[1m [0m[1mroot[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m 14[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mS [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[cpuhp/0] [0m[1m [0m[1m[cpuhp/0] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[7m 60000[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m + 30 2022-06-02 00:03:01.000 info 0 root <NULL> 1 [1m 0[0m [1m 0[0m [1m[7m 158392[0m [1m[7m 7792[0m ? Ss Jun01 0:14 <NULL> <NULL> /lib/systemd/systemd --switched-root --system --deserialize 16 /lib/systemd/systemd --switched-root --system --deserialize 16 <NULL> [1m[7m 60000[0m 0 <NULL> <NULL> <NULL> <NULL> + 30 2022-06-02 00:03:01.000 info 1 root <NULL> 2 [1m 0[0m [1m 0[0m [1m 0[0m [1m 0[0m ? S Jun01 0:00 <NULL> <NULL> [kthreadd] [kthreadd] <NULL> <NULL> [1m[7m 60000[0m 0 <NULL> <NULL> <NULL> <NULL> +[1m 30[0m[1m [0m[1m2022-06-02 00:03:01.000[0m[1m [0m[1minfo [0m[1m [0m[1m 2[0m[1m [0m[1mroot[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m 3[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mI< [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[rcu_gp] [0m[1m [0m[1m[rcu_gp] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[7m 60000[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m +[1m 30[0m[1m [0m[1m2022-06-02 00:03:01.000[0m[1m [0m[1minfo [0m[1m [0m[1m 3[0m[1m [0m[1mroot[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m 4[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mI< [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[rcu_par_gp] [0m[1m [0m[1m[rcu_par_gp] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[7m 60000[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m + 30 2022-06-02 00:03:01.000 info 4 root <NULL> 6 [1m 0[0m [1m 0[0m [1m 0[0m [1m 0[0m ? I< Jun01 0:00 <NULL> <NULL> [kworker/0:0H-kblockd] [kworker/0:0H-kblockd] <NULL> <NULL> [1m[7m 60000[0m 0 <NULL> <NULL> <NULL> <NULL> + 30 2022-06-02 00:03:01.000 info 5 root <NULL> 8 [1m 0[0m [1m 0[0m [1m 0[0m [1m 0[0m ? I< Jun01 0:00 <NULL> <NULL> [mm_percpu_wq] [mm_percpu_wq] <NULL> <NULL> [1m[7m 60000[0m 0 <NULL> <NULL> <NULL> <NULL> +[1m 30[0m[1m [0m[1m2022-06-02 00:03:01.000[0m[1m [0m[1minfo [0m[1m [0m[1m 6[0m[1m [0m[1mroot[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m 9[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m 0[0m[1m [0m[1m? [0m[1m [0m[1mS [0m[1m [0m[1mJun01 [0m[1m [0m[1m0:00 [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[ksoftirqd/0] [0m[1m [0m[1m[ksoftirqd/0] [0m[1m [0m[1m<[0m[1mNULL[0m[1m> [0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[7m 60000[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m> [0m diff --git a/test/expected/test_sql_search_table.sh_ef9373a76853f345d06234f6e0fe11b5d40da27b.out b/test/expected/test_sql_search_table.sh_ef9373a76853f345d06234f6e0fe11b5d40da27b.out index 767d785..263723f 100644 --- a/test/expected/test_sql_search_table.sh_ef9373a76853f345d06234f6e0fe11b5d40da27b.out +++ b/test/expected/test_sql_search_table.sh_ef9373a76853f345d06234f6e0fe11b5d40da27b.out @@ -1,6 +1,6 @@ -[1m[4mlog_line [0m[1m[4mlog_part [0m[1m[4m log_time [0m[1m[4m[7mlog_idle_msecs [0m[1m[4mlog_level [0m[1m[4mlog_mark [0m[1m[4mlog_comment [0m[1m[4mlog_tags [0m[1m[4mlog_filters [0m[1m[4m comp [0m[1m[4m opid [0m[1m[4m tid [0m[1m[4m user [0m[1m[4m item [0m[1m[4mprc [0m[1m[4mreason [0m[1m[4m req [0m[1m[4m sid [0m[1m[4m src [0m[1m[4m sub [0m[1m[4mvpxa_update [0m[1m[4m line [0m[1m[4m file [0m[1m[4mmatch_index [0m[1m[4m lro_id [0m[1m[4m entity [0m[1m[4m operation [0m[1m[4m SessionId [0m[1m[4m SessionSubId [0m[1m[4m log_body [0m -[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m2022-06-02 11:58:12.193[0m[1m [0m[1m 0[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m7e1280cf [0m[1m [0m[1m45715[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1mvpxd[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1mOriginator@6876[0m[1m [0m[1mvpxLro[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m 0[0m[1m [0m[1mlro-846063[0m[1m [0m[1mSessionManager [0m[1m [0m[1mvim.SessionManager.sessionIsActive [0m[1m [0m[1m528e6e0c-246d-58b5-3234-278c6e0c5d0d[0m[1m [0m[1m52c289ac-2563-48d5-8a8e-f178da022c0d[0m[1m [0m[1m[VpxLRO] -- BEGIN lro-846063 -- SessionManager -- vim.Sessio⋯8b5-3234-278c6e0c5d0d(52c289ac-2563-48d5-8a8e-f178da022c0d) [0m -[7m 2[0m[7m [0m[7m <NULL>[0m[7m [0m[7m2022-06-02 11:58:12.376[0m[7m [0m[7m 182[0m[7m [0m[7minfo [0m[7m [0m[7m 0[0m[7m [0m[7m <NULL>[0m[7m [0m[7m <NULL>[0m[7m [0m[7m <NULL>[0m[7m [0m[7m<NULL>[0m[7m [0m[7me3979f6 [0m[7m [0m[7m45709[0m[7m [0m[7m<NULL>[0m[7m [0m[7m<NULL>[0m[7m [0m[7mvpxd[0m[7m [0m[7m<NULL>[0m[7m [0m[7m<NULL>[0m[7m [0m[7m<NULL>[0m[7m [0m[7mOriginator@6876[0m[7m [0m[7mvpxLro[0m[7m [0m[7m <NULL>[0m[7m [0m[7m<NULL>[0m[7m [0m[7m<NULL>[0m[7m [0m[7m 0[0m[7m [0m[7mlro-846064[0m[7m [0m[7mSessionManager [0m[7m [0m[7mvim.SessionManager.sessionIsActive [0m[7m [0m[7m52626140-422b-6287-b4e4-344192c6a01d[0m[7m [0m[7m523e0a4b-6e83-6bcd-9342-22502dd89866[0m[7m [0m[7m[VpxLRO] -- BEGIN lro-846[0m064 -- SessionManager -- vim.Sessio⋯287-b4e4-344192c6a01d(523e0a4b-6e83-6bcd-9342-22502dd89866) -[1m[7m 4[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m2022-06-02 11:58:12.623[0m[1m[7m [0m[1m[7m 246[0m[1m[7m [0m[1m[7minfo [0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m<NULL>[0m[1m[7m [0m[1m[7ml3wrhr4o-cbf-h5:70001034-60[0m[1m[7m [0m[1m[7m47524[0m[1m[7m [0m[1m[7m<NULL>[0m[1m[7m [0m[1m[7m<NULL>[0m[1m[7m [0m[1m[7mvpxd[0m[1m[7m [0m[1m[7m<NULL>[0m[1m[7m [0m[1m[7m<NULL>[0m[1m[7m [0m[1m[7m<NULL>[0m[1m[7m [0m[1m[7mOriginator@6876[0m[1m[7m [0m[1m[7mvpxLro[0m[1m[7m [0m[1m[7m <NULL>[0m[1m[7m [0m[1m[7m<NULL>[0m[1m[7m [0m[1m[7m<NULL>[0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7mlro-846066[0m[1m[7m [0m[1m[7mChangeLogCollector[0m[1m[7m [0m[1m[7mvim.cdc.ChangeLogCollector.waitForChanges[0m[1m[7m [0m[1m[7m526861fc-0c28-1930-ae5e-d8c2772bf8c2[0m[1m[7m [0m[1m[7m52a7a308-9646-c054-f1e7-16131c1a7db6[0m[1m[7m [0m[1m[7m[VpxLRO] -- BEGIN lro-846066 -- ChangeLogCollector -- vim.c⋯1930-ae5e-d8c2772bf8c2(52a7a308-9646-c054-f1e7-16131c1a7db6) [0m -[7m 6[0m[7m [0m[7m <NULL>[0m[7m [0m[7m2022-06-02 11:58:12.736[0m[7m [0m[7m 113[0m[7m [0m[7minfo [0m[7m [0m[7m 0[0m[7m [0m[7m <NULL>[0m[7m [0m[7m <NULL>[0m[7m [0m[7m <NULL>[0m[7m [0m[7m<NULL>[0m[7m [0m[7m499b440 [0m[7m [0m[7m48432[0m[7m [0m[7m<NULL>[0m[7m [0m[7m<NULL>[0m[7m [0m[7mvpxd[0m[7m [0m[7m<NULL>[0m[7m [0m[7m<NULL>[0m[7m [0m[7m<NULL>[0m[7m [0m[7mOriginator@6876[0m[7m [0m[7mvpxLro[0m[7m [0m[7m <NULL>[0m[7m [0m[7m<NULL>[0m[7m [0m[7m<NULL>[0m[7m [0m[7m 0[0m[7m [0m[7mlro-846067[0m[7m [0mSessionManager vim.SessionManager.sessionIsActive 521fe9f6-d061-11a2-ac86-badb3c071373 524cba9b-2cc4-9b70-32e4-421452a404d7 [VpxLRO] -- BEGIN lro-846067 -- SessionManager -- vim.Sessio⋯1a2-ac86-badb3c071373(524cba9b-2cc4-9b70-32e4-421452a404d7) -[1m[7m 8[0m[1m[7m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m2022-06-02 11:58:12.740[0m[1m [0m[1m 4[0m[1m [0m[1minfo [0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m55a419df [0m[1m [0m[1m48035[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1mvpxd[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1mOriginator@6876[0m[1m [0m[1mvpxLro[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m 0[0m[1m [0m[1mlro-846068[0m[1m [0m[1mSessionManager [0m[1m [0m[1mvim.SessionManager.sessionIsActive [0m[1m [0m[1m52585600-b0bc-76b1-c4d5-4d7708671c5e[0m[1m [0m[1m523b68ba-e312-9909-a3ca-39cc86aaf206[0m[1m [0m[1m[VpxLRO] -- BEGIN lro-846068 -- SessionManager -- vim.Sessio⋯6b1-c4d5-4d7708671c5e(523b68ba-e312-9909-a3ca-39cc86aaf206) [0m +[1m[4mlog_line[0m[1m[4m [0m[1m[4m log_time [0m[1m[4m [0m[1m[4mlog_level[0m[1m[4m [0m[1m[4m comp [0m[1m[4m [0m[1m[4m opid [0m[1m[4m [0m[1m[4m tid [0m[1m[4m [0m[1m[4m user [0m[1m[4m [0m[1m[4m file [0m[1m[4m [0m[1m[4m item [0m[1m[4m [0m[1m[4m line [0m[1m[4m [0m[1m[4mprc [0m[1m[4m [0m[1m[4mreason[0m[1m[4m [0m[1m[4m req [0m[1m[4m [0m[1m[4m sid [0m[1m[4m [0m[1m[4m src [0m[1m[4m [0m[1m[4m sub [0m[1m[4m [0m[1m[4mvpxa_update[0m[1m[4m [0m[1m[4mmatch_index[0m[1m[4m [0m[1m[4m lro_id [0m[1m[4m [0m[1m[4m entity [0m[1m[4m [0m[1m[4m operation [0m[1m[4m [0m[1m[4m SessionId [0m[1m[4m [0m[1m[4m SessionSubId [0m[1m[4m [0m[1m[4mlog_part[0m[1m[4m [0m[1m[4m[7mlog_idle_msecs[0m[1m[4m [0m[1m[4mlog_mark[0m[1m[4m [0m[1m[4mlog_comment[0m[1m[4m [0m[1m[4mlog_tags[0m[1m[4m [0m[1m[4mlog_annotations[0m[1m[4m [0m[1m[4mlog_filters[0m[1m[4m [0m[1m[4m log_body [0m[1m[4m [0m + 0 2022-06-02 11:58:12.193 info <NULL> 7e1280cf 45715 <NULL> <NULL> <NULL> <NULL> vpxd <NULL> <NULL> <NULL> Originator@6876 vpxLro <NULL> 0 lro-846063 SessionManager vim.SessionManager.sessionIsActive 528e6e0c-246d-58b5-3234-278c6e0c5d0d 52c289ac-2563-48d5-8a8e-f178da022c0d <NULL> [1m 0[0m 0 <NULL> <NULL> <NULL> <NULL> [VpxLRO] -- BEGIN lro-846063 -- SessionManager -- vim.Sessio⋯8b5-3234-278c6e0c5d0d(52c289ac-2563-48d5-8a8e-f178da022c0d) + 2 2022-06-02 11:58:12.376 info <NULL> e3979f6 45709 <NULL> <NULL> <NULL> <NULL> vpxd <NULL> <NULL> <NULL> Originator@6876 vpxLro <NULL> 0 lro-846064 SessionManager vim.SessionManager.sessionIsActive 52626140-422b-6287-b4e4-344192c6a01d 523e0a4b-6e83-6bcd-9342-22502dd89866 <NULL> [1m[7m [0m[1m 182[0m 0 <NULL> <NULL> <NULL> <NULL> [VpxLRO] -- BEGIN lro-846064 -- SessionManager -- vim.Sessio⋯287-b4e4-344192c6a01d(523e0a4b-6e83-6bcd-9342-22502dd89866) +[1m 4[0m[1m [0m[1m2022-06-02 11:58:12.623[0m[1m [0m[1minfo [0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1ml3wrhr4o-cbf-h5:70001034-60[0m[1m [0m[1m47524[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1mvpxd[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1mOriginator@6876[0m[1m [0m[1mvpxLro[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 0[0m[1m [0m[1mlro-846066[0m[1m [0m[1mChangeLogCollector[0m[1m [0m[1mvim.cdc.ChangeLogCollector.waitForChanges[0m[1m [0m[1m526861fc-0c28-1930-ae5e-d8c2772bf8c2[0m[1m [0m[1m52a7a308-9646-c054-f1e7-16131c1a7db6[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[7m 246[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[VpxLRO] -- BEGIN lro-846066 -- ChangeLogCollector -- vim.c⋯1930-ae5e-d8c2772bf8c2(52a7a308-9646-c054-f1e7-16131c1a7db6) [0m +[1m 6[0m[1m [0m[1m2022-06-02 11:58:12.736[0m[1m [0m[1minfo [0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m499b440 [0m[1m [0m[1m48432[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1mvpxd[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1m<[0m[1mNULL[0m[1m>[0m[1m [0m[1mOriginator@6876[0m[1m [0m[1mvpxLro[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m 0[0m[1m [0m[1mlro-846067[0m[1m [0m[1mSessionManager [0m[1m [0m[1mvim.SessionManager.sessionIsActive [0m[1m [0m[1m521fe9f6-d061-11a2-ac86-badb3c071373[0m[1m [0m[1m524cba9b-2cc4-9b70-32e4-421452a404d7[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[7m [0m[1m 113[0m[1m [0m[1m 0[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m <[0m[1mNULL[0m[1m>[0m[1m [0m[1m[VpxLRO] -- BEGIN lro-846067 -- SessionManager -- vim.Sessio⋯1a2-ac86-badb3c071373(524cba9b-2cc4-9b70-32e4-421452a404d7) [0m + 8 2022-06-02 11:58:12.740 info <NULL> 55a419df 48035 <NULL> <NULL> <NULL> <NULL> vpxd <NULL> <NULL> <NULL> Originator@6876 vpxLro <NULL> 0 lro-846068 SessionManager vim.SessionManager.sessionIsActive 52585600-b0bc-76b1-c4d5-4d7708671c5e 523b68ba-e312-9909-a3ca-39cc86aaf206 <NULL> [1m[7m [0m[1m 4[0m 0 <NULL> <NULL> <NULL> <NULL> [VpxLRO] -- BEGIN lro-846068 -- SessionManager -- vim.Sessio⋯6b1-c4d5-4d7708671c5e(523b68ba-e312-9909-a3ca-39cc86aaf206) diff --git a/test/expected/test_sql_str_func.sh_00363f89638cb968584afc1ca0a4f52b2cf7a2ae.err b/test/expected/test_sql_str_func.sh_00363f89638cb968584afc1ca0a4f52b2cf7a2ae.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_str_func.sh_00363f89638cb968584afc1ca0a4f52b2cf7a2ae.err diff --git a/test/expected/test_sql_str_func.sh_00363f89638cb968584afc1ca0a4f52b2cf7a2ae.out b/test/expected/test_sql_str_func.sh_00363f89638cb968584afc1ca0a4f52b2cf7a2ae.out new file mode 100644 index 0000000..2bc4087 --- /dev/null +++ b/test/expected/test_sql_str_func.sh_00363f89638cb968584afc1ca0a4f52b2cf7a2ae.out @@ -0,0 +1,2 @@ +Row 0: + Column parse_url('https://example.com/sea%26rch?flag&flag2&=def&flag3=abc+def#frag1%20space'): {"scheme":"https","username":null,"password":null,"host":"example.com","port":null,"path":"/sea&rch","query":"flag&flag2&=def&flag3=abc+def","parameters":{"flag":null,"flag2":null,"":"def","flag3":"abc def"},"fragment":"frag1 space"} diff --git a/test/expected/test_sql_str_func.sh_0947bfe7ec626eaa0409a45b10fcbb634fb12eb7.out b/test/expected/test_sql_str_func.sh_0947bfe7ec626eaa0409a45b10fcbb634fb12eb7.out index e144653..49ed7e2 100644 --- a/test/expected/test_sql_str_func.sh_0947bfe7ec626eaa0409a45b10fcbb634fb12eb7.out +++ b/test/expected/test_sql_str_func.sh_0947bfe7ec626eaa0409a45b10fcbb634fb12eb7.out @@ -1,2 +1,2 @@ Row 0: - Column parse_url('https://example.com/'): {"scheme":"https","user":null,"password":null,"host":"example.com","port":null,"path":"/","query":null,"parameters":null,"fragment":null} + Column parse_url('https://example.com/'): {"scheme":"https","username":null,"password":null,"host":"example.com","port":null,"path":"/","query":null,"parameters":null,"fragment":null} diff --git a/test/expected/test_sql_str_func.sh_0db1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.err b/test/expected/test_sql_str_func.sh_0db1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_str_func.sh_0db1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.err diff --git a/test/expected/test_sql_str_func.sh_0db1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.out b/test/expected/test_sql_str_func.sh_0db1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.out new file mode 100644 index 0000000..bda6691 --- /dev/null +++ b/test/expected/test_sql_str_func.sh_0db1c1b406ba6ef2dadcbe90a3fdbe794a664eb5.out @@ -0,0 +1,2 @@ +[1m[4mhumanize_id('foo')[0m[1m[4m [0m[1m[4mhumanize_id('bar')[0m[1m[4m [0m +foo bar diff --git a/test/expected/test_sql_str_func.sh_11d458fdadd00df1239a0eeaac049abb49ed212d.out b/test/expected/test_sql_str_func.sh_11d458fdadd00df1239a0eeaac049abb49ed212d.out index eea58f2..7d625dd 100644 --- a/test/expected/test_sql_str_func.sh_11d458fdadd00df1239a0eeaac049abb49ed212d.out +++ b/test/expected/test_sql_str_func.sh_11d458fdadd00df1239a0eeaac049abb49ed212d.out @@ -1,198 +1,198 @@ -anonymize(bro_id_resp_h) +[1m[4manonymize(bro_id_resp_h)[0m[1m[4m [0m 10.0.0.1 10.0.0.2 +[1m10.0.0.2[0m[1m [0m +[1m10.0.0.2[0m[1m [0m 10.0.0.2 10.0.0.2 -10.0.0.2 -10.0.0.2 -10.0.0.2 -10.0.0.3 +[1m10.0.0.2[0m[1m [0m +[1m10.0.0.3[0m[1m [0m 10.0.0.4 10.0.0.1 -10.0.0.4 -10.0.0.4 +[1m10.0.0.4[0m[1m [0m +[1m10.0.0.4[0m[1m [0m 10.0.0.5 10.0.0.4 -10.0.0.4 -10.0.0.1 +[1m10.0.0.4[0m[1m [0m +[1m10.0.0.1[0m[1m [0m 10.0.0.6 10.0.0.4 -10.0.0.7 -10.0.0.8 -10.0.0.8 +[1m10.0.0.7[0m[1m [0m +[1m10.0.0.8[0m[1m [0m 10.0.0.8 10.0.0.8 +[1m10.0.0.8[0m[1m [0m +[1m10.0.0.8[0m[1m [0m 10.0.0.8 10.0.0.8 -10.0.0.8 -10.0.0.8 -10.0.0.9 +[1m10.0.0.8[0m[1m [0m +[1m10.0.0.9[0m[1m [0m 10.0.0.10 10.0.0.5 +[1m10.0.0.11[0m[1m [0m +[1m10.0.0.11[0m[1m [0m 10.0.0.11 10.0.0.11 -10.0.0.11 -10.0.0.11 -10.0.0.11 -10.0.0.11 +[1m10.0.0.11[0m[1m [0m +[1m10.0.0.11[0m[1m [0m 10.0.0.5 10.0.0.11 +[1m10.0.0.11[0m[1m [0m +[1m10.0.0.11[0m[1m [0m 10.0.0.11 10.0.0.11 +[1m10.0.0.11[0m[1m [0m +[1m10.0.0.11[0m[1m [0m 10.0.0.11 10.0.0.11 -10.0.0.11 -10.0.0.11 -10.0.0.11 -10.0.0.11 -10.0.0.11 -10.0.0.5 +[1m10.0.0.11[0m[1m [0m +[1m10.0.0.5[0m[1m [0m 10.0.0.10 10.0.0.6 -10.0.0.12 -10.0.0.1 +[1m10.0.0.12[0m[1m [0m +[1m10.0.0.1[0m[1m [0m 10.0.0.1 10.0.0.6 -10.0.0.11 -10.0.0.11 +[1m10.0.0.11[0m[1m [0m +[1m10.0.0.11[0m[1m [0m 10.0.0.13 10.0.0.6 -10.0.0.11 -10.0.0.11 +[1m10.0.0.11[0m[1m [0m +[1m10.0.0.11[0m[1m [0m 10.0.0.11 10.0.0.13 +[1m10.0.0.6[0m[1m [0m +[1m10.0.0.6[0m[1m [0m 10.0.0.6 10.0.0.6 +[1m10.0.0.6[0m[1m [0m +[1m10.0.0.6[0m[1m [0m 10.0.0.6 10.0.0.6 -10.0.0.6 -10.0.0.6 -10.0.0.6 -10.0.0.6 -10.0.0.14 -10.0.0.6 +[1m10.0.0.14[0m[1m [0m +[1m10.0.0.6[0m[1m [0m 10.0.0.14 10.0.0.15 -10.0.0.16 -10.0.0.6 +[1m10.0.0.16[0m[1m [0m +[1m10.0.0.6[0m[1m [0m 10.0.0.16 10.0.0.17 -10.0.0.5 -10.0.0.1 +[1m10.0.0.5[0m[1m [0m +[1m10.0.0.1[0m[1m [0m 10.0.0.17 10.0.0.15 -10.0.0.17 -10.0.0.18 +[1m10.0.0.17[0m[1m [0m +[1m10.0.0.18[0m[1m [0m 10.0.0.18 10.0.0.10 -10.0.0.5 -10.0.0.11 -10.0.0.11 -10.0.0.11 -10.0.0.11 -10.0.0.11 +[1m10.0.0.5[0m[1m [0m +[1m10.0.0.11[0m[1m [0m 10.0.0.11 10.0.0.11 +[1m10.0.0.11[0m[1m [0m +[1m10.0.0.11[0m[1m [0m 10.0.0.11 10.0.0.11 +[1m10.0.0.11[0m[1m [0m +[1m10.0.0.11[0m[1m [0m 10.0.0.18 10.0.0.11 -10.0.0.11 -10.0.0.11 +[1m10.0.0.11[0m[1m [0m +[1m10.0.0.11[0m[1m [0m 10.0.0.18 10.0.0.18 +[1m10.0.0.18[0m[1m [0m +[1m10.0.0.19[0m[1m [0m 10.0.0.18 10.0.0.19 -10.0.0.18 -10.0.0.19 -10.0.0.19 -10.0.0.19 -10.0.0.19 -10.0.0.19 +[1m10.0.0.19[0m[1m [0m +[1m10.0.0.19[0m[1m [0m 10.0.0.19 10.0.0.19 +[1m10.0.0.19[0m[1m [0m +[1m10.0.0.19[0m[1m [0m 10.0.0.19 10.0.0.20 -10.0.0.20 -10.0.0.21 +[1m10.0.0.20[0m[1m [0m +[1m10.0.0.21[0m[1m [0m 10.0.0.18 10.0.0.18 -10.0.0.22 -10.0.0.6 -10.0.0.5 -10.0.0.5 +[1m10.0.0.22[0m[1m [0m +[1m10.0.0.6[0m[1m [0m 10.0.0.5 10.0.0.5 +[1m10.0.0.5[0m[1m [0m +[1m10.0.0.5[0m[1m [0m 10.0.0.6 10.0.0.23 -10.0.0.24 -10.0.0.23 -10.0.0.23 -10.0.0.23 -10.0.0.23 -10.0.0.23 -10.0.0.23 -10.0.0.23 +[1m10.0.0.24[0m[1m [0m +[1m10.0.0.23[0m[1m [0m 10.0.0.23 10.0.0.23 +[1m10.0.0.23[0m[1m [0m +[1m10.0.0.23[0m[1m [0m 10.0.0.23 10.0.0.23 +[1m10.0.0.23[0m[1m [0m +[1m10.0.0.23[0m[1m [0m 10.0.0.23 10.0.0.23 +[1m10.0.0.23[0m[1m [0m +[1m10.0.0.23[0m[1m [0m 10.0.0.23 10.0.0.24 -10.0.0.24 -10.0.0.24 +[1m10.0.0.24[0m[1m [0m +[1m10.0.0.24[0m[1m [0m 10.0.0.24 10.0.0.25 -10.0.0.26 -10.0.0.27 -10.0.0.23 +[1m10.0.0.26[0m[1m [0m +[1m10.0.0.27[0m[1m [0m 10.0.0.23 10.0.0.23 -10.0.0.25 +[1m10.0.0.23[0m[1m [0m +[1m10.0.0.25[0m[1m [0m 10.0.0.26 10.0.0.24 -10.0.0.24 -10.0.0.27 +[1m10.0.0.24[0m[1m [0m +[1m10.0.0.27[0m[1m [0m 10.0.0.23 10.0.0.25 -10.0.0.26 -10.0.0.24 +[1m10.0.0.26[0m[1m [0m +[1m10.0.0.24[0m[1m [0m 10.0.0.24 10.0.0.27 -10.0.0.25 -10.0.0.26 +[1m10.0.0.25[0m[1m [0m +[1m10.0.0.26[0m[1m [0m 10.0.0.24 10.0.0.24 -10.0.0.27 -10.0.0.28 +[1m10.0.0.27[0m[1m [0m +[1m10.0.0.28[0m[1m [0m 10.0.0.23 10.0.0.25 -10.0.0.24 -10.0.0.24 +[1m10.0.0.24[0m[1m [0m +[1m10.0.0.24[0m[1m [0m 10.0.0.27 10.0.0.26 -10.0.0.23 -10.0.0.25 +[1m10.0.0.23[0m[1m [0m +[1m10.0.0.25[0m[1m [0m 10.0.0.26 10.0.0.24 -10.0.0.24 -10.0.0.27 -10.0.0.23 -10.0.0.23 -10.0.0.23 +[1m10.0.0.24[0m[1m [0m +[1m10.0.0.27[0m[1m [0m 10.0.0.23 10.0.0.23 +[1m10.0.0.23[0m[1m [0m +[1m10.0.0.23[0m[1m [0m 10.0.0.23 10.0.0.23 +[1m10.0.0.23[0m[1m [0m +[1m10.0.0.23[0m[1m [0m 10.0.0.23 10.0.0.23 -10.0.0.23 -10.0.0.27 -10.0.0.23 +[1m10.0.0.27[0m[1m [0m +[1m10.0.0.23[0m[1m [0m 10.0.0.25 10.0.0.24 -10.0.0.24 -10.0.0.27 +[1m10.0.0.24[0m[1m [0m +[1m10.0.0.27[0m[1m [0m 10.0.0.26 diff --git a/test/expected/test_sql_str_func.sh_1a1e07b6f72bce5402037761fa8afd66c05b4c34.err b/test/expected/test_sql_str_func.sh_1a1e07b6f72bce5402037761fa8afd66c05b4c34.err new file mode 100644 index 0000000..618c731 --- /dev/null +++ b/test/expected/test_sql_str_func.sh_1a1e07b6f72bce5402037761fa8afd66c05b4c34.err @@ -0,0 +1 @@ +error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"unexpected JSON value","attrs":[]},"reason":{"str":"","attrs":[]},"snippets":[{"source":"arg","line":1,"content":{"str":"123","attrs":[{"start":0,"end":-1,"type":"role","value":42}]}}],"notes":[],"help":{"str":"Available Properties\n scheme \n username \n password \n host \n port \n path \n query \n parameters/ \n fragment","attrs":[{"start":0,"end":20,"type":"role","value":64},{"start":23,"end":29,"type":"role","value":49},{"start":33,"end":41,"type":"role","value":49},{"start":45,"end":53,"type":"role","value":49},{"start":57,"end":61,"type":"role","value":49},{"start":65,"end":69,"type":"role","value":49},{"start":73,"end":77,"type":"role","value":49},{"start":81,"end":86,"type":"role","value":49},{"start":90,"end":100,"type":"role","value":49},{"start":100,"end":101,"type":"role","value":49},{"start":105,"end":113,"type":"role","value":49}]}} diff --git a/test/expected/test_sql_str_func.sh_1a1e07b6f72bce5402037761fa8afd66c05b4c34.out b/test/expected/test_sql_str_func.sh_1a1e07b6f72bce5402037761fa8afd66c05b4c34.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_str_func.sh_1a1e07b6f72bce5402037761fa8afd66c05b4c34.out diff --git a/test/expected/test_sql_str_func.sh_3855d2cc0ab29171cae8e722f130adec25eae36e.err b/test/expected/test_sql_str_func.sh_3855d2cc0ab29171cae8e722f130adec25eae36e.err deleted file mode 100644 index e3d40ab..0000000 --- a/test/expected/test_sql_str_func.sh_3855d2cc0ab29171cae8e722f130adec25eae36e.err +++ /dev/null @@ -1 +0,0 @@ -error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"invalid URL: “https://bad@[fe::”","attrs":[]},"reason":{"str":"Port number was not a decimal number between 0 and 65535","attrs":[]},"snippets":[],"help":{"str":"","attrs":[]}} diff --git a/test/expected/test_sql_str_func.sh_51766b600fd158a9e0677f6b0fa31b83537b2e5b.out b/test/expected/test_sql_str_func.sh_51766b600fd158a9e0677f6b0fa31b83537b2e5b.out index 061b9ed..5576c1f 100644 --- a/test/expected/test_sql_str_func.sh_51766b600fd158a9e0677f6b0fa31b83537b2e5b.out +++ b/test/expected/test_sql_str_func.sh_51766b600fd158a9e0677f6b0fa31b83537b2e5b.out @@ -1,2 +1,2 @@ Row 0: - Column parse_url('https://example.com/search?flag&flag2&=def'): {"scheme":"https","user":null,"password":null,"host":"example.com","port":null,"path":"/search","query":"flag&flag2&=def","parameters":{"flag":null,"flag2":null,"":"def"},"fragment":null} + Column parse_url('https://example.com/search?flag&flag2&=def'): {"scheme":"https","username":null,"password":null,"host":"example.com","port":null,"path":"/search","query":"flag&flag2&=def","parameters":{"flag":null,"flag2":null,"":"def"},"fragment":null} diff --git a/test/expected/test_sql_str_func.sh_57fc889eefb98571ecf3892ad670646613bf13a3.err b/test/expected/test_sql_str_func.sh_57fc889eefb98571ecf3892ad670646613bf13a3.err new file mode 100644 index 0000000..306ed4b --- /dev/null +++ b/test/expected/test_sql_str_func.sh_57fc889eefb98571ecf3892ad670646613bf13a3.err @@ -0,0 +1 @@ +error: sqlite3_exec failed -- lnav-error:{"level":"warning","message":{"str":"unexpected value for property “/unknown”","attrs":[{"start":33,"end":41,"type":"role","value":49}]},"reason":{"str":"","attrs":[]},"snippets":[{"source":"arg","line":1,"content":{"str":"{\"unknown\":\"abc\"}","attrs":[{"start":0,"end":-1,"type":"role","value":42}]}}],"notes":[],"help":{"str":"Available Properties\n scheme \n username \n password \n host \n port \n path \n query \n parameters/ \n fragment","attrs":[{"start":0,"end":20,"type":"role","value":64},{"start":23,"end":29,"type":"role","value":49},{"start":33,"end":41,"type":"role","value":49},{"start":45,"end":53,"type":"role","value":49},{"start":57,"end":61,"type":"role","value":49},{"start":65,"end":69,"type":"role","value":49},{"start":73,"end":77,"type":"role","value":49},{"start":81,"end":86,"type":"role","value":49},{"start":90,"end":100,"type":"role","value":49},{"start":100,"end":101,"type":"role","value":49},{"start":105,"end":113,"type":"role","value":49}]}} diff --git a/test/expected/test_sql_str_func.sh_57fc889eefb98571ecf3892ad670646613bf13a3.out b/test/expected/test_sql_str_func.sh_57fc889eefb98571ecf3892ad670646613bf13a3.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_str_func.sh_57fc889eefb98571ecf3892ad670646613bf13a3.out diff --git a/test/expected/test_sql_str_func.sh_68860c50e91cd6c1f2004ee0414a6e930ed42c87.err b/test/expected/test_sql_str_func.sh_68860c50e91cd6c1f2004ee0414a6e930ed42c87.err new file mode 100644 index 0000000..66d898c --- /dev/null +++ b/test/expected/test_sql_str_func.sh_68860c50e91cd6c1f2004ee0414a6e930ed42c87.err @@ -0,0 +1 @@ +error: sqlite3_exec failed -- lnav-error:{"level":"warning","message":{"str":"unexpected value for property “/#”","attrs":[{"start":33,"end":35,"type":"role","value":49}]},"reason":{"str":"","attrs":[]},"snippets":[{"source":"arg","line":1,"content":{"str":"[1, 2, 3]","attrs":[{"start":0,"end":-1,"type":"role","value":42}]}}],"notes":[],"help":{"str":"Available Properties\n scheme \n username \n password \n host \n port \n path \n query \n parameters/ \n fragment","attrs":[{"start":0,"end":20,"type":"role","value":64},{"start":23,"end":29,"type":"role","value":49},{"start":33,"end":41,"type":"role","value":49},{"start":45,"end":53,"type":"role","value":49},{"start":57,"end":61,"type":"role","value":49},{"start":65,"end":69,"type":"role","value":49},{"start":73,"end":77,"type":"role","value":49},{"start":81,"end":86,"type":"role","value":49},{"start":90,"end":100,"type":"role","value":49},{"start":100,"end":101,"type":"role","value":49},{"start":105,"end":113,"type":"role","value":49}]}} diff --git a/test/expected/test_sql_str_func.sh_68860c50e91cd6c1f2004ee0414a6e930ed42c87.out b/test/expected/test_sql_str_func.sh_68860c50e91cd6c1f2004ee0414a6e930ed42c87.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_str_func.sh_68860c50e91cd6c1f2004ee0414a6e930ed42c87.out diff --git a/test/expected/test_sql_str_func.sh_6ac7ab1f90c064944ff66bef5974f050c8227d4b.err b/test/expected/test_sql_str_func.sh_6ac7ab1f90c064944ff66bef5974f050c8227d4b.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_str_func.sh_6ac7ab1f90c064944ff66bef5974f050c8227d4b.err diff --git a/test/expected/test_sql_str_func.sh_6ac7ab1f90c064944ff66bef5974f050c8227d4b.out b/test/expected/test_sql_str_func.sh_6ac7ab1f90c064944ff66bef5974f050c8227d4b.out new file mode 100644 index 0000000..a873544 --- /dev/null +++ b/test/expected/test_sql_str_func.sh_6ac7ab1f90c064944ff66bef5974f050c8227d4b.out @@ -0,0 +1,2 @@ +Row 0: + Column encode('hi' || char(10), 'hex'): 68690a diff --git a/test/expected/test_sql_str_func.sh_6ff984d8ed3e5099376d19f0dd20d5fd1ed42494.out b/test/expected/test_sql_str_func.sh_6ff984d8ed3e5099376d19f0dd20d5fd1ed42494.out index d1dcc93..0a56fcc 100644 --- a/test/expected/test_sql_str_func.sh_6ff984d8ed3e5099376d19f0dd20d5fd1ed42494.out +++ b/test/expected/test_sql_str_func.sh_6ff984d8ed3e5099376d19f0dd20d5fd1ed42494.out @@ -1,2 +1,2 @@ Row 0: - Column parse_url('https://example.com/sea%26rch?flag&flag2&=def#frag1%20space'): {"scheme":"https","user":null,"password":null,"host":"example.com","port":null,"path":"/sea&rch","query":"flag&flag2&=def","parameters":{"flag":null,"flag2":null,"":"def"},"fragment":"frag1 space"} + Column parse_url('https://example.com/sea%26rch?flag&flag2&=def#frag1%20space'): {"scheme":"https","username":null,"password":null,"host":"example.com","port":null,"path":"/sea&rch","query":"flag&flag2&=def","parameters":{"flag":null,"flag2":null,"":"def"},"fragment":"frag1 space"} diff --git a/test/expected/test_sql_str_func.sh_805ca5e97fbf1ed56f2e920befd963255ba190b6.out b/test/expected/test_sql_str_func.sh_805ca5e97fbf1ed56f2e920befd963255ba190b6.out index 84c7397..01169ce 100644 --- a/test/expected/test_sql_str_func.sh_805ca5e97fbf1ed56f2e920befd963255ba190b6.out +++ b/test/expected/test_sql_str_func.sh_805ca5e97fbf1ed56f2e920befd963255ba190b6.out @@ -1,2 +1,2 @@ Row 0: - Column parse_url('https://example.com/search?flag&flag2'): {"scheme":"https","user":null,"password":null,"host":"example.com","port":null,"path":"/search","query":"flag&flag2","parameters":{"flag":null,"flag2":null},"fragment":null} + Column parse_url('https://example.com/search?flag&flag2'): {"scheme":"https","username":null,"password":null,"host":"example.com","port":null,"path":"/search","query":"flag&flag2","parameters":{"flag":null,"flag2":null},"fragment":null} diff --git a/test/expected/test_sql_str_func.sh_80c1fb9affbfac609ebf1cc5556aafb1ecd223c1.err b/test/expected/test_sql_str_func.sh_80c1fb9affbfac609ebf1cc5556aafb1ecd223c1.err index a92048a..29338d9 100644 --- a/test/expected/test_sql_str_func.sh_80c1fb9affbfac609ebf1cc5556aafb1ecd223c1.err +++ b/test/expected/test_sql_str_func.sh_80c1fb9affbfac609ebf1cc5556aafb1ecd223c1.err @@ -1 +1 @@ -error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"call to regexp_match(re, str) failed","attrs":[{"start":8,"end":20,"type":"role","value":47},{"start":21,"end":23,"type":"role","value":46},{"start":25,"end":28,"type":"role","value":46},{"start":8,"end":29,"type":"role","value":60}]},"reason":{"str":"regular expression does not have any captures","attrs":[]},"snippets":[],"help":{"str":"","attrs":[]}} +error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"call to regexp_match(re, str) failed","attrs":[{"start":8,"end":20,"type":"role","value":49},{"start":21,"end":23,"type":"role","value":48},{"start":25,"end":28,"type":"role","value":48},{"start":8,"end":29,"type":"role","value":65}]},"reason":{"str":"regular expression does not have any captures","attrs":[]},"snippets":[],"notes":[],"help":{"str":"","attrs":[]}} diff --git a/test/expected/test_sql_str_func.sh_949ffd5b2ef9fbcbe17f2e61ef7750f7038f6fd6.out b/test/expected/test_sql_str_func.sh_949ffd5b2ef9fbcbe17f2e61ef7750f7038f6fd6.out index f93d348..90daa31 100644 --- a/test/expected/test_sql_str_func.sh_949ffd5b2ef9fbcbe17f2e61ef7750f7038f6fd6.out +++ b/test/expected/test_sql_str_func.sh_949ffd5b2ef9fbcbe17f2e61ef7750f7038f6fd6.out @@ -1,2 +1,2 @@ -regexp_match('^(\w+)=([^;]+);', 'abc=def;ghi=jkl;') +[1m[4mregexp_match('^(\w+)=([^;]+);', 'abc=def;ghi=jkl;')[0m[1m[4m [0m {"col_0":"abc","col_1":"def"} diff --git a/test/expected/test_sql_str_func.sh_a515ba81cc3655c602da28cd0fa1a186d5e9a6e1.err b/test/expected/test_sql_str_func.sh_a515ba81cc3655c602da28cd0fa1a186d5e9a6e1.err index 475a9b2..7435892 100644 --- a/test/expected/test_sql_str_func.sh_a515ba81cc3655c602da28cd0fa1a186d5e9a6e1.err +++ b/test/expected/test_sql_str_func.sh_a515ba81cc3655c602da28cd0fa1a186d5e9a6e1.err @@ -1 +1 @@ -error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"invalid URL: “https://example.com:100000”","attrs":[]},"reason":{"str":"Port number was not a decimal number between 0 and 65535","attrs":[]},"snippets":[],"help":{"str":"","attrs":[]}} +error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"invalid URL: https://example.com:100000","attrs":[{"start":13,"end":39,"type":"role","value":56}]},"reason":{"str":"Port number was not a decimal number between 0 and 65535","attrs":[]},"snippets":[],"notes":[],"help":{"str":"","attrs":[]}} diff --git a/test/expected/test_sql_str_func.sh_b088735cf46f23ca3d5fb3da41f07a6a3b1cba35.out b/test/expected/test_sql_str_func.sh_b088735cf46f23ca3d5fb3da41f07a6a3b1cba35.out index e93f55d..7b9ef25 100644 --- a/test/expected/test_sql_str_func.sh_b088735cf46f23ca3d5fb3da41f07a6a3b1cba35.out +++ b/test/expected/test_sql_str_func.sh_b088735cf46f23ca3d5fb3da41f07a6a3b1cba35.out @@ -1,2 +1,2 @@ Row 0: - Column parse_url('https://example.com'): {"scheme":"https","user":null,"password":null,"host":"example.com","port":null,"path":"/","query":null,"parameters":null,"fragment":null} + Column parse_url('https://example.com'): {"scheme":"https","username":null,"password":null,"host":"example.com","port":null,"path":"/","query":null,"parameters":null,"fragment":null} diff --git a/test/expected/test_sql_str_func.sh_b8ebe81c4881f704624a65ec91be0868c310f6ed.err b/test/expected/test_sql_str_func.sh_b8ebe81c4881f704624a65ec91be0868c310f6ed.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_str_func.sh_b8ebe81c4881f704624a65ec91be0868c310f6ed.err diff --git a/test/expected/test_sql_str_func.sh_b8ebe81c4881f704624a65ec91be0868c310f6ed.out b/test/expected/test_sql_str_func.sh_b8ebe81c4881f704624a65ec91be0868c310f6ed.out new file mode 100644 index 0000000..18df174 --- /dev/null +++ b/test/expected/test_sql_str_func.sh_b8ebe81c4881f704624a65ec91be0868c310f6ed.out @@ -0,0 +1,2 @@ +Row 0: + Column unparse_url(NULL): (null) diff --git a/test/expected/test_sql_str_func.sh_bac7f6531a2adf70cd1871fb13eab26dff133b7c.out b/test/expected/test_sql_str_func.sh_bac7f6531a2adf70cd1871fb13eab26dff133b7c.out index daf8e0a..ee5f9c7 100644 --- a/test/expected/test_sql_str_func.sh_bac7f6531a2adf70cd1871fb13eab26dff133b7c.out +++ b/test/expected/test_sql_str_func.sh_bac7f6531a2adf70cd1871fb13eab26dff133b7c.out @@ -1,2 +1,2 @@ Row 0: - Column parse_url('https://example.com/search?flag'): {"scheme":"https","user":null,"password":null,"host":"example.com","port":null,"path":"/search","query":"flag","parameters":{"flag":null},"fragment":null} + Column parse_url('https://example.com/search?flag'): {"scheme":"https","username":null,"password":null,"host":"example.com","port":null,"path":"/search","query":"flag","parameters":{"flag":null},"fragment":null} diff --git a/test/expected/test_sql_str_func.sh_cdc7b869132c33cae3c2565806c2396e1b4d6253.err b/test/expected/test_sql_str_func.sh_cdc7b869132c33cae3c2565806c2396e1b4d6253.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_str_func.sh_cdc7b869132c33cae3c2565806c2396e1b4d6253.err diff --git a/test/expected/test_sql_str_func.sh_cdc7b869132c33cae3c2565806c2396e1b4d6253.out b/test/expected/test_sql_str_func.sh_cdc7b869132c33cae3c2565806c2396e1b4d6253.out new file mode 100644 index 0000000..269441a --- /dev/null +++ b/test/expected/test_sql_str_func.sh_cdc7b869132c33cae3c2565806c2396e1b4d6253.out @@ -0,0 +1,2 @@ +Row 0: + Column unparse_url('{}'): (null) diff --git a/test/expected/test_sql_str_func.sh_d4bc869850f5b7e53353fc2506fea0c8e96f29c5.err b/test/expected/test_sql_str_func.sh_d4bc869850f5b7e53353fc2506fea0c8e96f29c5.err index f4c8399..c9bad60 100644 --- a/test/expected/test_sql_str_func.sh_d4bc869850f5b7e53353fc2506fea0c8e96f29c5.err +++ b/test/expected/test_sql_str_func.sh_d4bc869850f5b7e53353fc2506fea0c8e96f29c5.err @@ -1 +1 @@ -error: sqlite3_exec failed -- Invalid regular expression: missing closing parenthesis +error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"“(” is not a valid regular expression","attrs":[]},"reason":{"str":"missing closing parenthesis","attrs":[]},"snippets":[{"source":"pattern","line":0,"content":{"str":"(\n ^ missing closing parenthesis","attrs":[{"start":0,"end":1,"type":"role","value":3},{"start":0,"end":1,"type":"style","value":2359296},{"start":0,"end":1,"type":"role","value":5},{"start":3,"end":5,"type":"role","value":5},{"start":5,"end":32,"type":"role","value":5},{"start":0,"end":-1,"type":"role","value":42}]}}],"notes":[],"help":{"str":"","attrs":[]}} diff --git a/test/expected/test_sql_str_func.sh_d54a759f5683a22ad289129b2096b80652b1cc0c.out b/test/expected/test_sql_str_func.sh_d54a759f5683a22ad289129b2096b80652b1cc0c.out index 659abf7..0f59225 100644 --- a/test/expected/test_sql_str_func.sh_d54a759f5683a22ad289129b2096b80652b1cc0c.out +++ b/test/expected/test_sql_str_func.sh_d54a759f5683a22ad289129b2096b80652b1cc0c.out @@ -5,16 +5,11 @@ "col_0": [ "VpxLRO" ], - "col_1": "--", - "col_2": "BEGIN", - "col_3": "lro-846063", - "col_4": "--", - "col_5": "SessionManager", - "col_6": "--", - "col_7": "vim.SessionManager.sessionIsActive", - "col_8": "--", - "col_9": "528e6e0c-246d-58b5-3234-278c6e0c5d0d", - "col_10": [ + "BEGIN": "lro-846063", + "col_1": "SessionManager", + "col_2": "vim.SessionManager.sessionIsActive", + "col_3": "528e6e0c-246d-58b5-3234-278c6e0c5d0d", + "col_4": [ "52c289ac-2563-48d5-8a8e-f178da022c0d" ] } @@ -25,22 +20,22 @@ "col_0": [ "VpxLRO" ], - "col_1": "--", - "col_2": "FINISH", - "col_3": "lro-846063" + "FINISH": "lro-846063" } }, { "log_body": "Exception was thrown when call vsan-performance-manager for cluster [vim.ClusterComputeResource:domain-c109,Cluster-52] perf metrics: N3Vim5Fault8NotFound9ExceptionE(Fault cause: vim.fault.NotFound\n--> )", "extract(log_body)": { - "Exception was thrown when call vsan-performance-manager for cluster [vim.ClusterComputeResource:domain-c109,Cluster-52] perf metrics": { - "N3Vim5Fault8NotFound9ExceptionE": [ - "Fault cause", - "vim.fault.NotFound", - "\n", - "--", - ">" - ] + "call": "vsan-performance-manager", + "cluster": { + "vim.ClusterComputeResource": "domain-c109", + "col_0": "Cluster-52" + }, + "col_0": "perf", + "metrics": "", + "N3Vim5Fault8NotFound9ExceptionE": { + "Fault cause": "vim.fault.NotFound", + "col_0": ">" } } } diff --git a/test/expected/test_sql_time_func.sh_42f0fc1a154b0d79b4f6e846f283426be498040f.err b/test/expected/test_sql_time_func.sh_42f0fc1a154b0d79b4f6e846f283426be498040f.err index 537f7c4..90c4d88 100644 --- a/test/expected/test_sql_time_func.sh_42f0fc1a154b0d79b4f6e846f283426be498040f.err +++ b/test/expected/test_sql_time_func.sh_42f0fc1a154b0d79b4f6e846f283426be498040f.err @@ -1 +1 @@ -error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"call to timeslice(time, slice) failed","attrs":[{"start":8,"end":17,"type":"role","value":47},{"start":18,"end":22,"type":"role","value":46},{"start":24,"end":29,"type":"role","value":46},{"start":8,"end":30,"type":"role","value":60}]},"reason":{"str":"unable to parse time slice value: blah -- Unrecognized input","attrs":[]},"snippets":[],"help":{"str":"","attrs":[]}} +error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"call to timeslice(time, slice) failed","attrs":[{"start":8,"end":17,"type":"role","value":49},{"start":18,"end":22,"type":"role","value":48},{"start":24,"end":29,"type":"role","value":48},{"start":8,"end":30,"type":"role","value":65}]},"reason":{"str":"unable to parse time slice value: blah -- Unrecognized input","attrs":[]},"snippets":[],"notes":[],"help":{"str":"","attrs":[]}} diff --git a/test/expected/test_sql_time_func.sh_4364c7f5354fe108874dd22571115e012303e001.err b/test/expected/test_sql_time_func.sh_4364c7f5354fe108874dd22571115e012303e001.err new file mode 100644 index 0000000..9d7688e --- /dev/null +++ b/test/expected/test_sql_time_func.sh_4364c7f5354fe108874dd22571115e012303e001.err @@ -0,0 +1,4 @@ +✘ error: call to timezone(tz, ts) failed + reason: bad-zone not found in timezone database + --> command-option:1 + | ;SELECT timezone('bad-zone', '2022-03-02T10:20:30.400-0700') diff --git a/test/expected/test_sql_time_func.sh_4364c7f5354fe108874dd22571115e012303e001.out b/test/expected/test_sql_time_func.sh_4364c7f5354fe108874dd22571115e012303e001.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_time_func.sh_4364c7f5354fe108874dd22571115e012303e001.out diff --git a/test/expected/test_sql_time_func.sh_63f22db8689c238d51c9b9efe9837147ea5318e6.err b/test/expected/test_sql_time_func.sh_63f22db8689c238d51c9b9efe9837147ea5318e6.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_time_func.sh_63f22db8689c238d51c9b9efe9837147ea5318e6.err diff --git a/test/expected/test_sql_time_func.sh_63f22db8689c238d51c9b9efe9837147ea5318e6.out b/test/expected/test_sql_time_func.sh_63f22db8689c238d51c9b9efe9837147ea5318e6.out new file mode 100644 index 0000000..16f0f98 --- /dev/null +++ b/test/expected/test_sql_time_func.sh_63f22db8689c238d51c9b9efe9837147ea5318e6.out @@ -0,0 +1,2 @@ +Row 0: + Column timezone('America/Los_Angeles', '2022-04-02T10:20:30.400-0700'): 2022-04-02T10:20:30.400000-0700 diff --git a/test/expected/test_sql_time_func.sh_6fd8504e94688c4e7915f3a9eb5b030713141d03.out b/test/expected/test_sql_time_func.sh_6fd8504e94688c4e7915f3a9eb5b030713141d03.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_time_func.sh_6fd8504e94688c4e7915f3a9eb5b030713141d03.out diff --git a/test/expected/test_sql_time_func.sh_72862ec9c8f261a8507d237eb673c7ddfaafd898.err b/test/expected/test_sql_time_func.sh_72862ec9c8f261a8507d237eb673c7ddfaafd898.err index 4180cf6..33e46bd 100644 --- a/test/expected/test_sql_time_func.sh_72862ec9c8f261a8507d237eb673c7ddfaafd898.err +++ b/test/expected/test_sql_time_func.sh_72862ec9c8f261a8507d237eb673c7ddfaafd898.err @@ -1 +1 @@ -error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"call to timeslice(time, slice) failed","attrs":[{"start":8,"end":17,"type":"role","value":47},{"start":18,"end":22,"type":"role","value":46},{"start":24,"end":29,"type":"role","value":46},{"start":8,"end":30,"type":"role","value":60}]},"reason":{"str":"no time slice value given","attrs":[]},"snippets":[],"help":{"str":"","attrs":[]}} +error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"call to timeslice(time, slice) failed","attrs":[{"start":8,"end":17,"type":"role","value":49},{"start":18,"end":22,"type":"role","value":48},{"start":24,"end":29,"type":"role","value":48},{"start":8,"end":30,"type":"role","value":65}]},"reason":{"str":"no time slice value given","attrs":[]},"snippets":[],"notes":[],"help":{"str":"","attrs":[]}} diff --git a/test/expected/test_sql_time_func.sh_7ae9dbbb69dbc50ee6a34afc03d2579f09363068.err b/test/expected/test_sql_time_func.sh_7ae9dbbb69dbc50ee6a34afc03d2579f09363068.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_time_func.sh_7ae9dbbb69dbc50ee6a34afc03d2579f09363068.err diff --git a/test/expected/test_sql_time_func.sh_7ae9dbbb69dbc50ee6a34afc03d2579f09363068.out b/test/expected/test_sql_time_func.sh_7ae9dbbb69dbc50ee6a34afc03d2579f09363068.out new file mode 100644 index 0000000..6401b23 --- /dev/null +++ b/test/expected/test_sql_time_func.sh_7ae9dbbb69dbc50ee6a34afc03d2579f09363068.out @@ -0,0 +1,2 @@ +Row 0: + Column timezone('UTC', '2022-03-02T10:20:30.400-0700'): 2022-03-02T17:20:30.400000+0000 diff --git a/test/expected/test_sql_time_func.sh_b3c00f049fdeb551a9165c281630e36359832d1f.err b/test/expected/test_sql_time_func.sh_b3c00f049fdeb551a9165c281630e36359832d1f.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_time_func.sh_b3c00f049fdeb551a9165c281630e36359832d1f.err diff --git a/test/expected/test_sql_time_func.sh_b3c00f049fdeb551a9165c281630e36359832d1f.out b/test/expected/test_sql_time_func.sh_b3c00f049fdeb551a9165c281630e36359832d1f.out new file mode 100644 index 0000000..e02d1de --- /dev/null +++ b/test/expected/test_sql_time_func.sh_b3c00f049fdeb551a9165c281630e36359832d1f.out @@ -0,0 +1,2 @@ +Row 0: + Column timezone('America/New_York', '2022-03-02T10:20:30.400-0700'): 2022-03-02T12:20:30.400000-0500 diff --git a/test/expected/test_sql_time_func.sh_c1d7dc8a4bd3b8cb86a2f893f58a56f0f6ea1bc3.err b/test/expected/test_sql_time_func.sh_c1d7dc8a4bd3b8cb86a2f893f58a56f0f6ea1bc3.err new file mode 100644 index 0000000..ad8b26b --- /dev/null +++ b/test/expected/test_sql_time_func.sh_c1d7dc8a4bd3b8cb86a2f893f58a56f0f6ea1bc3.err @@ -0,0 +1,8 @@ +✘ error: invalid timestamp: 2022-03-02T10:20:30.400bad + reason: the leading part of the timestamp was matched, however, the trailing text “bad” was not + --> command-option:1 + | ;SELECT timezone('UTC', '2022-03-02T10:20:30.400bad') + = note: input matched time format “%Y-%m-%dT%H:%M:%S” + = note: 2022-03-02T10:20:30.400bad + ^-^ unrecognized input + = help: fix the timestamp or remove the trailing text diff --git a/test/expected/test_sql_time_func.sh_c1d7dc8a4bd3b8cb86a2f893f58a56f0f6ea1bc3.out b/test/expected/test_sql_time_func.sh_c1d7dc8a4bd3b8cb86a2f893f58a56f0f6ea1bc3.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_time_func.sh_c1d7dc8a4bd3b8cb86a2f893f58a56f0f6ea1bc3.out diff --git a/test/expected/test_sql_time_func.sh_c5a5fc2edb54d10f1475afa7fed0b62bc05e1dc6.err b/test/expected/test_sql_time_func.sh_c5a5fc2edb54d10f1475afa7fed0b62bc05e1dc6.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_time_func.sh_c5a5fc2edb54d10f1475afa7fed0b62bc05e1dc6.err diff --git a/test/expected/test_sql_time_func.sh_c5a5fc2edb54d10f1475afa7fed0b62bc05e1dc6.out b/test/expected/test_sql_time_func.sh_c5a5fc2edb54d10f1475afa7fed0b62bc05e1dc6.out new file mode 100644 index 0000000..689ba47 --- /dev/null +++ b/test/expected/test_sql_time_func.sh_c5a5fc2edb54d10f1475afa7fed0b62bc05e1dc6.out @@ -0,0 +1,2 @@ +Row 0: + Column timezone('America/Los_Angeles', '2022-03-02T10:20:30.400-0700'): 2022-03-02T09:20:30.400000-0800 diff --git a/test/expected/test_sql_time_func.sh_c7fc60392a2e52b163da1e1dde6978c16f415a9e.err b/test/expected/test_sql_time_func.sh_c7fc60392a2e52b163da1e1dde6978c16f415a9e.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_time_func.sh_c7fc60392a2e52b163da1e1dde6978c16f415a9e.err diff --git a/test/expected/test_sql_time_func.sh_c7fc60392a2e52b163da1e1dde6978c16f415a9e.out b/test/expected/test_sql_time_func.sh_c7fc60392a2e52b163da1e1dde6978c16f415a9e.out new file mode 100644 index 0000000..07dccfa --- /dev/null +++ b/test/expected/test_sql_time_func.sh_c7fc60392a2e52b163da1e1dde6978c16f415a9e.out @@ -0,0 +1,2 @@ +Row 0: + Column timezone('America/Los_Angeles', '2022-03-02T10:00'): 2022-03-02T02:00:00.000000-0800 diff --git a/test/expected/test_sql_views_vtab.sh_32acc1a8bb5028636fdbf08f077f9a835ab51bec.out b/test/expected/test_sql_views_vtab.sh_32acc1a8bb5028636fdbf08f077f9a835ab51bec.out index 710f668..2b6d1d2 100644 --- a/test/expected/test_sql_views_vtab.sh_32acc1a8bb5028636fdbf08f077f9a835ab51bec.out +++ b/test/expected/test_sql_views_vtab.sh_32acc1a8bb5028636fdbf08f077f9a835ab51bec.out @@ -11,9 +11,8 @@ Run [37m[40m ./autogen.sh [0m if compiling from a cloned repository. [1mSee Also[0m -[4mAngle-grinder[1][0m is a tool to slice and dice log files on the +]8;;https://github.com/rcoh/angle-grinder\[4mAngle-grinder[0m]8;;\[4m[1][0m is a tool to slice and dice log files on the command-line. If you're familiar with the SumoLogic query language, you might find this tool more comfortable to work with. ▌[1] - https://github.com/rcoh/angle-grinder - diff --git a/test/expected/test_sql_views_vtab.sh_4363d60040424a573ed79ee4260a32e3cd72f62c.err b/test/expected/test_sql_views_vtab.sh_4363d60040424a573ed79ee4260a32e3cd72f62c.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_views_vtab.sh_4363d60040424a573ed79ee4260a32e3cd72f62c.err diff --git a/test/expected/test_sql_views_vtab.sh_4363d60040424a573ed79ee4260a32e3cd72f62c.out b/test/expected/test_sql_views_vtab.sh_4363d60040424a573ed79ee4260a32e3cd72f62c.out new file mode 100644 index 0000000..a4f45bc --- /dev/null +++ b/test/expected/test_sql_views_vtab.sh_4363d60040424a573ed79ee4260a32e3cd72f62c.out @@ -0,0 +1,46 @@ +2023-03-24T14:26:16.243Z renovate[7] INFO Dependency extraction complete + Received Time: [1m2023-03-24T14:26:16.243[0m — [1min the future[0m Format: [1m%Y-%m-%dT%H:%M:%S.%L%z[0m + Known message fields for table [1mbunyan_log[0m: + | [1m[32m◆[0m 📊 name = renovate + | [32m◇[0m 📊 hostname = renovate-gitlab-67c4bcb5-9ggbv + | [1m[32m◆[0m 📊 pid = 7 + | [32m◇[0m 📊 level = 30 + | [32m◇[0m 📊 v = 0 + JSON fields: + [1mjget[0m(log_raw_text, [35m'/baseBranch'[0m) = [1mmain[0m + [1mjget[0m(log_raw_text, [35m'/logContext'[0m) = [1mqjifsaDDI[0m + [1mjget[0m(log_raw_text, [35m'/repository'[0m) = [1mwebgui/custom-icons-transformer[0m + [1mjget[0m(log_raw_text, [35m'/stats'[0m) = [1m{"managers":{"gitlabci":{"fileCount":1,"depCount":1},"gitlabci-include":{"fileCount":1,"depCount":1},"npm":{"fileCount":1,"depCount":15}},"total":{"fileCount":3,"depCount":17}}[0m + No discovered message fields + logContext: qjifsaDDI + repository: webgui/custom-icons-transformer + baseBranch: main + stats: {"managers":{"gitlabci":{"fileCount":1,"depCount":1},"gitlabci-include":{"fileCount":1,"depCount":1},"npm":{"fileCount":1,"depCount":15}},"total":{"fileCount":3,"depCount":17}} +2023-03-24T14:26:16.390Z renovate[7] DEBUG Dependency node has unsupported/unversioned value lts-bullseye-slim (versioning=docker) + logContext: qjifsaDDI + repository: webgui/custom-icons-transformer +2023-03-24T14:26:17.493Z renovate[7] DEBUG Release 2.8.7 is pending status checks + logContext: qjifsaDDI + repository: webgui/custom-icons-transformer + depName: prettier + check: stabilityDays +2023-03-24T14:26:17.897Z renovate[7] DEBUG Release 4.4.1 is pending status checks + logContext: qjifsaDDI + repository: webgui/custom-icons-transformer + depName: rimraf + check: stabilityDays +2023-03-24T14:26:17.897Z renovate[7] DEBUG All releases are pending - using latest + logContext: qjifsaDDI + repository: webgui/custom-icons-transformer + depName: rimraf + bucket: non-major +2023-03-24T14:26:18.330Z renovate[7] DEBUG Release 2.10.0 is pending status checks + logContext: qjifsaDDI + repository: webgui/custom-icons-transformer + depName: prettier-plugin-svelte + check: stabilityDays +2023-03-24T14:26:18.331Z renovate[7] DEBUG All releases are pending - using latest + logContext: qjifsaDDI + repository: webgui/custom-icons-transformer + depName: prettier-plugin-svelte + bucket: non-major diff --git a/test/expected/test_sql_views_vtab.sh_45dbef06572b43cb997682436e753a13e003f792.err b/test/expected/test_sql_views_vtab.sh_45dbef06572b43cb997682436e753a13e003f792.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_views_vtab.sh_45dbef06572b43cb997682436e753a13e003f792.err diff --git a/test/expected/test_sql_views_vtab.sh_45dbef06572b43cb997682436e753a13e003f792.out b/test/expected/test_sql_views_vtab.sh_45dbef06572b43cb997682436e753a13e003f792.out new file mode 100644 index 0000000..74dfce6 --- /dev/null +++ b/test/expected/test_sql_views_vtab.sh_45dbef06572b43cb997682436e753a13e003f792.out @@ -0,0 +1,47 @@ +[2020-12-10 06:56:41,092] DEBUG [connect.client:69] Full request text: + Received Time: [1m2020-12-10T06:56:41.092[0m — [1min the future[0m Format: [1m%Y-%m-%d %H:%M:%S,%L[0m + Pattern: /xml_msg_log/regex/std = [1m[36m^[0m\[[1m[32m([0m[1m[32m?[0m[1m[36m<[0mtimestamp>[1m\d[0m[1m[32m{[0m4[1m[32m}[0m-[1m\d[0m[1m[32m{[0m2[1m[32m}[0m-[1m\d[0m[1m[32m{[0m2[1m[32m}[0m [1m\d[0m[1m[32m{[0m2[1m[32m}[0m:[1m\d[0m[1m[32m{[0m2[1m[32m}[0m:[1m\d[0m[1m[32m{[0m2[1m[32m}[0m,[1m\d[0m[1m[32m{[0m3[1m[32m}[0m[1m[32m)[0m\][1m\s[0m[1m[36m+[0m[1m[32m([0m[1m[32m?[0m[1m[36m<[0mlevel>[1m\w[0m[1m[36m+[0m[1m[32m)[0m[1m\s[0m[1m[36m+[0m\[[1m[32m([0m[1m[32m?[0m[1m[36m<[0mmodule>[1m[32m[[0m[1m[36m^[0m:[1m[32m][0m[1m[36m*[0m[1m[32m)[0m:[1m[32m([0m[1m[32m?[0m[1m[36m<[0mline>[1m\d[0m[1m[36m+[0m[1m[32m)[0m\][1m\s[0m[1m[36m*[0m[1m[32m([0m[1m[32m?[0m[1m[36m<[0mbody>[1m[32m[[0m[1m[36m^[0m\n[1m[32m][0m[1m[36m*[0m[1m[32m)[0m\n[1m[36m?[0m[1m[32m([0m[1m[32m?[0m[1m[36m<[0mmsg_data>[1m[36m.[0m[1m[36m*[0m[1m[32m)[0m + Known message fields for table [1mxml_msg_log[0m: + | [1m[32m◆[0m 📊 module = connect.client + | [1m[32m◆[0m 📊 line = 69 + | [1m[32m◆[0m msg_data = <?xml version='1.0' encoding='iso-8859-2'?>␊<a-request>␊ <head>␊ x␊ </head>␊ <source>␊ x␊ </source>␊ <request id="1">␊ <name>␊ x␊ </name>␊ </request>␊</a-request>␊ + XML fields: + [1mxpath[0m([35m'/a-request/head/text()'[0m, xml_msg_log.msg_data) = [1mx[0m + [1mxpath[0m([35m'/a-request/request/@id'[0m, xml_msg_log.msg_data) = [1m1[0m + [1mxpath[0m([35m'/a-request/request/name/text()'[0m, xml_msg_log.msg_data) = [1mx[0m + [1mxpath[0m([35m'/a-request/source/text()'[0m, xml_msg_log.msg_data) = [1mx[0m + No discovered message fields + └ #xml-req +<?xml version='1.0' encoding='iso-8859-2'?> +<a-request> + <head> + x + </head> + <source> + x + </source> + <request id="1"> + <name> + x + </name> + </request> +</a-request> + +[2020-12-10 06:56:41,099] DEBUG [m:85] Full reply text: +<?xml version='1.0' encoding='iso-8859-2'?> +<a-reply> + <head> + x + </head> + <reply id="2"> + <status> + <result>OK</result> + </status> + <name> + x + </name> + </reply> + <technical-track> + x + </technical-track> +</a-reply> diff --git a/test/expected/test_sql_views_vtab.sh_485a6ac7c69bd4b5d34d3399a9c17f6a2dc89ad3.out b/test/expected/test_sql_views_vtab.sh_485a6ac7c69bd4b5d34d3399a9c17f6a2dc89ad3.out index bfe5f1e..2ada698 100644 --- a/test/expected/test_sql_views_vtab.sh_485a6ac7c69bd4b5d34d3399a9c17f6a2dc89ad3.out +++ b/test/expected/test_sql_views_vtab.sh_485a6ac7c69bd4b5d34d3399a9c17f6a2dc89ad3.out @@ -1 +1 @@ -[33m2014-10-08 16:56:38,344:[0m[7m[33mWARN[0m[33m:foo bar baz[0m +[33m2014-10-08 16:56:38,344[0m[33m:[0m[7m[33mWARN[0m[33m:foo bar baz[0m diff --git a/test/expected/test_sql_views_vtab.sh_62d15cb9d5a9259f198aa01ca8ed200d6da38d68.out b/test/expected/test_sql_views_vtab.sh_62d15cb9d5a9259f198aa01ca8ed200d6da38d68.out index 48f52f3..a988f1b 100644 --- a/test/expected/test_sql_views_vtab.sh_62d15cb9d5a9259f198aa01ca8ed200d6da38d68.out +++ b/test/expected/test_sql_views_vtab.sh_62d15cb9d5a9259f198aa01ca8ed200d6da38d68.out @@ -1,3 +1,3 @@ -[1m[4mview_name [0m[1m[4m[7mfilter_id [0m[1m[4m[7menabled [0m[1m[4mtype [0m[1m[4mlanguage [0m[1m[4mpattern [0m -[1m[7ml[0m[1m[7mo[0m[1mg [0m[1m [0m[1m 1[0m[1m [0m[1m 1[0m[1m [0m[1min [0m[1m [0m[1mregex [0m[1m [0m[1mvmk [0m -[7mlog [0m[7m [0m[7m 2[0m[7m [0m[7m [0m[7m [0m 1 in regex vmk1 +[1m[4mview_name[0m[1m[4m [0m[1m[4mfilter_id[0m[1m[4m [0m[1m[4menabled[0m[1m[4m [0m[1m[4mtype[0m[1m[4m [0m[1m[4mlanguage[0m[1m[4m [0m[1m[4mpattern[0m[1m[4m [0m +log 1 1 in regex vmk +log 2 1 in regex vmk1 diff --git a/test/expected/test_sql_views_vtab.sh_6ffd89498b9a7758ded6717148fc2ce77a12621b.out b/test/expected/test_sql_views_vtab.sh_6ffd89498b9a7758ded6717148fc2ce77a12621b.out index 1ad5fbf..ac0d98c 100644 --- a/test/expected/test_sql_views_vtab.sh_6ffd89498b9a7758ded6717148fc2ce77a12621b.out +++ b/test/expected/test_sql_views_vtab.sh_6ffd89498b9a7758ded6717148fc2ce77a12621b.out @@ -1,2 +1,2 @@ -[1m[4msearch [0m +[1m[4msearch[0m[1m[4m [0m warn diff --git a/test/expected/test_sql_views_vtab.sh_81dc3eb51ec4dc3066a2365524001242c423a9cf.out b/test/expected/test_sql_views_vtab.sh_81dc3eb51ec4dc3066a2365524001242c423a9cf.out index c99c751..25e5645 100644 --- a/test/expected/test_sql_views_vtab.sh_81dc3eb51ec4dc3066a2365524001242c423a9cf.out +++ b/test/expected/test_sql_views_vtab.sh_81dc3eb51ec4dc3066a2365524001242c423a9cf.out @@ -1,2 +1,2 @@ -[1m[4mview_name [0m[1m[4m[7mfilter_id [0m[1m[4m[7menabled [0m[1m[4mtype [0m[1m[4mlanguage [0m[1m[4mpattern [0m -[1m[7mlog [0m[1m[7m [0m[1m[7m 0[0m[1m[7m [0m[1m[7m 1[0m[1m[7m [0m[1m[7mout [0m[1m[7m [0m[1m[7msql [0m[1m[7m [0m[1m[7m1 [0m[1m [0m +[1m[4mview_name[0m[1m[4m [0m[1m[4mfilter_id[0m[1m[4m [0m[1m[4menabled[0m[1m[4m [0m[1m[4mtype[0m[1m[4m [0m[1m[4mlanguage[0m[1m[4m [0m[1m[4mpattern[0m[1m[4m [0m +log 0 1 out sql 1 diff --git a/test/expected/test_sql_views_vtab.sh_a2c0f0e51b3f85ea2a05ecdcacaad962b4fe5d4f.out b/test/expected/test_sql_views_vtab.sh_a2c0f0e51b3f85ea2a05ecdcacaad962b4fe5d4f.out index 38afb7c..4041522 100644 --- a/test/expected/test_sql_views_vtab.sh_a2c0f0e51b3f85ea2a05ecdcacaad962b4fe5d4f.out +++ b/test/expected/test_sql_views_vtab.sh_a2c0f0e51b3f85ea2a05ecdcacaad962b4fe5d4f.out @@ -1,2 +1,2 @@ -[1m[4mview_name [0m[1m[4m[7mfilter_id [0m[1m[4m[7menabled [0m[1m[4mtype [0m[1m[4mlanguage [0m[1m[4mpattern [0m -[1m[7ml[0m[1m[7mo[0m[1mg [0m[1m [0m[1m 1[0m[1m [0m[1m 1[0m[1m [0m[1min [0m[1m [0m[1mregex [0m[1m [0m[1mvmk [0m +[1m[4mview_name[0m[1m[4m [0m[1m[4mfilter_id[0m[1m[4m [0m[1m[4menabled[0m[1m[4m [0m[1m[4mtype[0m[1m[4m [0m[1m[4mlanguage[0m[1m[4m [0m[1m[4mpattern[0m[1m[4m [0m +log 1 1 in regex vmk diff --git a/test/expected/test_sql_views_vtab.sh_a7a7fd577f710aa8b0ad5a94fdfb35daea75e06c.err b/test/expected/test_sql_views_vtab.sh_a7a7fd577f710aa8b0ad5a94fdfb35daea75e06c.err new file mode 100644 index 0000000..44ba5c2 --- /dev/null +++ b/test/expected/test_sql_views_vtab.sh_a7a7fd577f710aa8b0ad5a94fdfb35daea75e06c.err @@ -0,0 +1,4 @@ +[1m[31m✘ error[0m: Invalid “[1mtop_meta.file[0m” value + [1m[31mreason[0m: Unknown text file: [1mbad[0m +[36m --> [0m[1mcommand-option[0m:1 +[36m | [0m[37m[40m;[0m[1m[36m[40mUPDATE[0m[37m[40m [0m[37m[40mlnav_views[0m[37m[40m [0m[1m[36m[40mSET[0m[37m[40m [0m[37m[40mtop_meta[0m[37m[40m [0m[1m[37m[40m=[0m[37m[40m [0m[1m[37m[40mjson_object[0m[37m[40m([0m[35m[40m'file'[0m[37m[40m, [0m[35m[40m'bad'[0m[37m[40m) [0m[1m[36m[40mWHERE[0m[37m[40m [0m[37m[40mname[0m[37m[40m [0m[1m[37m[40m=[0m[37m[40m [0m[35m[40m'text'[0m diff --git a/test/expected/test_sql_views_vtab.sh_a7a7fd577f710aa8b0ad5a94fdfb35daea75e06c.out b/test/expected/test_sql_views_vtab.sh_a7a7fd577f710aa8b0ad5a94fdfb35daea75e06c.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_views_vtab.sh_a7a7fd577f710aa8b0ad5a94fdfb35daea75e06c.out diff --git a/test/expected/test_sql_views_vtab.sh_c851bdf3ba2f56fac5a216457b2d11a109e77f03.err b/test/expected/test_sql_views_vtab.sh_c851bdf3ba2f56fac5a216457b2d11a109e77f03.err index 4276af6..d4eb104 100644 --- a/test/expected/test_sql_views_vtab.sh_c851bdf3ba2f56fac5a216457b2d11a109e77f03.err +++ b/test/expected/test_sql_views_vtab.sh_c851bdf3ba2f56fac5a216457b2d11a109e77f03.err @@ -1,4 +1,4 @@ -[1m[31m✘ error[0m: SQL statement failed - [1m[31mreason[0m: Invalid time: bad-time +[1m[31m✘ error[0m: Invalid “[1mtop_time[0m” value + [1m[31mreason[0m: Unrecognized time value: [35mbad-time[0m [36m --> [0m[1mcommand-option[0m:1 [36m | [0m[37m[40m;[0m[1m[36m[40mUPDATE[0m[37m[40m [0m[37m[40mlnav_views[0m[37m[40m [0m[1m[36m[40mSET[0m[37m[40m [0m[37m[40mtop_time[0m[37m[40m [0m[1m[37m[40m=[0m[37m[40m [0m[35m[40m'bad-time'[0m[37m[40m [0m[1m[36m[40mWHERE[0m[37m[40m [0m[37m[40mname[0m[37m[40m [0m[1m[37m[40m=[0m[37m[40m [0m[35m[40m'log'[0m diff --git a/test/expected/test_sql_views_vtab.sh_d99d884ba6668b66e3ca9ea4ed2d0e236497c35d.out b/test/expected/test_sql_views_vtab.sh_d99d884ba6668b66e3ca9ea4ed2d0e236497c35d.out index bc35132..1dda4bf 100644 --- a/test/expected/test_sql_views_vtab.sh_d99d884ba6668b66e3ca9ea4ed2d0e236497c35d.out +++ b/test/expected/test_sql_views_vtab.sh_d99d884ba6668b66e3ca9ea4ed2d0e236497c35d.out @@ -1 +1 @@ -[33m2014-10-08 16:56:38,344:[0m[33mWARN[0m[33m:foo bar baz[0m +[33m2014-10-08 16:56:38,344[0m[33m:WARN[0m[33m:foo bar baz[0m diff --git a/test/expected/test_sql_xml_func.sh_81ad7678f080870956db37174bcf1054586cfbad.err b/test/expected/test_sql_xml_func.sh_81ad7678f080870956db37174bcf1054586cfbad.err new file mode 100644 index 0000000..3c5a94b --- /dev/null +++ b/test/expected/test_sql_xml_func.sh_81ad7678f080870956db37174bcf1054586cfbad.err @@ -0,0 +1,11 @@ +[1m[31m✘ error[0m: Invalid XML document + [1m[31mreason[0m: Error parsing element attribute +[36m --> [0m[1mcommand-option[0m:1 +[36m | [0m[37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40m*[0m[37m[40m [0m[1m[36m[40mFROM[0m[37m[40m [0m[1m[37m[40mxpath[0m[37m[40m([0m[35m[40m'/catalog'[0m[37m[40m, ([0m[1m[36m[40mSELECT[0m[37m[40m [0m[37m[40mcontent[0m[37m[40m [0m[1m[36m[40mFROM[0m[37m[40m [0m[37m[40mlnav_file[0m[37m[40m [0m[1m[36m[40mLIMIT[0m[37m[40m [0m[1m[37m[40m1[0m[37m[40m))[0m +[36m --> [0m[1mxmldoc[0m:35 +[36m | [0m[37m[40m </description> [0m +[36m | [0m[37m[40m </book> [0m +[36m | [0m[37m[40m <book id=" bk104"> [0m +[36m | [0m[37m[40m [0m[36m[40m^ [0m[1m[31m[40mError parsing element attribute[0m +[36m | [0m[37m[40m <author>Corets, Eva</author> [0m +[36m | [0m[37m[40m <title>Oberon's Legacy</title> [0m diff --git a/test/expected/test_sql_xml_func.sh_81ad7678f080870956db37174bcf1054586cfbad.out b/test/expected/test_sql_xml_func.sh_81ad7678f080870956db37174bcf1054586cfbad.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_xml_func.sh_81ad7678f080870956db37174bcf1054586cfbad.out diff --git a/test/expected/test_sql_xml_func.sh_b036c73528a446cba46625767517cdac868aba72.err b/test/expected/test_sql_xml_func.sh_b036c73528a446cba46625767517cdac868aba72.err index 6ac0f80..319fc61 100644 --- a/test/expected/test_sql_xml_func.sh_b036c73528a446cba46625767517cdac868aba72.err +++ b/test/expected/test_sql_xml_func.sh_b036c73528a446cba46625767517cdac868aba72.err @@ -1 +1 @@ -error: sqlite3_exec failed -- Invalid XPATH expression at offset 5: Unrecognized node test +error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"Invalid XPath expression","attrs":[]},"reason":{"str":"Unrecognized node test","attrs":[]},"snippets":[{"source":"xpath","line":1,"content":{"str":"/abc[\n ^ Unrecognized node test","attrs":[{"start":0,"end":5,"type":"role","value":42},{"start":11,"end":13,"type":"role","value":79},{"start":13,"end":35,"type":"role","value":5},{"start":6,"end":35,"type":"role","value":42},{"start":35,"end":35,"type":"role","value":42}]}}],"notes":[],"help":{"str":"","attrs":[]}} diff --git a/test/expected/test_sql_xml_func.sh_bcbd691bb24c4f7bcb9fe0e035b290815f1c8874.err b/test/expected/test_sql_xml_func.sh_bcbd691bb24c4f7bcb9fe0e035b290815f1c8874.err new file mode 100644 index 0000000..d1ff56a --- /dev/null +++ b/test/expected/test_sql_xml_func.sh_bcbd691bb24c4f7bcb9fe0e035b290815f1c8874.err @@ -0,0 +1,7 @@ +[1m[31m✘ error[0m: Invalid XPath expression + [1m[31mreason[0m: Expected ']' to match an opening '[' +[36m --> [0m[1mcommand-option[0m:1 +[36m | [0m[37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40m*[0m[37m[40m [0m[1m[36m[40mFROM[0m[37m[40m [0m[1m[37m[40mxpath[0m[37m[40m([0m[35m[40m'/cat[alog'[0m[37m[40m, ([0m[1m[36m[40mSELECT[0m[37m[40m [0m[37m[40mcontent[0m[37m[40m [0m[1m[36m[40mFROM[0m[37m[40m [0m[37m[40mlnav_file[0m[37m[40m [0m[1m[36m[40mLIMIT[0m[37m[40m [0m[1m[37m[40m1[0m[37m[40m))[0m +[36m --> [0m[1mxpath[0m:1 +[36m | [0m[37m[40m/cat[alog [0m +[36m | [0m[37m[40m [0m[36m[40m^ [0m[1m[31m[40mExpected ']' to match an opening '['[0m diff --git a/test/expected/test_sql_xml_func.sh_bcbd691bb24c4f7bcb9fe0e035b290815f1c8874.out b/test/expected/test_sql_xml_func.sh_bcbd691bb24c4f7bcb9fe0e035b290815f1c8874.out new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_sql_xml_func.sh_bcbd691bb24c4f7bcb9fe0e035b290815f1c8874.out diff --git a/test/expected/test_sql_xml_func.sh_fefeb387ae14d4171225ea06cbbff3ec43990cf0.err b/test/expected/test_sql_xml_func.sh_fefeb387ae14d4171225ea06cbbff3ec43990cf0.err index a97d7cd..f495a72 100644 --- a/test/expected/test_sql_xml_func.sh_fefeb387ae14d4171225ea06cbbff3ec43990cf0.err +++ b/test/expected/test_sql_xml_func.sh_fefeb387ae14d4171225ea06cbbff3ec43990cf0.err @@ -1 +1 @@ -error: sqlite3_exec failed -- Invalid XML document at offset 3: Error parsing start element tag +error: sqlite3_exec failed -- lnav-error:{"level":"error","message":{"str":"Invalid XML document","attrs":[]},"reason":{"str":"Error parsing start element tag","attrs":[]},"snippets":[{"source":"xmldoc","line":1,"content":{"str":"<abc\n ^ Error parsing start element tag","attrs":[{"start":0,"end":4,"type":"role","value":42},{"start":8,"end":10,"type":"role","value":79},{"start":10,"end":41,"type":"role","value":5},{"start":5,"end":41,"type":"role","value":42},{"start":41,"end":41,"type":"role","value":42}]}}],"notes":[],"help":{"str":"","attrs":[]}} diff --git a/test/expected/test_sql_yaml_func.sh_41c6abde708a69e74f5b7fde865d88fa75f91e0a.err b/test/expected/test_sql_yaml_func.sh_41c6abde708a69e74f5b7fde865d88fa75f91e0a.err deleted file mode 100644 index b7f3a79..0000000 --- a/test/expected/test_sql_yaml_func.sh_41c6abde708a69e74f5b7fde865d88fa75f91e0a.err +++ /dev/null @@ -1,4 +0,0 @@ -[1m[31m✘ error[0m: failed to parse YAML content - [1m[31mreason[0m: closing ] not found -[36m --> [0m[1mcommand-option[0m:1 -[36m | [0m[37m[40m;[0m[1m[36m[40mSELECT[0m[37m[40m [0m[1m[37m[40myaml_to_json[0m[37m[40m([0m[35m[40m'[abc'[0m[37m[40m) [0m diff --git a/test/expected/test_text_file.sh_02a0514e0e384e5511ae202ea519552ba04030ed.err b/test/expected/test_text_file.sh_02a0514e0e384e5511ae202ea519552ba04030ed.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_02a0514e0e384e5511ae202ea519552ba04030ed.err diff --git a/test/expected/test_text_file.sh_02a0514e0e384e5511ae202ea519552ba04030ed.out b/test/expected/test_text_file.sh_02a0514e0e384e5511ae202ea519552ba04030ed.out new file mode 100644 index 0000000..d244d10 --- /dev/null +++ b/test/expected/test_text_file.sh_02a0514e0e384e5511ae202ea519552ba04030ed.out @@ -0,0 +1,3 @@ +Hello, [30m[47mWorld![0m! +Goodbye, [37m[40mWorld![0m! +That is not⌫⌫⌫all diff --git a/test/expected/test_text_file.sh_0bba304f34ae07c4fa9e91e0b42f5fe98654a6a8.err b/test/expected/test_text_file.sh_0bba304f34ae07c4fa9e91e0b42f5fe98654a6a8.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_0bba304f34ae07c4fa9e91e0b42f5fe98654a6a8.err diff --git a/test/expected/test_text_file.sh_0bba304f34ae07c4fa9e91e0b42f5fe98654a6a8.out b/test/expected/test_text_file.sh_0bba304f34ae07c4fa9e91e0b42f5fe98654a6a8.out new file mode 100644 index 0000000..0c3f7da --- /dev/null +++ b/test/expected/test_text_file.sh_0bba304f34ae07c4fa9e91e0b42f5fe98654a6a8.out @@ -0,0 +1,26 @@ +[32m#! /bin/sh[0m + + +[1m[36mif[0m [1m[36mtest[0m x[35m"${AUTORECONF}"[0m = x[35m""[0m; [1m[36mthen[0m + autoreconf -V 1>/dev/null 2>/dev/null + [1m[36mif[0m [1m[36mtest[0m $? -eq 0; [1m[36mthen[0m + [4mAUTORECONF[0m=autoreconf + [1m[36mfi[0m +[1m[36mfi[0m + +[1m[36mif[0m [1m[36mtest[0m x[35m"${AUTORECONF}"[0m != x[35m""[0m; [1m[36mthen[0m + ${[4mAUTORECONF[0m} -vfi -I m4 +[1m[36melse[0m + [4mAUTOCONF[0m=${AUTOCONF:-autoconf} + [4mAUTOMAKE[0m=${AUTOMAKE:-automake} + [4mAUTOHEADER[0m=${AUTOHEADER:-autoheader} + [4mACLOCAL[0m=${ACLOCAL:-aclocal} + + ${[4mAUTOCONF[0m} --version + ${[4mAUTOMAKE[0m} --version + + ${[4mACLOCAL[0m} -I m4 -I . + ${[4mAUTOHEADER[0m} -I . + ${[4mAUTOMAKE[0m} --add-missing --copy --force-missing --foreign + ${[4mAUTOCONF[0m} +[1m[36mfi[0m diff --git a/test/expected/test_text_file.sh_11fd274911e45a743b4de616888a64183d07cb76.err b/test/expected/test_text_file.sh_11fd274911e45a743b4de616888a64183d07cb76.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_11fd274911e45a743b4de616888a64183d07cb76.err diff --git a/test/expected/test_text_file.sh_11fd274911e45a743b4de616888a64183d07cb76.out b/test/expected/test_text_file.sh_11fd274911e45a743b4de616888a64183d07cb76.out new file mode 100644 index 0000000..4ef8aa7 --- /dev/null +++ b/test/expected/test_text_file.sh_11fd274911e45a743b4de616888a64183d07cb76.out @@ -0,0 +1,2 @@ +[1m[4mcontent[0m[1m[4m [0m + abc diff --git a/test/expected/test_text_file.sh_143a40164c93c7ec44a66e7940b92b128a421147.err b/test/expected/test_text_file.sh_143a40164c93c7ec44a66e7940b92b128a421147.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_143a40164c93c7ec44a66e7940b92b128a421147.err diff --git a/test/expected/test_text_file.sh_143a40164c93c7ec44a66e7940b92b128a421147.out b/test/expected/test_text_file.sh_143a40164c93c7ec44a66e7940b92b128a421147.out new file mode 100644 index 0000000..84ebd40 --- /dev/null +++ b/test/expected/test_text_file.sh_143a40164c93c7ec44a66e7940b92b128a421147.out @@ -0,0 +1,5 @@ + [35m"title"[0m: [35m"Midnight Rain"[0m, + [35m"description"[0m: [35m"A former architect battles corporate zombies, an evil sorceress, and her own childhood to become queen of the world."[0m + } + ] +} diff --git a/test/expected/test_text_file.sh_1ce4056d72b871f8bb844c86aade2a9b1da58030.err b/test/expected/test_text_file.sh_1ce4056d72b871f8bb844c86aade2a9b1da58030.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_1ce4056d72b871f8bb844c86aade2a9b1da58030.err diff --git a/test/expected/test_text_file.sh_1ce4056d72b871f8bb844c86aade2a9b1da58030.out b/test/expected/test_text_file.sh_1ce4056d72b871f8bb844c86aade2a9b1da58030.out new file mode 100644 index 0000000..b100f4c --- /dev/null +++ b/test/expected/test_text_file.sh_1ce4056d72b871f8bb844c86aade2a9b1da58030.out @@ -0,0 +1,49 @@ +[ + { + "top_meta": { + "file": "stdin", + "anchor": "#/test~1Makefile.am/distclean-local:", + "breadcrumbs": [ + { + "display_value": "stdin", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "stdin" + } + ] + }, + { + "display_value": "test/Makefile.am", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "test/Makefile.am" + }, + { + "display_value": "test/expected/expected.am" + }, + { + "display_value": "test/expected/test_sessions.sh_8732dad5481be991ca7f291d9c5451c7b016cea7.out" + }, + { + "display_value": "test/expected/test_sessions.sh_e39648f425c3f291c9d1c0d14595a019abd0cb48.out" + }, + { + "display_value": "test/test_sessions.sh" + } + ] + }, + { + "display_value": "distclean-local:", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "distclean-local:" + } + ] + } + ] + } + } +] diff --git a/test/expected/test_text_file.sh_25cef06efcbe106c2e1cc4a166b673e7b244c6d7.err b/test/expected/test_text_file.sh_25cef06efcbe106c2e1cc4a166b673e7b244c6d7.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_25cef06efcbe106c2e1cc4a166b673e7b244c6d7.err diff --git a/test/expected/test_text_file.sh_25cef06efcbe106c2e1cc4a166b673e7b244c6d7.out b/test/expected/test_text_file.sh_25cef06efcbe106c2e1cc4a166b673e7b244c6d7.out new file mode 100644 index 0000000..80a24fb --- /dev/null +++ b/test/expected/test_text_file.sh_25cef06efcbe106c2e1cc4a166b673e7b244c6d7.out @@ -0,0 +1,25 @@ +[ + { + "top_meta": { + "file": "stdin", + "breadcrumbs": [ + { + "display_value": "stdin", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "stdin" + } + ] + }, + { + "display_value": "2013-06-06T12:13:20.123", + "search_placeholder": "", + "possibilities": [ + + ] + } + ] + } + } +] diff --git a/test/expected/test_text_file.sh_265a8a5825e6c7dbc85cbe496dab6be7a349f3db.err b/test/expected/test_text_file.sh_265a8a5825e6c7dbc85cbe496dab6be7a349f3db.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_265a8a5825e6c7dbc85cbe496dab6be7a349f3db.err diff --git a/test/expected/test_text_file.sh_265a8a5825e6c7dbc85cbe496dab6be7a349f3db.out b/test/expected/test_text_file.sh_265a8a5825e6c7dbc85cbe496dab6be7a349f3db.out new file mode 100644 index 0000000..a330ad5 --- /dev/null +++ b/test/expected/test_text_file.sh_265a8a5825e6c7dbc85cbe496dab6be7a349f3db.out @@ -0,0 +1 @@ +2013-06-06T12:13:20.123 Hello, World! diff --git a/test/expected/test_text_file.sh_2e69c22dcfa37b5c3e8490a6026eacb7ca953998.err b/test/expected/test_text_file.sh_2e69c22dcfa37b5c3e8490a6026eacb7ca953998.err deleted file mode 100644 index 08a372f..0000000 --- a/test/expected/test_text_file.sh_2e69c22dcfa37b5c3e8490a6026eacb7ca953998.err +++ /dev/null @@ -1,2 +0,0 @@ -[1m[31m✘ error[0m: unable to open file: [1mnon-existent:[0m - [1m[31mreason[0m: failed to ssh to host: ssh: Could not resolve hostname non-existent: nodename nor servname provided, or not known diff --git a/test/expected/test_text_file.sh_4226123565a53b4e3f80e602c1f294721e8e07bf.err b/test/expected/test_text_file.sh_4226123565a53b4e3f80e602c1f294721e8e07bf.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_4226123565a53b4e3f80e602c1f294721e8e07bf.err diff --git a/test/expected/test_text_file.sh_4226123565a53b4e3f80e602c1f294721e8e07bf.out b/test/expected/test_text_file.sh_4226123565a53b4e3f80e602c1f294721e8e07bf.out new file mode 100644 index 0000000..063e8c8 --- /dev/null +++ b/test/expected/test_text_file.sh_4226123565a53b4e3f80e602c1f294721e8e07bf.out @@ -0,0 +1,9 @@ +[32m# Test file for syntax-highlighting[0m + +[1m[36mdef[0m hello(abc): + [35m"""[0m +[35m This is a multi-line string[0m + +[35m [0m[35m@param[0m[35m abc: blah blah[0m +[35m """[0m + [1m[36mreturn[0m abc + 1 diff --git a/test/expected/test_text_file.sh_4dd174410d702a7b4be794fb6fa2c8889bd768d6.err b/test/expected/test_text_file.sh_4dd174410d702a7b4be794fb6fa2c8889bd768d6.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_4dd174410d702a7b4be794fb6fa2c8889bd768d6.err diff --git a/test/expected/test_text_file.sh_4dd174410d702a7b4be794fb6fa2c8889bd768d6.out b/test/expected/test_text_file.sh_4dd174410d702a7b4be794fb6fa2c8889bd768d6.out new file mode 100644 index 0000000..e6de131 --- /dev/null +++ b/test/expected/test_text_file.sh_4dd174410d702a7b4be794fb6fa2c8889bd768d6.out @@ -0,0 +1,6 @@ + [35m"author"[0m: [35m"Ralls, Kim"[0m, + [35m"title"[0m: [35m"Midnight Rain"[0m, + [35m"description"[0m: [35m"A former architect battles corporate zombies, an evil sorceress, and her own childhood to become queen of the world."[0m + } + ] +} diff --git a/test/expected/test_text_file.sh_596b120fbea638472a27964444e262b4572afacc.err b/test/expected/test_text_file.sh_596b120fbea638472a27964444e262b4572afacc.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_596b120fbea638472a27964444e262b4572afacc.err diff --git a/test/expected/test_text_file.sh_596b120fbea638472a27964444e262b4572afacc.out b/test/expected/test_text_file.sh_596b120fbea638472a27964444e262b4572afacc.out new file mode 100644 index 0000000..84ebd40 --- /dev/null +++ b/test/expected/test_text_file.sh_596b120fbea638472a27964444e262b4572afacc.out @@ -0,0 +1,5 @@ + [35m"title"[0m: [35m"Midnight Rain"[0m, + [35m"description"[0m: [35m"A former architect battles corporate zombies, an evil sorceress, and her own childhood to become queen of the world."[0m + } + ] +} diff --git a/test/expected/test_text_file.sh_5b51b55dff7332c5bee2c9b797c401c5614d574a.out b/test/expected/test_text_file.sh_5b51b55dff7332c5bee2c9b797c401c5614d574a.out index a39be1e..1f28ffd 100644 --- a/test/expected/test_text_file.sh_5b51b55dff7332c5bee2c9b797c401c5614d574a.out +++ b/test/expected/test_text_file.sh_5b51b55dff7332c5bee2c9b797c401c5614d574a.out @@ -1,4 +1,4 @@ -[4mBuild[1][0m[4m[2][0m [4mDocs[3][0m[4m[4][0m [4mCoverage Status[5][0m[4m[6][0m [4mlnav[7][0m[4m[8][0m +]8;;https://github.com/tstack/lnav/actions?query=workflow%3Aci-build\[4m🖼 Build[1][0m]8;;\[4m[2][0m ]8;;https://docs.lnav.org\[4m🖼 Docs[3][0m]8;;\[4m[4][0m ]8;;https://coveralls.io/github/tstack/lnav?branch=master\[4m🖼 Coverage Status[5][0m]8;;\[4m[6][0m ]8;;https://snapcraft.io/lnav\[4m🖼 lnav[7][0m]8;;\[4m[8][0m ▌[1] - https://github.com/tstack/lnav/workflows/ci-build/badge.svg ▌[2] - https://github.com/tstack/lnav/actions?query=workflow%3Aci-build @@ -9,61 +9,122 @@ ▌[7] - https://snapcraft.io/lnav/badge.svg ▌[8] - https://snapcraft.io/lnav -[4m<img[0m -[4msrc="https://assets-global.website-files.com/6257adef93867e50d84d30e2/62594fddd654fc29fcc07359_cb48d2a8d4991281d7a6a95d2f58195e.svg"[0m -[4mheight="20"/>[1][0m +]8;;https://discord.gg/erBPnKwz7R\[4m🖼 [0m]8;;\]8;;https://discord.gg/erBPnKwz7R\[4mDiscord Logo[0m]8;;\]8;;https://discord.gg/erBPnKwz7R\[4m[1][0m]8;;\[4m[2][0m - ▌[1] - https://discord.gg/erBPnKwz7R + ▌[1] - https://assets-global.website-files.com/6257adef93867e50d84d30e2/62594fddd654fc29fcc07359_cb48d2a8d4991281d7a6a95d2f58195e.svg + ▌[2] - https://discord.gg/erBPnKwz7R -[4mThis is the source repository for [0m[1m[4mlnav[0m[4m, visit [0m[4mhttps://lnav.org[1][0m[4m for[0m +[4mThis is the source repository for [0m[1m[4mlnav[0m[4m, visit [0m]8;;https://lnav.org\[4mhttps://lnav.org[0m]8;;\[4m[1][0m[4m for[0m [4ma high level overview.[0m ▌[1] - https://lnav.org [1m[35mLNAV – The Logfile Navigator[0m -The Log File Navigator, [1mlnav[0m for short, is an advanced log file viewer -for the small-scale. It is a terminal application that can understand -your log files and make it easy for you to find problems with little -to no setup. +The Logfile Navigator is a log file viewer for the terminal. Given a +set of files/directories, [1mlnav[0m will: + + [33m•[0m decompress as needed; + [33m•[0m detect their format; + [33m•[0m merge the files together by time into a single view; + [33m•[0m tail the files, follow renames, find new files in + directories; + [33m•[0m build an index of errors and warnings; + [33m•[0m ]8;;https://docs.lnav.org/en/latest/formats.html#json-lines\[4mpretty-print JSON-lines[0m]8;;\[4m[1][0m. + + ▌[1] - https://docs.lnav.org/en/latest/formats.html#json-lines + +Then, in the [1mlnav[0m TUI, you can: + + [33m•[0m jump quickly to the previous/next error (]8;;https://docs.lnav.org/en/latest/hotkeys.html#spatial-navigation\[4mpress [0m]8;;\]8;;https://docs.lnav.org/en/latest/hotkeys.html#spatial-navigation\[4m[37m[40m e [0m]8;;\]8;;https://docs.lnav.org/en/latest/hotkeys.html#spatial-navigation\[4m/[0m]8;;\]8;;https://docs.lnav.org/en/latest/hotkeys.html#spatial-navigation\[4m[37m[40m E [0m]8;;\[4m[1][0m); + [33m•[0m search using regular expressions (]8;;https://docs.lnav.org/en/latest/hotkeys.html#spatial-navigation\[4mpress [0m]8;;\]8;;https://docs.lnav.org/en/latest/hotkeys.html#spatial-navigation\[4m[37m[40m / [0m]8;;\[4m[2][0m); + [33m•[0m highlight text with a regular expression (]8;;https://docs.lnav.org/en/latest/commands.html#highlight-pattern\[4m[37m[40m :highlight [0m]8;;\[4m[3][0m + command); + [33m•[0m filter messages using ]8;;https://docs.lnav.org/en/latest/usage.html#regular-expression-match\[4mregular expressions[0m]8;;\[4m[4][0m or ]8;;https://docs.lnav.org/en/latest/usage.html#sqlite-expression\[4mSQLite[0m]8;;\ + ]8;;https://docs.lnav.org/en/latest/usage.html#sqlite-expression\[4mexpressions[0m]8;;\[4m[5][0m; + [33m•[0m pretty-print structured text (]8;;https://docs.lnav.org/en/latest/ui.html#pretty\[4mpress [0m]8;;\]8;;https://docs.lnav.org/en/latest/ui.html#pretty\[4m[37m[40m P [0m]8;;\[4m[6][0m); + [33m•[0m view a histogram of messages over time (]8;;https://docs.lnav.org/en/latest/ui.html#hist\[4mpress [0m]8;;\]8;;https://docs.lnav.org/en/latest/ui.html#hist\[4m[37m[40m i [0m]8;;\[4m[7][0m); + [33m•[0m query messages using SQLite (]8;;https://docs.lnav.org/en/latest/sqlext.html\[4mpress [0m]8;;\]8;;https://docs.lnav.org/en/latest/sqlext.html\[4m[37m[40m ; [0m]8;;\[4m[8][0m) + + ▌[1] - https://docs.lnav.org/en/latest/hotkeys.html#spatial-navigation + ▌[2] - https://docs.lnav.org/en/latest/hotkeys.html#spatial-navigation + ▌[3] - https://docs.lnav.org/en/latest/commands.html#highlight-pattern + ▌[4] - https://docs.lnav.org/en/latest/usage.html#regular-expression-match + ▌[5] - https://docs.lnav.org/en/latest/usage.html#sqlite-expression + ▌[6] - https://docs.lnav.org/en/latest/ui.html#pretty + ▌[7] - https://docs.lnav.org/en/latest/ui.html#hist + ▌[8] - https://docs.lnav.org/en/latest/sqlext.html [1mScreenshot[0m -The following screenshot shows a syslog file. Log lines are displayed -with highlights. Errors are red and warnings are yellow. +The following screenshot shows a mix of syslog and web access log +files. Failed requests are shown in red. Identifiers, like IP +address and PIDs are semantically highlighted. -[4mScreenshot[1][0m[4m[2][0m +]8;;docs/assets/images/lnav-front-page.png\[4m🖼 Screenshot[1][0m]8;;\[4m[2][0m - ▌[1] - file://{top_srcdir}/docs/assets/images/lnav-syslog-thumb.png - ▌[2] - file://{top_srcdir}/docs/assets/images/lnav-syslog.png + ▌[1] - file://{top_srcdir}/docs/assets/images/lnav-front-page.png + ▌[2] - file://{top_srcdir}/docs/assets/images/lnav-front-page.png -[1mFeatures[0m +[1mWhy not [0m[1mjust[0m[1m use [0m[1m[37m[40m tail [0m[1m/[0m[1m[37m[40m grep [0m[1m/[0m[1m[37m[40m less [0m[1m?[0m - [33m•[0m Log messages from different files are collated together - into a single view - [33m•[0m Automatic detection of log format - [33m•[0m Automatic decompression of GZip and BZip2 files - [33m•[0m Filter log messages based on regular expressions - [33m•[0m Use SQL to analyze your logs - [33m•[0m And more... +The standard Unix utilities are great for processing raw text lines, +however, they do not understand log messages. Tail can watch multiple +files at a time, but it won't display messages in order by time and +you can't scroll backwards. Grep will only find matching lines, but +won't return a full multi-line log message. Less can only display a +single file at a time. Also, none of these basic tools handle +compressed files. + +[1mTry online before installing[0m + +You can SSH into a demo node to play with lnav before installing. + +The [35m"playground"[0m account starts lnav with a couple of log files as an +example: + +]8;;ssh://playground@demo.lnav.org\[4m[37m[40m $ ssh playground@demo.lnav.org [0m]8;;\[4m[1][0m + + ▌[1] - ssh://playground@demo.lnav.org + +The [35m"tutorial 1"[0m account is an interactive tutorial that can teach you +the basics of operation: + +]8;;ssh://tutorial1@demo.lnav.org\[4m[37m[40m $ ssh tutorial1@demo.lnav.org [0m]8;;\[4m[1][0m + + ▌[1] - ssh://tutorial1@demo.lnav.org [1mInstallation[0m -[4mDownload a statically-linked binary for Linux/MacOS from the release[0m -[4mpage[1][0m +]8;;https://github.com/tstack/lnav/releases/latest#release-artifacts\[4mDownload a statically-linked binary for Linux/MacOS from the release[0m]8;;\ +]8;;https://github.com/tstack/lnav/releases/latest#release-artifacts\[4mpage[0m]8;;\[4m[1][0m ▌[1] - https://github.com/tstack/lnav/releases/latest#release-artifacts +[4mBrew on MacOS[0m + + ▌[33m[40m$ [0m[37m[40mbrew install lnav [0m + [1mUsage[0m -The only file installed is the executable, [37m[40m lnav [0m. You can execute it -with no arguments to view the default set of files: +Simply point [1mlnav[0m at the files or directories you want to monitor, it +will figure out the rest: - ▌[37m[40m$ lnav [0m + ▌[33m[40m$ [0m[37m[40mlnav /path/to/file1 /path/to/dir ... [0m -You can view all the syslog messages by running: +The [1mlnav[0m TUI will pop up right away and begin indexing the files. +Progress is displayed in the [35m"Files"[0m panel at the bottom. Once the +indexing has finished, the LOG view will display the log messages that +were recognized[^1]. You can then use the usual hotkeys to move around +the view (arrow keys or [37m[40m j [0m/[37m[40m k [0m/[37m[40m h [0m/[37m[40m l [0m to move down/up/left/right). - ▌[37m[40m$ lnav /var/log/messages* [0m +See the ]8;;https://docs.lnav.org/en/latest/usage.html\[4mUsage section[0m]8;;\[4m[1][0m of the online documentation for more +information. + + ▌[1] - https://docs.lnav.org/en/latest/usage.html + +[^1]: Files that do not contain log messages can be seen in the TEXT +view (reachable by pressing [37m[40m t [0m). [4mUsage with [0m[4m[37m[40m systemd-journald [0m @@ -82,8 +143,9 @@ output format to include the year, otherwise [37m[40m lnav [0m gets confused: ▌[37m[40m$ journalctl -o short-iso | lnav [0m -It is also possible to use [37m[40m journalctl [0m's json output format and [37m[40m lnav[0m -will make use of additional fields such as PRIORITY and _SYSTEMD_UNIT: +It is also possible to use [37m[40m journalctl [0m's json output format and +[37m[40m lnav [0mwill make use of additional fields such as PRIORITY and +_SYSTEMD_UNIT: ▌[37m[40m$ journalctl -o json | lnav [0m @@ -100,8 +162,8 @@ the ones actually recognized by [37m[40m lnav [0m for increased efficiency: ▌[37m[40m$ journalctl -o json --output-fields=MESSAGE,PRIORITY,_PID,SYSLOG_IDENTIFIER,_SYSTEMD_UNIT | lnav [0m If your system has been running for a long time, for increased -efficiency you may want to limit the number of log lines fed into [37m[40m lnav[0m -, e.g. via [37m[40m journalctl [0m's [37m[40m -n [0m or [37m[40m --since=... [0m options. +efficiency you may want to limit the number of log lines fed into +[37m[40m lnav [0m, e.g. via [37m[40m journalctl [0m's [37m[40m -n [0m or [37m[40m --since=... [0m options. In case of a persistent journal, you may want to limit the number of log lines fed into [37m[40m lnav [0m via [37m[40m journalctl [0m's [37m[40m -b [0m option. @@ -111,9 +173,9 @@ log lines fed into [37m[40m lnav [0m via [37m[40m journalctl [0m's [37m[ Please file issues on this repository or use the discussions section. The following alternatives are also available: - [33m•[0m [4msupport@lnav.org[1][0m - [33m•[0m [4mDiscord[2][0m - [33m•[0m [4mGoogle Groups[3][0m + [33m•[0m ]8;;mailto:support@lnav.org\[4msupport@lnav.org[0m]8;;\[4m[1][0m + [33m•[0m ]8;;https://discord.gg/erBPnKwz7R\[4mDiscord[0m]8;;\[4m[2][0m + [33m•[0m ]8;;https://groups.google.com/g/lnav\[4mGoogle Groups[0m]8;;\[4m[3][0m ▌[1] - mailto:support@lnav.org ▌[2] - https://discord.gg/erBPnKwz7R @@ -121,9 +183,9 @@ The following alternatives are also available: [1mLinks[0m - [33m•[0m [4mMain Site[1][0m - [33m•[0m [1m[4mDocumentation[0m[4m[2][0m on Read the Docs - [33m•[0m [4mInternal Architecture[3][0m + [33m•[0m ]8;;https://lnav.org\[4mMain Site[0m]8;;\[4m[1][0m + [33m•[0m ]8;;https://docs.lnav.org\[1m[4mDocumentation[0m]8;;\[4m[2][0m on Read the Docs + [33m•[0m ]8;;ARCHITECTURE.md\[4mInternal Architecture[0m]8;;\[4m[3][0m ▌[1] - https://lnav.org ▌[2] - https://docs.lnav.org @@ -131,7 +193,7 @@ The following alternatives are also available: [1mContributing[0m - [33m•[0m [4mBecome a Sponsor on GitHub[1][0m + [33m•[0m ]8;;https://github.com/sponsors/tstack\[4mBecome a Sponsor on GitHub[0m]8;;\[4m[1][0m ▌[1] - https://github.com/sponsors/tstack @@ -144,18 +206,20 @@ The following software packages are required to build lnav: [33m•[0m gcc/clang - A C++14-compatible compiler. [33m•[0m libpcre2 - The Perl Compatible Regular Expression v2 (PCRE2) library. - [33m•[0m sqlite - The SQLite database engine. Version 3.9.0 - or higher is required. + [33m•[0m sqlite - The SQLite database engine. Version + 3.9.0 or higher is required. [33m•[0m ncurses - The ncurses text UI library. [33m•[0m readline - The readline line editing library. [33m•[0m zlib - The zlib compression library. [33m•[0m bz2 - The bzip2 compression library. [33m•[0m libcurl - The cURL library for downloading files from URLs. Version 7.23.0 or higher is required. - [33m•[0m libarchive - The libarchive library for opening archive - files, like zip/tgz. + [33m•[0m libarchive - The libarchive library for opening + archive files, like zip/tgz. [33m•[0m wireshark - The [35m'tshark'[0m program is used to interpret pcap files. + [33m•[0m cargo/rust - The Rust language is used to build the + PRQL compiler. [4mBuild[0m @@ -170,9 +234,8 @@ Run [37m[40m ./autogen.sh [0m if compiling from a cloned repository. [1mSee Also[0m -[4mAngle-grinder[1][0m is a tool to slice and dice log files on the +]8;;https://github.com/rcoh/angle-grinder\[4mAngle-grinder[0m]8;;\[4m[1][0m is a tool to slice and dice log files on the command-line. If you're familiar with the SumoLogic query language, you might find this tool more comfortable to work with. ▌[1] - https://github.com/rcoh/angle-grinder - diff --git a/test/expected/test_text_file.sh_5e9320f18d066e6fc930dbbffc357af64312bd4b.err b/test/expected/test_text_file.sh_5e9320f18d066e6fc930dbbffc357af64312bd4b.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_5e9320f18d066e6fc930dbbffc357af64312bd4b.err diff --git a/test/expected/test_text_file.sh_5e9320f18d066e6fc930dbbffc357af64312bd4b.out b/test/expected/test_text_file.sh_5e9320f18d066e6fc930dbbffc357af64312bd4b.out new file mode 100644 index 0000000..1a4081b --- /dev/null +++ b/test/expected/test_text_file.sh_5e9320f18d066e6fc930dbbffc357af64312bd4b.out @@ -0,0 +1,42 @@ +[ + { + "top_meta": { + "file": "ECHO(1)", + "breadcrumbs": [ + { + "display_value": "ECHO(1)", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "ECHO(1)" + } + ] + }, + { + "display_value": "⋯", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "DESCRIPTION" + }, + { + "display_value": "EXIT STATUS" + }, + { + "display_value": "NAME" + }, + { + "display_value": "SEE ALSO" + }, + { + "display_value": "STANDARDS" + }, + { + "display_value": "SYNOPSIS" + } + ] + } + ] + } + } +] diff --git a/test/expected/test_text_file.sh_6a24078983cf1b7a80b6fb65d5186cd125498136.out b/test/expected/test_text_file.sh_6a24078983cf1b7a80b6fb65d5186cd125498136.out index accb1c3..3fe2949 100644 --- a/test/expected/test_text_file.sh_6a24078983cf1b7a80b6fb65d5186cd125498136.out +++ b/test/expected/test_text_file.sh_6a24078983cf1b7a80b6fb65d5186cd125498136.out @@ -1,40 +1,73 @@ [1mScreenshot[0m -The following screenshot shows a syslog file. Log lines are displayed -with highlights. Errors are red and warnings are yellow. +The following screenshot shows a mix of syslog and web access log +files. Failed requests are shown in red. Identifiers, like IP +address and PIDs are semantically highlighted. -[4mScreenshot[1][0m[4m[2][0m +]8;;docs/assets/images/lnav-front-page.png\[4m🖼 Screenshot[1][0m]8;;\[4m[2][0m - ▌[1] - file://{top_srcdir}/docs/assets/images/lnav-syslog-thumb.png - ▌[2] - file://{top_srcdir}/docs/assets/images/lnav-syslog.png + ▌[1] - file://{top_srcdir}/docs/assets/images/lnav-front-page.png + ▌[2] - file://{top_srcdir}/docs/assets/images/lnav-front-page.png -[1mFeatures[0m +[1mWhy not [0m[1mjust[0m[1m use [0m[1m[37m[40m tail [0m[1m/[0m[1m[37m[40m grep [0m[1m/[0m[1m[37m[40m less [0m[1m?[0m - [33m•[0m Log messages from different files are collated together - into a single view - [33m•[0m Automatic detection of log format - [33m•[0m Automatic decompression of GZip and BZip2 files - [33m•[0m Filter log messages based on regular expressions - [33m•[0m Use SQL to analyze your logs - [33m•[0m And more... +The standard Unix utilities are great for processing raw text lines, +however, they do not understand log messages. Tail can watch multiple +files at a time, but it won't display messages in order by time and +you can't scroll backwards. Grep will only find matching lines, but +won't return a full multi-line log message. Less can only display a +single file at a time. Also, none of these basic tools handle +compressed files. + +[1mTry online before installing[0m + +You can SSH into a demo node to play with lnav before installing. + +The [35m"playground"[0m account starts lnav with a couple of log files as an +example: + +]8;;ssh://playground@demo.lnav.org\[4m[37m[40m $ ssh playground@demo.lnav.org [0m]8;;\[4m[1][0m + + ▌[1] - ssh://playground@demo.lnav.org + +The [35m"tutorial 1"[0m account is an interactive tutorial that can teach you +the basics of operation: + +]8;;ssh://tutorial1@demo.lnav.org\[4m[37m[40m $ ssh tutorial1@demo.lnav.org [0m]8;;\[4m[1][0m + + ▌[1] - ssh://tutorial1@demo.lnav.org [1mInstallation[0m -[4mDownload a statically-linked binary for Linux/MacOS from the release[0m -[4mpage[1][0m +]8;;https://github.com/tstack/lnav/releases/latest#release-artifacts\[4mDownload a statically-linked binary for Linux/MacOS from the release[0m]8;;\ +]8;;https://github.com/tstack/lnav/releases/latest#release-artifacts\[4mpage[0m]8;;\[4m[1][0m ▌[1] - https://github.com/tstack/lnav/releases/latest#release-artifacts +[4mBrew on MacOS[0m + + ▌[33m[40m$ [0m[37m[40mbrew install lnav [0m + [1mUsage[0m -The only file installed is the executable, [37m[40m lnav [0m. You can execute it -with no arguments to view the default set of files: +Simply point [1mlnav[0m at the files or directories you want to monitor, it +will figure out the rest: - ▌[37m[40m$ lnav [0m + ▌[33m[40m$ [0m[37m[40mlnav /path/to/file1 /path/to/dir ... [0m -You can view all the syslog messages by running: +The [1mlnav[0m TUI will pop up right away and begin indexing the files. +Progress is displayed in the [35m"Files"[0m panel at the bottom. Once the +indexing has finished, the LOG view will display the log messages that +were recognized[^1]. You can then use the usual hotkeys to move around +the view (arrow keys or [37m[40m j [0m/[37m[40m k [0m/[37m[40m h [0m/[37m[40m l [0m to move down/up/left/right). - ▌[37m[40m$ lnav /var/log/messages* [0m +See the ]8;;https://docs.lnav.org/en/latest/usage.html\[4mUsage section[0m]8;;\[4m[1][0m of the online documentation for more +information. + + ▌[1] - https://docs.lnav.org/en/latest/usage.html + +[^1]: Files that do not contain log messages can be seen in the TEXT +view (reachable by pressing [37m[40m t [0m). [4mUsage with [0m[4m[37m[40m systemd-journald [0m @@ -53,8 +86,9 @@ output format to include the year, otherwise [37m[40m lnav [0m gets confused: ▌[37m[40m$ journalctl -o short-iso | lnav [0m -It is also possible to use [37m[40m journalctl [0m's json output format and [37m[40m lnav[0m -will make use of additional fields such as PRIORITY and _SYSTEMD_UNIT: +It is also possible to use [37m[40m journalctl [0m's json output format and +[37m[40m lnav [0mwill make use of additional fields such as PRIORITY and +_SYSTEMD_UNIT: ▌[37m[40m$ journalctl -o json | lnav [0m @@ -71,8 +105,8 @@ the ones actually recognized by [37m[40m lnav [0m for increased efficiency: ▌[37m[40m$ journalctl -o json --output-fields=MESSAGE,PRIORITY,_PID,SYSLOG_IDENTIFIER,_SYSTEMD_UNIT | lnav [0m If your system has been running for a long time, for increased -efficiency you may want to limit the number of log lines fed into [37m[40m lnav[0m -, e.g. via [37m[40m journalctl [0m's [37m[40m -n [0m or [37m[40m --since=... [0m options. +efficiency you may want to limit the number of log lines fed into +[37m[40m lnav [0m, e.g. via [37m[40m journalctl [0m's [37m[40m -n [0m or [37m[40m --since=... [0m options. In case of a persistent journal, you may want to limit the number of log lines fed into [37m[40m lnav [0m via [37m[40m journalctl [0m's [37m[40m -b [0m option. @@ -82,9 +116,9 @@ log lines fed into [37m[40m lnav [0m via [37m[40m journalctl [0m's [37m[ Please file issues on this repository or use the discussions section. The following alternatives are also available: - [33m•[0m [4msupport@lnav.org[1][0m - [33m•[0m [4mDiscord[2][0m - [33m•[0m [4mGoogle Groups[3][0m + [33m•[0m ]8;;mailto:support@lnav.org\[4msupport@lnav.org[0m]8;;\[4m[1][0m + [33m•[0m ]8;;https://discord.gg/erBPnKwz7R\[4mDiscord[0m]8;;\[4m[2][0m + [33m•[0m ]8;;https://groups.google.com/g/lnav\[4mGoogle Groups[0m]8;;\[4m[3][0m ▌[1] - mailto:support@lnav.org ▌[2] - https://discord.gg/erBPnKwz7R @@ -92,9 +126,9 @@ The following alternatives are also available: [1mLinks[0m - [33m•[0m [4mMain Site[1][0m - [33m•[0m [1m[4mDocumentation[0m[4m[2][0m on Read the Docs - [33m•[0m [4mInternal Architecture[3][0m + [33m•[0m ]8;;https://lnav.org\[4mMain Site[0m]8;;\[4m[1][0m + [33m•[0m ]8;;https://docs.lnav.org\[1m[4mDocumentation[0m]8;;\[4m[2][0m on Read the Docs + [33m•[0m ]8;;ARCHITECTURE.md\[4mInternal Architecture[0m]8;;\[4m[3][0m ▌[1] - https://lnav.org ▌[2] - https://docs.lnav.org @@ -102,7 +136,7 @@ The following alternatives are also available: [1mContributing[0m - [33m•[0m [4mBecome a Sponsor on GitHub[1][0m + [33m•[0m ]8;;https://github.com/sponsors/tstack\[4mBecome a Sponsor on GitHub[0m]8;;\[4m[1][0m ▌[1] - https://github.com/sponsors/tstack @@ -115,18 +149,20 @@ The following software packages are required to build lnav: [33m•[0m gcc/clang - A C++14-compatible compiler. [33m•[0m libpcre2 - The Perl Compatible Regular Expression v2 (PCRE2) library. - [33m•[0m sqlite - The SQLite database engine. Version 3.9.0 - or higher is required. + [33m•[0m sqlite - The SQLite database engine. Version + 3.9.0 or higher is required. [33m•[0m ncurses - The ncurses text UI library. [33m•[0m readline - The readline line editing library. [33m•[0m zlib - The zlib compression library. [33m•[0m bz2 - The bzip2 compression library. [33m•[0m libcurl - The cURL library for downloading files from URLs. Version 7.23.0 or higher is required. - [33m•[0m libarchive - The libarchive library for opening archive - files, like zip/tgz. + [33m•[0m libarchive - The libarchive library for opening + archive files, like zip/tgz. [33m•[0m wireshark - The [35m'tshark'[0m program is used to interpret pcap files. + [33m•[0m cargo/rust - The Rust language is used to build the + PRQL compiler. [4mBuild[0m @@ -141,9 +177,8 @@ Run [37m[40m ./autogen.sh [0m if compiling from a cloned repository. [1mSee Also[0m -[4mAngle-grinder[1][0m is a tool to slice and dice log files on the +]8;;https://github.com/rcoh/angle-grinder\[4mAngle-grinder[0m]8;;\[4m[1][0m is a tool to slice and dice log files on the command-line. If you're familiar with the SumoLogic query language, you might find this tool more comfortable to work with. ▌[1] - https://github.com/rcoh/angle-grinder - diff --git a/test/expected/test_text_file.sh_73f69c883f60761bff9f8874f61d21a189e92912.err b/test/expected/test_text_file.sh_73f69c883f60761bff9f8874f61d21a189e92912.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_73f69c883f60761bff9f8874f61d21a189e92912.err diff --git a/test/expected/test_text_file.sh_73f69c883f60761bff9f8874f61d21a189e92912.out b/test/expected/test_text_file.sh_73f69c883f60761bff9f8874f61d21a189e92912.out new file mode 100644 index 0000000..b3ee8cf --- /dev/null +++ b/test/expected/test_text_file.sh_73f69c883f60761bff9f8874f61d21a189e92912.out @@ -0,0 +1,43 @@ +[ + { + "top_meta": { + "file": "ECHO(1)", + "anchor": "#description", + "breadcrumbs": [ + { + "display_value": "ECHO(1)", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "ECHO(1)" + } + ] + }, + { + "display_value": "DESCRIPTION", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "DESCRIPTION" + }, + { + "display_value": "EXIT STATUS" + }, + { + "display_value": "NAME" + }, + { + "display_value": "SEE ALSO" + }, + { + "display_value": "STANDARDS" + }, + { + "display_value": "SYNOPSIS" + } + ] + } + ] + } + } +] diff --git a/test/expected/test_text_file.sh_786c7262f977201af36b0e69ba1a2aba130bbb06.err b/test/expected/test_text_file.sh_786c7262f977201af36b0e69ba1a2aba130bbb06.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_786c7262f977201af36b0e69ba1a2aba130bbb06.err diff --git a/test/expected/test_text_file.sh_786c7262f977201af36b0e69ba1a2aba130bbb06.out b/test/expected/test_text_file.sh_786c7262f977201af36b0e69ba1a2aba130bbb06.out new file mode 100644 index 0000000..efb5ebd --- /dev/null +++ b/test/expected/test_text_file.sh_786c7262f977201af36b0e69ba1a2aba130bbb06.out @@ -0,0 +1,4 @@ +Duis aute irure dolor in reprehenderit in voluptate velit +esse cillum dolore eu fugiat nulla pariatur. Excepteur +sint occaecat cupidatat non proident, sunt in culpa qui +officia deserunt mollit anim id est laborum. diff --git a/test/expected/test_text_file.sh_78f252288519c8f767bb2759ea32959dab2ebc46.err b/test/expected/test_text_file.sh_78f252288519c8f767bb2759ea32959dab2ebc46.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_78f252288519c8f767bb2759ea32959dab2ebc46.err diff --git a/test/expected/test_text_file.sh_78f252288519c8f767bb2759ea32959dab2ebc46.out b/test/expected/test_text_file.sh_78f252288519c8f767bb2759ea32959dab2ebc46.out new file mode 100644 index 0000000..97ad4bc --- /dev/null +++ b/test/expected/test_text_file.sh_78f252288519c8f767bb2759ea32959dab2ebc46.out @@ -0,0 +1,98 @@ +[ + { + "top_meta": { + "file": "{test_dir}/formats/jsontest/format.json", + "anchor": "#/test_log/line-format/4/overflow", + "breadcrumbs": [ + { + "display_value": "format.json", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "format.json" + } + ] + }, + { + "display_value": "test_log", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "$schema" + }, + { + "display_value": "test_log" + } + ] + }, + { + "display_value": "line-format", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "body-field" + }, + { + "display_value": "description" + }, + { + "display_value": "file-pattern" + }, + { + "display_value": "json" + }, + { + "display_value": "level-field" + }, + { + "display_value": "line-format" + }, + { + "display_value": "timestamp-field" + }, + { + "display_value": "title" + }, + { + "display_value": "value" + } + ] + }, + { + "display_value": "[4]", + "search_placeholder": "(Enter a number from 0 to 6)", + "possibilities": [ + + ] + }, + { + "display_value": "overflow", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "default-value" + }, + { + "display_value": "field" + }, + { + "display_value": "max-width" + }, + { + "display_value": "min-width" + }, + { + "display_value": "overflow" + }, + { + "display_value": "prefix" + }, + { + "display_value": "suffix" + } + ] + } + ] + } + } +] diff --git a/test/expected/test_text_file.sh_7b00f32a3fff7fc2d78a87045ae842e58be88480.out b/test/expected/test_text_file.sh_7b00f32a3fff7fc2d78a87045ae842e58be88480.out index 4855b3d..c9d7942 100644 --- a/test/expected/test_text_file.sh_7b00f32a3fff7fc2d78a87045ae842e58be88480.out +++ b/test/expected/test_text_file.sh_7b00f32a3fff7fc2d78a87045ae842e58be88480.out @@ -5,6 +5,6 @@ [32m * [0mFEATURES: network-sandbox preserve-libs sandbox test userpriv usersandbox [32m*[0m Checking whether python3_11 is suitable ... [32m*[0m >=dev-lang/python-3.11.1-r1:3.11 ... - [1m[34m[ [0m[1m[32mok[0m[1m[34m ][0m + [1m[34m[ [0m[1m[32mok[0m[1m[34m ][0m [32m*[0m Using python3.11 to build (via PYTHON_COMPAT iteration) >>> Unpacking source... diff --git a/test/expected/test_text_file.sh_801414c6bb6d3f9225973eafa3c6dfa49cd2081d.out b/test/expected/test_text_file.sh_801414c6bb6d3f9225973eafa3c6dfa49cd2081d.out deleted file mode 100644 index a7ed740..0000000 --- a/test/expected/test_text_file.sh_801414c6bb6d3f9225973eafa3c6dfa49cd2081d.out +++ /dev/null @@ -1,111 +0,0 @@ -/** - * Copyright (c) [1m2018[0m, Timothy Stack - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, [1m[36mthis[0m - * list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, - * [1m[36mthis[0m list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * * Neither the name of Timothy Stack nor the names of its contributors - * may be used to endorse or promote products derived from [1m[36mthis[0m software - * without specific prior written permission. - * - * [1mTHIS[0m [1mSOFTWARE[0m [1mIS[0m [1mPROVIDED[0m [1mBY[0m [1mTHE[0m [1mREGENTS[0m [1mAND[0m [1mCONTRIBUTORS[0m [35m''[0m[1mAS[0m [1mIS[0m'' [1mAND[0m [1mANY[0m - * [1mEXPRESS[0m [1mOR[0m [1mIMPLIED[0m [1mWARRANTIES[0m, [1mINCLUDING[0m, [1mBUT[0m [1mNOT[0m [1mLIMITED[0m [1mTO[0m, [1mTHE[0m [1mIMPLIED[0m - * [1mWARRANTIES[0m [1mOF[0m [1mMERCHANTABILITY[0m [1mAND[0m [1mFITNESS[0m [1mFOR[0m A [1mPARTICULAR[0m [1mPURPOSE[0m [1mARE[0m - * [1mDISCLAIMED[0m. [1mIN[0m [1mNO[0m [1mEVENT[0m [1mSHALL[0m [1mTHE[0m [1mREGENTS[0m [1mOR[0m [1mCONTRIBUTORS[0m [1mBE[0m [1mLIABLE[0m [1mFOR[0m [1mANY[0m - * [1mDIRECT[0m, [1mINDIRECT[0m, [1mINCIDENTAL[0m, [1mSPECIAL[0m, [1mEXEMPLARY[0m, [1mOR[0m [1mCONSEQUENTIAL[0m [1mDAMAGES[0m - * ([1mINCLUDING[0m, [1mBUT[0m [1mNOT[0m [1mLIMITED[0m [1mTO[0m, [1mPROCUREMENT[0m [1mOF[0m [1mSUBSTITUTE[0m [1mGOODS[0m [1mOR[0m [1mSERVICES[0m; - * [1mLOSS[0m [1mOF[0m [1mUSE[0m, [1mDATA[0m, [1mOR[0m [1mPROFITS[0m; [1mOR[0m [1mBUSINESS[0m [1mINTERRUPTION[0m) [1mHOWEVER[0m [1mCAUSED[0m [1mAND[0m - * [1mON[0m [1mANY[0m [1mTHEORY[0m [1mOF[0m [1mLIABILITY[0m, [1mWHETHER[0m [1mIN[0m [1mCONTRACT[0m, [1mSTRICT[0m [1mLIABILITY[0m, [1mOR[0m [1mTORT[0m - * ([1mINCLUDING[0m [1mNEGLIGENCE[0m [1mOR[0m [1mOTHERWISE[0m) [1mARISING[0m [1mIN[0m [1mANY[0m [1mWAY[0m [1mOUT[0m [1mOF[0m [1mTHE[0m [1mUSE[0m [1mOF[0m [1mTHIS[0m - * [1mSOFTWARE[0m, [1mEVEN[0m [1mIF[0m [1mADVISED[0m [1mOF[0m [1mTHE[0m [1mPOSSIBILITY[0m [1mOF[0m [1mSUCH[0m [1mDAMAGE[0m. - */ - -[32m#include [0m[32m"log_level.hh"[0m - -[32m#include <[0m[32mctype.h[0m[32m>[0m - -[32m#include [0m[32m"config.h"[0m - -[1m[36mconst[0m [1m[36mchar[0m* level_names[[1mLEVEL__MAX[0m + [1m1[0m] = { - [35m"unknown"[0m, - [35m"trace"[0m, - [35m"debug5"[0m, - [35m"debug4"[0m, - [35m"debug3"[0m, - [35m"debug2"[0m, - [35m"debug"[0m, - [35m"info"[0m, - [35m"stats"[0m, - [35m"notice"[0m, - [35m"warning"[0m, - [35m"error"[0m, - [35m"critical"[0m, - [35m"fatal"[0m, - [35m"invalid"[0m, - - nullptr, -}; - -log_level_t -abbrev2level([1m[36mconst[0m [1m[36mchar[0m* levelstr, ssize_t len) -{ - [1m[36mif[0m ([4mlen[0m == [1m0[0m || levelstr[[1m0[0m] == [35m'\[0m[1m[35m0[0m[35m'[0m) { - [1m[36mreturn[0m [1mLEVEL_UNKNOWN[0m; - } - - [1m[36mswitch[0m (toupper(levelstr[[1m0[0m])) { - [1m[36mcase[0m [35m'T'[0m: - [1m[36mreturn[0m [1mLEVEL_TRACE[0m; - [1m[36mcase[0m [35m'D'[0m: - [1m[36mcase[0m [35m'V'[0m: - [1m[36mif[0m (len > [1m1[0m) { - [1m[36mswitch[0m (levelstr[len - [1m1[0m]) { - [1m[36mcase[0m [35m'[0m[1m[35m2[0m[35m'[0m: - [1m[36mreturn[0m [1mLEVEL_DEBUG2[0m; - [1m[36mcase[0m [35m'[0m[1m[35m3[0m[35m'[0m: - [1m[36mreturn[0m [1mLEVEL_DEBUG3[0m; - [1m[36mcase[0m [35m'[0m[1m[35m4[0m[35m'[0m: - [1m[36mreturn[0m [1mLEVEL_DEBUG4[0m; - [1m[36mcase[0m [35m'[0m[1m[35m5[0m[35m'[0m: - [1m[36mreturn[0m [1mLEVEL_DEBUG5[0m; - } - } - [1m[36mreturn[0m [1mLEVEL_DEBUG[0m; - [1m[36mcase[0m [35m'I'[0m: - [1m[36mif[0m ([4mlen[0m == [1m7[0m && toupper(levelstr[[1m1[0m]) == [35m'N'[0m - && toupper(levelstr[[1m2[0m]) == [35m'V'[0m && toupper(levelstr[[1m3[0m]) == [35m'A'[0m - && toupper(levelstr[[1m4[0m]) == [35m'L'[0m && toupper(levelstr[[1m5[0m]) == [35m'I'[0m - && toupper(levelstr[[1m6[0m]) == [35m'D'[0m) - { - [1m[36mreturn[0m [1mLEVEL_INVALID[0m; - } - [1m[36mreturn[0m [1mLEVEL_INFO[0m; - [1m[36mcase[0m [35m'S'[0m: - [1m[36mreturn[0m [1mLEVEL_STATS[0m; - [1m[36mcase[0m [35m'N'[0m: - [1m[36mreturn[0m [1mLEVEL_NOTICE[0m; - [1m[36mcase[0m [35m'W'[0m: - [1m[36mreturn[0m [1mLEVEL_WARNING[0m; - [1m[36mcase[0m [35m'E'[0m: - [1m[36mreturn[0m [1mLEVEL_ERROR[0m; - [1m[36mcase[0m [35m'C'[0m: - [1m[36mreturn[0m [1mLEVEL_CRITICAL[0m; - [1m[36mcase[0m [35m'F'[0m: - [1m[36mreturn[0m [1mLEVEL_FATAL[0m; - [1m[36mdefault[0m: - [1m[36mreturn[0m [1mLEVEL_UNKNOWN[0m; - } -} - -[1m[36mint[0m -levelcmp([1m[36mconst[0m [1m[36mchar[0m* l1, ssize_t l1_len, [1m[36mconst[0m [1m[36mchar[0m* l2, ssize_t l2_len) -{ - [1m[36mreturn[0m abbrev2level(l1, l1_len) - abbrev2level(l2, l2_len); -} diff --git a/test/expected/test_text_file.sh_87943c6be50d701a03e901f16493314c839af1ab.out b/test/expected/test_text_file.sh_87943c6be50d701a03e901f16493314c839af1ab.out index ae06214..5ab78b4 100644 --- a/test/expected/test_text_file.sh_87943c6be50d701a03e901f16493314c839af1ab.out +++ b/test/expected/test_text_file.sh_87943c6be50d701a03e901f16493314c839af1ab.out @@ -1,31 +1,31 @@ -/** - * Copyright (c) [1m2018[0m, Timothy Stack - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, [1m[36mthis[0m - * list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, - * [1m[36mthis[0m list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * * Neither the name of Timothy Stack nor the names of its contributors - * may be used to endorse or promote products derived from [1m[36mthis[0m software - * without specific prior written permission. - * - * [1mTHIS[0m [1mSOFTWARE[0m [1mIS[0m [1mPROVIDED[0m [1mBY[0m [1mTHE[0m [1mREGENTS[0m [1mAND[0m [1mCONTRIBUTORS[0m [35m''[0m[1mAS[0m [1mIS[0m'' [1mAND[0m [1mANY[0m - * [1mEXPRESS[0m [1mOR[0m [1mIMPLIED[0m [1mWARRANTIES[0m, [1mINCLUDING[0m, [1mBUT[0m [1mNOT[0m [1mLIMITED[0m [1mTO[0m, [1mTHE[0m [1mIMPLIED[0m - * [1mWARRANTIES[0m [1mOF[0m [1mMERCHANTABILITY[0m [1mAND[0m [1mFITNESS[0m [1mFOR[0m A [1mPARTICULAR[0m [1mPURPOSE[0m [1mARE[0m - * [1mDISCLAIMED[0m. [1mIN[0m [1mNO[0m [1mEVENT[0m [1mSHALL[0m [1mTHE[0m [1mREGENTS[0m [1mOR[0m [1mCONTRIBUTORS[0m [1mBE[0m [1mLIABLE[0m [1mFOR[0m [1mANY[0m - * [1mDIRECT[0m, [1mINDIRECT[0m, [1mINCIDENTAL[0m, [1mSPECIAL[0m, [1mEXEMPLARY[0m, [1mOR[0m [1mCONSEQUENTIAL[0m [1mDAMAGES[0m - * ([1mINCLUDING[0m, [1mBUT[0m [1mNOT[0m [1mLIMITED[0m [1mTO[0m, [1mPROCUREMENT[0m [1mOF[0m [1mSUBSTITUTE[0m [1mGOODS[0m [1mOR[0m [1mSERVICES[0m; - * [1mLOSS[0m [1mOF[0m [1mUSE[0m, [1mDATA[0m, [1mOR[0m [1mPROFITS[0m; [1mOR[0m [1mBUSINESS[0m [1mINTERRUPTION[0m) [1mHOWEVER[0m [1mCAUSED[0m [1mAND[0m - * [1mON[0m [1mANY[0m [1mTHEORY[0m [1mOF[0m [1mLIABILITY[0m, [1mWHETHER[0m [1mIN[0m [1mCONTRACT[0m, [1mSTRICT[0m [1mLIABILITY[0m, [1mOR[0m [1mTORT[0m - * ([1mINCLUDING[0m [1mNEGLIGENCE[0m [1mOR[0m [1mOTHERWISE[0m) [1mARISING[0m [1mIN[0m [1mANY[0m [1mWAY[0m [1mOUT[0m [1mOF[0m [1mTHE[0m [1mUSE[0m [1mOF[0m [1mTHIS[0m - * [1mSOFTWARE[0m, [1mEVEN[0m [1mIF[0m [1mADVISED[0m [1mOF[0m [1mTHE[0m [1mPOSSIBILITY[0m [1mOF[0m [1mSUCH[0m [1mDAMAGE[0m. - */ +[32m/**[0m +[32m * Copyright (c) 2018, Timothy Stack[0m +[32m *[0m +[32m * All rights reserved.[0m +[32m *[0m +[32m * Redistribution and use in source and binary forms, with or without[0m +[32m * modification, are permitted provided that the following conditions are met:[0m +[32m *[0m +[32m * * Redistributions of source code must retain the above copyright notice, this[0m +[32m * list of conditions and the following disclaimer.[0m +[32m * * Redistributions in binary form must reproduce the above copyright notice,[0m +[32m * this list of conditions and the following disclaimer in the documentation[0m +[32m * and/or other materials provided with the distribution.[0m +[32m * * Neither the name of Timothy Stack nor the names of its contributors[0m +[32m * may be used to endorse or promote products derived from this software[0m +[32m * without specific prior written permission.[0m +[32m *[0m +[32m * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ''AS IS'' AND ANY[0m +[32m * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED[0m +[32m * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE[0m +[32m * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY[0m +[32m * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES[0m +[32m * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;[0m +[32m * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND[0m +[32m * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT[0m +[32m * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS[0m +[32m * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.[0m +[32m */[0m [1m[36m#include[0m [35m"log_level.hh"[0m diff --git a/test/expected/test_text_file.sh_8a4954af3e536b3789b1fd5b33519e9d444cc933.err b/test/expected/test_text_file.sh_8a4954af3e536b3789b1fd5b33519e9d444cc933.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_8a4954af3e536b3789b1fd5b33519e9d444cc933.err diff --git a/test/expected/test_text_file.sh_8a4954af3e536b3789b1fd5b33519e9d444cc933.out b/test/expected/test_text_file.sh_8a4954af3e536b3789b1fd5b33519e9d444cc933.out new file mode 100644 index 0000000..e6de131 --- /dev/null +++ b/test/expected/test_text_file.sh_8a4954af3e536b3789b1fd5b33519e9d444cc933.out @@ -0,0 +1,6 @@ + [35m"author"[0m: [35m"Ralls, Kim"[0m, + [35m"title"[0m: [35m"Midnight Rain"[0m, + [35m"description"[0m: [35m"A former architect battles corporate zombies, an evil sorceress, and her own childhood to become queen of the world."[0m + } + ] +} diff --git a/test/expected/test_text_file.sh_8b2cd055e6a1db2ed9b2af2a917f8556395fa653.out b/test/expected/test_text_file.sh_8b2cd055e6a1db2ed9b2af2a917f8556395fa653.out index c8719bb..0290454 100644 --- a/test/expected/test_text_file.sh_8b2cd055e6a1db2ed9b2af2a917f8556395fa653.out +++ b/test/expected/test_text_file.sh_8b2cd055e6a1db2ed9b2af2a917f8556395fa653.out @@ -1,2 +1,2 @@ -[1m[4m filepath [0m[1m[4m descriptor [0m[1m[4m mimetype [0m[1m[4m content [0m -[1m{test_dir}/textfile_0.md[0m[1m [0m[1mnet.daringfireball.markdown.frontmatter[0m[1m [0m[1mapplication/json[0m[1m [0m[1m{␊ "comment": "This is JSON front-matter"␊} [0m +[1m[4m filepath [0m[1m[4m [0m[1m[4m descriptor [0m[1m[4m [0m[1m[4m mimetype [0m[1m[4m [0m[1m[4m content [0m[1m[4m [0m +{test_dir}/textfile_0.md net.daringfireball.markdown.frontmatter application/json {␊ "comment": "This is JSON front-matter"␊} diff --git a/test/expected/test_text_file.sh_a87c18c643994c3dbbbbb619a06a601d3668ea71.err b/test/expected/test_text_file.sh_a87c18c643994c3dbbbbb619a06a601d3668ea71.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_a87c18c643994c3dbbbbb619a06a601d3668ea71.err diff --git a/test/expected/test_text_file.sh_a87c18c643994c3dbbbbb619a06a601d3668ea71.out b/test/expected/test_text_file.sh_a87c18c643994c3dbbbbb619a06a601d3668ea71.out new file mode 100644 index 0000000..8fd43aa --- /dev/null +++ b/test/expected/test_text_file.sh_a87c18c643994c3dbbbbb619a06a601d3668ea71.out @@ -0,0 +1,2 @@ +time for a reset ⎋ckapow +ding dong! 🔔 diff --git a/test/expected/test_text_file.sh_ac486314c4e02e480d829ea2f077b86c49fedcec.out b/test/expected/test_text_file.sh_ac486314c4e02e480d829ea2f077b86c49fedcec.out index 5a1b89a..243bfc7 100644 --- a/test/expected/test_text_file.sh_ac486314c4e02e480d829ea2f077b86c49fedcec.out +++ b/test/expected/test_text_file.sh_ac486314c4e02e480d829ea2f077b86c49fedcec.out @@ -1,4 +1,4 @@ +command-line. If you're familiar with the SumoLogic query language, you might find this tool more comfortable to work with. ▌[1] - https://github.com/rcoh/angle-grinder - diff --git a/test/expected/test_text_file.sh_c21295f131c221861568bda5014b76ef99bdd11f.out b/test/expected/test_text_file.sh_c21295f131c221861568bda5014b76ef99bdd11f.out deleted file mode 100644 index 59a0aa9..0000000 --- a/test/expected/test_text_file.sh_c21295f131c221861568bda5014b76ef99bdd11f.out +++ /dev/null @@ -1,159 +0,0 @@ -Build[1][2] Docs[3][4] Coverage Status[5][6] lnav[7][8] - - ▌[1] - https://github.com/tstack/lnav/workflows/ci-build/badge.svg - ▌[2] - https://github.com/tstack/lnav/actions?[4mquery[0m=workflow%3Aci-build - ▌[3] - https://readthedocs.org/projects/lnav/badge/?[4mversion[0m=latest&[4mstyle[0m=plastic - ▌[4] - https://docs.lnav.org - ▌[5] - https://coveralls.io/repos/github/tstack/lnav/badge.svg?[4mbranch[0m=master - ▌[6] - https://coveralls.io/github/tstack/lnav?[4mbranch[0m=master - ▌[7] - https://snapcraft.io//lnav/badge.svg - ▌[8] - https://snapcraft.io/lnav - -This is the source repository for [1mlnav[0m, visit https://lnav.org[1] for -a high level overview. - - ▌[1] - https://lnav.org - -[1m[35mLNAV – The Logfile Navigator[0m - -The Log File Navigator, [1mlnav[0m for short, is an advanced log file viewer -for the small-scale. It is a terminal application that can understand -your log files and make it easy for you to find problems with little -to no setup. - -[1mScreenshot[0m - -The following screenshot shows a syslog file. Log lines are displayed -with highlights. Errors are red and warnings are yellow. - -Screenshot[1][2] - - ▌[1] - file://{top_srcdir}/docs/assets/images/lnav-syslog-thumb.png - ▌[2] - file://{top_srcdir}/docs/assets/images/lnav-syslog.png - -[1mFeatures[0m - - [33m•[0m Log messages from different files are collated together - into a single view - [33m•[0m Automatic detection of log format - [33m•[0m Automatic decompression of GZip and BZip2 files - [33m•[0m Filter log messages based on regular expressions - [33m•[0m Use SQL to analyze your logs - [33m•[0m And more... - -[1mInstallation[0m - -Download a statically-linked binary for Linux/MacOS from the release -page[1] - - ▌[1] - https://github.com/tstack/lnav/releases/latest#release-artifacts - -[1mUsage[0m - -The only file installed is the executable, [37m[40m lnav [0m. You can execute it -with no arguments to view the default set of files: - - ▌[37m[40m$ lnav [0m - -You can view all the syslog messages by running: - - ▌[37m[40m$ lnav /var/log/messages* [0m - -[4mUsage with [0m[4m[37m[40m systemd-journald [0m - -On systems running [37m[40m systemd-journald [0m, you can use [37m[40m lnav [0m as the -pager: - - ▌[37m[40m$ journalctl | lnav [0m - -or in follow mode: - - ▌[37m[40m$ journalctl -f | lnav [0m - -Since [37m[40m journalctl [0m's default output format omits the year, if you are -viewing logs which span multiple years you will need to change the -output format to include the year, otherwise [37m[40m lnav [0m gets confused: - - ▌[37m[40m$ journalctl -o short-iso | lnav [0m - -It is also possible to use [37m[40m journalctl [0m's json output format and [37m[40m lnav[0m -will make use of additional fields such as PRIORITY and _SYSTEMD_UNIT: - - ▌[37m[40m$ journalctl -o json | lnav [0m - -In case some MESSAGE fields contain special characters such as ANSI -color codes which are considered as unprintable by journalctl, -specifying [37m[40m journalctl [0m's [37m[40m -a [0m option might be preferable in order to -output those messages still in a non binary representation: - - ▌[37m[40m$ journalctl -a -o json | lnav [0m - -If using systemd v236 or newer, the output fields can be limited to -the ones actually recognized by [37m[40m lnav [0m for increased efficiency: - - ▌[37m[40m$ journalctl -o json [0m[4m[37m[40m--output-fields[0m[37m[40m=MESSAGE,PRIORITY,_PID,SYSLOG_IDENTIFIER,_SYSTEMD_UNIT | lnav [0m - -If your system has been running for a long time, for increased -efficiency you may want to limit the number of log lines fed into [37m[40m lnav[0m -, e.g. via [37m[40m journalctl [0m's [37m[40m -n [0m or [37m[40m [0m[4m[37m[40m--since[0m[37m[40m=... [0m options. - -In case of a persistent journal, you may want to limit the number of -log lines fed into [37m[40m lnav [0m via [37m[40m journalctl [0m's [37m[40m -b [0m option. - -[1mLinks[0m - - [33m•[0m Main Site[1] - [33m•[0m [1mDocumentation[0m[2] on Read the Docs - [33m•[0m Internal Architecture[3] - - ▌[1] - https://lnav.org - ▌[2] - https://docs.lnav.org - ▌[3] - file://{top_srcdir}/ARCHITECTURE.md - -[1mContributing[0m - - [33m•[0m Become a Sponsor on GitHub[1] - - ▌[1] - https://github.com/sponsors/tstack - -[4mBuilding From Source[0m - -[4mPrerequisites[0m - -The following software packages are required to build lnav: - - [33m•[0m gcc/clang - A C++14-compatible compiler. - [33m•[0m libpcre - The Perl Compatible Regular Expression - (PCRE) library. - [33m•[0m sqlite - The SQLite database engine. Version 3.9.0 - or higher is required. - [33m•[0m ncurses - The ncurses text UI library. - [33m•[0m readline - The readline line editing library. - [33m•[0m zlib - The zlib compression library. - [33m•[0m bz2 - The bzip2 compression library. - [33m•[0m libcurl - The cURL library for downloading files - from URLs. Version 7.23.0 or higher is required. - [33m•[0m libarchive - The libarchive library for opening archive - files, like zip/tgz. - [33m•[0m wireshark - The [35m'tshark'[0m program is used to interpret - pcap files. - -[4mBuild[0m - -Lnav follows the usual GNU style for configuring and installing -software: - -Run [37m[40m ./autogen.sh [0m if compiling from a cloned repository. - - ▌[37m[40m$ ./configure [0m - ▌[37m[40m$ make [0m - ▌[37m[40m$ sudo make install [0m - -[1mSee Also[0m - -Angle-grinder[1] is a tool to slice and dice log files on the -command-line. If you're familiar with the SumoLogic query language, -you might find this tool more comfortable to work with. - - ▌[1] - https://github.com/rcoh/angle-grinder - diff --git a/test/expected/test_text_file.sh_c2a346ca1da2da4346f1d310212e166767993ce9.out b/test/expected/test_text_file.sh_c2a346ca1da2da4346f1d310212e166767993ce9.out index 1efd1ba..48d7862 100644 --- a/test/expected/test_text_file.sh_c2a346ca1da2da4346f1d310212e166767993ce9.out +++ b/test/expected/test_text_file.sh_c2a346ca1da2da4346f1d310212e166767993ce9.out @@ -2,7 +2,7 @@ { "top_meta": { "file": "{top_srcdir}/README.md", - "anchor": "#support", + "anchor": "#usage", "breadcrumbs": [ { "display_value": "README.md", @@ -23,16 +23,13 @@ ] }, { - "display_value": "Support", + "display_value": "Usage", "search_placeholder": "", "possibilities": [ { "display_value": "Contributing" }, { - "display_value": "Features" - }, - { "display_value": "Installation" }, { @@ -48,7 +45,22 @@ "display_value": "Support" }, { + "display_value": "Try online before installing" + }, + { "display_value": "Usage" + }, + { + "display_value": "Why not just use tail / grep / less ?" + } + ] + }, + { + "display_value": "⋯", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "Usage with systemd-journald " } ] } diff --git a/test/expected/test_text_file.sh_d59b67113864ef5e77267d7fd8ad4072f5aef0fc.err b/test/expected/test_text_file.sh_d59b67113864ef5e77267d7fd8ad4072f5aef0fc.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_d59b67113864ef5e77267d7fd8ad4072f5aef0fc.err diff --git a/test/expected/test_text_file.sh_d59b67113864ef5e77267d7fd8ad4072f5aef0fc.out b/test/expected/test_text_file.sh_d59b67113864ef5e77267d7fd8ad4072f5aef0fc.out new file mode 100644 index 0000000..30b1d02 --- /dev/null +++ b/test/expected/test_text_file.sh_d59b67113864ef5e77267d7fd8ad4072f5aef0fc.out @@ -0,0 +1,51 @@ + +[1mTest[0m + + [33m•[0m One + [33m•[0m Two + [33m•[0m Three + +🖼 ]8;;file://{top_srcdir}/docs/lnav-tui.png\lnav-tui.png]8;;\[1] + +🖼 ]8;;file://{top_srcdir}/docs/lnav-architecture.png\The internal architecture of lnav]8;;\[2] + + ▌[1] - file://{top_srcdir}/docs/lnav-tui.png + ▌[2] - file://{top_srcdir}/docs/lnav-architecture.png + +[1m[31mBold red[0m + +[4m[44mUnderline[0m + + Hello, + World! + + +Goodbye, [36m▌[0mWorld[32m╏[0m! + + ▌[37m[40mfoo bar bar [0m + ▌[37m[40mbaz "xyz" [0m + + ▌[32m[40m/* [0m + ▌[32m[40m * This program prints "Hello, World!" [0m + ▌[32m[40m */ [0m + ▌[37m[40m [0m + ▌[1m[36m[40m#include[0m[37m[40m <stdio[0m[37m[40m.[0m[37m[40mh> [0m + ▌[37m[40m [0m + ▌[1m[36m[40mint[0m[37m[40m [0m[37m[40mmain[0m[37m[40m() { [0m + ▌[37m[40m [0m[37m[40mprintf[0m[37m[40m([0m[35m[40m"Hello, World!\n"[0m[37m[40m); [0m + ▌[37m[40m} [0m + + ▌[1m[36m[40mdef[0m[37m[40m [0m[37m[40mhw[0m[37m[40m(name): [0m + ▌[37m[40m [0m[35m[40m"""[0m[37m[40m [0m + ▌[35m[40m This function prints "Hello, <name>!" [0m + ▌[35m[40m """ [0m + ▌[37m[40m [0m + ▌[37m[40m [0m[37m[40mprint[0m[37m[40m(f[0m[35m[40m"Hello, {name}!"[0m[37m[40m)[0m[32m[40m # test comment[0m[37m[40m [0m + + ▌[37m[40m<?xml [0m[4m[37m[40mversion[0m[37m[40m=[0m[35m[40m"1.0"[0m[37m[40m [0m[4m[37m[40mencoding[0m[37m[40m=[0m[35m[40m"utf-8"[0m[37m[40m ?> [0m + ▌[37m[40m<books> [0m + ▌[37m[40m [0m[32m[40m<!-- Line comment -->[0m[37m[40m [0m + ▌[37m[40m <book [0m[4m[37m[40mid[0m[37m[40m=[0m[35m[40m"100"[0m[37m[40m> [0m + ▌[37m[40m <author>Finnegan</author> [0m + ▌[37m[40m </book> [0m + ▌[37m[40m</books> [0m diff --git a/test/expected/test_text_file.sh_e088ea61a5382458cc48a2607e2639e52b0be1da.out b/test/expected/test_text_file.sh_e088ea61a5382458cc48a2607e2639e52b0be1da.out index accb1c3..3fe2949 100644 --- a/test/expected/test_text_file.sh_e088ea61a5382458cc48a2607e2639e52b0be1da.out +++ b/test/expected/test_text_file.sh_e088ea61a5382458cc48a2607e2639e52b0be1da.out @@ -1,40 +1,73 @@ [1mScreenshot[0m -The following screenshot shows a syslog file. Log lines are displayed -with highlights. Errors are red and warnings are yellow. +The following screenshot shows a mix of syslog and web access log +files. Failed requests are shown in red. Identifiers, like IP +address and PIDs are semantically highlighted. -[4mScreenshot[1][0m[4m[2][0m +]8;;docs/assets/images/lnav-front-page.png\[4m🖼 Screenshot[1][0m]8;;\[4m[2][0m - ▌[1] - file://{top_srcdir}/docs/assets/images/lnav-syslog-thumb.png - ▌[2] - file://{top_srcdir}/docs/assets/images/lnav-syslog.png + ▌[1] - file://{top_srcdir}/docs/assets/images/lnav-front-page.png + ▌[2] - file://{top_srcdir}/docs/assets/images/lnav-front-page.png -[1mFeatures[0m +[1mWhy not [0m[1mjust[0m[1m use [0m[1m[37m[40m tail [0m[1m/[0m[1m[37m[40m grep [0m[1m/[0m[1m[37m[40m less [0m[1m?[0m - [33m•[0m Log messages from different files are collated together - into a single view - [33m•[0m Automatic detection of log format - [33m•[0m Automatic decompression of GZip and BZip2 files - [33m•[0m Filter log messages based on regular expressions - [33m•[0m Use SQL to analyze your logs - [33m•[0m And more... +The standard Unix utilities are great for processing raw text lines, +however, they do not understand log messages. Tail can watch multiple +files at a time, but it won't display messages in order by time and +you can't scroll backwards. Grep will only find matching lines, but +won't return a full multi-line log message. Less can only display a +single file at a time. Also, none of these basic tools handle +compressed files. + +[1mTry online before installing[0m + +You can SSH into a demo node to play with lnav before installing. + +The [35m"playground"[0m account starts lnav with a couple of log files as an +example: + +]8;;ssh://playground@demo.lnav.org\[4m[37m[40m $ ssh playground@demo.lnav.org [0m]8;;\[4m[1][0m + + ▌[1] - ssh://playground@demo.lnav.org + +The [35m"tutorial 1"[0m account is an interactive tutorial that can teach you +the basics of operation: + +]8;;ssh://tutorial1@demo.lnav.org\[4m[37m[40m $ ssh tutorial1@demo.lnav.org [0m]8;;\[4m[1][0m + + ▌[1] - ssh://tutorial1@demo.lnav.org [1mInstallation[0m -[4mDownload a statically-linked binary for Linux/MacOS from the release[0m -[4mpage[1][0m +]8;;https://github.com/tstack/lnav/releases/latest#release-artifacts\[4mDownload a statically-linked binary for Linux/MacOS from the release[0m]8;;\ +]8;;https://github.com/tstack/lnav/releases/latest#release-artifacts\[4mpage[0m]8;;\[4m[1][0m ▌[1] - https://github.com/tstack/lnav/releases/latest#release-artifacts +[4mBrew on MacOS[0m + + ▌[33m[40m$ [0m[37m[40mbrew install lnav [0m + [1mUsage[0m -The only file installed is the executable, [37m[40m lnav [0m. You can execute it -with no arguments to view the default set of files: +Simply point [1mlnav[0m at the files or directories you want to monitor, it +will figure out the rest: - ▌[37m[40m$ lnav [0m + ▌[33m[40m$ [0m[37m[40mlnav /path/to/file1 /path/to/dir ... [0m -You can view all the syslog messages by running: +The [1mlnav[0m TUI will pop up right away and begin indexing the files. +Progress is displayed in the [35m"Files"[0m panel at the bottom. Once the +indexing has finished, the LOG view will display the log messages that +were recognized[^1]. You can then use the usual hotkeys to move around +the view (arrow keys or [37m[40m j [0m/[37m[40m k [0m/[37m[40m h [0m/[37m[40m l [0m to move down/up/left/right). - ▌[37m[40m$ lnav /var/log/messages* [0m +See the ]8;;https://docs.lnav.org/en/latest/usage.html\[4mUsage section[0m]8;;\[4m[1][0m of the online documentation for more +information. + + ▌[1] - https://docs.lnav.org/en/latest/usage.html + +[^1]: Files that do not contain log messages can be seen in the TEXT +view (reachable by pressing [37m[40m t [0m). [4mUsage with [0m[4m[37m[40m systemd-journald [0m @@ -53,8 +86,9 @@ output format to include the year, otherwise [37m[40m lnav [0m gets confused: ▌[37m[40m$ journalctl -o short-iso | lnav [0m -It is also possible to use [37m[40m journalctl [0m's json output format and [37m[40m lnav[0m -will make use of additional fields such as PRIORITY and _SYSTEMD_UNIT: +It is also possible to use [37m[40m journalctl [0m's json output format and +[37m[40m lnav [0mwill make use of additional fields such as PRIORITY and +_SYSTEMD_UNIT: ▌[37m[40m$ journalctl -o json | lnav [0m @@ -71,8 +105,8 @@ the ones actually recognized by [37m[40m lnav [0m for increased efficiency: ▌[37m[40m$ journalctl -o json --output-fields=MESSAGE,PRIORITY,_PID,SYSLOG_IDENTIFIER,_SYSTEMD_UNIT | lnav [0m If your system has been running for a long time, for increased -efficiency you may want to limit the number of log lines fed into [37m[40m lnav[0m -, e.g. via [37m[40m journalctl [0m's [37m[40m -n [0m or [37m[40m --since=... [0m options. +efficiency you may want to limit the number of log lines fed into +[37m[40m lnav [0m, e.g. via [37m[40m journalctl [0m's [37m[40m -n [0m or [37m[40m --since=... [0m options. In case of a persistent journal, you may want to limit the number of log lines fed into [37m[40m lnav [0m via [37m[40m journalctl [0m's [37m[40m -b [0m option. @@ -82,9 +116,9 @@ log lines fed into [37m[40m lnav [0m via [37m[40m journalctl [0m's [37m[ Please file issues on this repository or use the discussions section. The following alternatives are also available: - [33m•[0m [4msupport@lnav.org[1][0m - [33m•[0m [4mDiscord[2][0m - [33m•[0m [4mGoogle Groups[3][0m + [33m•[0m ]8;;mailto:support@lnav.org\[4msupport@lnav.org[0m]8;;\[4m[1][0m + [33m•[0m ]8;;https://discord.gg/erBPnKwz7R\[4mDiscord[0m]8;;\[4m[2][0m + [33m•[0m ]8;;https://groups.google.com/g/lnav\[4mGoogle Groups[0m]8;;\[4m[3][0m ▌[1] - mailto:support@lnav.org ▌[2] - https://discord.gg/erBPnKwz7R @@ -92,9 +126,9 @@ The following alternatives are also available: [1mLinks[0m - [33m•[0m [4mMain Site[1][0m - [33m•[0m [1m[4mDocumentation[0m[4m[2][0m on Read the Docs - [33m•[0m [4mInternal Architecture[3][0m + [33m•[0m ]8;;https://lnav.org\[4mMain Site[0m]8;;\[4m[1][0m + [33m•[0m ]8;;https://docs.lnav.org\[1m[4mDocumentation[0m]8;;\[4m[2][0m on Read the Docs + [33m•[0m ]8;;ARCHITECTURE.md\[4mInternal Architecture[0m]8;;\[4m[3][0m ▌[1] - https://lnav.org ▌[2] - https://docs.lnav.org @@ -102,7 +136,7 @@ The following alternatives are also available: [1mContributing[0m - [33m•[0m [4mBecome a Sponsor on GitHub[1][0m + [33m•[0m ]8;;https://github.com/sponsors/tstack\[4mBecome a Sponsor on GitHub[0m]8;;\[4m[1][0m ▌[1] - https://github.com/sponsors/tstack @@ -115,18 +149,20 @@ The following software packages are required to build lnav: [33m•[0m gcc/clang - A C++14-compatible compiler. [33m•[0m libpcre2 - The Perl Compatible Regular Expression v2 (PCRE2) library. - [33m•[0m sqlite - The SQLite database engine. Version 3.9.0 - or higher is required. + [33m•[0m sqlite - The SQLite database engine. Version + 3.9.0 or higher is required. [33m•[0m ncurses - The ncurses text UI library. [33m•[0m readline - The readline line editing library. [33m•[0m zlib - The zlib compression library. [33m•[0m bz2 - The bzip2 compression library. [33m•[0m libcurl - The cURL library for downloading files from URLs. Version 7.23.0 or higher is required. - [33m•[0m libarchive - The libarchive library for opening archive - files, like zip/tgz. + [33m•[0m libarchive - The libarchive library for opening + archive files, like zip/tgz. [33m•[0m wireshark - The [35m'tshark'[0m program is used to interpret pcap files. + [33m•[0m cargo/rust - The Rust language is used to build the + PRQL compiler. [4mBuild[0m @@ -141,9 +177,8 @@ Run [37m[40m ./autogen.sh [0m if compiling from a cloned repository. [1mSee Also[0m -[4mAngle-grinder[1][0m is a tool to slice and dice log files on the +]8;;https://github.com/rcoh/angle-grinder\[4mAngle-grinder[0m]8;;\[4m[1][0m is a tool to slice and dice log files on the command-line. If you're familiar with the SumoLogic query language, you might find this tool more comfortable to work with. ▌[1] - https://github.com/rcoh/angle-grinder - diff --git a/test/expected/test_text_file.sh_e556fa91b91579df20d38540a5db9cedbaf68a62.err b/test/expected/test_text_file.sh_e556fa91b91579df20d38540a5db9cedbaf68a62.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_e556fa91b91579df20d38540a5db9cedbaf68a62.err diff --git a/test/expected/test_text_file.sh_e556fa91b91579df20d38540a5db9cedbaf68a62.out b/test/expected/test_text_file.sh_e556fa91b91579df20d38540a5db9cedbaf68a62.out new file mode 100644 index 0000000..7d9e4f4 --- /dev/null +++ b/test/expected/test_text_file.sh_e556fa91b91579df20d38540a5db9cedbaf68a62.out @@ -0,0 +1,40 @@ +[ + { + "top_meta": { + "file": "stdin", + "anchor": "#-owner-", + "breadcrumbs": [ + { + "display_value": "stdin", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "stdin" + } + ] + }, + { + "display_value": "[owner]", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "[database]" + }, + { + "display_value": "[owner]" + }, + { + "display_value": "[servers.alpha]" + }, + { + "display_value": "[servers.beta]" + }, + { + "display_value": "[servers]" + } + ] + } + ] + } + } +] diff --git a/test/expected/test_text_file.sh_f586ef080a86dfe1f981b345bcf8d7a279b2b247.err b/test/expected/test_text_file.sh_f586ef080a86dfe1f981b345bcf8d7a279b2b247.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_f586ef080a86dfe1f981b345bcf8d7a279b2b247.err diff --git a/test/expected/test_text_file.sh_f586ef080a86dfe1f981b345bcf8d7a279b2b247.out b/test/expected/test_text_file.sh_f586ef080a86dfe1f981b345bcf8d7a279b2b247.out new file mode 100644 index 0000000..75a01e5 --- /dev/null +++ b/test/expected/test_text_file.sh_f586ef080a86dfe1f981b345bcf8d7a279b2b247.out @@ -0,0 +1,38 @@ +ECHO(1) General Commands Manual ECHO(1) + +[1mNAME[0m + [1mecho[0m – write arguments to the standard output + +[1mSYNOPSIS[0m + [1mecho[0m [[1m-n[0m] [[4mstring[0m [4m...[0m] + +[1mDESCRIPTION[0m + The [1mecho[0m utility writes any specified operands, separated by single blank + (‘ ’) characters and followed by a newline (‘\n’) character, to the + standard output. + + The following option is available: + + [1m-n[0m Do not print the trailing newline character. This may also be + achieved by appending ‘\c’ to the end of the string, as is done by + iBCS2 compatible systems. Note that this option as well as the + effect of ‘\c’ are implementation-defined in IEEE Std 1003.1-2001 + (“POSIX.1”) as amended by Cor. 1-2002. Applications aiming for + maximum portability are strongly encouraged to use printf(1) to + suppress the newline character. + + Some shells may provide a builtin [1mecho[0m command which is similar or + identical to this utility. Most notably, the builtin [1mecho[0m in sh(1) does + not accept the [1m-n[0m option. Consult the builtin(1) manual page. + +[1mEXIT[0m [1mSTATUS[0m + The [1mecho[0m utility exits 0 on success, and >0 if an error occurs. + +[1mSEE[0m [1mALSO[0m + builtin(1), csh(1), printf(1), sh(1) + +[1mSTANDARDS[0m + The [1mecho[0m utility conforms to IEEE Std 1003.1-2001 (“POSIX.1”) as amended + by Cor. 1-2002. + +macOS 13.5 April 12, 2003 macOS 13.5 diff --git a/test/expected/test_text_file.sh_f7522b0a99550a3ff91aae6582eb861547c535e1.err b/test/expected/test_text_file.sh_f7522b0a99550a3ff91aae6582eb861547c535e1.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/expected/test_text_file.sh_f7522b0a99550a3ff91aae6582eb861547c535e1.err diff --git a/test/expected/test_text_file.sh_f7522b0a99550a3ff91aae6582eb861547c535e1.out b/test/expected/test_text_file.sh_f7522b0a99550a3ff91aae6582eb861547c535e1.out new file mode 100644 index 0000000..de58bb7 --- /dev/null +++ b/test/expected/test_text_file.sh_f7522b0a99550a3ff91aae6582eb861547c535e1.out @@ -0,0 +1,25 @@ +[ + { + "top_meta": { + "file": "stdin", + "breadcrumbs": [ + { + "display_value": "stdin", + "search_placeholder": "", + "possibilities": [ + { + "display_value": "stdin" + } + ] + }, + { + "display_value": "2013-06-06T19:13:20.123", + "search_placeholder": "", + "possibilities": [ + + ] + } + ] + } + } +] diff --git a/test/formats/jsontest/format.json b/test/formats/jsontest/format.json index 333b8a9..63148ea 100644 --- a/test/formats/jsontest/format.json +++ b/test/formats/jsontest/format.json @@ -15,6 +15,15 @@ "field": "lvl", "auto-width": true }, + { + "field": "logger", + "prefix": " <", + "suffix": ">", + "min-width": 20, + "max-width": 20, + "overflow": "abbrev", + "default-value": "" + }, " ", { "field": "msg" @@ -33,6 +42,10 @@ "obj": { "kind": "json" }, + "logger": { + "kind": "string", + "identifier": true + }, "lvl": { "kind": "string", "hidden": true diff --git a/test/formats/jsontest/lnav-logstash.json b/test/formats/jsontest/lnav-logstash.json index 27f9239..b821168 100644 --- a/test/formats/jsontest/lnav-logstash.json +++ b/test/formats/jsontest/lnav-logstash.json @@ -7,40 +7,48 @@ "json": true, "hide-extra": false, "file-pattern": "\\.clog.*", - "multiline": false, "line-format": [ - { "field" : "@timestamp" }, + { + "field": "@timestamp" + }, " ", - { "field" : "ipaddress" }, + { + "field": "ipaddress" + }, " ", - { "field" : "message" }, + { + "field": "message" + }, " ", - { "field" : "stack_trace", "default-value" : "" } + { + "field": "stack_trace", + "default-value": "" + } ], - "timestamp-field" : "@timestamp", - "body-field" : "message", - "level-field" : "level", - "level" : { - "trace" : "TRACE", - "debug" : "DEBUG", - "info" : "INFO", - "error" : "ERROR", - "warning" : "WARN" + "timestamp-field": "@timestamp", + "body-field": "message", + "level-field": "level", + "level": { + "trace": "TRACE", + "debug": "DEBUG", + "info": "INFO", + "error": "ERROR", + "warning": "WARN" }, - "value" : { - "logger_name" : { - "kind" : "string", - "identifier" : true + "value": { + "logger_name": { + "kind": "string", + "identifier": true }, - "ipaddress" : { - "kind" : "string", - "identifier" : true + "ipaddress": { + "kind": "string", + "identifier": true }, - "level_value" : { + "level_value": { "hidden": true }, - "stack_trace" : { - "kind" : "string" + "stack_trace": { + "kind": "string" } } } diff --git a/test/formats/jsontest/rewrite-user.lnav b/test/formats/jsontest/rewrite-user.lnav index e34aa78..56ff500 100644 --- a/test/formats/jsontest/rewrite-user.lnav +++ b/test/formats/jsontest/rewrite-user.lnav @@ -1,2 +1,3 @@ -;SELECT 'mailto:' || :user +;SELECT 'mailto:' || :user AS mt +:echo $mt diff --git a/test/formats/partitions/format.json b/test/formats/partitions/format.json new file mode 100644 index 0000000..971c542 --- /dev/null +++ b/test/formats/partitions/format.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://lnav.org/schemas/format-v1.schema.json", + "syslog_log": { + "partitions": { + "dhclient-binding": { + "description": "Set partition name to current IP", + "pattern": " bound to ([^ ]+) --" + } + } + } +}
\ No newline at end of file diff --git a/test/gharchive_log.jsonl b/test/gharchive_log.jsonl new file mode 100644 index 0000000..e24bb00 --- /dev/null +++ b/test/gharchive_log.jsonl @@ -0,0 +1,50 @@ +{"id":"34502641367","type":"MemberEvent","actor":{"id":62330315,"login":"mujianwu","display_login":"mujianwu","gravatar_id":"","url":"https://api.github.com/users/mujianwu","avatar_url":"https://avatars.githubusercontent.com/u/62330315?"},"repo":{"id":708013309,"name":"Uotan-Dev/UotanWorkStation-ROM-Builder","url":"https://api.github.com/repos/Uotan-Dev/UotanWorkStation-ROM-Builder"},"payload":{"member":{"login":"Envoy-Z-Lab","id":152428796,"node_id":"U_kgDOCRXg_A","avatar_url":"https://avatars.githubusercontent.com/u/152428796?v=4","gravatar_id":"","url":"https://api.github.com/users/Envoy-Z-Lab","html_url":"https://github.com/Envoy-Z-Lab","followers_url":"https://api.github.com/users/Envoy-Z-Lab/followers","following_url":"https://api.github.com/users/Envoy-Z-Lab/following{/other_user}","gists_url":"https://api.github.com/users/Envoy-Z-Lab/gists{/gist_id}","starred_url":"https://api.github.com/users/Envoy-Z-Lab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Envoy-Z-Lab/subscriptions","organizations_url":"https://api.github.com/users/Envoy-Z-Lab/orgs","repos_url":"https://api.github.com/users/Envoy-Z-Lab/repos","events_url":"https://api.github.com/users/Envoy-Z-Lab/events{/privacy}","received_events_url":"https://api.github.com/users/Envoy-Z-Lab/received_events","type":"User","site_admin":false},"action":"added"},"public":true,"created_at":"2024-01-01T15:00:00Z","org":{"id":111175685,"login":"Uotan-Dev","gravatar_id":"","url":"https://api.github.com/orgs/Uotan-Dev","avatar_url":"https://avatars.githubusercontent.com/u/111175685?"}} +{"id":"34502641374","type":"PushEvent","actor":{"id":153940760,"login":"mdmaid69","display_login":"mdmaid69","gravatar_id":"","url":"https://api.github.com/users/mdmaid69","avatar_url":"https://avatars.githubusercontent.com/u/153940760?"},"repo":{"id":732717980,"name":"mdmaid69/reimagined-giggle","url":"https://api.github.com/repos/mdmaid69/reimagined-giggle"},"payload":{"repository_id":732717980,"push_id":16466254513,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"e467bf0b03b2b6815806d33696c92898a0548aed","before":"dc8177f8b942a863ea4c1fb46f3cfcf773880d1b","commits":[{"sha":"e467bf0b03b2b6815806d33696c92898a0548aed","author":{"email":"robot@alexsyw.me","name":"mdmaid69"},"message":"float further safety possibly strike","distinct":true,"url":"https://api.github.com/repos/mdmaid69/reimagined-giggle/commits/e467bf0b03b2b6815806d33696c92898a0548aed"}]},"public":true,"created_at":"2024-01-01T15:00:00Z"} +{"id":"34502641375","type":"ForkEvent","actor":{"id":137278716,"login":"SynthWave-Systems","display_login":"SynthWave-Systems","gravatar_id":"","url":"https://api.github.com/users/SynthWave-Systems","avatar_url":"https://avatars.githubusercontent.com/u/137278716?"},"repo":{"id":135763852,"name":"ampleforth/ampleforth-contracts","url":"https://api.github.com/repos/ampleforth/ampleforth-contracts"},"payload":{"forkee":{"id":737802483,"node_id":"R_kgDOK_n48w","name":"ampleforth-contracts","full_name":"SynthWave-Systems/ampleforth-contracts","private":false,"owner":{"login":"SynthWave-Systems","id":137278716,"node_id":"O_kgDOCC60_A","avatar_url":"https://avatars.githubusercontent.com/u/137278716?v=4","gravatar_id":"","url":"https://api.github.com/users/SynthWave-Systems","html_url":"https://github.com/SynthWave-Systems","followers_url":"https://api.github.com/users/SynthWave-Systems/followers","following_url":"https://api.github.com/users/SynthWave-Systems/following{/other_user}","gists_url":"https://api.github.com/users/SynthWave-Systems/gists{/gist_id}","starred_url":"https://api.github.com/users/SynthWave-Systems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SynthWave-Systems/subscriptions","organizations_url":"https://api.github.com/users/SynthWave-Systems/orgs","repos_url":"https://api.github.com/users/SynthWave-Systems/repos","events_url":"https://api.github.com/users/SynthWave-Systems/events{/privacy}","received_events_url":"https://api.github.com/users/SynthWave-Systems/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/SynthWave-Systems/ampleforth-contracts","description":"Smart contracts for Ampleforth Protocol (working name uFragments)","fork":true,"url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts","forks_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/forks","keys_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/teams","hooks_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/hooks","issue_events_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/issues/events{/number}","events_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/events","assignees_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/assignees{/user}","branches_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/branches{/branch}","tags_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/tags","blobs_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/git/refs{/sha}","trees_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/statuses/{sha}","languages_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/languages","stargazers_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/stargazers","contributors_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/contributors","subscribers_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/subscribers","subscription_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/subscription","commits_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/commits{/sha}","git_commits_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/git/commits{/sha}","comments_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/comments{/number}","issue_comment_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/issues/comments{/number}","contents_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/contents/{+path}","compare_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/merges","archive_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/downloads","issues_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/issues{/number}","pulls_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/pulls{/number}","milestones_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/milestones{/number}","notifications_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/labels{/name}","releases_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/releases{/id}","deployments_url":"https://api.github.com/repos/SynthWave-Systems/ampleforth-contracts/deployments","created_at":"2024-01-01T14:59:38Z","updated_at":"2024-01-01T14:59:38Z","pushed_at":"2023-10-27T15:10:53Z","git_url":"git://github.com/SynthWave-Systems/ampleforth-contracts.git","ssh_url":"git@github.com:SynthWave-Systems/ampleforth-contracts.git","clone_url":"https://github.com/SynthWave-Systems/ampleforth-contracts.git","svn_url":"https://github.com/SynthWave-Systems/ampleforth-contracts","homepage":"https://ampleforth.org","size":2726,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":null,"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"main","public":true}},"public":true,"created_at":"2024-01-01T15:00:00Z","org":{"id":36210657,"login":"ampleforth","gravatar_id":"","url":"https://api.github.com/orgs/ampleforth","avatar_url":"https://avatars.githubusercontent.com/u/36210657?"}} +{"id":"34502641376","type":"PullRequestEvent","actor":{"id":40026159,"login":"tobexyz","display_login":"tobexyz","gravatar_id":"","url":"https://api.github.com/users/tobexyz","avatar_url":"https://avatars.githubusercontent.com/u/40026159?"},"repo":{"id":156070344,"name":"tobexyz/yaacc-code","url":"https://api.github.com/repos/tobexyz/yaacc-code"},"payload":{"action":"closed","number":90,"pull_request":{"url":"https://api.github.com/repos/tobexyz/yaacc-code/pulls/90","id":1661123987,"node_id":"PR_kwDOCU1xyM5jAr2T","html_url":"https://github.com/tobexyz/yaacc-code/pull/90","diff_url":"https://github.com/tobexyz/yaacc-code/pull/90.diff","patch_url":"https://github.com/tobexyz/yaacc-code/pull/90.patch","issue_url":"https://api.github.com/repos/tobexyz/yaacc-code/issues/90","number":90,"state":"closed","locked":false,"title":"merge latest release to master","user":{"login":"tobexyz","id":40026159,"node_id":"MDQ6VXNlcjQwMDI2MTU5","avatar_url":"https://avatars.githubusercontent.com/u/40026159?v=4","gravatar_id":"","url":"https://api.github.com/users/tobexyz","html_url":"https://github.com/tobexyz","followers_url":"https://api.github.com/users/tobexyz/followers","following_url":"https://api.github.com/users/tobexyz/following{/other_user}","gists_url":"https://api.github.com/users/tobexyz/gists{/gist_id}","starred_url":"https://api.github.com/users/tobexyz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobexyz/subscriptions","organizations_url":"https://api.github.com/users/tobexyz/orgs","repos_url":"https://api.github.com/users/tobexyz/repos","events_url":"https://api.github.com/users/tobexyz/events{/privacy}","received_events_url":"https://api.github.com/users/tobexyz/received_events","type":"User","site_admin":false},"body":null,"created_at":"2024-01-01T14:59:25Z","updated_at":"2024-01-01T14:59:38Z","closed_at":"2024-01-01T14:59:38Z","merged_at":"2024-01-01T14:59:38Z","merge_commit_sha":"ea0371c4d11b0dc46a1f8015b5d6730394fa8c00","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/tobexyz/yaacc-code/pulls/90/commits","review_comments_url":"https://api.github.com/repos/tobexyz/yaacc-code/pulls/90/comments","review_comment_url":"https://api.github.com/repos/tobexyz/yaacc-code/pulls/comments{/number}","comments_url":"https://api.github.com/repos/tobexyz/yaacc-code/issues/90/comments","statuses_url":"https://api.github.com/repos/tobexyz/yaacc-code/statuses/e6bb06202e68504da818ff5428915d1da3f19e51","head":{"label":"tobexyz:develop","ref":"develop","sha":"e6bb06202e68504da818ff5428915d1da3f19e51","user":{"login":"tobexyz","id":40026159,"node_id":"MDQ6VXNlcjQwMDI2MTU5","avatar_url":"https://avatars.githubusercontent.com/u/40026159?v=4","gravatar_id":"","url":"https://api.github.com/users/tobexyz","html_url":"https://github.com/tobexyz","followers_url":"https://api.github.com/users/tobexyz/followers","following_url":"https://api.github.com/users/tobexyz/following{/other_user}","gists_url":"https://api.github.com/users/tobexyz/gists{/gist_id}","starred_url":"https://api.github.com/users/tobexyz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobexyz/subscriptions","organizations_url":"https://api.github.com/users/tobexyz/orgs","repos_url":"https://api.github.com/users/tobexyz/repos","events_url":"https://api.github.com/users/tobexyz/events{/privacy}","received_events_url":"https://api.github.com/users/tobexyz/received_events","type":"User","site_admin":false},"repo":{"id":156070344,"node_id":"MDEwOlJlcG9zaXRvcnkxNTYwNzAzNDQ=","name":"yaacc-code","full_name":"tobexyz/yaacc-code","private":false,"owner":{"login":"tobexyz","id":40026159,"node_id":"MDQ6VXNlcjQwMDI2MTU5","avatar_url":"https://avatars.githubusercontent.com/u/40026159?v=4","gravatar_id":"","url":"https://api.github.com/users/tobexyz","html_url":"https://github.com/tobexyz","followers_url":"https://api.github.com/users/tobexyz/followers","following_url":"https://api.github.com/users/tobexyz/following{/other_user}","gists_url":"https://api.github.com/users/tobexyz/gists{/gist_id}","starred_url":"https://api.github.com/users/tobexyz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobexyz/subscriptions","organizations_url":"https://api.github.com/users/tobexyz/orgs","repos_url":"https://api.github.com/users/tobexyz/repos","events_url":"https://api.github.com/users/tobexyz/events{/privacy}","received_events_url":"https://api.github.com/users/tobexyz/received_events","type":"User","site_admin":false},"html_url":"https://github.com/tobexyz/yaacc-code","description":"YAACC - UPNP Client and Server","fork":true,"url":"https://api.github.com/repos/tobexyz/yaacc-code","forks_url":"https://api.github.com/repos/tobexyz/yaacc-code/forks","keys_url":"https://api.github.com/repos/tobexyz/yaacc-code/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tobexyz/yaacc-code/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tobexyz/yaacc-code/teams","hooks_url":"https://api.github.com/repos/tobexyz/yaacc-code/hooks","issue_events_url":"https://api.github.com/repos/tobexyz/yaacc-code/issues/events{/number}","events_url":"https://api.github.com/repos/tobexyz/yaacc-code/events","assignees_url":"https://api.github.com/repos/tobexyz/yaacc-code/assignees{/user}","branches_url":"https://api.github.com/repos/tobexyz/yaacc-code/branches{/branch}","tags_url":"https://api.github.com/repos/tobexyz/yaacc-code/tags","blobs_url":"https://api.github.com/repos/tobexyz/yaacc-code/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tobexyz/yaacc-code/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tobexyz/yaacc-code/git/refs{/sha}","trees_url":"https://api.github.com/repos/tobexyz/yaacc-code/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tobexyz/yaacc-code/statuses/{sha}","languages_url":"https://api.github.com/repos/tobexyz/yaacc-code/languages","stargazers_url":"https://api.github.com/repos/tobexyz/yaacc-code/stargazers","contributors_url":"https://api.github.com/repos/tobexyz/yaacc-code/contributors","subscribers_url":"https://api.github.com/repos/tobexyz/yaacc-code/subscribers","subscription_url":"https://api.github.com/repos/tobexyz/yaacc-code/subscription","commits_url":"https://api.github.com/repos/tobexyz/yaacc-code/commits{/sha}","git_commits_url":"https://api.github.com/repos/tobexyz/yaacc-code/git/commits{/sha}","comments_url":"https://api.github.com/repos/tobexyz/yaacc-code/comments{/number}","issue_comment_url":"https://api.github.com/repos/tobexyz/yaacc-code/issues/comments{/number}","contents_url":"https://api.github.com/repos/tobexyz/yaacc-code/contents/{+path}","compare_url":"https://api.github.com/repos/tobexyz/yaacc-code/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tobexyz/yaacc-code/merges","archive_url":"https://api.github.com/repos/tobexyz/yaacc-code/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tobexyz/yaacc-code/downloads","issues_url":"https://api.github.com/repos/tobexyz/yaacc-code/issues{/number}","pulls_url":"https://api.github.com/repos/tobexyz/yaacc-code/pulls{/number}","milestones_url":"https://api.github.com/repos/tobexyz/yaacc-code/milestones{/number}","notifications_url":"https://api.github.com/repos/tobexyz/yaacc-code/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tobexyz/yaacc-code/labels{/name}","releases_url":"https://api.github.com/repos/tobexyz/yaacc-code/releases{/id}","deployments_url":"https://api.github.com/repos/tobexyz/yaacc-code/deployments","created_at":"2018-11-04T10:21:57Z","updated_at":"2024-01-01T14:56:58Z","pushed_at":"2024-01-01T14:59:38Z","git_url":"git://github.com/tobexyz/yaacc-code.git","ssh_url":"git@github.com:tobexyz/yaacc-code.git","clone_url":"https://github.com/tobexyz/yaacc-code.git","svn_url":"https://github.com/tobexyz/yaacc-code","homepage":"","size":23761,"stargazers_count":81,"watchers_count":81,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":true,"forks_count":10,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":7,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["android-app","dlna","dlna-mediarenderer","dlna-player","dlna-server","dlna-upnp","upnp","upnp-av","upnp-content-directory","upnp-renderer"],"visibility":"public","forks":10,"open_issues":7,"watchers":81,"default_branch":"develop"}},"base":{"label":"tobexyz:master","ref":"master","sha":"369468d82f2e237b4f29b48e3d3057bf6fbcc78e","user":{"login":"tobexyz","id":40026159,"node_id":"MDQ6VXNlcjQwMDI2MTU5","avatar_url":"https://avatars.githubusercontent.com/u/40026159?v=4","gravatar_id":"","url":"https://api.github.com/users/tobexyz","html_url":"https://github.com/tobexyz","followers_url":"https://api.github.com/users/tobexyz/followers","following_url":"https://api.github.com/users/tobexyz/following{/other_user}","gists_url":"https://api.github.com/users/tobexyz/gists{/gist_id}","starred_url":"https://api.github.com/users/tobexyz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobexyz/subscriptions","organizations_url":"https://api.github.com/users/tobexyz/orgs","repos_url":"https://api.github.com/users/tobexyz/repos","events_url":"https://api.github.com/users/tobexyz/events{/privacy}","received_events_url":"https://api.github.com/users/tobexyz/received_events","type":"User","site_admin":false},"repo":{"id":156070344,"node_id":"MDEwOlJlcG9zaXRvcnkxNTYwNzAzNDQ=","name":"yaacc-code","full_name":"tobexyz/yaacc-code","private":false,"owner":{"login":"tobexyz","id":40026159,"node_id":"MDQ6VXNlcjQwMDI2MTU5","avatar_url":"https://avatars.githubusercontent.com/u/40026159?v=4","gravatar_id":"","url":"https://api.github.com/users/tobexyz","html_url":"https://github.com/tobexyz","followers_url":"https://api.github.com/users/tobexyz/followers","following_url":"https://api.github.com/users/tobexyz/following{/other_user}","gists_url":"https://api.github.com/users/tobexyz/gists{/gist_id}","starred_url":"https://api.github.com/users/tobexyz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobexyz/subscriptions","organizations_url":"https://api.github.com/users/tobexyz/orgs","repos_url":"https://api.github.com/users/tobexyz/repos","events_url":"https://api.github.com/users/tobexyz/events{/privacy}","received_events_url":"https://api.github.com/users/tobexyz/received_events","type":"User","site_admin":false},"html_url":"https://github.com/tobexyz/yaacc-code","description":"YAACC - UPNP Client and Server","fork":true,"url":"https://api.github.com/repos/tobexyz/yaacc-code","forks_url":"https://api.github.com/repos/tobexyz/yaacc-code/forks","keys_url":"https://api.github.com/repos/tobexyz/yaacc-code/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tobexyz/yaacc-code/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tobexyz/yaacc-code/teams","hooks_url":"https://api.github.com/repos/tobexyz/yaacc-code/hooks","issue_events_url":"https://api.github.com/repos/tobexyz/yaacc-code/issues/events{/number}","events_url":"https://api.github.com/repos/tobexyz/yaacc-code/events","assignees_url":"https://api.github.com/repos/tobexyz/yaacc-code/assignees{/user}","branches_url":"https://api.github.com/repos/tobexyz/yaacc-code/branches{/branch}","tags_url":"https://api.github.com/repos/tobexyz/yaacc-code/tags","blobs_url":"https://api.github.com/repos/tobexyz/yaacc-code/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tobexyz/yaacc-code/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tobexyz/yaacc-code/git/refs{/sha}","trees_url":"https://api.github.com/repos/tobexyz/yaacc-code/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tobexyz/yaacc-code/statuses/{sha}","languages_url":"https://api.github.com/repos/tobexyz/yaacc-code/languages","stargazers_url":"https://api.github.com/repos/tobexyz/yaacc-code/stargazers","contributors_url":"https://api.github.com/repos/tobexyz/yaacc-code/contributors","subscribers_url":"https://api.github.com/repos/tobexyz/yaacc-code/subscribers","subscription_url":"https://api.github.com/repos/tobexyz/yaacc-code/subscription","commits_url":"https://api.github.com/repos/tobexyz/yaacc-code/commits{/sha}","git_commits_url":"https://api.github.com/repos/tobexyz/yaacc-code/git/commits{/sha}","comments_url":"https://api.github.com/repos/tobexyz/yaacc-code/comments{/number}","issue_comment_url":"https://api.github.com/repos/tobexyz/yaacc-code/issues/comments{/number}","contents_url":"https://api.github.com/repos/tobexyz/yaacc-code/contents/{+path}","compare_url":"https://api.github.com/repos/tobexyz/yaacc-code/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tobexyz/yaacc-code/merges","archive_url":"https://api.github.com/repos/tobexyz/yaacc-code/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tobexyz/yaacc-code/downloads","issues_url":"https://api.github.com/repos/tobexyz/yaacc-code/issues{/number}","pulls_url":"https://api.github.com/repos/tobexyz/yaacc-code/pulls{/number}","milestones_url":"https://api.github.com/repos/tobexyz/yaacc-code/milestones{/number}","notifications_url":"https://api.github.com/repos/tobexyz/yaacc-code/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tobexyz/yaacc-code/labels{/name}","releases_url":"https://api.github.com/repos/tobexyz/yaacc-code/releases{/id}","deployments_url":"https://api.github.com/repos/tobexyz/yaacc-code/deployments","created_at":"2018-11-04T10:21:57Z","updated_at":"2024-01-01T14:56:58Z","pushed_at":"2024-01-01T14:59:38Z","git_url":"git://github.com/tobexyz/yaacc-code.git","ssh_url":"git@github.com:tobexyz/yaacc-code.git","clone_url":"https://github.com/tobexyz/yaacc-code.git","svn_url":"https://github.com/tobexyz/yaacc-code","homepage":"","size":23761,"stargazers_count":81,"watchers_count":81,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":true,"forks_count":10,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":7,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["android-app","dlna","dlna-mediarenderer","dlna-player","dlna-server","dlna-upnp","upnp","upnp-av","upnp-content-directory","upnp-renderer"],"visibility":"public","forks":10,"open_issues":7,"watchers":81,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/tobexyz/yaacc-code/pulls/90"},"html":{"href":"https://github.com/tobexyz/yaacc-code/pull/90"},"issue":{"href":"https://api.github.com/repos/tobexyz/yaacc-code/issues/90"},"comments":{"href":"https://api.github.com/repos/tobexyz/yaacc-code/issues/90/comments"},"review_comments":{"href":"https://api.github.com/repos/tobexyz/yaacc-code/pulls/90/comments"},"review_comment":{"href":"https://api.github.com/repos/tobexyz/yaacc-code/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/tobexyz/yaacc-code/pulls/90/commits"},"statuses":{"href":"https://api.github.com/repos/tobexyz/yaacc-code/statuses/e6bb06202e68504da818ff5428915d1da3f19e51"}},"author_association":"OWNER","auto_merge":null,"active_lock_reason":null,"merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"tobexyz","id":40026159,"node_id":"MDQ6VXNlcjQwMDI2MTU5","avatar_url":"https://avatars.githubusercontent.com/u/40026159?v=4","gravatar_id":"","url":"https://api.github.com/users/tobexyz","html_url":"https://github.com/tobexyz","followers_url":"https://api.github.com/users/tobexyz/followers","following_url":"https://api.github.com/users/tobexyz/following{/other_user}","gists_url":"https://api.github.com/users/tobexyz/gists{/gist_id}","starred_url":"https://api.github.com/users/tobexyz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobexyz/subscriptions","organizations_url":"https://api.github.com/users/tobexyz/orgs","repos_url":"https://api.github.com/users/tobexyz/repos","events_url":"https://api.github.com/users/tobexyz/events{/privacy}","received_events_url":"https://api.github.com/users/tobexyz/received_events","type":"User","site_admin":false},"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":5,"additions":11,"deletions":3,"changed_files":4}},"public":true,"created_at":"2024-01-01T15:00:00Z"} +{"id":"34502641379","type":"PushEvent","actor":{"id":155086649,"login":"dim12512a","display_login":"dim12512a","gravatar_id":"","url":"https://api.github.com/users/dim12512a","avatar_url":"https://avatars.githubusercontent.com/u/155086649?"},"repo":{"id":737073761,"name":"dim12512a/Repo5","url":"https://api.github.com/repos/dim12512a/Repo5"},"payload":{"repository_id":737073761,"push_id":16466254392,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"c34fd919a5cd9b7eb8bad07dab60c2f5a6c65d27","before":"1112698dbd122cbce6d35d4c28ea6b5831dae611","commits":[{"sha":"c34fd919a5cd9b7eb8bad07dab60c2f5a6c65d27","author":{"email":"you@example.com","name":"Your Name"},"message":"Empty Commit","distinct":true,"url":"https://api.github.com/repos/dim12512a/Repo5/commits/c34fd919a5cd9b7eb8bad07dab60c2f5a6c65d27"}]},"public":true,"created_at":"2024-01-01T15:00:00Z"} +{"id":"34502641382","type":"PushEvent","actor":{"id":97979094,"login":"github-shvabra","display_login":"github-shvabra","gravatar_id":"","url":"https://api.github.com/users/github-shvabra","avatar_url":"https://avatars.githubusercontent.com/u/97979094?"},"repo":{"id":642858622,"name":"saby/ios-sabycom","url":"https://api.github.com/repos/saby/ios-sabycom"},"payload":{"repository_id":642858622,"push_id":16466254503,"size":1,"distinct_size":1,"ref":"refs/heads/rc-23.7146","head":"b4718c5f554b72883fd130fa4e93fdd16b51e7b9","before":"1fa2bca104d44016761a7baaaa4e72481e61bd0c","commits":[{"sha":"b4718c5f554b72883fd130fa4e93fdd16b51e7b9","author":{"email":"unix-prog_server@unix.tensor.ru@sbis-dev-mon.unix.tensor.ru","name":"Служебный пользователь Инц №52255"},"message":"new change","distinct":true,"url":"https://api.github.com/repos/saby/ios-sabycom/commits/b4718c5f554b72883fd130fa4e93fdd16b51e7b9"}]},"public":true,"created_at":"2024-01-01T15:00:00Z","org":{"id":42994484,"login":"saby","gravatar_id":"","url":"https://api.github.com/orgs/saby","avatar_url":"https://avatars.githubusercontent.com/u/42994484?"}} +{"id":"34502641385","type":"CreateEvent","actor":{"id":72511388,"login":"roman1923","display_login":"roman1923","gravatar_id":"","url":"https://api.github.com/users/roman1923","avatar_url":"https://avatars.githubusercontent.com/u/72511388?"},"repo":{"id":737802482,"name":"roman1923/no-woo-small-cta-fast-food-shop","url":"https://api.github.com/repos/roman1923/no-woo-small-cta-fast-food-shop"},"payload":{"ref":null,"ref_type":"repository","master_branch":"main","description":null,"pusher_type":"user"},"public":true,"created_at":"2024-01-01T15:00:00Z"} +{"id":"34502641391","type":"PushEvent","actor":{"id":155086563,"login":"appref5555ix63","display_login":"appref5555ix63","gravatar_id":"","url":"https://api.github.com/users/appref5555ix63","avatar_url":"https://avatars.githubusercontent.com/u/155086563?"},"repo":{"id":737072728,"name":"appref5555ix63/Repo4","url":"https://api.github.com/repos/appref5555ix63/Repo4"},"payload":{"repository_id":737072728,"push_id":16466254439,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"5abbda1f863eee520965bbd7f1560381ef0106c7","before":"29b8e44e30ceb1ba91988fe40495122194516696","commits":[{"sha":"5abbda1f863eee520965bbd7f1560381ef0106c7","author":{"email":"you@example.com","name":"Your Name"},"message":"Empty Commit","distinct":true,"url":"https://api.github.com/repos/appref5555ix63/Repo4/commits/5abbda1f863eee520965bbd7f1560381ef0106c7"}]},"public":true,"created_at":"2024-01-01T15:00:00Z"} +{"id":"34502641392","type":"PullRequestReviewEvent","actor":{"id":116707505,"login":"megusasuke0","display_login":"megusasuke0","gravatar_id":"","url":"https://api.github.com/users/megusasuke0","avatar_url":"https://avatars.githubusercontent.com/u/116707505?"},"repo":{"id":737461382,"name":"megusasuke0/frontendhandson","url":"https://api.github.com/repos/megusasuke0/frontendhandson"},"payload":{"action":"created","review":{"id":1799820649,"node_id":"PRR_kwDOK_TEhs5rRxVp","user":{"login":"megusasuke0","id":116707505,"node_id":"U_kgDOBvTQsQ","avatar_url":"https://avatars.githubusercontent.com/u/116707505?v=4","gravatar_id":"","url":"https://api.github.com/users/megusasuke0","html_url":"https://github.com/megusasuke0","followers_url":"https://api.github.com/users/megusasuke0/followers","following_url":"https://api.github.com/users/megusasuke0/following{/other_user}","gists_url":"https://api.github.com/users/megusasuke0/gists{/gist_id}","starred_url":"https://api.github.com/users/megusasuke0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/megusasuke0/subscriptions","organizations_url":"https://api.github.com/users/megusasuke0/orgs","repos_url":"https://api.github.com/users/megusasuke0/repos","events_url":"https://api.github.com/users/megusasuke0/events{/privacy}","received_events_url":"https://api.github.com/users/megusasuke0/received_events","type":"User","site_admin":false},"body":null,"commit_id":"e41de9e65b59484d0d70648ac6ebada6e4696d43","submitted_at":"2024-01-01T14:59:38Z","state":"commented","html_url":"https://github.com/megusasuke0/frontendhandson/pull/1#pullrequestreview-1799820649","pull_request_url":"https://api.github.com/repos/megusasuke0/frontendhandson/pulls/1","author_association":"OWNER","_links":{"html":{"href":"https://github.com/megusasuke0/frontendhandson/pull/1#pullrequestreview-1799820649"},"pull_request":{"href":"https://api.github.com/repos/megusasuke0/frontendhandson/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/megusasuke0/frontendhandson/pulls/1","id":1660877925,"node_id":"PR_kwDOK_TEhs5i_vxl","html_url":"https://github.com/megusasuke0/frontendhandson/pull/1","diff_url":"https://github.com/megusasuke0/frontendhandson/pull/1.diff","patch_url":"https://github.com/megusasuke0/frontendhandson/pull/1.patch","issue_url":"https://api.github.com/repos/megusasuke0/frontendhandson/issues/1","number":1,"state":"open","locked":false,"title":"Feature/lesson01","user":{"login":"megusasuke0","id":116707505,"node_id":"U_kgDOBvTQsQ","avatar_url":"https://avatars.githubusercontent.com/u/116707505?v=4","gravatar_id":"","url":"https://api.github.com/users/megusasuke0","html_url":"https://github.com/megusasuke0","followers_url":"https://api.github.com/users/megusasuke0/followers","following_url":"https://api.github.com/users/megusasuke0/following{/other_user}","gists_url":"https://api.github.com/users/megusasuke0/gists{/gist_id}","starred_url":"https://api.github.com/users/megusasuke0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/megusasuke0/subscriptions","organizations_url":"https://api.github.com/users/megusasuke0/orgs","repos_url":"https://api.github.com/users/megusasuke0/repos","events_url":"https://api.github.com/users/megusasuke0/events{/privacy}","received_events_url":"https://api.github.com/users/megusasuke0/received_events","type":"User","site_admin":false},"body":"# [Issue No.1](https://github.com/kenmori/handsonFrontend/blob/master/work/markup/1.md#)\r\n- このDOMをhtml内のulの中に差し込んでください\r\n`<li>これです</li>`\r\n## [stackblitz](https://stackblitz.com/github/megusasuke0/frontendhandson/tree/feature/lesson01?file=1%2Findex.js)\r\n## Concerns and areas to focus on\r\n--------------------------------\r\n- This is my first PR.\r\nI’m so appreciative of your kindness!\r\nPlease teach me how to write JS code and PR sentences. \r\nThank you.\r\n--------------------------------\r\nI pasted the site I referenced below.\r\n--------------------------------\r\nchatGPT prompt:\"javascript DOM作成 li テキスト「これです」\"\r\nreference: #https://www.wakuwakubank.com/posts/306-javascript-dom/#index_id4\r\nreference: #https://stackoverflow.com/questions/50250214/how-to-use-insertbefore-without-second-parameter\r\n","created_at":"2024-01-01T05:29:44Z","updated_at":"2024-01-01T14:59:55Z","closed_at":null,"merged_at":null,"merge_commit_sha":"96e9f074fe41c27e20b6aacfbd372ea39edce179","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/megusasuke0/frontendhandson/pulls/1/commits","review_comments_url":"https://api.github.com/repos/megusasuke0/frontendhandson/pulls/1/comments","review_comment_url":"https://api.github.com/repos/megusasuke0/frontendhandson/pulls/comments{/number}","comments_url":"https://api.github.com/repos/megusasuke0/frontendhandson/issues/1/comments","statuses_url":"https://api.github.com/repos/megusasuke0/frontendhandson/statuses/d1cd14bfa81aaa8d39ce0a8fd4d90cb7be53f627","head":{"label":"megusasuke0:feature/lesson01","ref":"feature/lesson01","sha":"d1cd14bfa81aaa8d39ce0a8fd4d90cb7be53f627","user":{"login":"megusasuke0","id":116707505,"node_id":"U_kgDOBvTQsQ","avatar_url":"https://avatars.githubusercontent.com/u/116707505?v=4","gravatar_id":"","url":"https://api.github.com/users/megusasuke0","html_url":"https://github.com/megusasuke0","followers_url":"https://api.github.com/users/megusasuke0/followers","following_url":"https://api.github.com/users/megusasuke0/following{/other_user}","gists_url":"https://api.github.com/users/megusasuke0/gists{/gist_id}","starred_url":"https://api.github.com/users/megusasuke0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/megusasuke0/subscriptions","organizations_url":"https://api.github.com/users/megusasuke0/orgs","repos_url":"https://api.github.com/users/megusasuke0/repos","events_url":"https://api.github.com/users/megusasuke0/events{/privacy}","received_events_url":"https://api.github.com/users/megusasuke0/received_events","type":"User","site_admin":false},"repo":{"id":737461382,"node_id":"R_kgDOK_TEhg","name":"frontendhandson","full_name":"megusasuke0/frontendhandson","private":false,"owner":{"login":"megusasuke0","id":116707505,"node_id":"U_kgDOBvTQsQ","avatar_url":"https://avatars.githubusercontent.com/u/116707505?v=4","gravatar_id":"","url":"https://api.github.com/users/megusasuke0","html_url":"https://github.com/megusasuke0","followers_url":"https://api.github.com/users/megusasuke0/followers","following_url":"https://api.github.com/users/megusasuke0/following{/other_user}","gists_url":"https://api.github.com/users/megusasuke0/gists{/gist_id}","starred_url":"https://api.github.com/users/megusasuke0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/megusasuke0/subscriptions","organizations_url":"https://api.github.com/users/megusasuke0/orgs","repos_url":"https://api.github.com/users/megusasuke0/repos","events_url":"https://api.github.com/users/megusasuke0/events{/privacy}","received_events_url":"https://api.github.com/users/megusasuke0/received_events","type":"User","site_admin":false},"html_url":"https://github.com/megusasuke0/frontendhandson","description":"Created with StackBlitz ⚡️","fork":false,"url":"https://api.github.com/repos/megusasuke0/frontendhandson","forks_url":"https://api.github.com/repos/megusasuke0/frontendhandson/forks","keys_url":"https://api.github.com/repos/megusasuke0/frontendhandson/keys{/key_id}","collaborators_url":"https://api.github.com/repos/megusasuke0/frontendhandson/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/megusasuke0/frontendhandson/teams","hooks_url":"https://api.github.com/repos/megusasuke0/frontendhandson/hooks","issue_events_url":"https://api.github.com/repos/megusasuke0/frontendhandson/issues/events{/number}","events_url":"https://api.github.com/repos/megusasuke0/frontendhandson/events","assignees_url":"https://api.github.com/repos/megusasuke0/frontendhandson/assignees{/user}","branches_url":"https://api.github.com/repos/megusasuke0/frontendhandson/branches{/branch}","tags_url":"https://api.github.com/repos/megusasuke0/frontendhandson/tags","blobs_url":"https://api.github.com/repos/megusasuke0/frontendhandson/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/megusasuke0/frontendhandson/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/megusasuke0/frontendhandson/git/refs{/sha}","trees_url":"https://api.github.com/repos/megusasuke0/frontendhandson/git/trees{/sha}","statuses_url":"https://api.github.com/repos/megusasuke0/frontendhandson/statuses/{sha}","languages_url":"https://api.github.com/repos/megusasuke0/frontendhandson/languages","stargazers_url":"https://api.github.com/repos/megusasuke0/frontendhandson/stargazers","contributors_url":"https://api.github.com/repos/megusasuke0/frontendhandson/contributors","subscribers_url":"https://api.github.com/repos/megusasuke0/frontendhandson/subscribers","subscription_url":"https://api.github.com/repos/megusasuke0/frontendhandson/subscription","commits_url":"https://api.github.com/repos/megusasuke0/frontendhandson/commits{/sha}","git_commits_url":"https://api.github.com/repos/megusasuke0/frontendhandson/git/commits{/sha}","comments_url":"https://api.github.com/repos/megusasuke0/frontendhandson/comments{/number}","issue_comment_url":"https://api.github.com/repos/megusasuke0/frontendhandson/issues/comments{/number}","contents_url":"https://api.github.com/repos/megusasuke0/frontendhandson/contents/{+path}","compare_url":"https://api.github.com/repos/megusasuke0/frontendhandson/compare/{base}...{head}","merges_url":"https://api.github.com/repos/megusasuke0/frontendhandson/merges","archive_url":"https://api.github.com/repos/megusasuke0/frontendhandson/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/megusasuke0/frontendhandson/downloads","issues_url":"https://api.github.com/repos/megusasuke0/frontendhandson/issues{/number}","pulls_url":"https://api.github.com/repos/megusasuke0/frontendhandson/pulls{/number}","milestones_url":"https://api.github.com/repos/megusasuke0/frontendhandson/milestones{/number}","notifications_url":"https://api.github.com/repos/megusasuke0/frontendhandson/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/megusasuke0/frontendhandson/labels{/name}","releases_url":"https://api.github.com/repos/megusasuke0/frontendhandson/releases{/id}","deployments_url":"https://api.github.com/repos/megusasuke0/frontendhandson/deployments","created_at":"2023-12-31T05:41:42Z","updated_at":"2023-12-31T05:41:49Z","pushed_at":"2024-01-01T14:56:47Z","git_url":"git://github.com/megusasuke0/frontendhandson.git","ssh_url":"git@github.com:megusasuke0/frontendhandson.git","clone_url":"https://github.com/megusasuke0/frontendhandson.git","svn_url":"https://github.com/megusasuke0/frontendhandson","homepage":"https://stackblitz.com/edit/web-platform-kr2hi6","size":4,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":null,"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":1,"watchers":0,"default_branch":"main"}},"base":{"label":"megusasuke0:main","ref":"main","sha":"8ab47b5551ab631cfc429b88eafa6b31b5b73009","user":{"login":"megusasuke0","id":116707505,"node_id":"U_kgDOBvTQsQ","avatar_url":"https://avatars.githubusercontent.com/u/116707505?v=4","gravatar_id":"","url":"https://api.github.com/users/megusasuke0","html_url":"https://github.com/megusasuke0","followers_url":"https://api.github.com/users/megusasuke0/followers","following_url":"https://api.github.com/users/megusasuke0/following{/other_user}","gists_url":"https://api.github.com/users/megusasuke0/gists{/gist_id}","starred_url":"https://api.github.com/users/megusasuke0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/megusasuke0/subscriptions","organizations_url":"https://api.github.com/users/megusasuke0/orgs","repos_url":"https://api.github.com/users/megusasuke0/repos","events_url":"https://api.github.com/users/megusasuke0/events{/privacy}","received_events_url":"https://api.github.com/users/megusasuke0/received_events","type":"User","site_admin":false},"repo":{"id":737461382,"node_id":"R_kgDOK_TEhg","name":"frontendhandson","full_name":"megusasuke0/frontendhandson","private":false,"owner":{"login":"megusasuke0","id":116707505,"node_id":"U_kgDOBvTQsQ","avatar_url":"https://avatars.githubusercontent.com/u/116707505?v=4","gravatar_id":"","url":"https://api.github.com/users/megusasuke0","html_url":"https://github.com/megusasuke0","followers_url":"https://api.github.com/users/megusasuke0/followers","following_url":"https://api.github.com/users/megusasuke0/following{/other_user}","gists_url":"https://api.github.com/users/megusasuke0/gists{/gist_id}","starred_url":"https://api.github.com/users/megusasuke0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/megusasuke0/subscriptions","organizations_url":"https://api.github.com/users/megusasuke0/orgs","repos_url":"https://api.github.com/users/megusasuke0/repos","events_url":"https://api.github.com/users/megusasuke0/events{/privacy}","received_events_url":"https://api.github.com/users/megusasuke0/received_events","type":"User","site_admin":false},"html_url":"https://github.com/megusasuke0/frontendhandson","description":"Created with StackBlitz ⚡️","fork":false,"url":"https://api.github.com/repos/megusasuke0/frontendhandson","forks_url":"https://api.github.com/repos/megusasuke0/frontendhandson/forks","keys_url":"https://api.github.com/repos/megusasuke0/frontendhandson/keys{/key_id}","collaborators_url":"https://api.github.com/repos/megusasuke0/frontendhandson/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/megusasuke0/frontendhandson/teams","hooks_url":"https://api.github.com/repos/megusasuke0/frontendhandson/hooks","issue_events_url":"https://api.github.com/repos/megusasuke0/frontendhandson/issues/events{/number}","events_url":"https://api.github.com/repos/megusasuke0/frontendhandson/events","assignees_url":"https://api.github.com/repos/megusasuke0/frontendhandson/assignees{/user}","branches_url":"https://api.github.com/repos/megusasuke0/frontendhandson/branches{/branch}","tags_url":"https://api.github.com/repos/megusasuke0/frontendhandson/tags","blobs_url":"https://api.github.com/repos/megusasuke0/frontendhandson/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/megusasuke0/frontendhandson/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/megusasuke0/frontendhandson/git/refs{/sha}","trees_url":"https://api.github.com/repos/megusasuke0/frontendhandson/git/trees{/sha}","statuses_url":"https://api.github.com/repos/megusasuke0/frontendhandson/statuses/{sha}","languages_url":"https://api.github.com/repos/megusasuke0/frontendhandson/languages","stargazers_url":"https://api.github.com/repos/megusasuke0/frontendhandson/stargazers","contributors_url":"https://api.github.com/repos/megusasuke0/frontendhandson/contributors","subscribers_url":"https://api.github.com/repos/megusasuke0/frontendhandson/subscribers","subscription_url":"https://api.github.com/repos/megusasuke0/frontendhandson/subscription","commits_url":"https://api.github.com/repos/megusasuke0/frontendhandson/commits{/sha}","git_commits_url":"https://api.github.com/repos/megusasuke0/frontendhandson/git/commits{/sha}","comments_url":"https://api.github.com/repos/megusasuke0/frontendhandson/comments{/number}","issue_comment_url":"https://api.github.com/repos/megusasuke0/frontendhandson/issues/comments{/number}","contents_url":"https://api.github.com/repos/megusasuke0/frontendhandson/contents/{+path}","compare_url":"https://api.github.com/repos/megusasuke0/frontendhandson/compare/{base}...{head}","merges_url":"https://api.github.com/repos/megusasuke0/frontendhandson/merges","archive_url":"https://api.github.com/repos/megusasuke0/frontendhandson/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/megusasuke0/frontendhandson/downloads","issues_url":"https://api.github.com/repos/megusasuke0/frontendhandson/issues{/number}","pulls_url":"https://api.github.com/repos/megusasuke0/frontendhandson/pulls{/number}","milestones_url":"https://api.github.com/repos/megusasuke0/frontendhandson/milestones{/number}","notifications_url":"https://api.github.com/repos/megusasuke0/frontendhandson/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/megusasuke0/frontendhandson/labels{/name}","releases_url":"https://api.github.com/repos/megusasuke0/frontendhandson/releases{/id}","deployments_url":"https://api.github.com/repos/megusasuke0/frontendhandson/deployments","created_at":"2023-12-31T05:41:42Z","updated_at":"2023-12-31T05:41:49Z","pushed_at":"2024-01-01T14:56:47Z","git_url":"git://github.com/megusasuke0/frontendhandson.git","ssh_url":"git@github.com:megusasuke0/frontendhandson.git","clone_url":"https://github.com/megusasuke0/frontendhandson.git","svn_url":"https://github.com/megusasuke0/frontendhandson","homepage":"https://stackblitz.com/edit/web-platform-kr2hi6","size":4,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":null,"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":1,"watchers":0,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/megusasuke0/frontendhandson/pulls/1"},"html":{"href":"https://github.com/megusasuke0/frontendhandson/pull/1"},"issue":{"href":"https://api.github.com/repos/megusasuke0/frontendhandson/issues/1"},"comments":{"href":"https://api.github.com/repos/megusasuke0/frontendhandson/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/megusasuke0/frontendhandson/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/megusasuke0/frontendhandson/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/megusasuke0/frontendhandson/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/megusasuke0/frontendhandson/statuses/d1cd14bfa81aaa8d39ce0a8fd4d90cb7be53f627"}},"author_association":"OWNER","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-01-01T15:00:00Z"} +{"id":"34502641394","type":"PushEvent","actor":{"id":155086649,"login":"dim12512a","display_login":"dim12512a","gravatar_id":"","url":"https://api.github.com/users/dim12512a","avatar_url":"https://avatars.githubusercontent.com/u/155086649?"},"repo":{"id":737073774,"name":"dim12512a/Repo6","url":"https://api.github.com/repos/dim12512a/Repo6"},"payload":{"repository_id":737073774,"push_id":16466254509,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"ecca430b2e030a19a8803cfed3df318521a68509","before":"aa1bdba02efb57b7606de73f4937d7605c8fa51f","commits":[{"sha":"ecca430b2e030a19a8803cfed3df318521a68509","author":{"email":"you@example.com","name":"Your Name"},"message":"Empty Commit","distinct":true,"url":"https://api.github.com/repos/dim12512a/Repo6/commits/ecca430b2e030a19a8803cfed3df318521a68509"}]},"public":true,"created_at":"2024-01-01T15:00:00Z"} +{"id":"34502641400","type":"ForkEvent","actor":{"id":51039409,"login":"Shadowxiaomo","display_login":"Shadowxiaomo","gravatar_id":"","url":"https://api.github.com/users/Shadowxiaomo","avatar_url":"https://avatars.githubusercontent.com/u/51039409?"},"repo":{"id":209353301,"name":"kp7742/MemDumper","url":"https://api.github.com/repos/kp7742/MemDumper"},"payload":{"forkee":{"id":737802479,"node_id":"R_kgDOK_n47w","name":"MemDumper","full_name":"Shadowxiaomo/MemDumper","private":false,"owner":{"login":"Shadowxiaomo","id":51039409,"node_id":"MDQ6VXNlcjUxMDM5NDA5","avatar_url":"https://avatars.githubusercontent.com/u/51039409?v=4","gravatar_id":"","url":"https://api.github.com/users/Shadowxiaomo","html_url":"https://github.com/Shadowxiaomo","followers_url":"https://api.github.com/users/Shadowxiaomo/followers","following_url":"https://api.github.com/users/Shadowxiaomo/following{/other_user}","gists_url":"https://api.github.com/users/Shadowxiaomo/gists{/gist_id}","starred_url":"https://api.github.com/users/Shadowxiaomo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Shadowxiaomo/subscriptions","organizations_url":"https://api.github.com/users/Shadowxiaomo/orgs","repos_url":"https://api.github.com/users/Shadowxiaomo/repos","events_url":"https://api.github.com/users/Shadowxiaomo/events{/privacy}","received_events_url":"https://api.github.com/users/Shadowxiaomo/received_events","type":"User","site_admin":false},"html_url":"https://github.com/Shadowxiaomo/MemDumper","description":"Dump Memory of Process in Android","fork":true,"url":"https://api.github.com/repos/Shadowxiaomo/MemDumper","forks_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/forks","keys_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/teams","hooks_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/hooks","issue_events_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/issues/events{/number}","events_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/events","assignees_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/assignees{/user}","branches_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/branches{/branch}","tags_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/tags","blobs_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/git/refs{/sha}","trees_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/statuses/{sha}","languages_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/languages","stargazers_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/stargazers","contributors_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/contributors","subscribers_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/subscribers","subscription_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/subscription","commits_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/commits{/sha}","git_commits_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/git/commits{/sha}","comments_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/comments{/number}","issue_comment_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/issues/comments{/number}","contents_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/contents/{+path}","compare_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/merges","archive_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/downloads","issues_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/issues{/number}","pulls_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/pulls{/number}","milestones_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/milestones{/number}","notifications_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/labels{/name}","releases_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/releases{/id}","deployments_url":"https://api.github.com/repos/Shadowxiaomo/MemDumper/deployments","created_at":"2024-01-01T14:59:37Z","updated_at":"2024-01-01T14:59:37Z","pushed_at":"2021-03-30T22:43:13Z","git_url":"git://github.com/Shadowxiaomo/MemDumper.git","ssh_url":"git@github.com:Shadowxiaomo/MemDumper.git","clone_url":"https://github.com/Shadowxiaomo/MemDumper.git","svn_url":"https://github.com/Shadowxiaomo/MemDumper","homepage":"","size":1692,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":null,"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"main","public":true}},"public":true,"created_at":"2024-01-01T15:00:00Z"} +{"id":"34502641401","type":"PushEvent","actor":{"id":68572913,"login":"Jinyeong1611","display_login":"Jinyeong1611","gravatar_id":"","url":"https://api.github.com/users/Jinyeong1611","avatar_url":"https://avatars.githubusercontent.com/u/68572913?"},"repo":{"id":737797611,"name":"Jinyeong1611/pacman","url":"https://api.github.com/repos/Jinyeong1611/pacman"},"payload":{"repository_id":737797611,"push_id":16466254459,"size":7,"distinct_size":7,"ref":"refs/heads/main","head":"eff7b1956dd12bc392b8ca63c595a56949066369","before":"5c6b2e8346450071e242a46fdfab3246a83ddeb5","commits":[{"sha":"a91acbb43cfde07b162d619e6c4eed39c3a9ab7e","author":{"email":"ins1500@naver.com","name":"FastTurtle"},"message":"방향값 추가","distinct":true,"url":"https://api.github.com/repos/Jinyeong1611/pacman/commits/a91acbb43cfde07b162d619e6c4eed39c3a9ab7e"},{"sha":"d55284a7b2a62ead107f6d6a6d9bd7ad89cb17f2","author":{"email":"ins1500@naver.com","name":"FastTurtle"},"message":"direction 필드 추가 moveProcess 메서드 생성","distinct":true,"url":"https://api.github.com/repos/Jinyeong1611/pacman/commits/d55284a7b2a62ead107f6d6a6d9bd7ad89cb17f2"},{"sha":"08ad1dddef61cb29b3e779ae849dc448fdfac6dd","author":{"email":"ins1500@naver.com","name":"FastTurtle"},"message":"moveProcess 메서드 추가","distinct":true,"url":"https://api.github.com/repos/Jinyeong1611/pacman/commits/08ad1dddef61cb29b3e779ae849dc448fdfac6dd"},{"sha":"740fa68d76d587aeb99ae5d4e6bd9d50bf3b482a","author":{"email":"ins1500@naver.com","name":"FastTurtle"},"message":"moveForward 생성","distinct":true,"url":"https://api.github.com/repos/Jinyeong1611/pacman/commits/740fa68d76d587aeb99ae5d4e6bd9d50bf3b482a"},{"sha":"a9bf0b68af631579f66d52f39789664b81f1a21a","author":{"email":"ins1500@naver.com","name":"FastTurtle"},"message":"moveBackward 생성","distinct":true,"url":"https://api.github.com/repos/Jinyeong1611/pacman/commits/a9bf0b68af631579f66d52f39789664b81f1a21a"},{"sha":"2c2673461b0e3daa6fe6be419f8b8fc363744181","author":{"email":"ins1500@naver.com","name":"FastTurtle"},"message":"getMapX, getMapY, getMapXRightSide, getMapYRightSide 메서드 추가","distinct":true,"url":"https://api.github.com/repos/Jinyeong1611/pacman/commits/2c2673461b0e3daa6fe6be419f8b8fc363744181"},{"sha":"eff7b1956dd12bc392b8ca63c595a56949066369","author":{"email":"ins1500@naver.com","name":"FastTurtle"},"message":"코딩 진행현황 추가","distinct":true,"url":"https://api.github.com/repos/Jinyeong1611/pacman/commits/eff7b1956dd12bc392b8ca63c595a56949066369"}]},"public":true,"created_at":"2024-01-01T15:00:00Z"} +{"id":"34502641404","type":"PullRequestEvent","actor":{"id":49699333,"login":"dependabot[bot]","display_login":"dependabot","gravatar_id":"","url":"https://api.github.com/users/dependabot[bot]","avatar_url":"https://avatars.githubusercontent.com/u/49699333?"},"repo":{"id":216169746,"name":"DNNCommunity/dnn-elements","url":"https://api.github.com/repos/DNNCommunity/dnn-elements"},"payload":{"action":"closed","number":911,"pull_request":{"url":"https://api.github.com/repos/DNNCommunity/dnn-elements/pulls/911","id":1625849822,"node_id":"PR_kwDODOJ9Es5g6H_e","html_url":"https://github.com/DNNCommunity/dnn-elements/pull/911","diff_url":"https://github.com/DNNCommunity/dnn-elements/pull/911.diff","patch_url":"https://github.com/DNNCommunity/dnn-elements/pull/911.patch","issue_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/issues/911","number":911,"state":"closed","locked":false,"title":"Bump @storybook/addon-a11y from 7.5.3 to 7.6.3","user":{"login":"dependabot[bot]","id":49699333,"node_id":"MDM6Qm90NDk2OTkzMzM=","avatar_url":"https://avatars.githubusercontent.com/in/29110?v=4","gravatar_id":"","url":"https://api.github.com/users/dependabot%5Bbot%5D","html_url":"https://github.com/apps/dependabot","followers_url":"https://api.github.com/users/dependabot%5Bbot%5D/followers","following_url":"https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dependabot%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/dependabot%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/dependabot%5Bbot%5D/repos","events_url":"https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/dependabot%5Bbot%5D/received_events","type":"Bot","site_admin":false},"body":"Bumps [@storybook/addon-a11y](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y) from 7.5.3 to 7.6.3.\n<details>\n<summary>Release notes</summary>\n<p><em>Sourced from <a href=\"https://github.com/storybookjs/storybook/releases\"><code>@storybook/addon-a11y</code>'s releases</a>.</em></p>\n<blockquote>\n<h2>v7.6.3</h2>\n<h2>7.6.3</h2>\n<ul>\n<li>Next.js: Fix next/font/local usage in babel mode - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/25045\">#25045</a>, thanks <a href=\"https://github.com/valentinpalkovic\"><code>@valentinpalkovic</code></a>!</li>\n</ul>\n<h2>v7.6.2</h2>\n<h2>7.6.2</h2>\n<ul>\n<li>CLI: Improve dependency metadata detection in storybook doctor - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/25037\">#25037</a>, thanks <a href=\"https://github.com/yannbf\"><code>@yannbf</code></a>!</li>\n<li>React-Docgen: Make error-handling more gentle - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/25055\">#25055</a>, thanks <a href=\"https://github.com/valentinpalkovic\"><code>@valentinpalkovic</code></a>!</li>\n</ul>\n<h2>v7.6.1</h2>\n<h2>7.6.1</h2>\n<ul>\n<li>Next.js: Fix AppRouterProvider usage - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/25032\">#25032</a>, thanks <a href=\"https://github.com/valentinpalkovic\"><code>@valentinpalkovic</code></a>!</li>\n<li>SvelteKit: Fix HMR not working - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/25031\">#25031</a>, thanks <a href=\"https://github.com/JReinhold\"><code>@JReinhold</code></a>!</li>\n<li>Test: Downgrade <code>@testing-library/user-event</code> to 14.3.0 - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/25004\">#25004</a>, thanks <a href=\"https://github.com/kasperpeulen\"><code>@kasperpeulen</code></a>!</li>\n<li>Webpack: Fix exclude regex in react-docgen-loader - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/25030\">#25030</a>, thanks <a href=\"https://github.com/valentinpalkovic\"><code>@valentinpalkovic</code></a>!</li>\n</ul>\n<h2>v7.6.0</h2>\n<h2>7.6.0</h2>\n<p>Storybook 7.6 is here with increased performance and much more!</p>\n<ul>\n<li>🔥 Improved SWC support</li>\n<li>🧪 New test utilities and fast build mode</li>\n<li>🔼 NextJS SWC + avif support & fixes</li>\n<li>🤡 SvelteKit page and navigation mocking</li>\n<li>⚛️ React-docgen upgrade</li>\n<li>🎨 Controls a11y, background theming, and viewports</li>\n<li>🩺 CLI: The doctor is in!</li>\n<li>🚫 Addons: Remove React as a peer dependency</li>\n<li>🪦 Storyshots and Vue2 deprecated</li>\n</ul>\n<p>Check out the blog post for more information: <a href=\"https://storybook.js.org/blog/storybook-7-6/\">https://storybook.js.org/blog/storybook-7-6/</a></p>\n<!-- raw HTML omitted -->\n<ul>\n<li>Actions: Attach spies on actions across stories when defined in meta - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24451\">#24451</a>, thanks <a href=\"https://github.com/kasperpeulen\"><code>@kasperpeulen</code></a>!</li>\n<li>Actions: Fix <code>@storybook/core-events/preview-errors</code> dependency missing for Yarn PnP - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24973\">#24973</a>, thanks <a href=\"https://github.com/JReinhold\"><code>@JReinhold</code></a>!</li>\n<li>Actions: Fix missing crypto module crashing React Native - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24546\">#24546</a>, thanks <a href=\"https://github.com/dannyhw\"><code>@dannyhw</code></a>!</li>\n<li>Actions: Warn on implicit actions - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24856\">#24856</a>, thanks <a href=\"https://github.com/kasperpeulen\"><code>@kasperpeulen</code></a>!</li>\n<li>Addon A11y: Avoid CSP issue - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24477\">#24477</a>, thanks <a href=\"https://github.com/Marklb\"><code>@Marklb</code></a>!</li>\n<li>Addon: Move Visual Test addon to the code directory - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24771\">#24771</a>, thanks <a href=\"https://github.com/cdedreuille\"><code>@cdedreuille</code></a>!</li>\n<li>Addons, core: Make <code>react</code> and Storybook packages <code>devDependencies</code> where possible - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24676\">#24676</a>, thanks <a href=\"https://github.com/JReinhold\"><code>@JReinhold</code></a>!</li>\n<li>Addons, core: Make <code>react</code> and Storybook packages <code>devDependencies</code> where possible - ATTEMPT 2 - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24834\">#24834</a>, thanks <a href=\"https://github.com/JReinhold\"><code>@JReinhold</code></a>!</li>\n<li>Angular: Add source-map option to builder - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24466\">#24466</a>, thanks <a href=\"https://github.com/valentinpalkovic\"><code>@valentinpalkovic</code></a>!</li>\n</ul>\n<!-- raw HTML omitted -->\n</blockquote>\n<p>... (truncated)</p>\n</details>\n<details>\n<summary>Changelog</summary>\n<p><em>Sourced from <a href=\"https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md\"><code>@storybook/addon-a11y</code>'s changelog</a>.</em></p>\n<blockquote>\n<h2>7.6.3</h2>\n<ul>\n<li>Next.js: Fix next/font/local usage in babel mode - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/25045\">#25045</a>, thanks <a href=\"https://github.com/valentinpalkovic\"><code>@valentinpalkovic</code></a>!</li>\n</ul>\n<h2>7.6.2</h2>\n<ul>\n<li>CLI: Improve dependency metadata detection in storybook doctor - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/25037\">#25037</a>, thanks <a href=\"https://github.com/yannbf\"><code>@yannbf</code></a>!</li>\n<li>React-Docgen: Make error-handling more gentle - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/25055\">#25055</a>, thanks <a href=\"https://github.com/valentinpalkovic\"><code>@valentinpalkovic</code></a>!</li>\n</ul>\n<h2>7.6.1</h2>\n<ul>\n<li>Next.js: Fix AppRouterProvider usage - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/25032\">#25032</a>, thanks <a href=\"https://github.com/valentinpalkovic\"><code>@valentinpalkovic</code></a>!</li>\n<li>SvelteKit: Fix HMR not working - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/25031\">#25031</a>, thanks <a href=\"https://github.com/JReinhold\"><code>@JReinhold</code></a>!</li>\n<li>Test: Downgrade <code>@testing-library/user-event</code> to 14.3.0 - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/25004\">#25004</a>, thanks <a href=\"https://github.com/kasperpeulen\"><code>@kasperpeulen</code></a>!</li>\n<li>Webpack: Fix exclude regex in react-docgen-loader - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/25030\">#25030</a>, thanks <a href=\"https://github.com/valentinpalkovic\"><code>@valentinpalkovic</code></a>!</li>\n</ul>\n<h2>7.6.0</h2>\n<p>Storybook 7.6 is here with increased performance and much more!</p>\n<ul>\n<li>🔥 Improved SWC support</li>\n<li>🧪 New test utilities and fast build mode</li>\n<li>🔼 NextJS SWC + avif support & fixes</li>\n<li>🤡 SvelteKit page and navigation mocking</li>\n<li>⚛️ React-docgen upgrade</li>\n<li>🎨 Controls a11y, background theming, and viewports</li>\n<li>🩺 CLI: The doctor is in!</li>\n<li>🚫 Addons: Remove React as a peer dependency</li>\n<li>🪦 Storyshots and Vue2 deprecated</li>\n</ul>\n<!-- raw HTML omitted -->\n<ul>\n<li>Actions: Attach spies on actions across stories when defined in meta - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24451\">#24451</a>, thanks <a href=\"https://github.com/kasperpeulen\"><code>@kasperpeulen</code></a>!</li>\n<li>Actions: Fix <code>@storybook/core-events/preview-errors</code> dependency missing for Yarn PnP - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24973\">#24973</a>, thanks <a href=\"https://github.com/JReinhold\"><code>@JReinhold</code></a>!</li>\n<li>Actions: Fix missing crypto module crashing React Native - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24546\">#24546</a>, thanks <a href=\"https://github.com/dannyhw\"><code>@dannyhw</code></a>!</li>\n<li>Actions: Warn on implicit actions - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24856\">#24856</a>, thanks <a href=\"https://github.com/kasperpeulen\"><code>@kasperpeulen</code></a>!</li>\n<li>Addon A11y: Avoid CSP issue - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24477\">#24477</a>, thanks <a href=\"https://github.com/Marklb\"><code>@Marklb</code></a>!</li>\n<li>Addon: Move Visual Test addon to the code directory - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24771\">#24771</a>, thanks <a href=\"https://github.com/cdedreuille\"><code>@cdedreuille</code></a>!</li>\n<li>Addons, core: Make <code>react</code> and Storybook packages <code>devDependencies</code> where possible - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24676\">#24676</a>, thanks <a href=\"https://github.com/JReinhold\"><code>@JReinhold</code></a>!</li>\n<li>Addons, core: Make <code>react</code> and Storybook packages <code>devDependencies</code> where possible - ATTEMPT 2 - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24834\">#24834</a>, thanks <a href=\"https://github.com/JReinhold\"><code>@JReinhold</code></a>!</li>\n<li>Angular: Add source-map option to builder - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24466\">#24466</a>, thanks <a href=\"https://github.com/valentinpalkovic\"><code>@valentinpalkovic</code></a>!</li>\n<li>Angular: Handle nested module metadata - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24798\">#24798</a>, thanks <a href=\"https://github.com/valentinpalkovic\"><code>@valentinpalkovic</code></a>!</li>\n<li>Angular: Include object configured styles - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24768\">#24768</a>, thanks <a href=\"https://github.com/valentinpalkovic\"><code>@valentinpalkovic</code></a>!</li>\n<li>Babel: Update all @babel/* dependencies - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24610\">#24610</a>, thanks <a href=\"https://github.com/valentinpalkovic\"><code>@valentinpalkovic</code></a>!</li>\n<li>CLI: Add "doctor" command - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/22236\">#22236</a>, thanks <a href=\"https://github.com/yannbf\"><code>@yannbf</code></a>!</li>\n<li>CLI: Add <code>@storybook/addon-designs</code> to non-core list - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24507\">#24507</a>, thanks <a href=\"https://github.com/yannbf\"><code>@yannbf</code></a>!</li>\n<li>CLI: Ensure errors with opening the browser are caught - <a href=\"https://redirect.github.com/storybookjs/storybook/pull/24668\">#24668</a>, thanks <a href=\"https://github.com/xueyawei\"><code>@xueyawei</code></a>!</li>\n</ul>\n<!-- raw HTML omitted -->\n</blockquote>\n<p>... (truncated)</p>\n</details>\n<details>\n<summary>Commits</summary>\n<ul>\n<li><a href=\"https://github.com/storybookjs/storybook/commit/afc4c2f4cfc23739b5086a5294eb52e8706d0925\"><code>afc4c2f</code></a> Bump version from "7.6.2" to "7.6.3" [skip ci]</li>\n<li><a href=\"https://github.com/storybookjs/storybook/commit/afc89aab2a02079838f6496f7bd2ba7577aed69b\"><code>afc89aa</code></a> Bump version from "7.6.1" to "7.6.2" [skip ci]</li>\n<li><a href=\"https://github.com/storybookjs/storybook/commit/60f9c9af345477709b1ab453046705821eb71f57\"><code>60f9c9a</code></a> Bump version from "7.6.0" to "7.6.1" [skip ci]</li>\n<li><a href=\"https://github.com/storybookjs/storybook/commit/b64214c7c02b01ed513a62eba7c3356f316de74b\"><code>b64214c</code></a> Bump version from "7.6.0-beta.2" to "7.6.0" [skip ci]</li>\n<li><a href=\"https://github.com/storybookjs/storybook/commit/b9901446e9aa393d188512d5ace39a6fe556ec9b\"><code>b990144</code></a> Bump version from "7.6.0-beta.1" to "7.6.0-beta.2" [skip ci]</li>\n<li><a href=\"https://github.com/storybookjs/storybook/commit/d82167b346b1b0b5e9f19a492cc01a18ae4f4a55\"><code>d82167b</code></a> Bump version from "7.6.0-beta.0" to "7.6.0-beta.1" [skip ci]</li>\n<li><a href=\"https://github.com/storybookjs/storybook/commit/574bb87a3231014ba49d15549de94941bd415d61\"><code>574bb87</code></a> Bump version from "7.6.0-alpha.7" to "7.6.0-beta.0" [skip ci]</li>\n<li><a href=\"https://github.com/storybookjs/storybook/commit/bffa2dbb3270e84628612e9be3a2100377cb667e\"><code>bffa2db</code></a> Bump version from "7.6.0-alpha.6" to "7.6.0-alpha.7" [skip ci]</li>\n<li><a href=\"https://github.com/storybookjs/storybook/commit/df357020e010f49e7c325942f0c891e6702527d6\"><code>df35702</code></a> Merge pull request <a href=\"https://github.com/storybookjs/storybook/tree/HEAD/code/addons/a11y/issues/24834\">#24834</a> from storybookjs/revert-24832-revert-24676-experime...</li>\n<li><a href=\"https://github.com/storybookjs/storybook/commit/f18dbe606d327057a7ee4b307fc9c47378c60138\"><code>f18dbe6</code></a> Merge branch 'next-release' into next</li>\n<li>Additional commits viewable in <a href=\"https://github.com/storybookjs/storybook/commits/v7.6.3/code/addons/a11y\">compare view</a></li>\n</ul>\n</details>\n<br />\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@storybook/addon-a11y&package-manager=npm_and_yarn&previous-version=7.5.3&new-version=7.6.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n<details>\n<summary>Dependabot commands and options</summary>\n<br />\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n</details>","created_at":"2023-12-01T14:59:59Z","updated_at":"2024-01-01T14:59:38Z","closed_at":"2024-01-01T14:59:38Z","merged_at":null,"merge_commit_sha":"91e5a7a4907bedfa2234836f1f528215b98ff6a0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":1673605716,"node_id":"MDU6TGFiZWwxNjczNjA1NzE2","url":"https://api.github.com/repos/DNNCommunity/dnn-elements/labels/dependencies","name":"dependencies","color":"0366d6","default":false,"description":"Pull requests that update a dependency file"},{"id":3968650321,"node_id":"LA_kwDODOJ9Es7sjMxR","url":"https://api.github.com/repos/DNNCommunity/dnn-elements/labels/javascript","name":"javascript","color":"168700","default":false,"description":"Pull requests that update Javascript code"}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/pulls/911/commits","review_comments_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/pulls/911/comments","review_comment_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/pulls/comments{/number}","comments_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/issues/911/comments","statuses_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/statuses/405cf37a08a0e8fc65c66efb9b6d6d42b15126e5","head":{"label":"DNNCommunity:dependabot/npm_and_yarn/storybook/addon-a11y-7.6.3","ref":"dependabot/npm_and_yarn/storybook/addon-a11y-7.6.3","sha":"405cf37a08a0e8fc65c66efb9b6d6d42b15126e5","user":{"login":"DNNCommunity","id":9216448,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkyMTY0NDg=","avatar_url":"https://avatars.githubusercontent.com/u/9216448?v=4","gravatar_id":"","url":"https://api.github.com/users/DNNCommunity","html_url":"https://github.com/DNNCommunity","followers_url":"https://api.github.com/users/DNNCommunity/followers","following_url":"https://api.github.com/users/DNNCommunity/following{/other_user}","gists_url":"https://api.github.com/users/DNNCommunity/gists{/gist_id}","starred_url":"https://api.github.com/users/DNNCommunity/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DNNCommunity/subscriptions","organizations_url":"https://api.github.com/users/DNNCommunity/orgs","repos_url":"https://api.github.com/users/DNNCommunity/repos","events_url":"https://api.github.com/users/DNNCommunity/events{/privacy}","received_events_url":"https://api.github.com/users/DNNCommunity/received_events","type":"Organization","site_admin":false},"repo":{"id":216169746,"node_id":"MDEwOlJlcG9zaXRvcnkyMTYxNjk3NDY=","name":"dnn-elements","full_name":"DNNCommunity/dnn-elements","private":false,"owner":{"login":"DNNCommunity","id":9216448,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkyMTY0NDg=","avatar_url":"https://avatars.githubusercontent.com/u/9216448?v=4","gravatar_id":"","url":"https://api.github.com/users/DNNCommunity","html_url":"https://github.com/DNNCommunity","followers_url":"https://api.github.com/users/DNNCommunity/followers","following_url":"https://api.github.com/users/DNNCommunity/following{/other_user}","gists_url":"https://api.github.com/users/DNNCommunity/gists{/gist_id}","starred_url":"https://api.github.com/users/DNNCommunity/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DNNCommunity/subscriptions","organizations_url":"https://api.github.com/users/DNNCommunity/orgs","repos_url":"https://api.github.com/users/DNNCommunity/repos","events_url":"https://api.github.com/users/DNNCommunity/events{/privacy}","received_events_url":"https://api.github.com/users/DNNCommunity/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/DNNCommunity/dnn-elements","description":"Collection of Dnn Stencil custom elements","fork":false,"url":"https://api.github.com/repos/DNNCommunity/dnn-elements","forks_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/forks","keys_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/teams","hooks_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/hooks","issue_events_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/issues/events{/number}","events_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/events","assignees_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/assignees{/user}","branches_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/branches{/branch}","tags_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/tags","blobs_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/git/refs{/sha}","trees_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/statuses/{sha}","languages_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/languages","stargazers_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/stargazers","contributors_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/contributors","subscribers_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/subscribers","subscription_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/subscription","commits_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/commits{/sha}","git_commits_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/git/commits{/sha}","comments_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/comments{/number}","issue_comment_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/issues/comments{/number}","contents_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/contents/{+path}","compare_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/merges","archive_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/downloads","issues_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/issues{/number}","pulls_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/pulls{/number}","milestones_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/milestones{/number}","notifications_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/labels{/name}","releases_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/releases{/id}","deployments_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/deployments","created_at":"2019-10-19T07:54:22Z","updated_at":"2023-11-30T08:04:56Z","pushed_at":"2024-01-01T14:59:41Z","git_url":"git://github.com/DNNCommunity/dnn-elements.git","ssh_url":"git@github.com:DNNCommunity/dnn-elements.git","clone_url":"https://github.com/DNNCommunity/dnn-elements.git","svn_url":"https://github.com/DNNCommunity/dnn-elements","homepage":"https://dnncommunity.github.io/dnn-elements/","size":28550,"stargazers_count":14,"watchers_count":14,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"has_discussions":false,"forks_count":9,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":14,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["components","custom-elements","dnn","dnncms","dotnetnuke","hacktoberfest","javascript","stenciljs","web-component","web-components","webcomponents"],"visibility":"public","forks":9,"open_issues":14,"watchers":14,"default_branch":"develop"}},"base":{"label":"DNNCommunity:develop","ref":"develop","sha":"1dcefe27151d1f9e19380f808454f6aa6afe9940","user":{"login":"DNNCommunity","id":9216448,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkyMTY0NDg=","avatar_url":"https://avatars.githubusercontent.com/u/9216448?v=4","gravatar_id":"","url":"https://api.github.com/users/DNNCommunity","html_url":"https://github.com/DNNCommunity","followers_url":"https://api.github.com/users/DNNCommunity/followers","following_url":"https://api.github.com/users/DNNCommunity/following{/other_user}","gists_url":"https://api.github.com/users/DNNCommunity/gists{/gist_id}","starred_url":"https://api.github.com/users/DNNCommunity/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DNNCommunity/subscriptions","organizations_url":"https://api.github.com/users/DNNCommunity/orgs","repos_url":"https://api.github.com/users/DNNCommunity/repos","events_url":"https://api.github.com/users/DNNCommunity/events{/privacy}","received_events_url":"https://api.github.com/users/DNNCommunity/received_events","type":"Organization","site_admin":false},"repo":{"id":216169746,"node_id":"MDEwOlJlcG9zaXRvcnkyMTYxNjk3NDY=","name":"dnn-elements","full_name":"DNNCommunity/dnn-elements","private":false,"owner":{"login":"DNNCommunity","id":9216448,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkyMTY0NDg=","avatar_url":"https://avatars.githubusercontent.com/u/9216448?v=4","gravatar_id":"","url":"https://api.github.com/users/DNNCommunity","html_url":"https://github.com/DNNCommunity","followers_url":"https://api.github.com/users/DNNCommunity/followers","following_url":"https://api.github.com/users/DNNCommunity/following{/other_user}","gists_url":"https://api.github.com/users/DNNCommunity/gists{/gist_id}","starred_url":"https://api.github.com/users/DNNCommunity/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DNNCommunity/subscriptions","organizations_url":"https://api.github.com/users/DNNCommunity/orgs","repos_url":"https://api.github.com/users/DNNCommunity/repos","events_url":"https://api.github.com/users/DNNCommunity/events{/privacy}","received_events_url":"https://api.github.com/users/DNNCommunity/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/DNNCommunity/dnn-elements","description":"Collection of Dnn Stencil custom elements","fork":false,"url":"https://api.github.com/repos/DNNCommunity/dnn-elements","forks_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/forks","keys_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/teams","hooks_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/hooks","issue_events_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/issues/events{/number}","events_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/events","assignees_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/assignees{/user}","branches_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/branches{/branch}","tags_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/tags","blobs_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/git/refs{/sha}","trees_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/statuses/{sha}","languages_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/languages","stargazers_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/stargazers","contributors_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/contributors","subscribers_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/subscribers","subscription_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/subscription","commits_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/commits{/sha}","git_commits_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/git/commits{/sha}","comments_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/comments{/number}","issue_comment_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/issues/comments{/number}","contents_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/contents/{+path}","compare_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/merges","archive_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/downloads","issues_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/issues{/number}","pulls_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/pulls{/number}","milestones_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/milestones{/number}","notifications_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/labels{/name}","releases_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/releases{/id}","deployments_url":"https://api.github.com/repos/DNNCommunity/dnn-elements/deployments","created_at":"2019-10-19T07:54:22Z","updated_at":"2023-11-30T08:04:56Z","pushed_at":"2024-01-01T14:59:41Z","git_url":"git://github.com/DNNCommunity/dnn-elements.git","ssh_url":"git@github.com:DNNCommunity/dnn-elements.git","clone_url":"https://github.com/DNNCommunity/dnn-elements.git","svn_url":"https://github.com/DNNCommunity/dnn-elements","homepage":"https://dnncommunity.github.io/dnn-elements/","size":28550,"stargazers_count":14,"watchers_count":14,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"has_discussions":false,"forks_count":9,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":14,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["components","custom-elements","dnn","dnncms","dotnetnuke","hacktoberfest","javascript","stenciljs","web-component","web-components","webcomponents"],"visibility":"public","forks":9,"open_issues":14,"watchers":14,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/DNNCommunity/dnn-elements/pulls/911"},"html":{"href":"https://github.com/DNNCommunity/dnn-elements/pull/911"},"issue":{"href":"https://api.github.com/repos/DNNCommunity/dnn-elements/issues/911"},"comments":{"href":"https://api.github.com/repos/DNNCommunity/dnn-elements/issues/911/comments"},"review_comments":{"href":"https://api.github.com/repos/DNNCommunity/dnn-elements/pulls/911/comments"},"review_comment":{"href":"https://api.github.com/repos/DNNCommunity/dnn-elements/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/DNNCommunity/dnn-elements/pulls/911/commits"},"statuses":{"href":"https://api.github.com/repos/DNNCommunity/dnn-elements/statuses/405cf37a08a0e8fc65c66efb9b6d6d42b15126e5"}},"author_association":"CONTRIBUTOR","auto_merge":null,"active_lock_reason":null,"merged":false,"mergeable":true,"rebaseable":true,"mergeable_state":"unstable","merged_by":null,"comments":1,"review_comments":0,"maintainer_can_modify":false,"commits":1,"additions":179,"deletions":228,"changed_files":1}},"public":true,"created_at":"2024-01-01T15:00:00Z","org":{"id":9216448,"login":"DNNCommunity","gravatar_id":"","url":"https://api.github.com/orgs/DNNCommunity","avatar_url":"https://avatars.githubusercontent.com/u/9216448?"}} +{"id":"34502641432","type":"PushEvent","actor":{"id":113946722,"login":"ColeMalinchock1","display_login":"ColeMalinchock1","gravatar_id":"","url":"https://api.github.com/users/ColeMalinchock1","avatar_url":"https://avatars.githubusercontent.com/u/113946722?"},"repo":{"id":713591656,"name":"ColeMalinchock1/HGT-JSON-Server","url":"https://api.github.com/repos/ColeMalinchock1/HGT-JSON-Server"},"payload":{"repository_id":713591656,"push_id":16466254508,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"6f2720260938d330303c6a7222feda7eb9797e7a","before":"ec31f7a8659f5ec9ba55275a402ac00205115a00","commits":[{"sha":"6f2720260938d330303c6a7222feda7eb9797e7a","author":{"email":"113946722+ColeMalinchock1@users.noreply.github.com","name":"Cole Malinchock"},"message":"Update backup JSON file","distinct":true,"url":"https://api.github.com/repos/ColeMalinchock1/HGT-JSON-Server/commits/6f2720260938d330303c6a7222feda7eb9797e7a"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641439","type":"PushEvent","actor":{"id":125528565,"login":"uyenlexx","display_login":"uyenlexx","gravatar_id":"","url":"https://api.github.com/users/uyenlexx","avatar_url":"https://avatars.githubusercontent.com/u/125528565?"},"repo":{"id":700946194,"name":"HoanqDucAnh/Keebie","url":"https://api.github.com/repos/HoanqDucAnh/Keebie"},"payload":{"repository_id":700946194,"push_id":16466254418,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"890bc2abcf6de09615b05b474daf8e1a5f20d3b3","before":"378e69db51a44d657e7f8c0343b9d31c7d20ae9d","commits":[{"sha":"890bc2abcf6de09615b05b474daf8e1a5f20d3b3","author":{"email":"21020672@vnu.edu.vn","name":"uyenlex"},"message":"update navbar and search","distinct":true,"url":"https://api.github.com/repos/HoanqDucAnh/Keebie/commits/890bc2abcf6de09615b05b474daf8e1a5f20d3b3"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641440","type":"DeleteEvent","actor":{"id":10810283,"login":"direwolf-github","display_login":"direwolf-github","gravatar_id":"","url":"https://api.github.com/users/direwolf-github","avatar_url":"https://avatars.githubusercontent.com/u/10810283?"},"repo":{"id":737802202,"name":"direwolf-github/ephemeral-ci-f72a7b4a","url":"https://api.github.com/repos/direwolf-github/ephemeral-ci-f72a7b4a"},"payload":{"ref":"branch-13f065df","ref_type":"branch","pusher_type":"user"},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641446","type":"PushEvent","actor":{"id":119649492,"login":"Zarakkhan-dev","display_login":"Zarakkhan-dev","gravatar_id":"","url":"https://api.github.com/users/Zarakkhan-dev","avatar_url":"https://avatars.githubusercontent.com/u/119649492?"},"repo":{"id":737711771,"name":"Zarakkhan-dev/LegalaiAssistentBackend","url":"https://api.github.com/repos/Zarakkhan-dev/LegalaiAssistentBackend"},"payload":{"repository_id":737711771,"push_id":16466254504,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"fcd8d1ddc08fc2edc59047eb71ceb546855b9168","before":"690568ba0f17cb8ba56e239f8094e429d4a10cf4","commits":[{"sha":"fcd8d1ddc08fc2edc59047eb71ceb546855b9168","author":{"email":"119649492+Zarakkhan-dev@users.noreply.github.com","name":"Zarakkhan-dev"},"message":"khtam","distinct":true,"url":"https://api.github.com/repos/Zarakkhan-dev/LegalaiAssistentBackend/commits/fcd8d1ddc08fc2edc59047eb71ceb546855b9168"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641447","type":"PushEvent","actor":{"id":155086563,"login":"appref5555ix63","display_login":"appref5555ix63","gravatar_id":"","url":"https://api.github.com/users/appref5555ix63","avatar_url":"https://avatars.githubusercontent.com/u/155086563?"},"repo":{"id":737072686,"name":"appref5555ix63/Repo2","url":"https://api.github.com/repos/appref5555ix63/Repo2"},"payload":{"repository_id":737072686,"push_id":16466254618,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"ba75f798b41ea6752299b69476c3e91be2e59f9b","before":"090039882f0e56947d3967dfb012c54bf8580509","commits":[{"sha":"ba75f798b41ea6752299b69476c3e91be2e59f9b","author":{"email":"you@example.com","name":"Your Name"},"message":"Empty Commit","distinct":true,"url":"https://api.github.com/repos/appref5555ix63/Repo2/commits/ba75f798b41ea6752299b69476c3e91be2e59f9b"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641448","type":"ForkEvent","actor":{"id":9263301,"login":"tarinisunil","display_login":"tarinisunil","gravatar_id":"","url":"https://api.github.com/users/tarinisunil","avatar_url":"https://avatars.githubusercontent.com/u/9263301?"},"repo":{"id":188525890,"name":"sahilbansal17/Get_Better_at_CP_in_2_Months","url":"https://api.github.com/repos/sahilbansal17/Get_Better_at_CP_in_2_Months"},"payload":{"forkee":{"id":737802487,"node_id":"R_kgDOK_n49w","name":"Get_Better_at_CP_in_2_Months","full_name":"tarinisunil/Get_Better_at_CP_in_2_Months","private":false,"owner":{"login":"tarinisunil","id":9263301,"node_id":"MDQ6VXNlcjkyNjMzMDE=","avatar_url":"https://avatars.githubusercontent.com/u/9263301?v=4","gravatar_id":"","url":"https://api.github.com/users/tarinisunil","html_url":"https://github.com/tarinisunil","followers_url":"https://api.github.com/users/tarinisunil/followers","following_url":"https://api.github.com/users/tarinisunil/following{/other_user}","gists_url":"https://api.github.com/users/tarinisunil/gists{/gist_id}","starred_url":"https://api.github.com/users/tarinisunil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tarinisunil/subscriptions","organizations_url":"https://api.github.com/users/tarinisunil/orgs","repos_url":"https://api.github.com/users/tarinisunil/repos","events_url":"https://api.github.com/users/tarinisunil/events{/privacy}","received_events_url":"https://api.github.com/users/tarinisunil/received_events","type":"User","site_admin":false},"html_url":"https://github.com/tarinisunil/Get_Better_at_CP_in_2_Months","description":"This contains the curriculum that I will follow to get better at Competitive Programming in 2 months.","fork":true,"url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months","forks_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/forks","keys_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/teams","hooks_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/hooks","issue_events_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/issues/events{/number}","events_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/events","assignees_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/assignees{/user}","branches_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/branches{/branch}","tags_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/tags","blobs_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/git/refs{/sha}","trees_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/statuses/{sha}","languages_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/languages","stargazers_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/stargazers","contributors_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/contributors","subscribers_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/subscribers","subscription_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/subscription","commits_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/commits{/sha}","git_commits_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/git/commits{/sha}","comments_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/comments{/number}","issue_comment_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/issues/comments{/number}","contents_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/contents/{+path}","compare_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/merges","archive_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/downloads","issues_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/issues{/number}","pulls_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/pulls{/number}","milestones_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/milestones{/number}","notifications_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/labels{/name}","releases_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/releases{/id}","deployments_url":"https://api.github.com/repos/tarinisunil/Get_Better_at_CP_in_2_Months/deployments","created_at":"2024-01-01T14:59:39Z","updated_at":"2024-01-01T14:59:39Z","pushed_at":"2023-08-27T10:12:01Z","git_url":"git://github.com/tarinisunil/Get_Better_at_CP_in_2_Months.git","ssh_url":"git@github.com:tarinisunil/Get_Better_at_CP_in_2_Months.git","clone_url":"https://github.com/tarinisunil/Get_Better_at_CP_in_2_Months.git","svn_url":"https://github.com/tarinisunil/Get_Better_at_CP_in_2_Months","homepage":"","size":53,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":null,"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"main","public":true}},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641452","type":"ForkEvent","actor":{"id":12108942,"login":"jackblack369","display_login":"jackblack369","gravatar_id":"","url":"https://api.github.com/users/jackblack369","avatar_url":"https://avatars.githubusercontent.com/u/12108942?"},"repo":{"id":633262635,"name":"danswer-ai/danswer","url":"https://api.github.com/repos/danswer-ai/danswer"},"payload":{"forkee":{"id":737802480,"node_id":"R_kgDOK_n48A","name":"danswer","full_name":"jackblack369/danswer","private":false,"owner":{"login":"jackblack369","id":12108942,"node_id":"MDQ6VXNlcjEyMTA4OTQy","avatar_url":"https://avatars.githubusercontent.com/u/12108942?v=4","gravatar_id":"","url":"https://api.github.com/users/jackblack369","html_url":"https://github.com/jackblack369","followers_url":"https://api.github.com/users/jackblack369/followers","following_url":"https://api.github.com/users/jackblack369/following{/other_user}","gists_url":"https://api.github.com/users/jackblack369/gists{/gist_id}","starred_url":"https://api.github.com/users/jackblack369/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jackblack369/subscriptions","organizations_url":"https://api.github.com/users/jackblack369/orgs","repos_url":"https://api.github.com/users/jackblack369/repos","events_url":"https://api.github.com/users/jackblack369/events{/privacy}","received_events_url":"https://api.github.com/users/jackblack369/received_events","type":"User","site_admin":false},"html_url":"https://github.com/jackblack369/danswer","description":"Ask Questions in natural language and get Answers backed by private sources. Connects to tools like Slack, GitHub, Confluence, etc.","fork":true,"url":"https://api.github.com/repos/jackblack369/danswer","forks_url":"https://api.github.com/repos/jackblack369/danswer/forks","keys_url":"https://api.github.com/repos/jackblack369/danswer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jackblack369/danswer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jackblack369/danswer/teams","hooks_url":"https://api.github.com/repos/jackblack369/danswer/hooks","issue_events_url":"https://api.github.com/repos/jackblack369/danswer/issues/events{/number}","events_url":"https://api.github.com/repos/jackblack369/danswer/events","assignees_url":"https://api.github.com/repos/jackblack369/danswer/assignees{/user}","branches_url":"https://api.github.com/repos/jackblack369/danswer/branches{/branch}","tags_url":"https://api.github.com/repos/jackblack369/danswer/tags","blobs_url":"https://api.github.com/repos/jackblack369/danswer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jackblack369/danswer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jackblack369/danswer/git/refs{/sha}","trees_url":"https://api.github.com/repos/jackblack369/danswer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jackblack369/danswer/statuses/{sha}","languages_url":"https://api.github.com/repos/jackblack369/danswer/languages","stargazers_url":"https://api.github.com/repos/jackblack369/danswer/stargazers","contributors_url":"https://api.github.com/repos/jackblack369/danswer/contributors","subscribers_url":"https://api.github.com/repos/jackblack369/danswer/subscribers","subscription_url":"https://api.github.com/repos/jackblack369/danswer/subscription","commits_url":"https://api.github.com/repos/jackblack369/danswer/commits{/sha}","git_commits_url":"https://api.github.com/repos/jackblack369/danswer/git/commits{/sha}","comments_url":"https://api.github.com/repos/jackblack369/danswer/comments{/number}","issue_comment_url":"https://api.github.com/repos/jackblack369/danswer/issues/comments{/number}","contents_url":"https://api.github.com/repos/jackblack369/danswer/contents/{+path}","compare_url":"https://api.github.com/repos/jackblack369/danswer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jackblack369/danswer/merges","archive_url":"https://api.github.com/repos/jackblack369/danswer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jackblack369/danswer/downloads","issues_url":"https://api.github.com/repos/jackblack369/danswer/issues{/number}","pulls_url":"https://api.github.com/repos/jackblack369/danswer/pulls{/number}","milestones_url":"https://api.github.com/repos/jackblack369/danswer/milestones{/number}","notifications_url":"https://api.github.com/repos/jackblack369/danswer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jackblack369/danswer/labels{/name}","releases_url":"https://api.github.com/repos/jackblack369/danswer/releases{/id}","deployments_url":"https://api.github.com/repos/jackblack369/danswer/deployments","created_at":"2024-01-01T14:59:37Z","updated_at":"2024-01-01T14:59:37Z","pushed_at":"2024-01-01T05:55:59Z","git_url":"git://github.com/jackblack369/danswer.git","ssh_url":"git@github.com:jackblack369/danswer.git","clone_url":"https://github.com/jackblack369/danswer.git","svn_url":"https://github.com/jackblack369/danswer","homepage":"https://docs.danswer.dev/","size":5028,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":null,"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"main","public":true}},"public":true,"created_at":"2024-01-01T15:00:01Z","org":{"id":131946000,"login":"danswer-ai","gravatar_id":"","url":"https://api.github.com/orgs/danswer-ai","avatar_url":"https://avatars.githubusercontent.com/u/131946000?"}} +{"id":"34502641453","type":"ForkEvent","actor":{"id":21022925,"login":"vineetp6","display_login":"vineetp6","gravatar_id":"","url":"https://api.github.com/users/vineetp6","avatar_url":"https://avatars.githubusercontent.com/u/21022925?"},"repo":{"id":1692604,"name":"jiaaro/pydub","url":"https://api.github.com/repos/jiaaro/pydub"},"payload":{"forkee":{"id":737802477,"node_id":"R_kgDOK_n47Q","name":"pydub","full_name":"vineetp6/pydub","private":false,"owner":{"login":"vineetp6","id":21022925,"node_id":"MDQ6VXNlcjIxMDIyOTI1","avatar_url":"https://avatars.githubusercontent.com/u/21022925?v=4","gravatar_id":"","url":"https://api.github.com/users/vineetp6","html_url":"https://github.com/vineetp6","followers_url":"https://api.github.com/users/vineetp6/followers","following_url":"https://api.github.com/users/vineetp6/following{/other_user}","gists_url":"https://api.github.com/users/vineetp6/gists{/gist_id}","starred_url":"https://api.github.com/users/vineetp6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vineetp6/subscriptions","organizations_url":"https://api.github.com/users/vineetp6/orgs","repos_url":"https://api.github.com/users/vineetp6/repos","events_url":"https://api.github.com/users/vineetp6/events{/privacy}","received_events_url":"https://api.github.com/users/vineetp6/received_events","type":"User","site_admin":false},"html_url":"https://github.com/vineetp6/pydub","description":"Manipulate audio with a simple and easy high level interface","fork":true,"url":"https://api.github.com/repos/vineetp6/pydub","forks_url":"https://api.github.com/repos/vineetp6/pydub/forks","keys_url":"https://api.github.com/repos/vineetp6/pydub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/vineetp6/pydub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/vineetp6/pydub/teams","hooks_url":"https://api.github.com/repos/vineetp6/pydub/hooks","issue_events_url":"https://api.github.com/repos/vineetp6/pydub/issues/events{/number}","events_url":"https://api.github.com/repos/vineetp6/pydub/events","assignees_url":"https://api.github.com/repos/vineetp6/pydub/assignees{/user}","branches_url":"https://api.github.com/repos/vineetp6/pydub/branches{/branch}","tags_url":"https://api.github.com/repos/vineetp6/pydub/tags","blobs_url":"https://api.github.com/repos/vineetp6/pydub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/vineetp6/pydub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/vineetp6/pydub/git/refs{/sha}","trees_url":"https://api.github.com/repos/vineetp6/pydub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/vineetp6/pydub/statuses/{sha}","languages_url":"https://api.github.com/repos/vineetp6/pydub/languages","stargazers_url":"https://api.github.com/repos/vineetp6/pydub/stargazers","contributors_url":"https://api.github.com/repos/vineetp6/pydub/contributors","subscribers_url":"https://api.github.com/repos/vineetp6/pydub/subscribers","subscription_url":"https://api.github.com/repos/vineetp6/pydub/subscription","commits_url":"https://api.github.com/repos/vineetp6/pydub/commits{/sha}","git_commits_url":"https://api.github.com/repos/vineetp6/pydub/git/commits{/sha}","comments_url":"https://api.github.com/repos/vineetp6/pydub/comments{/number}","issue_comment_url":"https://api.github.com/repos/vineetp6/pydub/issues/comments{/number}","contents_url":"https://api.github.com/repos/vineetp6/pydub/contents/{+path}","compare_url":"https://api.github.com/repos/vineetp6/pydub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/vineetp6/pydub/merges","archive_url":"https://api.github.com/repos/vineetp6/pydub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/vineetp6/pydub/downloads","issues_url":"https://api.github.com/repos/vineetp6/pydub/issues{/number}","pulls_url":"https://api.github.com/repos/vineetp6/pydub/pulls{/number}","milestones_url":"https://api.github.com/repos/vineetp6/pydub/milestones{/number}","notifications_url":"https://api.github.com/repos/vineetp6/pydub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/vineetp6/pydub/labels{/name}","releases_url":"https://api.github.com/repos/vineetp6/pydub/releases{/id}","deployments_url":"https://api.github.com/repos/vineetp6/pydub/deployments","created_at":"2024-01-01T14:59:37Z","updated_at":"2024-01-01T14:59:37Z","pushed_at":"2023-12-28T21:58:28Z","git_url":"git://github.com/vineetp6/pydub.git","ssh_url":"git@github.com:vineetp6/pydub.git","clone_url":"https://github.com/vineetp6/pydub.git","svn_url":"https://github.com/vineetp6/pydub","homepage":"http://pydub.com","size":36944,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":null,"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"main","public":true}},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641458","type":"PushEvent","actor":{"id":24788447,"login":"lhduc94","display_login":"lhduc94","gravatar_id":"","url":"https://api.github.com/users/lhduc94","avatar_url":"https://avatars.githubusercontent.com/u/24788447?"},"repo":{"id":367932994,"name":"lhduc94/kungfupandas","url":"https://api.github.com/repos/lhduc94/kungfupandas"},"payload":{"repository_id":367932994,"push_id":16466254433,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"b7897bd342e45af4ad6b526771d3d440ccf461bb","before":"84bc7606bdcd827aab72d2ce3e1c565d9638a218","commits":[{"sha":"b7897bd342e45af4ad6b526771d3d440ccf461bb","author":{"email":"lhduc94","name":"unknown"},"message":"push book","distinct":true,"url":"https://api.github.com/repos/lhduc94/kungfupandas/commits/b7897bd342e45af4ad6b526771d3d440ccf461bb"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641461","type":"PushEvent","actor":{"id":103212375,"login":"ranadebsaha","display_login":"ranadebsaha","gravatar_id":"","url":"https://api.github.com/users/ranadebsaha","avatar_url":"https://avatars.githubusercontent.com/u/103212375?"},"repo":{"id":726471215,"name":"ranadebsaha/DSA","url":"https://api.github.com/repos/ranadebsaha/DSA"},"payload":{"repository_id":726471215,"push_id":16466254533,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"b057143916ff05adf28db3c2f9c7d7abf85508cb","before":"7897a7fe7c72b5fa642cb1a7e6f67019129a6bdc","commits":[{"sha":"b057143916ff05adf28db3c2f9c7d7abf85508cb","author":{"email":"103212375+ranadebsaha@users.noreply.github.com","name":"Ranadeb Saha"},"message":"Add files via upload","distinct":true,"url":"https://api.github.com/repos/ranadebsaha/DSA/commits/b057143916ff05adf28db3c2f9c7d7abf85508cb"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641462","type":"PushEvent","actor":{"id":1428593,"login":"harmanpa","display_login":"harmanpa","gravatar_id":"","url":"https://api.github.com/users/harmanpa","avatar_url":"https://avatars.githubusercontent.com/u/1428593?"},"repo":{"id":202145289,"name":"harmanpa/jgeom","url":"https://api.github.com/repos/harmanpa/jgeom"},"payload":{"repository_id":202145289,"push_id":16466254498,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"21c9e75040b32283b10ab6139346c973cdc7e5ac","before":"84eebd2b4d9cb167d806ce1843ab8e262ac47aad","commits":[{"sha":"21c9e75040b32283b10ab6139346c973cdc7e5ac","author":{"email":"peter.harman@deltatheta.com","name":"Peter Harman"},"message":"Add ability for STL and DXF parsers to read from InputStream rather than just files","distinct":true,"url":"https://api.github.com/repos/harmanpa/jgeom/commits/21c9e75040b32283b10ab6139346c973cdc7e5ac"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641465","type":"PushEvent","actor":{"id":155086649,"login":"dim12512a","display_login":"dim12512a","gravatar_id":"","url":"https://api.github.com/users/dim12512a","avatar_url":"https://avatars.githubusercontent.com/u/155086649?"},"repo":{"id":737073774,"name":"dim12512a/Repo6","url":"https://api.github.com/repos/dim12512a/Repo6"},"payload":{"repository_id":737073774,"push_id":16466254578,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"858f604c8d47ebdd33ab37204d01d6416588bef6","before":"ecca430b2e030a19a8803cfed3df318521a68509","commits":[{"sha":"858f604c8d47ebdd33ab37204d01d6416588bef6","author":{"email":"you@example.com","name":"Your Name"},"message":"Empty Commit","distinct":true,"url":"https://api.github.com/repos/dim12512a/Repo6/commits/858f604c8d47ebdd33ab37204d01d6416588bef6"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641467","type":"PushEvent","actor":{"id":148675473,"login":"namson26","display_login":"namson26","gravatar_id":"","url":"https://api.github.com/users/namson26","avatar_url":"https://avatars.githubusercontent.com/u/148675473?"},"repo":{"id":736165831,"name":"namson26/Technology-Information-System","url":"https://api.github.com/repos/namson26/Technology-Information-System"},"payload":{"repository_id":736165831,"push_id":16466254596,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"55df0dc4a01496922ab060c9c1f323caf2078312","before":"cef0f3fc0d6147fa852cc5eabd377b19be600ef8","commits":[{"sha":"55df0dc4a01496922ab060c9c1f323caf2078312","author":{"email":"148675473+namson26@users.noreply.github.com","name":"muhammad naim bin abdullah"},"message":" industry talk PPG and Habib","distinct":true,"url":"https://api.github.com/repos/namson26/Technology-Information-System/commits/55df0dc4a01496922ab060c9c1f323caf2078312"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641469","type":"PushEvent","actor":{"id":153940760,"login":"mdmaid69","display_login":"mdmaid69","gravatar_id":"","url":"https://api.github.com/users/mdmaid69","avatar_url":"https://avatars.githubusercontent.com/u/153940760?"},"repo":{"id":732717980,"name":"mdmaid69/reimagined-giggle","url":"https://api.github.com/repos/mdmaid69/reimagined-giggle"},"payload":{"repository_id":732717980,"push_id":16466254352,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"dc8177f8b942a863ea4c1fb46f3cfcf773880d1b","before":"3269356e1c35a404aefeb6f4a88b0f9c46d71176","commits":[{"sha":"dc8177f8b942a863ea4c1fb46f3cfcf773880d1b","author":{"email":"robot@alexsyw.me","name":"mdmaid69"},"message":"last recover hurt off claim","distinct":true,"url":"https://api.github.com/repos/mdmaid69/reimagined-giggle/commits/dc8177f8b942a863ea4c1fb46f3cfcf773880d1b"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641472","type":"PushEvent","actor":{"id":155086649,"login":"dim12512a","display_login":"dim12512a","gravatar_id":"","url":"https://api.github.com/users/dim12512a","avatar_url":"https://avatars.githubusercontent.com/u/155086649?"},"repo":{"id":737073790,"name":"dim12512a/Repo7","url":"https://api.github.com/repos/dim12512a/Repo7"},"payload":{"repository_id":737073790,"push_id":16466254457,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"178ec29423bffaa2e5a60d52bcce0d7aa1ba51eb","before":"bf9e72eaa83e2fe0606d525c6bc9a14cd13b66b6","commits":[{"sha":"178ec29423bffaa2e5a60d52bcce0d7aa1ba51eb","author":{"email":"you@example.com","name":"Your Name"},"message":"Empty Commit","distinct":true,"url":"https://api.github.com/repos/dim12512a/Repo7/commits/178ec29423bffaa2e5a60d52bcce0d7aa1ba51eb"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641475","type":"PullRequestEvent","actor":{"id":42301553,"login":"tomgransden","display_login":"tomgransden","gravatar_id":"","url":"https://api.github.com/users/tomgransden","avatar_url":"https://avatars.githubusercontent.com/u/42301553?"},"repo":{"id":584227840,"name":"tomgransden/MyTummyHurtsApp","url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp"},"payload":{"action":"closed","number":26,"pull_request":{"url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/pulls/26","id":1661122882,"node_id":"PR_kwDOItKcAM5jArlC","html_url":"https://github.com/tomgransden/MyTummyHurtsApp/pull/26","diff_url":"https://github.com/tomgransden/MyTummyHurtsApp/pull/26.diff","patch_url":"https://github.com/tomgransden/MyTummyHurtsApp/pull/26.patch","issue_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/issues/26","number":26,"state":"closed","locked":false,"title":"Dev/tg/add firestore","user":{"login":"tomgransden","id":42301553,"node_id":"MDQ6VXNlcjQyMzAxNTUz","avatar_url":"https://avatars.githubusercontent.com/u/42301553?v=4","gravatar_id":"","url":"https://api.github.com/users/tomgransden","html_url":"https://github.com/tomgransden","followers_url":"https://api.github.com/users/tomgransden/followers","following_url":"https://api.github.com/users/tomgransden/following{/other_user}","gists_url":"https://api.github.com/users/tomgransden/gists{/gist_id}","starred_url":"https://api.github.com/users/tomgransden/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomgransden/subscriptions","organizations_url":"https://api.github.com/users/tomgransden/orgs","repos_url":"https://api.github.com/users/tomgransden/repos","events_url":"https://api.github.com/users/tomgransden/events{/privacy}","received_events_url":"https://api.github.com/users/tomgransden/received_events","type":"User","site_admin":false},"body":null,"created_at":"2024-01-01T14:57:47Z","updated_at":"2024-01-01T14:59:42Z","closed_at":"2024-01-01T14:59:40Z","merged_at":"2024-01-01T14:59:40Z","merge_commit_sha":"9ab8219d9a0dd1ae20b2df08c2ccd8ac3476ede0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/pulls/26/commits","review_comments_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/pulls/26/comments","review_comment_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/pulls/comments{/number}","comments_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/issues/26/comments","statuses_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/statuses/5fcc5cf25fab3453c37bcdefb7d6738cd19984f1","head":{"label":"tomgransden:dev/tg/add-firestore","ref":"dev/tg/add-firestore","sha":"5fcc5cf25fab3453c37bcdefb7d6738cd19984f1","user":{"login":"tomgransden","id":42301553,"node_id":"MDQ6VXNlcjQyMzAxNTUz","avatar_url":"https://avatars.githubusercontent.com/u/42301553?v=4","gravatar_id":"","url":"https://api.github.com/users/tomgransden","html_url":"https://github.com/tomgransden","followers_url":"https://api.github.com/users/tomgransden/followers","following_url":"https://api.github.com/users/tomgransden/following{/other_user}","gists_url":"https://api.github.com/users/tomgransden/gists{/gist_id}","starred_url":"https://api.github.com/users/tomgransden/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomgransden/subscriptions","organizations_url":"https://api.github.com/users/tomgransden/orgs","repos_url":"https://api.github.com/users/tomgransden/repos","events_url":"https://api.github.com/users/tomgransden/events{/privacy}","received_events_url":"https://api.github.com/users/tomgransden/received_events","type":"User","site_admin":false},"repo":{"id":584227840,"node_id":"R_kgDOItKcAA","name":"MyTummyHurtsApp","full_name":"tomgransden/MyTummyHurtsApp","private":false,"owner":{"login":"tomgransden","id":42301553,"node_id":"MDQ6VXNlcjQyMzAxNTUz","avatar_url":"https://avatars.githubusercontent.com/u/42301553?v=4","gravatar_id":"","url":"https://api.github.com/users/tomgransden","html_url":"https://github.com/tomgransden","followers_url":"https://api.github.com/users/tomgransden/followers","following_url":"https://api.github.com/users/tomgransden/following{/other_user}","gists_url":"https://api.github.com/users/tomgransden/gists{/gist_id}","starred_url":"https://api.github.com/users/tomgransden/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomgransden/subscriptions","organizations_url":"https://api.github.com/users/tomgransden/orgs","repos_url":"https://api.github.com/users/tomgransden/repos","events_url":"https://api.github.com/users/tomgransden/events{/privacy}","received_events_url":"https://api.github.com/users/tomgransden/received_events","type":"User","site_admin":false},"html_url":"https://github.com/tomgransden/MyTummyHurtsApp","description":null,"fork":false,"url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp","forks_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/forks","keys_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/teams","hooks_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/hooks","issue_events_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/issues/events{/number}","events_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/events","assignees_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/assignees{/user}","branches_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/branches{/branch}","tags_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/tags","blobs_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/git/refs{/sha}","trees_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/statuses/{sha}","languages_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/languages","stargazers_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/stargazers","contributors_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/contributors","subscribers_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/subscribers","subscription_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/subscription","commits_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/commits{/sha}","git_commits_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/git/commits{/sha}","comments_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/comments{/number}","issue_comment_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/issues/comments{/number}","contents_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/contents/{+path}","compare_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/merges","archive_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/downloads","issues_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/issues{/number}","pulls_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/pulls{/number}","milestones_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/milestones{/number}","notifications_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/labels{/name}","releases_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/releases{/id}","deployments_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/deployments","created_at":"2023-01-01T23:02:13Z","updated_at":"2023-12-31T22:21:32Z","pushed_at":"2024-01-01T14:59:40Z","git_url":"git://github.com/tomgransden/MyTummyHurtsApp.git","ssh_url":"git@github.com:tomgransden/MyTummyHurtsApp.git","clone_url":"https://github.com/tomgransden/MyTummyHurtsApp.git","svn_url":"https://github.com/tomgransden/MyTummyHurtsApp","homepage":null,"size":1291,"stargazers_count":0,"watchers_count":0,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":5,"license":null,"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":5,"watchers":0,"default_branch":"main"}},"base":{"label":"tomgransden:main","ref":"main","sha":"1985eb5eafef6430a506c07e4eabf68eb85fd759","user":{"login":"tomgransden","id":42301553,"node_id":"MDQ6VXNlcjQyMzAxNTUz","avatar_url":"https://avatars.githubusercontent.com/u/42301553?v=4","gravatar_id":"","url":"https://api.github.com/users/tomgransden","html_url":"https://github.com/tomgransden","followers_url":"https://api.github.com/users/tomgransden/followers","following_url":"https://api.github.com/users/tomgransden/following{/other_user}","gists_url":"https://api.github.com/users/tomgransden/gists{/gist_id}","starred_url":"https://api.github.com/users/tomgransden/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomgransden/subscriptions","organizations_url":"https://api.github.com/users/tomgransden/orgs","repos_url":"https://api.github.com/users/tomgransden/repos","events_url":"https://api.github.com/users/tomgransden/events{/privacy}","received_events_url":"https://api.github.com/users/tomgransden/received_events","type":"User","site_admin":false},"repo":{"id":584227840,"node_id":"R_kgDOItKcAA","name":"MyTummyHurtsApp","full_name":"tomgransden/MyTummyHurtsApp","private":false,"owner":{"login":"tomgransden","id":42301553,"node_id":"MDQ6VXNlcjQyMzAxNTUz","avatar_url":"https://avatars.githubusercontent.com/u/42301553?v=4","gravatar_id":"","url":"https://api.github.com/users/tomgransden","html_url":"https://github.com/tomgransden","followers_url":"https://api.github.com/users/tomgransden/followers","following_url":"https://api.github.com/users/tomgransden/following{/other_user}","gists_url":"https://api.github.com/users/tomgransden/gists{/gist_id}","starred_url":"https://api.github.com/users/tomgransden/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomgransden/subscriptions","organizations_url":"https://api.github.com/users/tomgransden/orgs","repos_url":"https://api.github.com/users/tomgransden/repos","events_url":"https://api.github.com/users/tomgransden/events{/privacy}","received_events_url":"https://api.github.com/users/tomgransden/received_events","type":"User","site_admin":false},"html_url":"https://github.com/tomgransden/MyTummyHurtsApp","description":null,"fork":false,"url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp","forks_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/forks","keys_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/teams","hooks_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/hooks","issue_events_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/issues/events{/number}","events_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/events","assignees_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/assignees{/user}","branches_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/branches{/branch}","tags_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/tags","blobs_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/git/refs{/sha}","trees_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/statuses/{sha}","languages_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/languages","stargazers_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/stargazers","contributors_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/contributors","subscribers_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/subscribers","subscription_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/subscription","commits_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/commits{/sha}","git_commits_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/git/commits{/sha}","comments_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/comments{/number}","issue_comment_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/issues/comments{/number}","contents_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/contents/{+path}","compare_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/merges","archive_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/downloads","issues_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/issues{/number}","pulls_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/pulls{/number}","milestones_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/milestones{/number}","notifications_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/labels{/name}","releases_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/releases{/id}","deployments_url":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/deployments","created_at":"2023-01-01T23:02:13Z","updated_at":"2023-12-31T22:21:32Z","pushed_at":"2024-01-01T14:59:40Z","git_url":"git://github.com/tomgransden/MyTummyHurtsApp.git","ssh_url":"git@github.com:tomgransden/MyTummyHurtsApp.git","clone_url":"https://github.com/tomgransden/MyTummyHurtsApp.git","svn_url":"https://github.com/tomgransden/MyTummyHurtsApp","homepage":null,"size":1291,"stargazers_count":0,"watchers_count":0,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":5,"license":null,"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":5,"watchers":0,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/pulls/26"},"html":{"href":"https://github.com/tomgransden/MyTummyHurtsApp/pull/26"},"issue":{"href":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/issues/26"},"comments":{"href":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/issues/26/comments"},"review_comments":{"href":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/pulls/26/comments"},"review_comment":{"href":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/pulls/26/commits"},"statuses":{"href":"https://api.github.com/repos/tomgransden/MyTummyHurtsApp/statuses/5fcc5cf25fab3453c37bcdefb7d6738cd19984f1"}},"author_association":"OWNER","auto_merge":null,"active_lock_reason":null,"merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"tomgransden","id":42301553,"node_id":"MDQ6VXNlcjQyMzAxNTUz","avatar_url":"https://avatars.githubusercontent.com/u/42301553?v=4","gravatar_id":"","url":"https://api.github.com/users/tomgransden","html_url":"https://github.com/tomgransden","followers_url":"https://api.github.com/users/tomgransden/followers","following_url":"https://api.github.com/users/tomgransden/following{/other_user}","gists_url":"https://api.github.com/users/tomgransden/gists{/gist_id}","starred_url":"https://api.github.com/users/tomgransden/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomgransden/subscriptions","organizations_url":"https://api.github.com/users/tomgransden/orgs","repos_url":"https://api.github.com/users/tomgransden/repos","events_url":"https://api.github.com/users/tomgransden/events{/privacy}","received_events_url":"https://api.github.com/users/tomgransden/received_events","type":"User","site_admin":false},"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":11,"additions":593,"deletions":90,"changed_files":21}},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641477","type":"PushEvent","actor":{"id":155086649,"login":"dim12512a","display_login":"dim12512a","gravatar_id":"","url":"https://api.github.com/users/dim12512a","avatar_url":"https://avatars.githubusercontent.com/u/155086649?"},"repo":{"id":737073790,"name":"dim12512a/Repo7","url":"https://api.github.com/repos/dim12512a/Repo7"},"payload":{"repository_id":737073790,"push_id":16466254565,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"821c6272cf3fcdabbc23684a542e25c1a78a1fd9","before":"178ec29423bffaa2e5a60d52bcce0d7aa1ba51eb","commits":[{"sha":"821c6272cf3fcdabbc23684a542e25c1a78a1fd9","author":{"email":"you@example.com","name":"Your Name"},"message":"Empty Commit","distinct":true,"url":"https://api.github.com/repos/dim12512a/Repo7/commits/821c6272cf3fcdabbc23684a542e25c1a78a1fd9"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641480","type":"PushEvent","actor":{"id":93431609,"login":"vedant-z","display_login":"vedant-z","gravatar_id":"","url":"https://api.github.com/users/vedant-z","avatar_url":"https://avatars.githubusercontent.com/u/93431609?"},"repo":{"id":737800788,"name":"Exp-Intro-to-GitHub-Flow-Cohort-1/series-intro-to-github-flow-vedant-z","url":"https://api.github.com/repos/Exp-Intro-to-GitHub-Flow-Cohort-1/series-intro-to-github-flow-vedant-z"},"payload":{"repository_id":737800788,"push_id":16466256123,"size":5,"distinct_size":1,"ref":"refs/heads/main","head":"f2071eee1b5250f8a5d801eb2bb25c06c15169d6","before":"2bf3a7c438e51afc4a4170fa53e029c576324c47","commits":[{"sha":"1df8ecba765e3cc1c887859d0a8f9b8cfb439c47","author":{"email":"github-actions@github.com","name":"github-actions"},"message":"Update to 2 in STEP and README.md","distinct":false,"url":"https://api.github.com/repos/Exp-Intro-to-GitHub-Flow-Cohort-1/series-intro-to-github-flow-vedant-z/commits/1df8ecba765e3cc1c887859d0a8f9b8cfb439c47"},{"sha":"4c44dd3b65a2bdd00c7f074e429721595bba6058","author":{"email":"vedantborkar1234@gmail.com","name":"Vedant Borkar"},"message":"Create PROFILE.md","distinct":false,"url":"https://api.github.com/repos/Exp-Intro-to-GitHub-Flow-Cohort-1/series-intro-to-github-flow-vedant-z/commits/4c44dd3b65a2bdd00c7f074e429721595bba6058"},{"sha":"2129e5f0f9e75975d891710c6ac9c8dc3d53d048","author":{"email":"github-actions@github.com","name":"github-actions"},"message":"Update to 3 in STEP and README.md","distinct":false,"url":"https://api.github.com/repos/Exp-Intro-to-GitHub-Flow-Cohort-1/series-intro-to-github-flow-vedant-z/commits/2129e5f0f9e75975d891710c6ac9c8dc3d53d048"},{"sha":"b53ab157f70194441d2b797723399a10bc38b75f","author":{"email":"github-actions@github.com","name":"github-actions"},"message":"Update to 4 in STEP and README.md","distinct":false,"url":"https://api.github.com/repos/Exp-Intro-to-GitHub-Flow-Cohort-1/series-intro-to-github-flow-vedant-z/commits/b53ab157f70194441d2b797723399a10bc38b75f"},{"sha":"f2071eee1b5250f8a5d801eb2bb25c06c15169d6","author":{"email":"vedantborkar1234@gmail.com","name":"Vedant Borkar"},"message":"Merge pull request #2 from Exp-Intro-to-GitHub-Flow-Cohort-1/my-first-branch\n\nAdd my first file","distinct":true,"url":"https://api.github.com/repos/Exp-Intro-to-GitHub-Flow-Cohort-1/series-intro-to-github-flow-vedant-z/commits/f2071eee1b5250f8a5d801eb2bb25c06c15169d6"}]},"public":true,"created_at":"2024-01-01T15:00:01Z","org":{"id":141875263,"login":"Exp-Intro-to-GitHub-Flow-Cohort-1","gravatar_id":"","url":"https://api.github.com/orgs/Exp-Intro-to-GitHub-Flow-Cohort-1","avatar_url":"https://avatars.githubusercontent.com/u/141875263?"}} +{"id":"34502641481","type":"WatchEvent","actor":{"id":91947853,"login":"morteza-rp","display_login":"morteza-rp","gravatar_id":"","url":"https://api.github.com/users/morteza-rp","avatar_url":"https://avatars.githubusercontent.com/u/91947853?"},"repo":{"id":737404380,"name":"MasoudKaviani/filoger_fanap_402","url":"https://api.github.com/repos/MasoudKaviani/filoger_fanap_402"},"payload":{"action":"started"},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641484","type":"PushEvent","actor":{"id":111329684,"login":"B74LABgit","display_login":"B74LABgit","gravatar_id":"","url":"https://api.github.com/users/B74LABgit","avatar_url":"https://avatars.githubusercontent.com/u/111329684?"},"repo":{"id":728366641,"name":"B74LABgit/CAM","url":"https://api.github.com/repos/B74LABgit/CAM"},"payload":{"repository_id":728366641,"push_id":16466254422,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"213cdd16a7ab268b37069370090c7f818b1a1ce9","before":"53c681fc38cfcf6e973362bbcec3da755a552f96","commits":[{"sha":"213cdd16a7ab268b37069370090c7f818b1a1ce9","author":{"email":"111329684+B74LABgit@users.noreply.github.com","name":"B74LABgit"},"message":"committing files","distinct":true,"url":"https://api.github.com/repos/B74LABgit/CAM/commits/213cdd16a7ab268b37069370090c7f818b1a1ce9"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641486","type":"PushEvent","actor":{"id":17267950,"login":"sdhz151","display_login":"sdhz151","gravatar_id":"","url":"https://api.github.com/users/sdhz151","avatar_url":"https://avatars.githubusercontent.com/u/17267950?"},"repo":{"id":402983519,"name":"sdhz153/Actions-OpenWrt","url":"https://api.github.com/repos/sdhz153/Actions-OpenWrt"},"payload":{"repository_id":402983519,"push_id":16466254615,"size":0,"distinct_size":0,"ref":"refs/heads/main","head":"a3850b8414bd4b10d70e4bf19df7a058429dd24c","before":"04ef7d2e78a35a1a7db9e35d7748e13b5db739df","commits":[]},"public":true,"created_at":"2024-01-01T15:00:01Z","org":{"id":45117601,"login":"sdhz153","gravatar_id":"","url":"https://api.github.com/orgs/sdhz153","avatar_url":"https://avatars.githubusercontent.com/u/45117601?"}} +{"id":"34502641487","type":"CreateEvent","actor":{"id":116669610,"login":"UjjawalSah","display_login":"UjjawalSah","gravatar_id":"","url":"https://api.github.com/users/UjjawalSah","avatar_url":"https://avatars.githubusercontent.com/u/116669610?"},"repo":{"id":737802490,"name":"UjjawalSah/ModernFarming","url":"https://api.github.com/repos/UjjawalSah/ModernFarming"},"payload":{"ref":null,"ref_type":"repository","master_branch":"main","description":null,"pusher_type":"user"},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641494","type":"PushEvent","actor":{"id":155335754,"login":"wodcoredev","display_login":"wodcoredev","gravatar_id":"","url":"https://api.github.com/users/wodcoredev","avatar_url":"https://avatars.githubusercontent.com/u/155335754?"},"repo":{"id":737660090,"name":"wod-core/website","url":"https://api.github.com/repos/wod-core/website"},"payload":{"repository_id":737660090,"push_id":16466254518,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"8f4412316aa0f3e32080a9eeebafa92ae33b7382","before":"4fb485cdccac4dfa06fc942c1886e7a5d9a65abb","commits":[{"sha":"8f4412316aa0f3e32080a9eeebafa92ae33b7382","author":{"email":"155335754+wodcoredev@users.noreply.github.com","name":"wodcoredev"},"message":"Update index.html","distinct":true,"url":"https://api.github.com/repos/wod-core/website/commits/8f4412316aa0f3e32080a9eeebafa92ae33b7382"}]},"public":true,"created_at":"2024-01-01T15:00:01Z","org":{"id":155335799,"login":"wod-core","gravatar_id":"","url":"https://api.github.com/orgs/wod-core","avatar_url":"https://avatars.githubusercontent.com/u/155335799?"}} +{"id":"34502641496","type":"PushEvent","actor":{"id":33451416,"login":"Vsonneveld","display_login":"Vsonneveld","gravatar_id":"","url":"https://api.github.com/users/Vsonneveld","avatar_url":"https://avatars.githubusercontent.com/u/33451416?"},"repo":{"id":625580055,"name":"Vsonneveld/foroxity-genres","url":"https://api.github.com/repos/Vsonneveld/foroxity-genres"},"payload":{"repository_id":625580055,"push_id":16466254600,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"6aed4e8eea1cca8f50d11abd15790b987d56fa6e","before":"bdab61c80f8b6acc61b6d7afab66606da4ca1db4","commits":[{"sha":"6aed4e8eea1cca8f50d11abd15790b987d56fa6e","author":{"email":"33451416+Vsonneveld@users.noreply.github.com","name":"Vsonneveld"},"message":"The genre has been updated","distinct":true,"url":"https://api.github.com/repos/Vsonneveld/foroxity-genres/commits/6aed4e8eea1cca8f50d11abd15790b987d56fa6e"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641499","type":"PushEvent","actor":{"id":9562747,"login":"diphons","display_login":"diphons","gravatar_id":"","url":"https://api.github.com/users/diphons","avatar_url":"https://avatars.githubusercontent.com/u/9562747?"},"repo":{"id":686583207,"name":"diphons/sdm845-419","url":"https://api.github.com/repos/diphons/sdm845-419"},"payload":{"repository_id":686583207,"push_id":16466254611,"size":1,"distinct_size":1,"ref":"refs/heads/14reb","head":"35d30e32592c4d42cc0474f78ff7ae1c16f785e8","before":"8acd58e9462aed43f2bfc53b89ccd548529ed5b1","commits":[{"sha":"35d30e32592c4d42cc0474f78ff7ae1c16f785e8","author":{"email":"emanuelghub@gmail.com","name":"EmanuelCN"},"message":"cpu_input_boost: use MI_DRM notifier","distinct":true,"url":"https://api.github.com/repos/diphons/sdm845-419/commits/35d30e32592c4d42cc0474f78ff7ae1c16f785e8"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641501","type":"PushEvent","actor":{"id":145037011,"login":"l1nky-1337","display_login":"l1nky-1337","gravatar_id":"","url":"https://api.github.com/users/l1nky-1337","avatar_url":"https://avatars.githubusercontent.com/u/145037011?"},"repo":{"id":694954073,"name":"l1nky-1337/TimeFn-Updated","url":"https://api.github.com/repos/l1nky-1337/TimeFn-Updated"},"payload":{"repository_id":694954073,"push_id":16466254579,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"0512d4f767310fa21c124a55c35089a7605c65c4","before":"e1ef0ee8ded49b2249861f1f3243a8f0c1ef7287","commits":[{"sha":"0512d4f767310fa21c124a55c35089a7605c65c4","author":{"email":"145037011+l1nky-1337@users.noreply.github.com","name":"l1nky"},"message":"README.md","distinct":true,"url":"https://api.github.com/repos/l1nky-1337/TimeFn-Updated/commits/0512d4f767310fa21c124a55c35089a7605c65c4"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641504","type":"CreateEvent","actor":{"id":16827672,"login":"luiz8910","display_login":"luiz8910","gravatar_id":"","url":"https://api.github.com/users/luiz8910","avatar_url":"https://avatars.githubusercontent.com/u/16827672?"},"repo":{"id":737802492,"name":"luiz8910/codeflix","url":"https://api.github.com/repos/luiz8910/codeflix"},"payload":{"ref":null,"ref_type":"repository","master_branch":"main","description":null,"pusher_type":"user"},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641506","type":"PushEvent","actor":{"id":68462294,"login":"Owl3CM","display_login":"Owl3CM","gravatar_id":"","url":"https://api.github.com/users/Owl3CM","avatar_url":"https://avatars.githubusercontent.com/u/68462294?"},"repo":{"id":696821205,"name":"Owl3CM/Eze-Scripts","url":"https://api.github.com/repos/Owl3CM/Eze-Scripts"},"payload":{"repository_id":696821205,"push_id":16466254585,"size":2,"distinct_size":2,"ref":"refs/heads/main","head":"2d463c971fada9f12a102cb4a15b7a0ae40bae76","before":"a3236f1a3fe40fac8870d6b0354fe229646bd77b","commits":[{"sha":"8e96cfab5ed9a9cc05ab804358cf014d28a07a53","author":{"email":"saochiha@gmail.com","name":"Owl3CM"},"message":"sync","distinct":true,"url":"https://api.github.com/repos/Owl3CM/Eze-Scripts/commits/8e96cfab5ed9a9cc05ab804358cf014d28a07a53"},{"sha":"2d463c971fada9f12a102cb4a15b7a0ae40bae76","author":{"email":"saochiha@gmail.com","name":"Owl3CM"},"message":"sync","distinct":true,"url":"https://api.github.com/repos/Owl3CM/Eze-Scripts/commits/2d463c971fada9f12a102cb4a15b7a0ae40bae76"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641508","type":"PullRequestReviewEvent","actor":{"id":7011721,"login":"SamboyCoding","display_login":"SamboyCoding","gravatar_id":"","url":"https://api.github.com/users/SamboyCoding","avatar_url":"https://avatars.githubusercontent.com/u/7011721?"},"repo":{"id":192676329,"name":"SamboyCoding/Cpp2IL","url":"https://api.github.com/repos/SamboyCoding/Cpp2IL"},"payload":{"action":"created","review":{"id":1799820647,"node_id":"PRR_kwDOC3wB6c5rRxVn","user":{"login":"SamboyCoding","id":7011721,"node_id":"MDQ6VXNlcjcwMTE3MjE=","avatar_url":"https://avatars.githubusercontent.com/u/7011721?v=4","gravatar_id":"","url":"https://api.github.com/users/SamboyCoding","html_url":"https://github.com/SamboyCoding","followers_url":"https://api.github.com/users/SamboyCoding/followers","following_url":"https://api.github.com/users/SamboyCoding/following{/other_user}","gists_url":"https://api.github.com/users/SamboyCoding/gists{/gist_id}","starred_url":"https://api.github.com/users/SamboyCoding/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SamboyCoding/subscriptions","organizations_url":"https://api.github.com/users/SamboyCoding/orgs","repos_url":"https://api.github.com/users/SamboyCoding/repos","events_url":"https://api.github.com/users/SamboyCoding/events{/privacy}","received_events_url":"https://api.github.com/users/SamboyCoding/received_events","type":"User","site_admin":false},"body":"","commit_id":"bdb8cdc74af47455cc9c609c1135f52b97dde417","submitted_at":"2024-01-01T14:59:37Z","state":"approved","html_url":"https://github.com/SamboyCoding/Cpp2IL/pull/255#pullrequestreview-1799820647","pull_request_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/pulls/255","author_association":"OWNER","_links":{"html":{"href":"https://github.com/SamboyCoding/Cpp2IL/pull/255#pullrequestreview-1799820647"},"pull_request":{"href":"https://api.github.com/repos/SamboyCoding/Cpp2IL/pulls/255"}}},"pull_request":{"url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/pulls/255","id":1660992577,"node_id":"PR_kwDOC3wB6c5jALxB","html_url":"https://github.com/SamboyCoding/Cpp2IL/pull/255","diff_url":"https://github.com/SamboyCoding/Cpp2IL/pull/255.diff","patch_url":"https://github.com/SamboyCoding/Cpp2IL/pull/255.patch","issue_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/issues/255","number":255,"state":"closed","locked":false,"title":"Support Type Parameters in Call Analysis","user":{"login":"ds5678","id":49847914,"node_id":"MDQ6VXNlcjQ5ODQ3OTE0","avatar_url":"https://avatars.githubusercontent.com/u/49847914?v=4","gravatar_id":"","url":"https://api.github.com/users/ds5678","html_url":"https://github.com/ds5678","followers_url":"https://api.github.com/users/ds5678/followers","following_url":"https://api.github.com/users/ds5678/following{/other_user}","gists_url":"https://api.github.com/users/ds5678/gists{/gist_id}","starred_url":"https://api.github.com/users/ds5678/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ds5678/subscriptions","organizations_url":"https://api.github.com/users/ds5678/orgs","repos_url":"https://api.github.com/users/ds5678/repos","events_url":"https://api.github.com/users/ds5678/events{/privacy}","received_events_url":"https://api.github.com/users/ds5678/received_events","type":"User","site_admin":false},"body":"Resolves #176 \r\n\r\nI also have #173 implemented locally, but I figured you would want to review them separately.","created_at":"2024-01-01T10:06:38Z","updated_at":"2024-01-01T14:59:42Z","closed_at":"2024-01-01T14:59:42Z","merged_at":"2024-01-01T14:59:41Z","merge_commit_sha":"c0eccb1cf5709c2e5683f069d2bb37d3d7f5b416","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/pulls/255/commits","review_comments_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/pulls/255/comments","review_comment_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/pulls/comments{/number}","comments_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/issues/255/comments","statuses_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/statuses/bdb8cdc74af47455cc9c609c1135f52b97dde417","head":{"label":"ds5678:call-analysis-improvements","ref":"call-analysis-improvements","sha":"bdb8cdc74af47455cc9c609c1135f52b97dde417","user":{"login":"ds5678","id":49847914,"node_id":"MDQ6VXNlcjQ5ODQ3OTE0","avatar_url":"https://avatars.githubusercontent.com/u/49847914?v=4","gravatar_id":"","url":"https://api.github.com/users/ds5678","html_url":"https://github.com/ds5678","followers_url":"https://api.github.com/users/ds5678/followers","following_url":"https://api.github.com/users/ds5678/following{/other_user}","gists_url":"https://api.github.com/users/ds5678/gists{/gist_id}","starred_url":"https://api.github.com/users/ds5678/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ds5678/subscriptions","organizations_url":"https://api.github.com/users/ds5678/orgs","repos_url":"https://api.github.com/users/ds5678/repos","events_url":"https://api.github.com/users/ds5678/events{/privacy}","received_events_url":"https://api.github.com/users/ds5678/received_events","type":"User","site_admin":false},"repo":{"id":387293635,"node_id":"MDEwOlJlcG9zaXRvcnkzODcyOTM2MzU=","name":"Cpp2IL","full_name":"ds5678/Cpp2IL","private":false,"owner":{"login":"ds5678","id":49847914,"node_id":"MDQ6VXNlcjQ5ODQ3OTE0","avatar_url":"https://avatars.githubusercontent.com/u/49847914?v=4","gravatar_id":"","url":"https://api.github.com/users/ds5678","html_url":"https://github.com/ds5678","followers_url":"https://api.github.com/users/ds5678/followers","following_url":"https://api.github.com/users/ds5678/following{/other_user}","gists_url":"https://api.github.com/users/ds5678/gists{/gist_id}","starred_url":"https://api.github.com/users/ds5678/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ds5678/subscriptions","organizations_url":"https://api.github.com/users/ds5678/orgs","repos_url":"https://api.github.com/users/ds5678/repos","events_url":"https://api.github.com/users/ds5678/events{/privacy}","received_events_url":"https://api.github.com/users/ds5678/received_events","type":"User","site_admin":false},"html_url":"https://github.com/ds5678/Cpp2IL","description":"Work-in-progress tool to reverse unity's IL2CPP toolchain.","fork":true,"url":"https://api.github.com/repos/ds5678/Cpp2IL","forks_url":"https://api.github.com/repos/ds5678/Cpp2IL/forks","keys_url":"https://api.github.com/repos/ds5678/Cpp2IL/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ds5678/Cpp2IL/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ds5678/Cpp2IL/teams","hooks_url":"https://api.github.com/repos/ds5678/Cpp2IL/hooks","issue_events_url":"https://api.github.com/repos/ds5678/Cpp2IL/issues/events{/number}","events_url":"https://api.github.com/repos/ds5678/Cpp2IL/events","assignees_url":"https://api.github.com/repos/ds5678/Cpp2IL/assignees{/user}","branches_url":"https://api.github.com/repos/ds5678/Cpp2IL/branches{/branch}","tags_url":"https://api.github.com/repos/ds5678/Cpp2IL/tags","blobs_url":"https://api.github.com/repos/ds5678/Cpp2IL/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ds5678/Cpp2IL/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ds5678/Cpp2IL/git/refs{/sha}","trees_url":"https://api.github.com/repos/ds5678/Cpp2IL/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ds5678/Cpp2IL/statuses/{sha}","languages_url":"https://api.github.com/repos/ds5678/Cpp2IL/languages","stargazers_url":"https://api.github.com/repos/ds5678/Cpp2IL/stargazers","contributors_url":"https://api.github.com/repos/ds5678/Cpp2IL/contributors","subscribers_url":"https://api.github.com/repos/ds5678/Cpp2IL/subscribers","subscription_url":"https://api.github.com/repos/ds5678/Cpp2IL/subscription","commits_url":"https://api.github.com/repos/ds5678/Cpp2IL/commits{/sha}","git_commits_url":"https://api.github.com/repos/ds5678/Cpp2IL/git/commits{/sha}","comments_url":"https://api.github.com/repos/ds5678/Cpp2IL/comments{/number}","issue_comment_url":"https://api.github.com/repos/ds5678/Cpp2IL/issues/comments{/number}","contents_url":"https://api.github.com/repos/ds5678/Cpp2IL/contents/{+path}","compare_url":"https://api.github.com/repos/ds5678/Cpp2IL/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ds5678/Cpp2IL/merges","archive_url":"https://api.github.com/repos/ds5678/Cpp2IL/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ds5678/Cpp2IL/downloads","issues_url":"https://api.github.com/repos/ds5678/Cpp2IL/issues{/number}","pulls_url":"https://api.github.com/repos/ds5678/Cpp2IL/pulls{/number}","milestones_url":"https://api.github.com/repos/ds5678/Cpp2IL/milestones{/number}","notifications_url":"https://api.github.com/repos/ds5678/Cpp2IL/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ds5678/Cpp2IL/labels{/name}","releases_url":"https://api.github.com/repos/ds5678/Cpp2IL/releases{/id}","deployments_url":"https://api.github.com/repos/ds5678/Cpp2IL/deployments","created_at":"2021-07-19T00:10:02Z","updated_at":"2021-11-23T08:03:40Z","pushed_at":"2024-01-01T14:10:02Z","git_url":"git://github.com/ds5678/Cpp2IL.git","ssh_url":"git@github.com:ds5678/Cpp2IL.git","clone_url":"https://github.com/ds5678/Cpp2IL.git","svn_url":"https://github.com/ds5678/Cpp2IL","homepage":"","size":48217,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":1,"watchers":0,"default_branch":"development"}},"base":{"label":"SamboyCoding:development","ref":"development","sha":"a53e72da9b78846404b534e7a6cca7424fa32a01","user":{"login":"SamboyCoding","id":7011721,"node_id":"MDQ6VXNlcjcwMTE3MjE=","avatar_url":"https://avatars.githubusercontent.com/u/7011721?v=4","gravatar_id":"","url":"https://api.github.com/users/SamboyCoding","html_url":"https://github.com/SamboyCoding","followers_url":"https://api.github.com/users/SamboyCoding/followers","following_url":"https://api.github.com/users/SamboyCoding/following{/other_user}","gists_url":"https://api.github.com/users/SamboyCoding/gists{/gist_id}","starred_url":"https://api.github.com/users/SamboyCoding/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SamboyCoding/subscriptions","organizations_url":"https://api.github.com/users/SamboyCoding/orgs","repos_url":"https://api.github.com/users/SamboyCoding/repos","events_url":"https://api.github.com/users/SamboyCoding/events{/privacy}","received_events_url":"https://api.github.com/users/SamboyCoding/received_events","type":"User","site_admin":false},"repo":{"id":192676329,"node_id":"MDEwOlJlcG9zaXRvcnkxOTI2NzYzMjk=","name":"Cpp2IL","full_name":"SamboyCoding/Cpp2IL","private":false,"owner":{"login":"SamboyCoding","id":7011721,"node_id":"MDQ6VXNlcjcwMTE3MjE=","avatar_url":"https://avatars.githubusercontent.com/u/7011721?v=4","gravatar_id":"","url":"https://api.github.com/users/SamboyCoding","html_url":"https://github.com/SamboyCoding","followers_url":"https://api.github.com/users/SamboyCoding/followers","following_url":"https://api.github.com/users/SamboyCoding/following{/other_user}","gists_url":"https://api.github.com/users/SamboyCoding/gists{/gist_id}","starred_url":"https://api.github.com/users/SamboyCoding/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SamboyCoding/subscriptions","organizations_url":"https://api.github.com/users/SamboyCoding/orgs","repos_url":"https://api.github.com/users/SamboyCoding/repos","events_url":"https://api.github.com/users/SamboyCoding/events{/privacy}","received_events_url":"https://api.github.com/users/SamboyCoding/received_events","type":"User","site_admin":false},"html_url":"https://github.com/SamboyCoding/Cpp2IL","description":"Work-in-progress tool to reverse unity's IL2CPP toolchain.","fork":false,"url":"https://api.github.com/repos/SamboyCoding/Cpp2IL","forks_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/forks","keys_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/teams","hooks_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/hooks","issue_events_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/issues/events{/number}","events_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/events","assignees_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/assignees{/user}","branches_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/branches{/branch}","tags_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/tags","blobs_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/git/refs{/sha}","trees_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/statuses/{sha}","languages_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/languages","stargazers_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/stargazers","contributors_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/contributors","subscribers_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/subscribers","subscription_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/subscription","commits_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/commits{/sha}","git_commits_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/git/commits{/sha}","comments_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/comments{/number}","issue_comment_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/issues/comments{/number}","contents_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/contents/{+path}","compare_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/merges","archive_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/downloads","issues_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/issues{/number}","pulls_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/pulls{/number}","milestones_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/milestones{/number}","notifications_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/labels{/name}","releases_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/releases{/id}","deployments_url":"https://api.github.com/repos/SamboyCoding/Cpp2IL/deployments","created_at":"2019-06-19T06:56:00Z","updated_at":"2024-01-01T06:04:00Z","pushed_at":"2024-01-01T14:59:41Z","git_url":"git://github.com/SamboyCoding/Cpp2IL.git","ssh_url":"git@github.com:SamboyCoding/Cpp2IL.git","clone_url":"https://github.com/SamboyCoding/Cpp2IL.git","svn_url":"https://github.com/SamboyCoding/Cpp2IL","homepage":"","size":48364,"stargazers_count":1316,"watchers_count":1316,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":149,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":24,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["analysis","decompiler","il2cpp","il2cpp-metadata","reverse-engineering","static-analysis","unity"],"visibility":"public","forks":149,"open_issues":24,"watchers":1316,"default_branch":"new-analysis"}},"_links":{"self":{"href":"https://api.github.com/repos/SamboyCoding/Cpp2IL/pulls/255"},"html":{"href":"https://github.com/SamboyCoding/Cpp2IL/pull/255"},"issue":{"href":"https://api.github.com/repos/SamboyCoding/Cpp2IL/issues/255"},"comments":{"href":"https://api.github.com/repos/SamboyCoding/Cpp2IL/issues/255/comments"},"review_comments":{"href":"https://api.github.com/repos/SamboyCoding/Cpp2IL/pulls/255/comments"},"review_comment":{"href":"https://api.github.com/repos/SamboyCoding/Cpp2IL/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/SamboyCoding/Cpp2IL/pulls/255/commits"},"statuses":{"href":"https://api.github.com/repos/SamboyCoding/Cpp2IL/statuses/bdb8cdc74af47455cc9c609c1135f52b97dde417"}},"author_association":"CONTRIBUTOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641513","type":"PushEvent","actor":{"id":155086666,"login":"lu146enza","display_login":"lu146enza","gravatar_id":"","url":"https://api.github.com/users/lu146enza","avatar_url":"https://avatars.githubusercontent.com/u/155086666?"},"repo":{"id":737110895,"name":"lu146enza/Repo9","url":"https://api.github.com/repos/lu146enza/Repo9"},"payload":{"repository_id":737110895,"push_id":16466254411,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"30f0bf3d0aa3f132294c36ad8510df63fdc4ca74","before":"2b611640aa7a03be3b1a8f36b9a51ed9a4a76aae","commits":[{"sha":"30f0bf3d0aa3f132294c36ad8510df63fdc4ca74","author":{"email":"you@example.com","name":"Your Name"},"message":"Empty Commit","distinct":true,"url":"https://api.github.com/repos/lu146enza/Repo9/commits/30f0bf3d0aa3f132294c36ad8510df63fdc4ca74"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641516","type":"PushEvent","actor":{"id":40597892,"login":"fdvorak","display_login":"fdvorak","gravatar_id":"","url":"https://api.github.com/users/fdvorak","avatar_url":"https://avatars.githubusercontent.com/u/40597892?"},"repo":{"id":465250207,"name":"fdvorak/sandWind","url":"https://api.github.com/repos/fdvorak/sandWind"},"payload":{"repository_id":465250207,"push_id":16466254614,"size":1,"distinct_size":1,"ref":"refs/heads/main","head":"75f33e55b3a9470eff31fa39876db6e39799c408","before":"59eeb1a645f783f70f8e7810445b275f4b22810c","commits":[{"sha":"75f33e55b3a9470eff31fa39876db6e39799c408","author":{"email":"40597892+fdvorak@users.noreply.github.com","name":"fdvorak"},"message":"automated commit 2024-01-01 15:59:14","distinct":true,"url":"https://api.github.com/repos/fdvorak/sandWind/commits/75f33e55b3a9470eff31fa39876db6e39799c408"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641517","type":"PushEvent","actor":{"id":97979094,"login":"github-shvabra","display_login":"github-shvabra","gravatar_id":"","url":"https://api.github.com/users/github-shvabra","avatar_url":"https://avatars.githubusercontent.com/u/97979094?"},"repo":{"id":642858622,"name":"saby/ios-sabycom","url":"https://api.github.com/repos/saby/ios-sabycom"},"payload":{"repository_id":642858622,"push_id":16466254413,"size":1,"distinct_size":1,"ref":"refs/heads/rc-23.7106","head":"a0e4494a741c48d13be76964d86c7cd76753919a","before":"99492b5c8305e002d575672ef551ecae0d7bce6c","commits":[{"sha":"a0e4494a741c48d13be76964d86c7cd76753919a","author":{"email":"unix-prog_server@unix.tensor.ru@sbis-dev-mon.unix.tensor.ru","name":"Служебный пользователь Инц №52255"},"message":"new change","distinct":true,"url":"https://api.github.com/repos/saby/ios-sabycom/commits/a0e4494a741c48d13be76964d86c7cd76753919a"}]},"public":true,"created_at":"2024-01-01T15:00:01Z","org":{"id":42994484,"login":"saby","gravatar_id":"","url":"https://api.github.com/orgs/saby","avatar_url":"https://avatars.githubusercontent.com/u/42994484?"}} +{"id":"34502641520","type":"DeleteEvent","actor":{"id":2599636,"login":"artamonovkirill","display_login":"artamonovkirill","gravatar_id":"","url":"https://api.github.com/users/artamonovkirill","avatar_url":"https://avatars.githubusercontent.com/u/2599636?"},"repo":{"id":95086228,"name":"tomtom-international/goji-http-client","url":"https://api.github.com/repos/tomtom-international/goji-http-client"},"payload":{"ref":"dependabot/maven/log4j.version-2.22.1","ref_type":"branch","pusher_type":"user"},"public":true,"created_at":"2024-01-01T15:00:01Z","org":{"id":11631435,"login":"tomtom-international","gravatar_id":"","url":"https://api.github.com/orgs/tomtom-international","avatar_url":"https://avatars.githubusercontent.com/u/11631435?"}} +{"id":"34502641526","type":"PullRequestEvent","actor":{"id":41898282,"login":"github-actions[bot]","display_login":"github-actions","gravatar_id":"","url":"https://api.github.com/users/github-actions[bot]","avatar_url":"https://avatars.githubusercontent.com/u/41898282?"},"repo":{"id":604901781,"name":"jckimble/Github-Graph-Background","url":"https://api.github.com/repos/jckimble/Github-Graph-Background"},"payload":{"action":"closed","number":45,"pull_request":{"url":"https://api.github.com/repos/jckimble/Github-Graph-Background/pulls/45","id":1661122658,"node_id":"PR_kwDOJA4Rlc5jArhi","html_url":"https://github.com/jckimble/Github-Graph-Background/pull/45","diff_url":"https://github.com/jckimble/Github-Graph-Background/pull/45.diff","patch_url":"https://github.com/jckimble/Github-Graph-Background/pull/45.patch","issue_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/issues/45","number":45,"state":"closed","locked":false,"title":"build(deps-dev): bump ts-node from 10.9.1 to 10.9.2","user":{"login":"dependabot[bot]","id":49699333,"node_id":"MDM6Qm90NDk2OTkzMzM=","avatar_url":"https://avatars.githubusercontent.com/in/29110?v=4","gravatar_id":"","url":"https://api.github.com/users/dependabot%5Bbot%5D","html_url":"https://github.com/apps/dependabot","followers_url":"https://api.github.com/users/dependabot%5Bbot%5D/followers","following_url":"https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dependabot%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/dependabot%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/dependabot%5Bbot%5D/repos","events_url":"https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/dependabot%5Bbot%5D/received_events","type":"Bot","site_admin":false},"body":"Bumps [ts-node](https://github.com/TypeStrong/ts-node) from 10.9.1 to 10.9.2.\n<details>\n<summary>Release notes</summary>\n<p><em>Sourced from <a href=\"https://github.com/TypeStrong/ts-node/releases\">ts-node's releases</a>.</em></p>\n<blockquote>\n<h2>Fix <code>tsconfig.json</code> file not found</h2>\n<p><strong>Fixed</strong></p>\n<ul>\n<li>Fixed <code>tsconfig.json</code> file not found on latest TypeScript version (<a href=\"https://redirect.github.com/TypeStrong/ts-node/pull/2091\">TypeStrong/ts-node#2091</a>)</li>\n</ul>\n</blockquote>\n</details>\n<details>\n<summary>Commits</summary>\n<ul>\n<li><a href=\"https://github.com/TypeStrong/ts-node/commit/057ac1beb118f9c42d21e876a17320ad73ea6be2\"><code>057ac1b</code></a> 10.9.2</li>\n<li><a href=\"https://github.com/TypeStrong/ts-node/commit/c8805d5d4bcdfa564fdcc0ff6630381c9f54ee5a\"><code>c8805d5</code></a> Update package lock</li>\n<li><a href=\"https://github.com/TypeStrong/ts-node/commit/99862f7ec663927045ecb5703230c368816d0857\"><code>99862f7</code></a> Bump swc dependency</li>\n<li><a href=\"https://github.com/TypeStrong/ts-node/commit/cdc4e883ab7072865abc4070f651374503cc88a9\"><code>cdc4e88</code></a> Ignore test files in build schema</li>\n<li><a href=\"https://github.com/TypeStrong/ts-node/commit/08cdfb0c70fbe3cadd658ef025d7947a0a59c920\"><code>08cdfb0</code></a> Backport swc fixes on main</li>\n<li><a href=\"https://github.com/TypeStrong/ts-node/commit/9639daa83c2122dd3d5ac4520f2d990d997fe8ba\"><code>9639daa</code></a> Ignore test files in build</li>\n<li><a href=\"https://github.com/TypeStrong/ts-node/commit/cc1a503e5faae87b034b76a3f5ddd53e5e7a6b3b\"><code>cc1a503</code></a> Fix <code>tsconfig.json</code> not found with TS >= 5.3 (<a href=\"https://redirect.github.com/TypeStrong/ts-node/issues/2091\">#2091</a>)</li>\n<li>See full diff in <a href=\"https://github.com/TypeStrong/ts-node/compare/v10.9.1...v10.9.2\">compare view</a></li>\n</ul>\n</details>\n<br />\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ts-node&package-manager=npm_and_yarn&previous-version=10.9.1&new-version=10.9.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n<details>\n<summary>Dependabot commands and options</summary>\n<br />\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n</details>","created_at":"2024-01-01T14:57:18Z","updated_at":"2024-01-01T14:59:50Z","closed_at":"2024-01-01T14:59:39Z","merged_at":"2024-01-01T14:59:39Z","merge_commit_sha":"ead252ad0a6637850da003273f4c9e76b9c78ec1","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":5213407120,"node_id":"LA_kwDOJA4Rlc8AAAABNr5HkA","url":"https://api.github.com/repos/jckimble/Github-Graph-Background/labels/dependencies","name":"dependencies","color":"0366d6","default":false,"description":"Pull requests that update a dependency file"},{"id":5213407134,"node_id":"LA_kwDOJA4Rlc8AAAABNr5Hng","url":"https://api.github.com/repos/jckimble/Github-Graph-Background/labels/javascript","name":"javascript","color":"168700","default":false,"description":"Pull requests that update Javascript code"}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/pulls/45/commits","review_comments_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/pulls/45/comments","review_comment_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/pulls/comments{/number}","comments_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/issues/45/comments","statuses_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/statuses/6666459e54f4da75d0b24dcb82683a400b37c99b","head":{"label":"jckimble:dependabot/npm_and_yarn/ts-node-10.9.2","ref":"dependabot/npm_and_yarn/ts-node-10.9.2","sha":"6666459e54f4da75d0b24dcb82683a400b37c99b","user":{"login":"jckimble","id":1577799,"node_id":"MDQ6VXNlcjE1Nzc3OTk=","avatar_url":"https://avatars.githubusercontent.com/u/1577799?v=4","gravatar_id":"","url":"https://api.github.com/users/jckimble","html_url":"https://github.com/jckimble","followers_url":"https://api.github.com/users/jckimble/followers","following_url":"https://api.github.com/users/jckimble/following{/other_user}","gists_url":"https://api.github.com/users/jckimble/gists{/gist_id}","starred_url":"https://api.github.com/users/jckimble/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jckimble/subscriptions","organizations_url":"https://api.github.com/users/jckimble/orgs","repos_url":"https://api.github.com/users/jckimble/repos","events_url":"https://api.github.com/users/jckimble/events{/privacy}","received_events_url":"https://api.github.com/users/jckimble/received_events","type":"User","site_admin":false},"repo":{"id":604901781,"node_id":"R_kgDOJA4RlQ","name":"Github-Graph-Background","full_name":"jckimble/Github-Graph-Background","private":false,"owner":{"login":"jckimble","id":1577799,"node_id":"MDQ6VXNlcjE1Nzc3OTk=","avatar_url":"https://avatars.githubusercontent.com/u/1577799?v=4","gravatar_id":"","url":"https://api.github.com/users/jckimble","html_url":"https://github.com/jckimble","followers_url":"https://api.github.com/users/jckimble/followers","following_url":"https://api.github.com/users/jckimble/following{/other_user}","gists_url":"https://api.github.com/users/jckimble/gists{/gist_id}","starred_url":"https://api.github.com/users/jckimble/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jckimble/subscriptions","organizations_url":"https://api.github.com/users/jckimble/orgs","repos_url":"https://api.github.com/users/jckimble/repos","events_url":"https://api.github.com/users/jckimble/events{/privacy}","received_events_url":"https://api.github.com/users/jckimble/received_events","type":"User","site_admin":false},"html_url":"https://github.com/jckimble/Github-Graph-Background","description":"A toy program for getting your GitHub Contributions and creating a background image from it with many themes","fork":false,"url":"https://api.github.com/repos/jckimble/Github-Graph-Background","forks_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/forks","keys_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/teams","hooks_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/hooks","issue_events_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/issues/events{/number}","events_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/events","assignees_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/assignees{/user}","branches_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/branches{/branch}","tags_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/tags","blobs_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/git/refs{/sha}","trees_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/statuses/{sha}","languages_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/languages","stargazers_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/stargazers","contributors_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/contributors","subscribers_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/subscribers","subscription_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/subscription","commits_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/commits{/sha}","git_commits_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/git/commits{/sha}","comments_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/comments{/number}","issue_comment_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/issues/comments{/number}","contents_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/contents/{+path}","compare_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/merges","archive_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/downloads","issues_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/issues{/number}","pulls_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/pulls{/number}","milestones_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/milestones{/number}","notifications_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/labels{/name}","releases_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/releases{/id}","deployments_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/deployments","created_at":"2023-02-22T02:42:55Z","updated_at":"2023-11-01T17:29:32Z","pushed_at":"2024-01-01T14:59:49Z","git_url":"git://github.com/jckimble/Github-Graph-Background.git","ssh_url":"git@github.com:jckimble/Github-Graph-Background.git","clone_url":"https://github.com/jckimble/Github-Graph-Background.git","svn_url":"https://github.com/jckimble/Github-Graph-Background","homepage":"","size":2854,"stargazers_count":1,"watchers_count":1,"language":"TypeScript","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":4,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["background-image","cli","desktop","github","github-api","github-contributions","nodejs","toy-project"],"visibility":"public","forks":0,"open_issues":4,"watchers":1,"default_branch":"master"}},"base":{"label":"jckimble:master","ref":"master","sha":"aa5492fff237d4a4b93c0b48e0750c763f020e30","user":{"login":"jckimble","id":1577799,"node_id":"MDQ6VXNlcjE1Nzc3OTk=","avatar_url":"https://avatars.githubusercontent.com/u/1577799?v=4","gravatar_id":"","url":"https://api.github.com/users/jckimble","html_url":"https://github.com/jckimble","followers_url":"https://api.github.com/users/jckimble/followers","following_url":"https://api.github.com/users/jckimble/following{/other_user}","gists_url":"https://api.github.com/users/jckimble/gists{/gist_id}","starred_url":"https://api.github.com/users/jckimble/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jckimble/subscriptions","organizations_url":"https://api.github.com/users/jckimble/orgs","repos_url":"https://api.github.com/users/jckimble/repos","events_url":"https://api.github.com/users/jckimble/events{/privacy}","received_events_url":"https://api.github.com/users/jckimble/received_events","type":"User","site_admin":false},"repo":{"id":604901781,"node_id":"R_kgDOJA4RlQ","name":"Github-Graph-Background","full_name":"jckimble/Github-Graph-Background","private":false,"owner":{"login":"jckimble","id":1577799,"node_id":"MDQ6VXNlcjE1Nzc3OTk=","avatar_url":"https://avatars.githubusercontent.com/u/1577799?v=4","gravatar_id":"","url":"https://api.github.com/users/jckimble","html_url":"https://github.com/jckimble","followers_url":"https://api.github.com/users/jckimble/followers","following_url":"https://api.github.com/users/jckimble/following{/other_user}","gists_url":"https://api.github.com/users/jckimble/gists{/gist_id}","starred_url":"https://api.github.com/users/jckimble/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jckimble/subscriptions","organizations_url":"https://api.github.com/users/jckimble/orgs","repos_url":"https://api.github.com/users/jckimble/repos","events_url":"https://api.github.com/users/jckimble/events{/privacy}","received_events_url":"https://api.github.com/users/jckimble/received_events","type":"User","site_admin":false},"html_url":"https://github.com/jckimble/Github-Graph-Background","description":"A toy program for getting your GitHub Contributions and creating a background image from it with many themes","fork":false,"url":"https://api.github.com/repos/jckimble/Github-Graph-Background","forks_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/forks","keys_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/teams","hooks_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/hooks","issue_events_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/issues/events{/number}","events_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/events","assignees_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/assignees{/user}","branches_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/branches{/branch}","tags_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/tags","blobs_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/git/refs{/sha}","trees_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/statuses/{sha}","languages_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/languages","stargazers_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/stargazers","contributors_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/contributors","subscribers_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/subscribers","subscription_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/subscription","commits_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/commits{/sha}","git_commits_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/git/commits{/sha}","comments_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/comments{/number}","issue_comment_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/issues/comments{/number}","contents_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/contents/{+path}","compare_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/merges","archive_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/downloads","issues_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/issues{/number}","pulls_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/pulls{/number}","milestones_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/milestones{/number}","notifications_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/labels{/name}","releases_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/releases{/id}","deployments_url":"https://api.github.com/repos/jckimble/Github-Graph-Background/deployments","created_at":"2023-02-22T02:42:55Z","updated_at":"2023-11-01T17:29:32Z","pushed_at":"2024-01-01T14:59:49Z","git_url":"git://github.com/jckimble/Github-Graph-Background.git","ssh_url":"git@github.com:jckimble/Github-Graph-Background.git","clone_url":"https://github.com/jckimble/Github-Graph-Background.git","svn_url":"https://github.com/jckimble/Github-Graph-Background","homepage":"","size":2854,"stargazers_count":1,"watchers_count":1,"language":"TypeScript","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":4,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["background-image","cli","desktop","github","github-api","github-contributions","nodejs","toy-project"],"visibility":"public","forks":0,"open_issues":4,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/jckimble/Github-Graph-Background/pulls/45"},"html":{"href":"https://github.com/jckimble/Github-Graph-Background/pull/45"},"issue":{"href":"https://api.github.com/repos/jckimble/Github-Graph-Background/issues/45"},"comments":{"href":"https://api.github.com/repos/jckimble/Github-Graph-Background/issues/45/comments"},"review_comments":{"href":"https://api.github.com/repos/jckimble/Github-Graph-Background/pulls/45/comments"},"review_comment":{"href":"https://api.github.com/repos/jckimble/Github-Graph-Background/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/jckimble/Github-Graph-Background/pulls/45/commits"},"statuses":{"href":"https://api.github.com/repos/jckimble/Github-Graph-Background/statuses/6666459e54f4da75d0b24dcb82683a400b37c99b"}},"author_association":"CONTRIBUTOR","auto_merge":null,"active_lock_reason":null,"merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"github-actions[bot]","id":41898282,"node_id":"MDM6Qm90NDE4OTgyODI=","avatar_url":"https://avatars.githubusercontent.com/in/15368?v=4","gravatar_id":"","url":"https://api.github.com/users/github-actions%5Bbot%5D","html_url":"https://github.com/apps/github-actions","followers_url":"https://api.github.com/users/github-actions%5Bbot%5D/followers","following_url":"https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github-actions%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/github-actions%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/github-actions%5Bbot%5D/repos","events_url":"https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/github-actions%5Bbot%5D/received_events","type":"Bot","site_admin":false},"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":1,"additions":6,"deletions":6,"changed_files":1}},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641532","type":"PushEvent","actor":{"id":49145129,"login":"leegical","display_login":"leegical","gravatar_id":"","url":"https://api.github.com/users/leegical","avatar_url":"https://avatars.githubusercontent.com/u/49145129?"},"repo":{"id":517406091,"name":"leegical/Blog_img","url":"https://api.github.com/repos/leegical/Blog_img"},"payload":{"repository_id":517406091,"push_id":16466254427,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"df240698de35f507968050bcf57e3adc4150f4ff","before":"9de5b684596d040b14d5b1bfdb705e5c30d914fe","commits":[{"sha":"df240698de35f507968050bcf57e3adc4150f4ff","author":{"email":"49145129+leegical@users.noreply.github.com","name":"leegical"},"message":"Upload by PicGo","distinct":true,"url":"https://api.github.com/repos/leegical/Blog_img/commits/df240698de35f507968050bcf57e3adc4150f4ff"}]},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641535","type":"CreateEvent","actor":{"id":119068515,"login":"mohil298","display_login":"mohil298","gravatar_id":"","url":"https://api.github.com/users/mohil298","avatar_url":"https://avatars.githubusercontent.com/u/119068515?"},"repo":{"id":737802475,"name":"mohil298/PCB-Designing","url":"https://api.github.com/repos/mohil298/PCB-Designing"},"payload":{"ref":null,"ref_type":"repository","master_branch":"main","description":"Created a PCB USDCARDtoSDcard using KICAD Software","pusher_type":"user"},"public":true,"created_at":"2024-01-01T15:00:01Z"} +{"id":"34502641538","type":"PullRequestReviewEvent","actor":{"id":8293321,"login":"ehsandeep","display_login":"ehsandeep","gravatar_id":"","url":"https://api.github.com/users/ehsandeep","avatar_url":"https://avatars.githubusercontent.com/u/8293321?"},"repo":{"id":127519518,"name":"projectdiscovery/subfinder","url":"https://api.github.com/repos/projectdiscovery/subfinder"},"payload":{"action":"created","review":{"id":1799820657,"node_id":"PRR_kwDOB5nLHs5rRxVx","user":{"login":"ehsandeep","id":8293321,"node_id":"MDQ6VXNlcjgyOTMzMjE=","avatar_url":"https://avatars.githubusercontent.com/u/8293321?v=4","gravatar_id":"","url":"https://api.github.com/users/ehsandeep","html_url":"https://github.com/ehsandeep","followers_url":"https://api.github.com/users/ehsandeep/followers","following_url":"https://api.github.com/users/ehsandeep/following{/other_user}","gists_url":"https://api.github.com/users/ehsandeep/gists{/gist_id}","starred_url":"https://api.github.com/users/ehsandeep/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ehsandeep/subscriptions","organizations_url":"https://api.github.com/users/ehsandeep/orgs","repos_url":"https://api.github.com/users/ehsandeep/repos","events_url":"https://api.github.com/users/ehsandeep/events{/privacy}","received_events_url":"https://api.github.com/users/ehsandeep/received_events","type":"User","site_admin":false},"body":"@dependabot merge","commit_id":"398ba867465b270c1f3fae994684a493546198df","submitted_at":"2024-01-01T14:59:39Z","state":"approved","html_url":"https://github.com/projectdiscovery/subfinder/pull/1102#pullrequestreview-1799820657","pull_request_url":"https://api.github.com/repos/projectdiscovery/subfinder/pulls/1102","author_association":"MEMBER","_links":{"html":{"href":"https://github.com/projectdiscovery/subfinder/pull/1102#pullrequestreview-1799820657"},"pull_request":{"href":"https://api.github.com/repos/projectdiscovery/subfinder/pulls/1102"}}},"pull_request":{"url":"https://api.github.com/repos/projectdiscovery/subfinder/pulls/1102","id":1661121201,"node_id":"PR_kwDOB5nLHs5jArKx","html_url":"https://github.com/projectdiscovery/subfinder/pull/1102","diff_url":"https://github.com/projectdiscovery/subfinder/pull/1102.diff","patch_url":"https://github.com/projectdiscovery/subfinder/pull/1102.patch","issue_url":"https://api.github.com/repos/projectdiscovery/subfinder/issues/1102","number":1102,"state":"open","locked":false,"title":"chore(deps): bump github.com/projectdiscovery/goflags from 0.1.32 to 0.1.33 in /v2","user":{"login":"dependabot[bot]","id":49699333,"node_id":"MDM6Qm90NDk2OTkzMzM=","avatar_url":"https://avatars.githubusercontent.com/in/29110?v=4","gravatar_id":"","url":"https://api.github.com/users/dependabot%5Bbot%5D","html_url":"https://github.com/apps/dependabot","followers_url":"https://api.github.com/users/dependabot%5Bbot%5D/followers","following_url":"https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dependabot%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/dependabot%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/dependabot%5Bbot%5D/repos","events_url":"https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/dependabot%5Bbot%5D/received_events","type":"Bot","site_admin":false},"body":"Bumps [github.com/projectdiscovery/goflags](https://github.com/projectdiscovery/goflags) from 0.1.32 to 0.1.33.\n<details>\n<summary>Release notes</summary>\n<p><em>Sourced from <a href=\"https://github.com/projectdiscovery/goflags/releases\">github.com/projectdiscovery/goflags's releases</a>.</em></p>\n<blockquote>\n<h2>Release v0.1.33</h2>\n<h3><a href=\"https://github.com/projectdiscovery/goflags/compare/v0.1.32...v0.1.33\">0.1.33</a> (2023-12-31)</h3>\n</blockquote>\n</details>\n<details>\n<summary>Commits</summary>\n<ul>\n<li><a href=\"https://github.com/projectdiscovery/goflags/commit/7a49db7774c3e54ff8e9822280c0c82a0774cfa4\"><code>7a49db7</code></a> Merge pull request <a href=\"https://redirect.github.com/projectdiscovery/goflags/issues/162\">#162</a> from projectdiscovery/dependabot/go_modules/main/gith...</li>\n<li><a href=\"https://github.com/projectdiscovery/goflags/commit/161bec6c2c19f203881ec54265484a16a02743b6\"><code>161bec6</code></a> chore(deps): bump github.com/projectdiscovery/utils</li>\n<li>See full diff in <a href=\"https://github.com/projectdiscovery/goflags/compare/v0.1.32...v0.1.33\">compare view</a></li>\n</ul>\n</details>\n<br />\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/projectdiscovery/goflags&package-manager=go_modules&previous-version=0.1.32&new-version=0.1.33)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\nDependabot will merge this PR once it's up-to-date and CI passes on it, as requested by @ehsandeep.\n\n[//]: # (dependabot-automerge-end)\n\n---\n\n<details>\n<summary>Dependabot commands and options</summary>\n<br />\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n</details>","created_at":"2024-01-01T14:54:06Z","updated_at":"2024-01-01T14:59:48Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9a59d3a0bb0f9ef4dab62b10da46a77dcd46b2ff","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":2196499556,"node_id":"MDU6TGFiZWwyMTk2NDk5NTU2","url":"https://api.github.com/repos/projectdiscovery/subfinder/labels/Type:%20Maintenance","name":"Type: Maintenance","color":"fbca03","default":false,"description":"Updating phrasing or wording to make things clearer or removing ambiguity."}],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/projectdiscovery/subfinder/pulls/1102/commits","review_comments_url":"https://api.github.com/repos/projectdiscovery/subfinder/pulls/1102/comments","review_comment_url":"https://api.github.com/repos/projectdiscovery/subfinder/pulls/comments{/number}","comments_url":"https://api.github.com/repos/projectdiscovery/subfinder/issues/1102/comments","statuses_url":"https://api.github.com/repos/projectdiscovery/subfinder/statuses/398ba867465b270c1f3fae994684a493546198df","head":{"label":"projectdiscovery:dependabot/go_modules/v2/dev/github.com/projectdiscovery/goflags-0.1.33","ref":"dependabot/go_modules/v2/dev/github.com/projectdiscovery/goflags-0.1.33","sha":"398ba867465b270c1f3fae994684a493546198df","user":{"login":"projectdiscovery","id":50994705,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUwOTk0NzA1","avatar_url":"https://avatars.githubusercontent.com/u/50994705?v=4","gravatar_id":"","url":"https://api.github.com/users/projectdiscovery","html_url":"https://github.com/projectdiscovery","followers_url":"https://api.github.com/users/projectdiscovery/followers","following_url":"https://api.github.com/users/projectdiscovery/following{/other_user}","gists_url":"https://api.github.com/users/projectdiscovery/gists{/gist_id}","starred_url":"https://api.github.com/users/projectdiscovery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/projectdiscovery/subscriptions","organizations_url":"https://api.github.com/users/projectdiscovery/orgs","repos_url":"https://api.github.com/users/projectdiscovery/repos","events_url":"https://api.github.com/users/projectdiscovery/events{/privacy}","received_events_url":"https://api.github.com/users/projectdiscovery/received_events","type":"Organization","site_admin":false},"repo":{"id":127519518,"node_id":"MDEwOlJlcG9zaXRvcnkxMjc1MTk1MTg=","name":"subfinder","full_name":"projectdiscovery/subfinder","private":false,"owner":{"login":"projectdiscovery","id":50994705,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUwOTk0NzA1","avatar_url":"https://avatars.githubusercontent.com/u/50994705?v=4","gravatar_id":"","url":"https://api.github.com/users/projectdiscovery","html_url":"https://github.com/projectdiscovery","followers_url":"https://api.github.com/users/projectdiscovery/followers","following_url":"https://api.github.com/users/projectdiscovery/following{/other_user}","gists_url":"https://api.github.com/users/projectdiscovery/gists{/gist_id}","starred_url":"https://api.github.com/users/projectdiscovery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/projectdiscovery/subscriptions","organizations_url":"https://api.github.com/users/projectdiscovery/orgs","repos_url":"https://api.github.com/users/projectdiscovery/repos","events_url":"https://api.github.com/users/projectdiscovery/events{/privacy}","received_events_url":"https://api.github.com/users/projectdiscovery/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/projectdiscovery/subfinder","description":"Fast passive subdomain enumeration tool.","fork":false,"url":"https://api.github.com/repos/projectdiscovery/subfinder","forks_url":"https://api.github.com/repos/projectdiscovery/subfinder/forks","keys_url":"https://api.github.com/repos/projectdiscovery/subfinder/keys{/key_id}","collaborators_url":"https://api.github.com/repos/projectdiscovery/subfinder/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/projectdiscovery/subfinder/teams","hooks_url":"https://api.github.com/repos/projectdiscovery/subfinder/hooks","issue_events_url":"https://api.github.com/repos/projectdiscovery/subfinder/issues/events{/number}","events_url":"https://api.github.com/repos/projectdiscovery/subfinder/events","assignees_url":"https://api.github.com/repos/projectdiscovery/subfinder/assignees{/user}","branches_url":"https://api.github.com/repos/projectdiscovery/subfinder/branches{/branch}","tags_url":"https://api.github.com/repos/projectdiscovery/subfinder/tags","blobs_url":"https://api.github.com/repos/projectdiscovery/subfinder/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/projectdiscovery/subfinder/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/projectdiscovery/subfinder/git/refs{/sha}","trees_url":"https://api.github.com/repos/projectdiscovery/subfinder/git/trees{/sha}","statuses_url":"https://api.github.com/repos/projectdiscovery/subfinder/statuses/{sha}","languages_url":"https://api.github.com/repos/projectdiscovery/subfinder/languages","stargazers_url":"https://api.github.com/repos/projectdiscovery/subfinder/stargazers","contributors_url":"https://api.github.com/repos/projectdiscovery/subfinder/contributors","subscribers_url":"https://api.github.com/repos/projectdiscovery/subfinder/subscribers","subscription_url":"https://api.github.com/repos/projectdiscovery/subfinder/subscription","commits_url":"https://api.github.com/repos/projectdiscovery/subfinder/commits{/sha}","git_commits_url":"https://api.github.com/repos/projectdiscovery/subfinder/git/commits{/sha}","comments_url":"https://api.github.com/repos/projectdiscovery/subfinder/comments{/number}","issue_comment_url":"https://api.github.com/repos/projectdiscovery/subfinder/issues/comments{/number}","contents_url":"https://api.github.com/repos/projectdiscovery/subfinder/contents/{+path}","compare_url":"https://api.github.com/repos/projectdiscovery/subfinder/compare/{base}...{head}","merges_url":"https://api.github.com/repos/projectdiscovery/subfinder/merges","archive_url":"https://api.github.com/repos/projectdiscovery/subfinder/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/projectdiscovery/subfinder/downloads","issues_url":"https://api.github.com/repos/projectdiscovery/subfinder/issues{/number}","pulls_url":"https://api.github.com/repos/projectdiscovery/subfinder/pulls{/number}","milestones_url":"https://api.github.com/repos/projectdiscovery/subfinder/milestones{/number}","notifications_url":"https://api.github.com/repos/projectdiscovery/subfinder/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/projectdiscovery/subfinder/labels{/name}","releases_url":"https://api.github.com/repos/projectdiscovery/subfinder/releases{/id}","deployments_url":"https://api.github.com/repos/projectdiscovery/subfinder/deployments","created_at":"2018-03-31T09:44:57Z","updated_at":"2024-01-01T13:13:22Z","pushed_at":"2024-01-01T14:59:24Z","git_url":"git://github.com/projectdiscovery/subfinder.git","ssh_url":"git@github.com:projectdiscovery/subfinder.git","clone_url":"https://github.com/projectdiscovery/subfinder.git","svn_url":"https://github.com/projectdiscovery/subfinder","homepage":"https://projectdiscovery.io","size":9319,"stargazers_count":8699,"watchers_count":8699,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":true,"forks_count":1161,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":22,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["bugbounty","hacking","osint","reconnaissance","subdomain-enumeration","subdomains"],"visibility":"public","forks":1161,"open_issues":22,"watchers":8699,"default_branch":"dev"}},"base":{"label":"projectdiscovery:dev","ref":"dev","sha":"ba55928386e6795d3a941db11115ecb37fa7f704","user":{"login":"projectdiscovery","id":50994705,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUwOTk0NzA1","avatar_url":"https://avatars.githubusercontent.com/u/50994705?v=4","gravatar_id":"","url":"https://api.github.com/users/projectdiscovery","html_url":"https://github.com/projectdiscovery","followers_url":"https://api.github.com/users/projectdiscovery/followers","following_url":"https://api.github.com/users/projectdiscovery/following{/other_user}","gists_url":"https://api.github.com/users/projectdiscovery/gists{/gist_id}","starred_url":"https://api.github.com/users/projectdiscovery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/projectdiscovery/subscriptions","organizations_url":"https://api.github.com/users/projectdiscovery/orgs","repos_url":"https://api.github.com/users/projectdiscovery/repos","events_url":"https://api.github.com/users/projectdiscovery/events{/privacy}","received_events_url":"https://api.github.com/users/projectdiscovery/received_events","type":"Organization","site_admin":false},"repo":{"id":127519518,"node_id":"MDEwOlJlcG9zaXRvcnkxMjc1MTk1MTg=","name":"subfinder","full_name":"projectdiscovery/subfinder","private":false,"owner":{"login":"projectdiscovery","id":50994705,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUwOTk0NzA1","avatar_url":"https://avatars.githubusercontent.com/u/50994705?v=4","gravatar_id":"","url":"https://api.github.com/users/projectdiscovery","html_url":"https://github.com/projectdiscovery","followers_url":"https://api.github.com/users/projectdiscovery/followers","following_url":"https://api.github.com/users/projectdiscovery/following{/other_user}","gists_url":"https://api.github.com/users/projectdiscovery/gists{/gist_id}","starred_url":"https://api.github.com/users/projectdiscovery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/projectdiscovery/subscriptions","organizations_url":"https://api.github.com/users/projectdiscovery/orgs","repos_url":"https://api.github.com/users/projectdiscovery/repos","events_url":"https://api.github.com/users/projectdiscovery/events{/privacy}","received_events_url":"https://api.github.com/users/projectdiscovery/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/projectdiscovery/subfinder","description":"Fast passive subdomain enumeration tool.","fork":false,"url":"https://api.github.com/repos/projectdiscovery/subfinder","forks_url":"https://api.github.com/repos/projectdiscovery/subfinder/forks","keys_url":"https://api.github.com/repos/projectdiscovery/subfinder/keys{/key_id}","collaborators_url":"https://api.github.com/repos/projectdiscovery/subfinder/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/projectdiscovery/subfinder/teams","hooks_url":"https://api.github.com/repos/projectdiscovery/subfinder/hooks","issue_events_url":"https://api.github.com/repos/projectdiscovery/subfinder/issues/events{/number}","events_url":"https://api.github.com/repos/projectdiscovery/subfinder/events","assignees_url":"https://api.github.com/repos/projectdiscovery/subfinder/assignees{/user}","branches_url":"https://api.github.com/repos/projectdiscovery/subfinder/branches{/branch}","tags_url":"https://api.github.com/repos/projectdiscovery/subfinder/tags","blobs_url":"https://api.github.com/repos/projectdiscovery/subfinder/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/projectdiscovery/subfinder/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/projectdiscovery/subfinder/git/refs{/sha}","trees_url":"https://api.github.com/repos/projectdiscovery/subfinder/git/trees{/sha}","statuses_url":"https://api.github.com/repos/projectdiscovery/subfinder/statuses/{sha}","languages_url":"https://api.github.com/repos/projectdiscovery/subfinder/languages","stargazers_url":"https://api.github.com/repos/projectdiscovery/subfinder/stargazers","contributors_url":"https://api.github.com/repos/projectdiscovery/subfinder/contributors","subscribers_url":"https://api.github.com/repos/projectdiscovery/subfinder/subscribers","subscription_url":"https://api.github.com/repos/projectdiscovery/subfinder/subscription","commits_url":"https://api.github.com/repos/projectdiscovery/subfinder/commits{/sha}","git_commits_url":"https://api.github.com/repos/projectdiscovery/subfinder/git/commits{/sha}","comments_url":"https://api.github.com/repos/projectdiscovery/subfinder/comments{/number}","issue_comment_url":"https://api.github.com/repos/projectdiscovery/subfinder/issues/comments{/number}","contents_url":"https://api.github.com/repos/projectdiscovery/subfinder/contents/{+path}","compare_url":"https://api.github.com/repos/projectdiscovery/subfinder/compare/{base}...{head}","merges_url":"https://api.github.com/repos/projectdiscovery/subfinder/merges","archive_url":"https://api.github.com/repos/projectdiscovery/subfinder/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/projectdiscovery/subfinder/downloads","issues_url":"https://api.github.com/repos/projectdiscovery/subfinder/issues{/number}","pulls_url":"https://api.github.com/repos/projectdiscovery/subfinder/pulls{/number}","milestones_url":"https://api.github.com/repos/projectdiscovery/subfinder/milestones{/number}","notifications_url":"https://api.github.com/repos/projectdiscovery/subfinder/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/projectdiscovery/subfinder/labels{/name}","releases_url":"https://api.github.com/repos/projectdiscovery/subfinder/releases{/id}","deployments_url":"https://api.github.com/repos/projectdiscovery/subfinder/deployments","created_at":"2018-03-31T09:44:57Z","updated_at":"2024-01-01T13:13:22Z","pushed_at":"2024-01-01T14:59:24Z","git_url":"git://github.com/projectdiscovery/subfinder.git","ssh_url":"git@github.com:projectdiscovery/subfinder.git","clone_url":"https://github.com/projectdiscovery/subfinder.git","svn_url":"https://github.com/projectdiscovery/subfinder","homepage":"https://projectdiscovery.io","size":9319,"stargazers_count":8699,"watchers_count":8699,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":true,"forks_count":1161,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":22,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["bugbounty","hacking","osint","reconnaissance","subdomain-enumeration","subdomains"],"visibility":"public","forks":1161,"open_issues":22,"watchers":8699,"default_branch":"dev"}},"_links":{"self":{"href":"https://api.github.com/repos/projectdiscovery/subfinder/pulls/1102"},"html":{"href":"https://github.com/projectdiscovery/subfinder/pull/1102"},"issue":{"href":"https://api.github.com/repos/projectdiscovery/subfinder/issues/1102"},"comments":{"href":"https://api.github.com/repos/projectdiscovery/subfinder/issues/1102/comments"},"review_comments":{"href":"https://api.github.com/repos/projectdiscovery/subfinder/pulls/1102/comments"},"review_comment":{"href":"https://api.github.com/repos/projectdiscovery/subfinder/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/projectdiscovery/subfinder/pulls/1102/commits"},"statuses":{"href":"https://api.github.com/repos/projectdiscovery/subfinder/statuses/398ba867465b270c1f3fae994684a493546198df"}},"author_association":"CONTRIBUTOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-01-01T15:00:01Z","org":{"id":50994705,"login":"projectdiscovery","gravatar_id":"","url":"https://api.github.com/orgs/projectdiscovery","avatar_url":"https://avatars.githubusercontent.com/u/50994705?"}} diff --git a/test/invalid-books.xml b/test/invalid-books.xml new file mode 100644 index 0000000..66211d6 --- /dev/null +++ b/test/invalid-books.xml @@ -0,0 +1,132 @@ +<?xml version="1.0"?> +<catalog> + <book id="bk101"> + <author>Gambardella, Matthew</author> + <title>XML Developer's Guide</title> + <genre>Computer</genre> + <price>44.95</price> + <publish_date>2000-10-01</publish_date> + <description>An in-depth look at creating applications + with XML. + </description> + </book> + <book id="bk102"> + <author>Ralls, Kim</author> + <title>Midnight Rain</title> + <genre>Fantasy</genre> + <price>5.95</price> + <publish_date>2000-12-16</publish_date> + <description>A former architect battles corporate zombies, + an evil sorceress, and her own childhood to become queen + of the world. + </description> + </book> + <book id="bk103" abc="> + <author>Corets, Eva</author> + <title>Maeve Ascendant</title> + <genre>Fantasy</genre> + <price>5.95</price> + <publish_date>2000-11-17</publish_date> + <description>After the collapse of a nanotechnology + society in England, the young survivors lay the + foundation for a new society. + </description> + </book> + <book id=" bk104"> + <author>Corets, Eva</author> + <title>Oberon's Legacy</title> + <genre>Fantasy</genre> + <price>5.95</price> + <publish_date>2001-03-10</publish_date> + <description>In post-apocalypse England, the mysterious + agent known only as Oberon helps to create a new life + for the inhabitants of London. Sequel to Maeve + Ascendant. + </description> + </book> + <book id="bk105"> + <author>Corets, Eva</author> + <title>The Sundered Grail</title> + <genre>Fantasy</genre> + <price>5.95</price> + <publish_date>2001-09-10</publish_date> + <description>The two daughters of Maeve, half-sisters, + battle one another for control of England. Sequel to + Oberon's Legacy. + </description> + </book> + <book id="bk106"> + <author>Randall, Cynthia</author> + <title>Lover Birds</title> + <genre>Romance</genre> + <price>4.95</price> + <publish_date>2000-09-02</publish_date> + <description>When Carla meets Paul at an ornithology + conference, tempers fly as feathers get ruffled. + </description> + </book> + <book id="bk107"> + <author>Thurman, Paula</author> + <title>Splish Splash</title> + <genre>Romance</genre> + <price>4.95</price> + <publish_date>2000-11-02</publish_date> + <description>A deep sea diver finds true love twenty + thousand leagues beneath the sea. + </description> + </book> + <book id="bk108"> + <author>Knorr, Stefan</author> + <title>Creepy Crawlies</title> + <genre>Horror</genre> + <price>4.95</price> + <publish_date>2000-12-06</publish_date> + <description>An anthology of horror stories about roaches, + centipedes, scorpions and other insects. + </description> + </book> + <book id="bk109"> + <author>Kress, Peter</author> + <title>Paradox Lost</title> + <genre>Science Fiction</genre> + <price>6.95</price> + <publish_date>2000-11-02</publish_date> + <description>After an inadvertant trip through a Heisenberg + Uncertainty Device, James Salway discovers the problems + of being quantum. + </description> + </book> + <book id="bk110"> + <author>O'Brien, Tim</author> + <title>Microsoft .NET: The Programming Bible</title> + <genre>Computer</genre> + <price>36.95</price> + <publish_date>2000-12-09</publish_date> + <description>Microsoft's .NET initiative is explored in + detail in this deep programmer's reference. + </description> + </book> + <book id="bk111"> + <author>O'Brien, Tim</author> + <title>MSXML3: A Comprehensive Guide</title> + <genre>Computer</genre> + <price>36.95</price> + <publish_date>2000-12-01</publish_date> + <description>The Microsoft MSXML3 parser is covered in + detail, with attention to XML DOM interfaces, XSLT processing, + SAX and more. + </description> + </book> + <book id="bk112"> + <author>Galos, Mike</author> + <title>Visual Studio 7: A Comprehensive Guide</title> + <genre>Computer</genre> + <price>49.95</price> + <publish_date>2001-04-16</publish_date> + <description>Microsoft Visual Studio 7 is explored in depth, + looking at how Visual Basic, Visual C++, C#, and ASP+ are + integrated into a comprehensive development + environment. + </description> + </book> +</catalog> diff --git a/test/listview_output_cursor.4 b/test/listview_output_cursor.4 index 3980a0b..3f9e3df 100644 --- a/test/listview_output_cursor.4 +++ b/test/listview_output_cursor.4 @@ -6,15 +6,15 @@ S -1 ┋ A └ normal CSI Reset Replace mode CSI Erase all -S 1 ┋Hello x┋ +S 1 ┋World! x┋ A └┛ alt -S 2 ┋World! x┋ +S 2 ┋2 x┋ A └┛ alt -S 3 ┋2 x┋ +S 3 ┋+3 x┋ A └┛ alt -S 4 ┋+3 x┋ +S 4 ┋4 x┋ A └┛ alt -S 5 ┋4 x┋ +S 5 ┋5 x┋ A └┛ alt CSI Erase all CSI Use normal screen buffer diff --git a/test/listview_output_cursor.5 b/test/listview_output_cursor.5 index c7d432e..f25061e 100644 --- a/test/listview_output_cursor.5 +++ b/test/listview_output_cursor.5 @@ -6,25 +6,25 @@ S -1 ┋ A └ normal CSI Reset Replace mode CSI Erase all -S 1 ┋17 x┋ +S 1 ┋+18 x┋ A └┛ alt -S 2 ┋+18 x┋ +S 2 ┋19 x┋ A └┛ alt -S 3 ┋19 x┋ +S 3 ┋20 x┋ A └┛ alt -S 4 ┋20 x┋ +S 4 ┋21 x┋ A └┛ alt -S 5 ┋21 x┋ +S 5 ┋22 x┋ A └┛ alt -S 6 ┋22 x┋ +S 6 ┋23 x┋ A └┛ alt -S 7 ┋23 x┋ +S 7 ┋24 x┋ A └┛ alt -S 8 ┋24 x┋ +S 8 ┋25 x┋ A └┛ alt -S 9 ┋25 x┋ +S 9 ┋26 x┋ A └┛ alt -S 10 ┋26 x┋ +S 10 ┋27 x┋ A └┛ alt CSI Erase all CSI Use normal screen buffer diff --git a/test/listview_output_cursor.6 b/test/listview_output_cursor.6 index be86ee1..ec80b89 100644 --- a/test/listview_output_cursor.6 +++ b/test/listview_output_cursor.6 @@ -6,25 +6,25 @@ S -1 ┋ A └ normal CSI Reset Replace mode CSI Erase all -S 1 ┋8 x┋ +S 1 ┋9 x┋ A └┛ alt -S 2 ┋+9 x┋ +S 2 ┋10 x┋ A └┛ alt -S 3 ┋10 x┋ +S 3 ┋11 x┋ A └┛ alt -S 4 ┋11 x┋ +S 4 ┋12 x┋ A └┛ alt -S 5 ┋12 x┋ +S 5 ┋13 x┋ A └┛ alt -S 6 ┋13 x┋ +S 6 ┋14 x┋ A └┛ alt -S 7 ┋14 x┋ +S 7 ┋15 x┋ A └┛ alt -S 8 ┋15 x┋ +S 8 ┋16 x┋ A └┛ alt -S 9 ┋16 x┋ +S 9 ┋17 x┋ A └┛ alt -S 10 ┋17 x┋ +S 10 ┋+18 x┋ A └┛ alt CSI Erase all CSI Use normal screen buffer diff --git a/test/lnav_doctests.cc b/test/lnav_doctests.cc index 423f807..78acf8d 100644 --- a/test/lnav_doctests.cc +++ b/test/lnav_doctests.cc @@ -30,12 +30,15 @@ #include "config.h" #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN +#include "base/from_trait.hh" #include "byte_array.hh" #include "data_scanner.hh" #include "doctest/doctest.h" #include "lnav_config.hh" #include "lnav_util.hh" +#include "ptimec.hh" #include "relative_time.hh" +#include "shlex.hh" #include "unique_path.hh" using namespace std; @@ -60,6 +63,66 @@ TEST_CASE("overwritten-logfile") { } #endif +TEST_CASE("shlex::eval") +{ + std::string cmdline1 = "${semantic_highlight_color}"; + + shlex lexer(cmdline1); + + std::map<std::string, scoped_value_t> vars = { + {"semantic_highlight_color", "foo"}, + }; + + std::string out; + auto rc = lexer.eval(out, scoped_resolver{&vars}); + CHECK(rc); + CHECK(out == "foo"); +} + +TEST_CASE("shlex::split") +{ + { + std::string cmdline1 = ""; + + std::map<std::string, scoped_value_t> vars; + shlex lexer(cmdline1); + auto split_res = lexer.split(scoped_resolver{&vars}); + CHECK(split_res.isOk()); + auto args = split_res.unwrap(); + CHECK(args.empty()); + } + { + std::string cmdline1 = ":sh --name=\"foo $BAR\" echo Hello!"; + + std::map<std::string, scoped_value_t> vars; + shlex lexer(cmdline1); + auto split_res = lexer.split(scoped_resolver{&vars}); + CHECK(split_res.isOk()); + auto args = split_res.unwrap(); + for (const auto& se : args) { + printf(" range %d:%d -- %s\n", + se.se_origin.sf_begin, + se.se_origin.sf_end, + se.se_value.c_str()); + } + } + { + std::string cmdline1 = "abc def $FOO ghi"; + + std::map<std::string, scoped_value_t> vars; + shlex lexer(cmdline1); + auto split_res = lexer.split(scoped_resolver{&vars}); + CHECK(split_res.isOk()); + auto args = split_res.unwrap(); + for (const auto& se : args) { + printf(" range %d:%d -- %s\n", + se.se_origin.sf_begin, + se.se_origin.sf_end, + se.se_value.c_str()); + } + } +} + TEST_CASE("byte_array") { using my_array_t = byte_array<8>; @@ -102,8 +165,8 @@ TEST_CASE("ptime_fmt") TEST_CASE("rgb_color from string") { - string name = "SkyBlue1"; - auto color = rgb_color::from_str(name).unwrap(); + const auto name = string_fragment::from_const("SkyBlue1"); + auto color = from<rgb_color>(name).unwrap(); CHECK(color.rc_r == 135); CHECK(color.rc_g == 215); CHECK(color.rc_b == 255); @@ -223,7 +286,7 @@ TEST_CASE("data_scanner CSI") CHECK(tok_res->tr_token == DT_CSI); CHECK(tok_res->to_string() == "\x1b[32m"); tok_res = ds.tokenize2(); - CHECK(tok_res->tr_token == DT_SYMBOL); + CHECK(tok_res->tr_token == DT_WORD); CHECK(tok_res->to_string() == "Hello"); tok_res = ds.tokenize2(); CHECK(tok_res->tr_token == DT_CSI); diff --git a/test/log-samples/sample-057d6c669632ef9d07b6adec605f6bdeae19af27.txt b/test/log-samples/sample-057d6c669632ef9d07b6adec605f6bdeae19af27.txt index c1d9b88..cee08b0 100644 --- a/test/log-samples/sample-057d6c669632ef9d07b6adec605f6bdeae19af27.txt +++ b/test/log-samples/sample-057d6c669632ef9d07b6adec605f6bdeae19af27.txt @@ -1,13 +1,11 @@ 2013-02-11 06:42:34,310:INFO:com.twisted:Site starting on 8099 - key 29:29 ^ - key 29:40 ^---------^ com.twisted -pair 29:40 ^---------^ com.twisted - key 58:58 ^ +word 55:57 ^^ on + key 55:57 ^^ on num 58:62 ^--^ 8099 -pair 58:62 ^--^ 8099 + val 58:62 ^--^ 8099 +pair 55:62 ^-----^ on 8099 msg ::com.twisted:Site starting on 8099 -format ::#:Site starting on # +format ::com.twisted:Site starting on # { - "col_0": "com.twisted", - "col_1": 8099 + "on": 8099 } diff --git a/test/log-samples/sample-06aaa6f48a801f592558575d886864d6c3ab9ed4.txt b/test/log-samples/sample-06aaa6f48a801f592558575d886864d6c3ab9ed4.txt index aafb46d..4489627 100644 --- a/test/log-samples/sample-06aaa6f48a801f592558575d886864d6c3ab9ed4.txt +++ b/test/log-samples/sample-06aaa6f48a801f592558575d886864d6c3ab9ed4.txt @@ -1,40 +1,40 @@ - Apr 11 16:43:25 localhost smartd[2532]: Device: /dev/sda [SAT], VBOX HARDDISK, S/N:VBc8882b62-a0263a39, FW:1.0, 17.1 GB - key 40:46 ^----^ Device -path 48:56 ^------^ /dev/sda -wspc 56:57 ^ - sym 58:61 ^-^ SAT - val 58:61 ^-^ SAT - grp 58:61 ^-^ SAT - val 48:61 ^-----------^ /dev/sda [SAT -pair 40:61 ^-------------------^ Device: /dev/sda [SAT - key 64:64 ^ - sym 64:68 ^--^ VBOX -wspc 68:69 ^ - sym 69:77 ^------^ HARDDISK - val 64:77 ^-----------^ VBOX HARDDISK -pair 64:77 ^-----------^ VBOX HARDDISK - key 79:79 ^ - sym 79:82 ^-^ S/N -coln 82:83 ^ : - sym 83:102 ^-----------------^ VBc8882b62-a0263a39 - val 79:102 ^---------------------^ S/N:VBc8882b62-a0263a39 -pair 79:102 ^---------------------^ S/N:VBc8882b62-a0263a39 - key 104:106 ^^ FW - num 107:110 ^-^ 1.0 - val 107:110 ^-^ 1.0 -pair 104:110 ^----^ FW:1.0 - key 112:112 ^ - num 112:116 ^--^ 17.1 -wspc 116:117 ^ - sym 117:119 ^^ GB - val 112:119 ^-----^ 17.1 GB -pair 112:119 ^-----^ 17.1 GB -msg :Device: /dev/sda [SAT], VBOX HARDDISK, S/N:VBc8882b62-a0263a39, FW:1.0, 17.1 GB -format :Device: #], #, #, FW:#, # + Apr 11 16:43:25 localhost smartd[2532]: Device: /dev/sda [SAT], VBOX HARDDISK, S/N:VBc8882b62-a0263a39, FW:1.0, 17.1 GB + key 48:48 ^ +path 48:56 ^------^ /dev/sda + val 48:56 ^------^ /dev/sda +pair 48:56 ^------^ /dev/sda + key 58:58 ^ + sym 58:61 ^-^ SAT + val 58:61 ^-^ SAT + grp 58:61 ^-^ SAT + val 58:61 ^-^ SAT +pair 58:61 ^-^ SAT + key 64:68 ^--^ VBOX + sym 69:77 ^------^ HARDDISK + val 69:77 ^------^ HARDDISK +pair 64:77 ^-----------^ VBOX HARDDISK + key 79:82 ^-^ S/N + id 83:102 ^-----------------^ VBc8882b62-a0263a39 + val 83:102 ^-----------------^ VBc8882b62-a0263a39 +pair 79:102 ^---------------------^ S/N:VBc8882b62-a0263a39 + key 104:106 ^^ FW + num 107:110 ^-^ 1.0 + val 107:110 ^-^ 1.0 +pair 104:110 ^----^ FW:1.0 + key 112:112 ^ + num 112:116 ^--^ 17.1 + sym 117:119 ^^ GB + val 112:119 ^-----^ 17.1 GB +pair 112:119 ^-----^ 17.1 GB +msg :Device: /dev/sda [SAT], VBOX HARDDISK, S/N:VBc8882b62-a0263a39, FW:1.0, 17.1 GB +format :Device: # [#], VBOX #, S/N:#, FW:#, # { - "Device": "/dev/sda [SAT", - "col_0": "VBOX HARDDISK", - "col_1": "S/N:VBc8882b62-a0263a39", + "col_0": "/dev/sda", + "col_1": [ + "SAT" + ], + "VBOX": "HARDDISK", + "S/N": "VBc8882b62-a0263a39", "FW": 1.0, "col_2": "17.1 GB" } diff --git a/test/log-samples/sample-0a470b1dae069dda03984e8e67994d8a.txt b/test/log-samples/sample-0a470b1dae069dda03984e8e67994d8a.txt new file mode 100644 index 0000000..47859da --- /dev/null +++ b/test/log-samples/sample-0a470b1dae069dda03984e8e67994d8a.txt @@ -0,0 +1,26 @@ + 2024-01-10T05:27:07.860Z info vmware-vum-server[27909] [Originator@6876 sub=JobDispatcher] [JobDispatcher 2258] Removing task 52b9d918-efe7-29a6-6d38-6eee37e76f87 that imposed VMware vSphere Update Manager load:1, new load: 0, task active Load: 0 +word 122:126 ^--^ task + key 122:126 ^--^ task +uuid 127:163 ^----------------------------------^ 52b9d918-efe7-29a6-6d38-6eee37e76f87 + val 127:163 ^----------------------------------^ 52b9d918-efe7-29a6-6d38-6eee37e76f87 +pair 122:163 ^---------------------------------------^ task 52b9d918-efe7-29a6-6d38-6eee37e76f87 + key 207:211 ^--^ load + num 212:213 ^ 1 + val 212:213 ^ 1 +pair 207:213 ^----^ load:1 + key 215:223 ^------^ new load + num 225:226 ^ 0 + val 225:226 ^ 0 +pair 215:226 ^---------^ new load: 0 + key 228:244 ^--------------^ task active Load + num 246:247 ^ 0 + val 246:247 ^ 0 +pair 228:247 ^-----------------^ task active Load: 0 +msg :Removing task 52b9d918-efe7-29a6-6d38-6eee37e76f87 that imposed VMware vSphere Update Manager load:1, new load: 0, task active Load: 0 +format :Removing task # that imposed VMware vSphere Update Manager load:#, new load: #, task active Load: # +{ + "task": "52b9d918-efe7-29a6-6d38-6eee37e76f87", + "load": 1, + "new load": 0, + "task active Load": 0 +} diff --git a/test/log-samples/sample-0edd747bbc6d5c173423c079b61c27a4.txt b/test/log-samples/sample-0edd747bbc6d5c173423c079b61c27a4.txt new file mode 100644 index 0000000..f5efd2a --- /dev/null +++ b/test/log-samples/sample-0edd747bbc6d5c173423c079b61c27a4.txt @@ -0,0 +1,13 @@ + 2024-01-10T14:29:28.998Z info vmware-vum-server[136895] [Originator@6876 sub=VumVapiAuthzFilter opID=4d3bd186-a9bf-40d3-9b88-5570f530048f] [RequireAdminUserAuthz 362] RequireAdminUserAuthz::Invoke Method is com.vmware.esx.settings.clusters.configuration.drafts.apply + key 167:167 ^ + sym 167:196 ^---------------------------^ RequireAdminUserAuthz::Invoke +pair 167:196 ^---------------------------^ RequireAdminUserAuthz::Invoke + key 207:207 ^ + sym 207:266 ^---------------------------------------------------------^ com.vmware.esx.settings.clusters.configuration.drafts.apply +pair 207:266 ^---------------------------------------------------------^ com.vmware.esx.settings.clusters.configuration.drafts.apply +msg :RequireAdminUserAuthz::Invoke Method is com.vmware.esx.settings.clusters.configuration.drafts.apply +format :# Method is # +{ + "col_0": "RequireAdminUserAuthz::Invoke", + "col_1": "com.vmware.esx.settings.clusters.configuration.drafts.apply" +} diff --git a/test/log-samples/sample-1aeb47c0a97d19bb7418f0172480e05e49c6e53e.txt b/test/log-samples/sample-1aeb47c0a97d19bb7418f0172480e05e49c6e53e.txt index 289780a..3f52819 100644 --- a/test/log-samples/sample-1aeb47c0a97d19bb7418f0172480e05e49c6e53e.txt +++ b/test/log-samples/sample-1aeb47c0a97d19bb7418f0172480e05e49c6e53e.txt @@ -1,17 +1,19 @@ Apr 29 22:32:27 tstack-centos5 dhclient: bound to 10.1.10.62 -- renewal in 55327 seconds - key 50:50 ^ +word 47:49 ^^ to + key 47:49 ^^ to ipv4 50:60 ^--------^ 10.1.10.62 -pair 50:60 ^--------^ 10.1.10.62 - key 61:61 ^ - sym 61:63 ^^ -- -pair 61:63 ^^ -- - key 75:75 ^ + val 50:60 ^--------^ 10.1.10.62 +pair 47:60 ^-----------^ to 10.1.10.62 + key 64:64 ^ +word 64:71 ^-----^ renewal +word 72:74 ^^ in num 75:80 ^---^ 55327 -pair 75:80 ^---^ 55327 +word 81:88 ^-----^ seconds + val 64:88 ^----------------------^ renewal in 55327 seconds +pair 64:88 ^----------------------^ renewal in 55327 seconds msg :bound to 10.1.10.62 -- renewal in 55327 seconds -format :bound to # # renewal in # seconds +format :bound to # -- # { - "col_0": "10.1.10.62", - "col_1": "--", - "col_2": 55327 + "to": "10.1.10.62", + "col_0": "renewal in 55327 seconds" } diff --git a/test/log-samples/sample-207655c886794bc55da226bcb86e3c91.txt b/test/log-samples/sample-207655c886794bc55da226bcb86e3c91.txt new file mode 100644 index 0000000..26e5bbe --- /dev/null +++ b/test/log-samples/sample-207655c886794bc55da226bcb86e3c91.txt @@ -0,0 +1,33 @@ + Mar 16 08:09:58 app-1 kernel: [ 0.000000] BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved) + key 35:35 ^ + num 35:43 ^------^ 0.000000 + val 35:43 ^------^ 0.000000 + grp 35:43 ^------^ 0.000000 + val 35:43 ^------^ 0.000000 +pair 35:43 ^------^ 0.000000 + key 46:55 ^-------^ BIOS-e820 + hex 57:73 ^--------------^ 00000000000e8000 + val 57:73 ^--------------^ 00000000000e8000 +pair 46:73 ^-------------------------^ BIOS-e820: 00000000000e8000 + key 76:76 ^ +hexd 76:92 ^--------------^ 0000000000100000 + val 76:92 ^--------------^ 0000000000100000 +pair 76:92 ^--------------^ 0000000000100000 + key 94:94 ^ +word 94:102 ^------^ reserved + val 94:102 ^------^ reserved + grp 94:102 ^------^ reserved + val 94:102 ^------^ reserved +pair 94:102 ^------^ reserved +msg :[ 0.000000] BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved) +format :[ #] BIOS-e820: # - # (#) +{ + "col_0": [ + 0.000000 + ], + "BIOS-e820": "00000000000e8000", + "col_1": "0000000000100000", + "col_2": [ + "reserved" + ] +} diff --git a/test/log-samples/sample-27353a72ba4025448f261dcfa6ea16e474187795.txt b/test/log-samples/sample-27353a72ba4025448f261dcfa6ea16e474187795.txt index 3a7277b..84404d1 100644 --- a/test/log-samples/sample-27353a72ba4025448f261dcfa6ea16e474187795.txt +++ b/test/log-samples/sample-27353a72ba4025448f261dcfa6ea16e474187795.txt @@ -1,4 +1,30 @@ Jun 3 07:00:23 Tim-Stacks-iMac.local sudo[2326]: stack : TTY=ttys002 ; PWD=/ ; USER=root ; COMMAND=/bin/ls -msg : -format : -null + key 53:53 ^ +word 53:58 ^---^ stack + val 53:58 ^---^ stack +pair 53:58 ^---^ stack + key 61:64 ^-^ TTY + sym 65:72 ^-----^ ttys002 + val 65:72 ^-----^ ttys002 +pair 61:72 ^---------^ TTY=ttys002 + key 75:78 ^-^ PWD +path 79:80 ^ / + val 79:80 ^ / +pair 75:80 ^---^ PWD=/ + key 83:87 ^--^ USER +word 88:92 ^--^ root + val 88:92 ^--^ root +pair 83:92 ^-------^ USER=root + key 95:102 ^-----^ COMMAND +path 103:110 ^-----^ /bin/ls + val 103:110 ^-----^ /bin/ls +pair 95:110 ^-------------^ COMMAND=/bin/ls +msg :stack : TTY=ttys002 ; PWD=/ ; USER=root ; COMMAND=/bin/ls +format :# : TTY=# ; PWD=# ; USER=# ; COMMAND=# +{ + "col_0": "stack", + "TTY": "ttys002", + "PWD": "/", + "USER": "root", + "COMMAND": "/bin/ls" +} diff --git a/test/log-samples/sample-3136b918134d37827ee97f35adb130a5.txt b/test/log-samples/sample-3136b918134d37827ee97f35adb130a5.txt new file mode 100644 index 0000000..6712649 --- /dev/null +++ b/test/log-samples/sample-3136b918134d37827ee97f35adb130a5.txt @@ -0,0 +1,43 @@ + 2024-01-11T10:46:05.874Z info vmware-vum-server[1243065] [Originator@6876 sub=EHP opID=eb9d737f-fa4f-421d-9beb-ce31fb27938f] [host-553] [vSphere HA] [com.vmware.vcIntegrity.lifecycle.health.vc.host_ha_state] returned status: OK + key 126:126 ^ + id 126:134 ^------^ host-553 + val 126:134 ^------^ host-553 + grp 126:134 ^------^ host-553 + val 126:134 ^------^ host-553 +pair 126:134 ^------^ host-553 + key 137:137 ^ + sym 137:144 ^-----^ vSphere + sym 145:147 ^^ HA + val 137:147 ^--------^ vSphere HA + grp 137:147 ^--------^ vSphere HA + val 137:147 ^--------^ vSphere HA +pair 137:147 ^--------^ vSphere HA + key 150:150 ^ + sym 150:206 ^------------------------------------------------------^ com.vmware.vcIntegrity.lifecycle.health.vc.host_ha_state + val 150:206 ^------------------------------------------------------^ com.vmware.vcIntegrity.lifecycle.health.vc.host_ha_state + grp 150:206 ^------------------------------------------------------^ com.vmware.vcIntegrity.lifecycle.health.vc.host_ha_state + val 150:206 ^------------------------------------------------------^ com.vmware.vcIntegrity.lifecycle.health.vc.host_ha_state +pair 150:206 ^------------------------------------------------------^ com.vmware.vcIntegrity.lifecycle.health.vc.host_ha_state + key 208:208 ^ +word 208:216 ^------^ returned + val 208:216 ^------^ returned +pair 208:216 ^------^ returned + key 217:223 ^----^ status + sym 225:227 ^^ OK + val 225:227 ^^ OK +pair 217:227 ^--------^ status: OK +msg :[host-553] [vSphere HA] [com.vmware.vcIntegrity.lifecycle.health.vc.host_ha_state] returned status: OK +format :[#] [#] [#] # status: # +{ + "col_0": [ + "host-553" + ], + "col_1": [ + "vSphere HA" + ], + "col_2": [ + "com.vmware.vcIntegrity.lifecycle.health.vc.host_ha_state" + ], + "col_3": "returned", + "status": "OK" +} diff --git a/test/log-samples/sample-5cbaeeb96f1f0c11a93656107801efc3.txt b/test/log-samples/sample-5cbaeeb96f1f0c11a93656107801efc3.txt new file mode 100644 index 0000000..e8002c0 --- /dev/null +++ b/test/log-samples/sample-5cbaeeb96f1f0c11a93656107801efc3.txt @@ -0,0 +1,52 @@ + 2024-01-10T05:26:20.440Z error vmware-vum-server[28046] [Originator@6876 sub=Key] [key 59] [backtrace begin] product: VMware Update Manager, version: 8.0.3, build: build-22994205, tag: vmware-vum-server, cpu: x86_64, os: linux, buildType: release + key 92:92 ^ +word 92:101 ^-------^ backtrace +word 102:107 ^---^ begin + val 92:107 ^-------------^ backtrace begin + grp 92:107 ^-------------^ backtrace begin + val 92:107 ^-------------^ backtrace begin +pair 92:107 ^-------------^ backtrace begin + key 109:116 ^-----^ product + sym 118:124 ^----^ VMware +word 125:131 ^----^ Update +word 132:139 ^-----^ Manager + val 118:139 ^-------------------^ VMware Update Manager +pair 109:139 ^----------------------------^ product: VMware Update Manager + key 141:148 ^-----^ version +vers 150:155 ^---^ 8.0.3 + val 150:155 ^---^ 8.0.3 +pair 141:155 ^------------^ version: 8.0.3 + key 157:162 ^---^ build + id 164:178 ^------------^ build-22994205 + val 164:178 ^------------^ build-22994205 +pair 157:178 ^-------------------^ build: build-22994205 + key 180:183 ^-^ tag + id 185:202 ^---------------^ vmware-vum-server + val 185:202 ^---------------^ vmware-vum-server +pair 180:202 ^--------------------^ tag: vmware-vum-server + key 204:207 ^-^ cpu + sym 209:215 ^----^ x86_64 + val 209:215 ^----^ x86_64 +pair 204:215 ^---------^ cpu: x86_64 + key 217:219 ^^ os +word 221:226 ^---^ linux + val 221:226 ^---^ linux +pair 217:226 ^-------^ os: linux + key 228:237 ^-------^ buildType +word 239:246 ^-----^ release + val 239:246 ^-----^ release +pair 228:246 ^----------------^ buildType: release +msg :[backtrace begin] product: VMware Update Manager, version: 8.0.3, build: build-22994205, tag: vmware-vum-server, cpu: x86_64, os: linux, buildType: release +format :[#] product: #, version: #, build: #, tag: #, cpu: #, os: #, buildType: # +{ + "col_0": [ + "backtrace begin" + ], + "product": "VMware Update Manager", + "version": "8.0.3", + "build": "build-22994205", + "tag": "vmware-vum-server", + "cpu": "x86_64", + "os": "linux", + "buildType": "release" +} diff --git a/test/log-samples/sample-63068cd0931f8cbd22c2f15ac318af12.txt b/test/log-samples/sample-63068cd0931f8cbd22c2f15ac318af12.txt new file mode 100644 index 0000000..8715526 --- /dev/null +++ b/test/log-samples/sample-63068cd0931f8cbd22c2f15ac318af12.txt @@ -0,0 +1,135 @@ + 2021-09-25T11:22:08.034Z info vsand[1000946202] [opID=SWI-5e21ef1d-ddc1-f459 VsanPyVmomiProfiler::logProfile] VIS.GetFileShareObjects: 0.01s, consumed: 97564KB (+0KB), consumedPeak: 98644KB (+0KB), effectiveMin: 117872KB (+0KB), effectiveMinPeak: 121336KB (+0KB), requestedMinPeak: 121336KB (+0KB) + key 112:135 ^---------------------^ VIS.GetFileShareObjects + num 137:141 ^--^ 0.01 +unit 141:142 ^ s +meas 137:142 ^---^ 0.01s + val 137:142 ^---^ 0.01s +pair 112:142 ^----------------------------^ VIS.GetFileShareObjects: 0.01s + key 144:152 ^------^ consumed + num 154:159 ^---^ 97564 +unit 159:161 ^^ KB +meas 154:161 ^-----^ 97564KB + val 154:161 ^-----^ 97564KB +pair 144:161 ^---------------^ consumed: 97564KB + key 164:164 ^ + num 164:165 ^ 0 +unit 165:167 ^^ KB +meas 164:167 ^-^ 0KB + val 164:167 ^-^ 0KB + grp 164:167 ^-^ 0KB + val 164:167 ^-^ 0KB +pair 164:167 ^-^ 0KB + key 170:182 ^----------^ consumedPeak + num 184:189 ^---^ 98644 +unit 189:191 ^^ KB +meas 184:191 ^-----^ 98644KB + val 184:191 ^-----^ 98644KB +pair 170:191 ^-------------------^ consumedPeak: 98644KB + key 194:194 ^ + num 194:195 ^ 0 +unit 195:197 ^^ KB +meas 194:197 ^-^ 0KB + val 194:197 ^-^ 0KB + grp 194:197 ^-^ 0KB + val 194:197 ^-^ 0KB +pair 194:197 ^-^ 0KB + key 200:212 ^----------^ effectiveMin + num 214:220 ^----^ 117872 +unit 220:222 ^^ KB +meas 214:222 ^------^ 117872KB + val 214:222 ^------^ 117872KB +pair 200:222 ^--------------------^ effectiveMin: 117872KB + key 225:225 ^ + num 225:226 ^ 0 +unit 226:228 ^^ KB +meas 225:228 ^-^ 0KB + val 225:228 ^-^ 0KB + grp 225:228 ^-^ 0KB + val 225:228 ^-^ 0KB +pair 225:228 ^-^ 0KB + key 231:247 ^--------------^ effectiveMinPeak + num 249:255 ^----^ 121336 +unit 255:257 ^^ KB +meas 249:257 ^------^ 121336KB + val 249:257 ^------^ 121336KB +pair 231:257 ^------------------------^ effectiveMinPeak: 121336KB + key 260:260 ^ + num 260:261 ^ 0 +unit 261:263 ^^ KB +meas 260:263 ^-^ 0KB + val 260:263 ^-^ 0KB + grp 260:263 ^-^ 0KB + val 260:263 ^-^ 0KB +pair 260:263 ^-^ 0KB + key 266:282 ^--------------^ requestedMinPeak + num 284:290 ^----^ 121336 +unit 290:292 ^^ KB +meas 284:292 ^------^ 121336KB + val 284:292 ^------^ 121336KB +pair 266:292 ^------------------------^ requestedMinPeak: 121336KB + key 295:295 ^ + num 295:296 ^ 0 +unit 296:298 ^^ KB +meas 295:298 ^-^ 0KB + val 295:298 ^-^ 0KB + grp 295:298 ^-^ 0KB + val 295:298 ^-^ 0KB +pair 295:298 ^-^ 0KB +msg :VIS.GetFileShareObjects: 0.01s, consumed: 97564KB (+0KB), consumedPeak: 98644KB (+0KB), effectiveMin: 117872KB (+0KB), effectiveMinPeak: 121336KB (+0KB), requestedMinPeak: 121336KB (+0KB) +format :VIS.GetFileShareObjects: #, consumed: # (+#), consumedPeak: # (+#), effectiveMin: # (+#), effectiveMinPeak: # (+#), requestedMinPeak: # (+#) +{ + "VIS.GetFileShareObjects": [ + 0.01, + "s" + ], + "consumed": [ + 97564, + "KB" + ], + "col_0": [ + [ + 0, + "KB" + ] + ], + "consumedPeak": [ + 98644, + "KB" + ], + "col_1": [ + [ + 0, + "KB" + ] + ], + "effectiveMin": [ + 117872, + "KB" + ], + "col_2": [ + [ + 0, + "KB" + ] + ], + "effectiveMinPeak": [ + 121336, + "KB" + ], + "col_3": [ + [ + 0, + "KB" + ] + ], + "requestedMinPeak": [ + 121336, + "KB" + ], + "col_4": [ + [ + 0, + "KB" + ] + ] +} diff --git a/test/log-samples/sample-67484ecc8091237a27f12863d36b4d03.txt b/test/log-samples/sample-67484ecc8091237a27f12863d36b4d03.txt new file mode 100644 index 0000000..5f7cf36 --- /dev/null +++ b/test/log-samples/sample-67484ecc8091237a27f12863d36b4d03.txt @@ -0,0 +1,26 @@ + 2024-01-10T05:27:07.452Z info vmware-vum-server[28092] [Originator@6876 sub=com.vmware.vcIntegrity.lifecycle.DesiredScanClusterTask] [Task, 524] Task:com.vmware.vcIntegrity.lifecycle.DesiredScanClusterTask ID:52b9d918-efe7-29a6-6d38-6eee37e76f87. Combining scan results for 32 hosts + key 145:149 ^--^ Task + sym 150:205 ^-----------------------------------------------------^ com.vmware.vcIntegrity.lifecycle.DesiredScanClusterTask + val 150:205 ^-----------------------------------------------------^ com.vmware.vcIntegrity.lifecycle.DesiredScanClusterTask +pair 145:205 ^----------------------------------------------------------^ Task:com.vmware.vcIntegrity.lifecycle.DesiredScanClusterTask + key 206:208 ^^ ID +uuid 209:245 ^----------------------------------^ 52b9d918-efe7-29a6-6d38-6eee37e76f87 + val 209:245 ^----------------------------------^ 52b9d918-efe7-29a6-6d38-6eee37e76f87 +pair 206:245 ^-------------------------------------^ ID:52b9d918-efe7-29a6-6d38-6eee37e76f87 +word 270:273 ^-^ for + key 270:273 ^-^ for + num 274:276 ^^ 32 + val 274:276 ^^ 32 +pair 270:276 ^----^ for 32 + key 277:277 ^ +word 277:282 ^---^ hosts + val 277:282 ^---^ hosts +pair 277:282 ^---^ hosts +msg :Task:com.vmware.vcIntegrity.lifecycle.DesiredScanClusterTask ID:52b9d918-efe7-29a6-6d38-6eee37e76f87. Combining scan results for 32 hosts +format :Task:# ID:#. Combining scan results for # # +{ + "Task": "com.vmware.vcIntegrity.lifecycle.DesiredScanClusterTask", + "ID": "52b9d918-efe7-29a6-6d38-6eee37e76f87", + "for": 32, + "col_0": "hosts" +} diff --git a/test/log-samples/sample-70c906b3c1a1cf03f15bde92ee78edfa6f9b7960.txt b/test/log-samples/sample-70c906b3c1a1cf03f15bde92ee78edfa6f9b7960.txt index 9d80bf9..34ff50f 100644 --- a/test/log-samples/sample-70c906b3c1a1cf03f15bde92ee78edfa6f9b7960.txt +++ b/test/log-samples/sample-70c906b3c1a1cf03f15bde92ee78edfa6f9b7960.txt @@ -1,4 +1,33 @@ Jun 3 07:02:37 Tim-Stacks-iMac.local sudo[2717]: stack : TTY=ttys002 ; PWD=/ ; USER=root ; COMMAND=/usr/bin/env VAR1=foo ls -msg : -format : -null + key 53:53 ^ +word 53:58 ^---^ stack + val 53:58 ^---^ stack +pair 53:58 ^---^ stack + key 61:64 ^-^ TTY + sym 65:72 ^-----^ ttys002 + val 65:72 ^-----^ ttys002 +pair 61:72 ^---------^ TTY=ttys002 + key 75:78 ^-^ PWD +path 79:80 ^ / + val 79:80 ^ / +pair 75:80 ^---^ PWD=/ + key 83:87 ^--^ USER +word 88:92 ^--^ root + val 88:92 ^--^ root +pair 83:92 ^-------^ USER=root + key 95:102 ^-----^ COMMAND +path 103:115 ^----------^ /usr/bin/env + sym 116:120 ^--^ VAR1 +word 121:124 ^-^ foo +word 125:127 ^^ ls + val 103:127 ^----------------------^ /usr/bin/env VAR1=foo ls +pair 95:127 ^------------------------------^ COMMAND=/usr/bin/env VAR1=foo ls +msg :stack : TTY=ttys002 ; PWD=/ ; USER=root ; COMMAND=/usr/bin/env VAR1=foo ls +format :# : TTY=# ; PWD=# ; USER=# ; COMMAND=# +{ + "col_0": "stack", + "TTY": "ttys002", + "PWD": "/", + "USER": "root", + "COMMAND": "/usr/bin/env VAR1=foo ls" +} diff --git a/test/log-samples/sample-8a6527cdf27015a0204702430b6eca09.txt b/test/log-samples/sample-8a6527cdf27015a0204702430b6eca09.txt new file mode 100644 index 0000000..8f6bb65 --- /dev/null +++ b/test/log-samples/sample-8a6527cdf27015a0204702430b6eca09.txt @@ -0,0 +1,135 @@ + 2021-09-22T05:54:16.060Z info vsand[1000946217] [opID=Thread-2 VsanPyVmomiProfiler::logProfile] get-disk-data: 0.00s, consumed: 97792KB (+0KB), consumedPeak: 98644KB (+0KB), effectiveMin: 118228KB (+0KB), effectiveMinPeak: 121336KB (+0KB), requestedMinPeak: 121336KB (+0KB) + key 98:111 ^-----------^ get-disk-data + num 113:117 ^--^ 0.00 +unit 117:118 ^ s +meas 113:118 ^---^ 0.00s + val 113:118 ^---^ 0.00s +pair 98:118 ^------------------^ get-disk-data: 0.00s + key 120:128 ^------^ consumed + num 130:135 ^---^ 97792 +unit 135:137 ^^ KB +meas 130:137 ^-----^ 97792KB + val 130:137 ^-----^ 97792KB +pair 120:137 ^---------------^ consumed: 97792KB + key 140:140 ^ + num 140:141 ^ 0 +unit 141:143 ^^ KB +meas 140:143 ^-^ 0KB + val 140:143 ^-^ 0KB + grp 140:143 ^-^ 0KB + val 140:143 ^-^ 0KB +pair 140:143 ^-^ 0KB + key 146:158 ^----------^ consumedPeak + num 160:165 ^---^ 98644 +unit 165:167 ^^ KB +meas 160:167 ^-----^ 98644KB + val 160:167 ^-----^ 98644KB +pair 146:167 ^-------------------^ consumedPeak: 98644KB + key 170:170 ^ + num 170:171 ^ 0 +unit 171:173 ^^ KB +meas 170:173 ^-^ 0KB + val 170:173 ^-^ 0KB + grp 170:173 ^-^ 0KB + val 170:173 ^-^ 0KB +pair 170:173 ^-^ 0KB + key 176:188 ^----------^ effectiveMin + num 190:196 ^----^ 118228 +unit 196:198 ^^ KB +meas 190:198 ^------^ 118228KB + val 190:198 ^------^ 118228KB +pair 176:198 ^--------------------^ effectiveMin: 118228KB + key 201:201 ^ + num 201:202 ^ 0 +unit 202:204 ^^ KB +meas 201:204 ^-^ 0KB + val 201:204 ^-^ 0KB + grp 201:204 ^-^ 0KB + val 201:204 ^-^ 0KB +pair 201:204 ^-^ 0KB + key 207:223 ^--------------^ effectiveMinPeak + num 225:231 ^----^ 121336 +unit 231:233 ^^ KB +meas 225:233 ^------^ 121336KB + val 225:233 ^------^ 121336KB +pair 207:233 ^------------------------^ effectiveMinPeak: 121336KB + key 236:236 ^ + num 236:237 ^ 0 +unit 237:239 ^^ KB +meas 236:239 ^-^ 0KB + val 236:239 ^-^ 0KB + grp 236:239 ^-^ 0KB + val 236:239 ^-^ 0KB +pair 236:239 ^-^ 0KB + key 242:258 ^--------------^ requestedMinPeak + num 260:266 ^----^ 121336 +unit 266:268 ^^ KB +meas 260:268 ^------^ 121336KB + val 260:268 ^------^ 121336KB +pair 242:268 ^------------------------^ requestedMinPeak: 121336KB + key 271:271 ^ + num 271:272 ^ 0 +unit 272:274 ^^ KB +meas 271:274 ^-^ 0KB + val 271:274 ^-^ 0KB + grp 271:274 ^-^ 0KB + val 271:274 ^-^ 0KB +pair 271:274 ^-^ 0KB +msg :get-disk-data: 0.00s, consumed: 97792KB (+0KB), consumedPeak: 98644KB (+0KB), effectiveMin: 118228KB (+0KB), effectiveMinPeak: 121336KB (+0KB), requestedMinPeak: 121336KB (+0KB) +format :get-disk-data: #, consumed: # (+#), consumedPeak: # (+#), effectiveMin: # (+#), effectiveMinPeak: # (+#), requestedMinPeak: # (+#) +{ + "get-disk-data": [ + 0.00, + "s" + ], + "consumed": [ + 97792, + "KB" + ], + "col_0": [ + [ + 0, + "KB" + ] + ], + "consumedPeak": [ + 98644, + "KB" + ], + "col_1": [ + [ + 0, + "KB" + ] + ], + "effectiveMin": [ + 118228, + "KB" + ], + "col_2": [ + [ + 0, + "KB" + ] + ], + "effectiveMinPeak": [ + 121336, + "KB" + ], + "col_3": [ + [ + 0, + "KB" + ] + ], + "requestedMinPeak": [ + 121336, + "KB" + ], + "col_4": [ + [ + 0, + "KB" + ] + ] +} diff --git a/test/log-samples/sample-97f2106d5fa94132715730416e86b3de.txt b/test/log-samples/sample-97f2106d5fa94132715730416e86b3de.txt new file mode 100644 index 0000000..027a3eb --- /dev/null +++ b/test/log-samples/sample-97f2106d5fa94132715730416e86b3de.txt @@ -0,0 +1,16 @@ + 2024-01-11T10:46:03.218Z info vmware-vum-server[28274] [Originator@6876 sub=HostLocator opID=eb9d737f-fa4f-421d-9beb-ce31fb27938f] [hostLocator 239] Getting Management IP for host host-556: 10.172.44.70 +word 175:179 ^--^ host + key 175:179 ^--^ host + id 180:188 ^------^ host-556 + val 180:188 ^------^ host-556 +pair 175:188 ^-----------^ host host-556 + key 190:190 ^ +ipv4 190:202 ^----------^ 10.172.44.70 + val 190:202 ^----------^ 10.172.44.70 +pair 190:202 ^----------^ 10.172.44.70 +msg :Getting Management IP for host host-556: 10.172.44.70 +format :Getting Management IP for host #: # +{ + "host": "host-556", + "col_0": "10.172.44.70" +} diff --git a/test/log-samples/sample-aca2878a2e50779c6697c0747ab1f60e4b368dcb.txt b/test/log-samples/sample-aca2878a2e50779c6697c0747ab1f60e4b368dcb.txt index f5c31f2..b69ecf8 100644 --- a/test/log-samples/sample-aca2878a2e50779c6697c0747ab1f60e4b368dcb.txt +++ b/test/log-samples/sample-aca2878a2e50779c6697c0747ab1f60e4b368dcb.txt @@ -3,6 +3,7 @@ path 43:64 ^-------------------^ /sbin/dhclient-script val 43:64 ^-------------------^ /sbin/dhclient-script pair 43:64 ^-------------------^ /sbin/dhclient-script +word 67:74 ^-----^ updated key 67:74 ^-----^ updated path 75:91 ^--------------^ /etc/resolv.conf val 75:91 ^--------------^ /etc/resolv.conf diff --git a/test/log-samples/sample-ad31f12d2adabd07e3ddda3ad5b0dbf6b49c4c99.txt b/test/log-samples/sample-ad31f12d2adabd07e3ddda3ad5b0dbf6b49c4c99.txt index 63c22cc..7307f40 100644 --- a/test/log-samples/sample-ad31f12d2adabd07e3ddda3ad5b0dbf6b49c4c99.txt +++ b/test/log-samples/sample-ad31f12d2adabd07e3ddda3ad5b0dbf6b49c4c99.txt @@ -3,19 +3,14 @@ quot 49:49 ^ val 49:49 ^ pair 43:49 ^----^ vmnet: - key 50:67 ^---------------^ VNetUserIf_Create -word 69:76 ^-----^ created -wspc 76:77 ^ - sym 77:83 ^----^ userIf -wspc 83:84 ^ word 84:86 ^^ at -wspc 86:87 ^ + key 84:86 ^^ at hex 87:105 ^----------------^ 0xffffff802644f400 - val 69:105 ^----------------------------------^ created userIf at 0xffffff802644f400 -pair 50:105 ^-----------------------------------------------------^ VNetUserIf_Create: created userIf at 0xffffff802644f400 + val 87:105 ^----------------^ 0xffffff802644f400 +pair 84:105 ^-------------------^ at 0xffffff802644f400 msg :vmnet: VNetUserIf_Create: created userIf at 0xffffff802644f400 -format :vmnet:# VNetUserIf_Create: # +format :vmnet:# VNetUserIf_Create: created userIf at # { "vmnet": "", - "VNetUserIf_Create": "created userIf at 0xffffff802644f400" + "at": "0xffffff802644f400" } diff --git a/test/log-samples/sample-bc6f6cf689fa5455616b4d9fbe121a48d3c9de59.txt b/test/log-samples/sample-bc6f6cf689fa5455616b4d9fbe121a48d3c9de59.txt index 32d86d0..72cc4e2 100644 --- a/test/log-samples/sample-bc6f6cf689fa5455616b4d9fbe121a48d3c9de59.txt +++ b/test/log-samples/sample-bc6f6cf689fa5455616b4d9fbe121a48d3c9de59.txt @@ -1,23 +1,22 @@ Apr 29 08:13:42 tstack-centos5 dhclient: DHCPNAK from 10.1.10.1 (xid=0x4e17f141) - key 41:41 ^ - sym 41:48 ^-----^ DHCPNAK -pair 41:48 ^-----^ DHCPNAK - key 54:54 ^ +word 49:53 ^--^ from + key 49:53 ^--^ from ipv4 54:63 ^-------^ 10.1.10.1 -pair 54:63 ^-------^ 10.1.10.1 + val 54:63 ^-------^ 10.1.10.1 +pair 49:63 ^------------^ from 10.1.10.1 key 65:65 ^ key 65:68 ^-^ xid hex 69:79 ^--------^ 0x4e17f141 val 69:79 ^--------^ 0x4e17f141 pair 65:79 ^------------^ xid=0x4e17f141 grp 65:79 ^------------^ xid=0x4e17f141 + val 65:79 ^------------^ xid=0x4e17f141 pair 65:79 ^------------^ xid=0x4e17f141 msg :DHCPNAK from 10.1.10.1 (xid=0x4e17f141) -format :# from # (#) +format :DHCPNAK from # (#) { - "col_0": "DHCPNAK", - "col_1": "10.1.10.1", - "col_2": [ + "from": "10.1.10.1", + "col_0": [ { "xid": "0x4e17f141" } diff --git a/test/log-samples/sample-bed6bfb07b2af767547cedbf489c15ce.txt b/test/log-samples/sample-bed6bfb07b2af767547cedbf489c15ce.txt new file mode 100644 index 0000000..595f53b --- /dev/null +++ b/test/log-samples/sample-bed6bfb07b2af767547cedbf489c15ce.txt @@ -0,0 +1,15 @@ + 2024-01-10T05:22:13.258Z info vmware-vum-server[28092] [Originator@6876 sub=ClusterConfigListener] [clusterConfigListener 60] Got UUID for host: host-24 -> 4c4c4544-0052-4310-8057-b3c04f543532 + key 126:143 ^---------------^ Got UUID for host + id 145:152 ^-----^ host-24 + val 145:152 ^-----^ host-24 +pair 126:152 ^------------------------^ Got UUID for host: host-24 + key 156:156 ^ +uuid 156:192 ^----------------------------------^ 4c4c4544-0052-4310-8057-b3c04f543532 + val 156:192 ^----------------------------------^ 4c4c4544-0052-4310-8057-b3c04f543532 +pair 156:192 ^----------------------------------^ 4c4c4544-0052-4310-8057-b3c04f543532 +msg :Got UUID for host: host-24 -> 4c4c4544-0052-4310-8057-b3c04f543532 +format :Got UUID for host: # -> # +{ + "Got UUID for host": "host-24", + "col_0": "4c4c4544-0052-4310-8057-b3c04f543532" +} diff --git a/test/log-samples/sample-c15acd32844669d23d0cbc88ec548129ed2c592e.txt b/test/log-samples/sample-c15acd32844669d23d0cbc88ec548129ed2c592e.txt index a68d490..ae28119 100644 --- a/test/log-samples/sample-c15acd32844669d23d0cbc88ec548129ed2c592e.txt +++ b/test/log-samples/sample-c15acd32844669d23d0cbc88ec548129ed2c592e.txt @@ -1,8 +1,21 @@ Jul 14 14:31:06 linjenkins3 kernel: [31809412.513897] [UFW BLOCK] IN=eth0 OUT= MAC=40:40:2e:9a:ad:92:c4:71:fe:f1:b9:7f:08:00 SRC=69.60.116.202 DST=173.203.237.224 LEN=44 TOS=0x00 PREC=0x00 TTL=29 ID=15852 PROTO=TCP SPT=43998 DPT=3389 WINDOW=3072 RES=0x00 SYN URGP=0 - key 37:68 ^-----------------------------^ 31809412.513897] [UFW BLOCK] IN + key 37:37 ^ + num 37:52 ^-------------^ 31809412.513897 + val 37:52 ^-------------^ 31809412.513897 + grp 37:52 ^-------------^ 31809412.513897 + val 37:52 ^-------------^ 31809412.513897 +pair 37:52 ^-------------^ 31809412.513897 + key 55:55 ^ + sym 55:58 ^-^ UFW + sym 59:64 ^---^ BLOCK + val 55:64 ^-------^ UFW BLOCK + grp 55:64 ^-------^ UFW BLOCK + val 55:64 ^-------^ UFW BLOCK +pair 55:64 ^-------^ UFW BLOCK + key 66:68 ^^ IN sym 69:73 ^--^ eth0 val 69:73 ^--^ eth0 -pair 37:73 ^----------------------------------^ 31809412.513897] [UFW BLOCK] IN=eth0 +pair 66:73 ^-----^ IN=eth0 key 74:77 ^-^ OUT quot 78:78 ^ val 78:78 ^ @@ -57,18 +70,22 @@ pair 225:233 pair 234:245 ^---------^ WINDOW=3072 key 246:249 ^-^ RES hex 250:254 ^--^ 0x00 -wspc 254:255 ^ - sym 255:258 ^-^ SYN - val 250:258 ^------^ 0x00 SYN -pair 246:258 ^----------^ RES=0x00 SYN + val 250:254 ^--^ 0x00 +pair 246:254 ^------^ RES=0x00 key 259:263 ^--^ URGP num 264:265 ^ 0 val 264:265 ^ 0 pair 259:265 ^----^ URGP=0 msg :[31809412.513897] [UFW BLOCK] IN=eth0 OUT= MAC=40:40:2e:9a:ad:92:c4:71:fe:f1:b9:7f:08:00 SRC=69.60.116.202 DST=173.203.237.224 LEN=44 TOS=0x00 PREC=0x00 TTL=29 ID=15852 PROTO=TCP SPT=43998 DPT=3389 WINDOW=3072 RES=0x00 SYN URGP=0 -format :[31809412.513897] [UFW BLOCK] IN=# OUT=# MAC=# SRC=# DST=# LEN=# TOS=# PREC=# TTL=# ID=# PROTO=# SPT=# DPT=# WINDOW=# RES=# URGP=# +format :[#] [#] IN=# OUT=# MAC=# SRC=# DST=# LEN=# TOS=# PREC=# TTL=# ID=# PROTO=# SPT=# DPT=# WINDOW=# RES=# SYN URGP=# { - "31809412.513897] [UFW BLOCK] IN": "eth0", + "col_0": [ + 31809412.513897 + ], + "col_1": [ + "UFW BLOCK" + ], + "IN": "eth0", "OUT": "", "MAC": "40:40:2e:9a:ad:92:c4:71:fe:f1:b9:7f:08:00", "SRC": "69.60.116.202", @@ -82,6 +99,6 @@ format :[31809412.513897] [UFW BLOCK] IN=# OUT=# MAC=# SRC=# DST=# LEN=# TO "SPT": 43998, "DPT": 3389, "WINDOW": 3072, - "RES": "0x00 SYN", + "RES": "0x00", "URGP": 0 } diff --git a/test/log-samples/sample-c23f22c1b932b904203e018f78dead95fb89b15d.txt b/test/log-samples/sample-c23f22c1b932b904203e018f78dead95fb89b15d.txt index 376752b..3d0fe7c 100644 --- a/test/log-samples/sample-c23f22c1b932b904203e018f78dead95fb89b15d.txt +++ b/test/log-samples/sample-c23f22c1b932b904203e018f78dead95fb89b15d.txt @@ -1,35 +1,34 @@ Apr 29 08:13:42 tstack-centos5 dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5 (xid=0xd16b79d) - key 41:41 ^ - sym 41:53 ^----------^ DHCPDISCOVER -pair 41:53 ^----------^ DHCPDISCOVER - key 57:57 ^ - sym 57:61 ^--^ eth0 -pair 57:61 ^--^ eth0 - key 65:65 ^ +word 62:64 ^^ to + key 62:64 ^^ to ipv4 65:80 ^-------------^ 255.255.255.255 -pair 65:80 ^-------------^ 255.255.255.255 - key 86:86 ^ + val 65:80 ^-------------^ 255.255.255.255 +pair 62:80 ^----------------^ to 255.255.255.255 +word 81:85 ^--^ port + key 81:85 ^--^ port num 86:88 ^^ 67 -pair 86:88 ^^ 67 - key 98:98 ^ + val 86:88 ^^ 67 +pair 81:88 ^-----^ port 67 +word 89:97 ^------^ interval + key 89:97 ^------^ interval num 98:99 ^ 5 -pair 98:99 ^ 5 + val 98:99 ^ 5 +pair 89:99 ^--------^ interval 5 key 101:101 ^ key 101:104 ^-^ xid hex 105:114 ^-------^ 0xd16b79d val 105:114 ^-------^ 0xd16b79d pair 101:114 ^-----------^ xid=0xd16b79d grp 101:114 ^-----------^ xid=0xd16b79d + val 101:114 ^-----------^ xid=0xd16b79d pair 101:114 ^-----------^ xid=0xd16b79d msg :DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5 (xid=0xd16b79d) -format :# on # to # port # interval # (#) +format :DHCPDISCOVER on eth0 to # port # interval # (#) { - "col_0": "DHCPDISCOVER", - "col_1": "eth0", - "col_2": "255.255.255.255", - "col_3": 67, - "col_4": 5, - "col_5": [ + "to": "255.255.255.255", + "port": 67, + "interval": 5, + "col_0": [ { "xid": "0xd16b79d" } diff --git a/test/log-samples/sample-d0d6b3fc6766caac5ac3fac4a3754ceaab785eb8.txt b/test/log-samples/sample-d0d6b3fc6766caac5ac3fac4a3754ceaab785eb8.txt index b7aad42..7fb8c1d 100644 --- a/test/log-samples/sample-d0d6b3fc6766caac5ac3fac4a3754ceaab785eb8.txt +++ b/test/log-samples/sample-d0d6b3fc6766caac5ac3fac4a3754ceaab785eb8.txt @@ -1,31 +1,28 @@ Apr 29 22:32:26 tstack-centos5 dhclient: DHCPREQUEST on eth0 to 10.1.10.1 port 67 (xid=0xd16b79d) - key 41:41 ^ - sym 41:52 ^---------^ DHCPREQUEST -pair 41:52 ^---------^ DHCPREQUEST - key 56:56 ^ - sym 56:60 ^--^ eth0 -pair 56:60 ^--^ eth0 - key 64:64 ^ +word 61:63 ^^ to + key 61:63 ^^ to ipv4 64:73 ^-------^ 10.1.10.1 -pair 64:73 ^-------^ 10.1.10.1 - key 79:79 ^ + val 64:73 ^-------^ 10.1.10.1 +pair 61:73 ^----------^ to 10.1.10.1 +word 74:78 ^--^ port + key 74:78 ^--^ port num 79:81 ^^ 67 -pair 79:81 ^^ 67 + val 79:81 ^^ 67 +pair 74:81 ^-----^ port 67 key 83:83 ^ key 83:86 ^-^ xid hex 87:96 ^-------^ 0xd16b79d val 87:96 ^-------^ 0xd16b79d pair 83:96 ^-----------^ xid=0xd16b79d grp 83:96 ^-----------^ xid=0xd16b79d + val 83:96 ^-----------^ xid=0xd16b79d pair 83:96 ^-----------^ xid=0xd16b79d msg :DHCPREQUEST on eth0 to 10.1.10.1 port 67 (xid=0xd16b79d) -format :# on # to # port # (#) +format :DHCPREQUEST on eth0 to # port # (#) { - "col_0": "DHCPREQUEST", - "col_1": "eth0", - "col_2": "10.1.10.1", - "col_3": 67, - "col_4": [ + "to": "10.1.10.1", + "port": 67, + "col_0": [ { "xid": "0xd16b79d" } diff --git a/test/log-samples/sample-dd7d406352ec6a11d966b6f015a9482b060f2b29.txt b/test/log-samples/sample-dd7d406352ec6a11d966b6f015a9482b060f2b29.txt index bcf3908..9801802 100644 --- a/test/log-samples/sample-dd7d406352ec6a11d966b6f015a9482b060f2b29.txt +++ b/test/log-samples/sample-dd7d406352ec6a11d966b6f015a9482b060f2b29.txt @@ -1,23 +1,24 @@ 2013-02-11 06:42:34,311:INFO:com.twisted:Starting factory <twisted.web.server.Site instance at 0x1de9290> - key 29:29 ^ key 29:40 ^---------^ com.twisted -pair 29:40 ^---------^ com.twisted - key 59:59 ^ - sym 59:82 ^---------------------^ twisted.web.server.Site -wspc 82:83 ^ -word 83:91 ^------^ instance -wspc 91:92 ^ +word 41:49 ^------^ Starting + val 41:49 ^------^ Starting +pair 29:49 ^------------------^ com.twisted:Starting + key 50:57 ^-----^ factory word 92:94 ^^ at -wspc 94:95 ^ + key 92:94 ^^ at hex 95:104 ^-------^ 0x1de9290 - val 59:104 ^-------------------------------------------^ twisted.web.server.Site instance at 0x1de9290 - grp 59:104 ^-------------------------------------------^ twisted.web.server.Site instance at 0x1de9290 -pair 59:104 ^-------------------------------------------^ twisted.web.server.Site instance at 0x1de9290 + val 95:104 ^-------^ 0x1de9290 +pair 92:104 ^----------^ at 0x1de9290 + grp 92:104 ^----------^ at 0x1de9290 + val 92:104 ^----------^ at 0x1de9290 +pair 50:104 ^----------------------------------------------------^ factory <twisted.web.server.Site instance at 0x1de9290 msg ::com.twisted:Starting factory <twisted.web.server.Site instance at 0x1de9290> -format ::#:Starting factory <#> +format ::com.twisted:# factory <twisted.web.server.Site instance #> { - "col_0": "com.twisted", - "col_1": [ - "twisted.web.server.Site instance at 0x1de9290" + "com.twisted": "Starting", + "factory": [ + { + "at": "0x1de9290" + } ] } diff --git a/test/log-samples/sample-e779d1771e34f5203ae73e85802e78002be63db6.txt b/test/log-samples/sample-e779d1771e34f5203ae73e85802e78002be63db6.txt index d527217..ff58580 100644 --- a/test/log-samples/sample-e779d1771e34f5203ae73e85802e78002be63db6.txt +++ b/test/log-samples/sample-e779d1771e34f5203ae73e85802e78002be63db6.txt @@ -1,23 +1,22 @@ Apr 29 22:32:27 tstack-centos5 dhclient: DHCPACK from 10.1.10.1 (xid=0xd16b79d) - key 41:41 ^ - sym 41:48 ^-----^ DHCPACK -pair 41:48 ^-----^ DHCPACK - key 54:54 ^ +word 49:53 ^--^ from + key 49:53 ^--^ from ipv4 54:63 ^-------^ 10.1.10.1 -pair 54:63 ^-------^ 10.1.10.1 + val 54:63 ^-------^ 10.1.10.1 +pair 49:63 ^------------^ from 10.1.10.1 key 65:65 ^ key 65:68 ^-^ xid hex 69:78 ^-------^ 0xd16b79d val 69:78 ^-------^ 0xd16b79d pair 65:78 ^-----------^ xid=0xd16b79d grp 65:78 ^-----------^ xid=0xd16b79d + val 65:78 ^-----------^ xid=0xd16b79d pair 65:78 ^-----------^ xid=0xd16b79d msg :DHCPACK from 10.1.10.1 (xid=0xd16b79d) -format :# from # (#) +format :DHCPACK from # (#) { - "col_0": "DHCPACK", - "col_1": "10.1.10.1", - "col_2": [ + "from": "10.1.10.1", + "col_0": [ { "xid": "0xd16b79d" } diff --git a/test/log-samples/sample-e8729677c1b443d8f65124db0d5b6f04.txt b/test/log-samples/sample-e8729677c1b443d8f65124db0d5b6f04.txt new file mode 100644 index 0000000..54b30fd --- /dev/null +++ b/test/log-samples/sample-e8729677c1b443d8f65124db0d5b6f04.txt @@ -0,0 +1,22 @@ + 2022-05-17T07:40:38.051Z In(30) init[1001390328]: inittab: /usr/lib/vmware/configmanager/bin/applyconfig --bootstrap (11740460 us) + key 50:57 ^-----^ inittab +path 59:104 ^-------------------------------------------^ /usr/lib/vmware/configmanager/bin/applyconfig + val 59:104 ^-------------------------------------------^ /usr/lib/vmware/configmanager/bin/applyconfig +pair 50:104 ^----------------------------------------------------^ inittab: /usr/lib/vmware/configmanager/bin/applyconfig + key 105:116 ^---------^ --bootstrap + num 118:126 ^------^ 11740460 + val 118:126 ^------^ 11740460 +word 127:129 ^^ us + val 127:129 ^^ us + grp 118:129 ^---------^ 11740460 us + val 118:129 ^---------^ 11740460 us +pair 105:129 ^----------------------^ --bootstrap (11740460 us +msg :inittab: /usr/lib/vmware/configmanager/bin/applyconfig --bootstrap (11740460 us) +format :inittab: # --bootstrap (#) +{ + "inittab": "/usr/lib/vmware/configmanager/bin/applyconfig", + "--bootstrap": [ + 11740460, + "us" + ] +} diff --git a/test/log-samples/sample-eef32793daf841a576d8a5cd27239d5d.txt b/test/log-samples/sample-eef32793daf841a576d8a5cd27239d5d.txt new file mode 100644 index 0000000..cac7219 --- /dev/null +++ b/test/log-samples/sample-eef32793daf841a576d8a5cd27239d5d.txt @@ -0,0 +1,16 @@ + 2022-05-17T08:56:54.107Z In(14) settingsd[1001392457]: debug [ConfigStore:66064b9700] File /usr/lib/vmware/configmanager/apply_modules/advanced_options/plugin.json does not support type:3 +word 86:90 ^--^ File + key 86:90 ^--^ File +path 91:163 ^----------------------------------------------------------------------^ /usr/lib/vmware/configmanager/apply_modules/advanced_options/plugin.json + val 91:163 ^----------------------------------------------------------------------^ /usr/lib/vmware/configmanager/apply_modules/advanced_options/plugin.json +pair 86:163 ^---------------------------------------------------------------------------^ File /usr/lib/vmware/configmanager/apply_modules/advanced_options/plugin.json + key 181:185 ^--^ type + num 186:187 ^ 3 + val 186:187 ^ 3 +pair 181:187 ^----^ type:3 +msg :File /usr/lib/vmware/configmanager/apply_modules/advanced_options/plugin.json does not support type:3 +format :File # does not support type:# +{ + "File": "/usr/lib/vmware/configmanager/apply_modules/advanced_options/plugin.json", + "type": 3 +} diff --git a/test/log-samples/sample-f2fba0d0b1e57f9a707ea96a8a4efcdc.txt b/test/log-samples/sample-f2fba0d0b1e57f9a707ea96a8a4efcdc.txt new file mode 100644 index 0000000..9e35f8f --- /dev/null +++ b/test/log-samples/sample-f2fba0d0b1e57f9a707ea96a8a4efcdc.txt @@ -0,0 +1,31 @@ + Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages + key 31:31 ^ +word 31:39 ^------^ timstack + val 31:39 ^------^ timstack +pair 31:39 ^------^ timstack + key 42:45 ^-^ TTY + id 46:51 ^---^ pts/6 + val 46:51 ^---^ pts/6 +pair 42:51 ^-------^ TTY=pts/6 + key 54:57 ^-^ PWD +path 58:91 ^-------------------------------^ /auto/wstimstack/rpms/lbuild/test + val 58:91 ^-------------------------------^ /auto/wstimstack/rpms/lbuild/test +pair 54:91 ^-----------------------------------^ PWD=/auto/wstimstack/rpms/lbuild/test + key 94:98 ^--^ USER +word 99:103 ^--^ root + val 99:103 ^--^ root +pair 94:103 ^-------^ USER=root + key 106:113 ^-----^ COMMAND +path 114:127 ^-----------^ /usr/bin/tail +path 128:145 ^---------------^ /var/log/messages + val 114:145 ^-----------------------------^ /usr/bin/tail /var/log/messages +pair 106:145 ^-------------------------------------^ COMMAND=/usr/bin/tail /var/log/messages +msg :timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +format :# : TTY=# ; PWD=# ; USER=# ; COMMAND=# +{ + "col_0": "timstack", + "TTY": "pts/6", + "PWD": "/auto/wstimstack/rpms/lbuild/test", + "USER": "root", + "COMMAND": "/usr/bin/tail /var/log/messages" +} diff --git a/test/log-samples/sample-f632067ddac054da85b5cade949c6d94.txt b/test/log-samples/sample-f632067ddac054da85b5cade949c6d94.txt new file mode 100644 index 0000000..048aa7a --- /dev/null +++ b/test/log-samples/sample-f632067ddac054da85b5cade949c6d94.txt @@ -0,0 +1,27 @@ + 2021-09-02T03:36:27.389Z warning fdm[1000873987] [Originator@6876 sub=Cluster opID=SWI-636bf2b7] Sendto[ipv6] fd01:0:106:5:0:a:0:1511: No route to host + key 97:103 ^----^ Sendto + sym 104:108 ^--^ ipv6 + val 104:108 ^--^ ipv6 + grp 104:108 ^--^ ipv6 + val 104:108 ^--^ ipv6 +pair 97:108 ^---------^ Sendto[ipv6 + key 110:110 ^ +ipv6 110:133 ^---------------------^ fd01:0:106:5:0:a:0:1511 + val 110:133 ^---------------------^ fd01:0:106:5:0:a:0:1511 +pair 110:133 ^---------------------^ fd01:0:106:5:0:a:0:1511 + key 135:135 ^ +word 135:137 ^^ No +word 138:143 ^---^ route +word 144:146 ^^ to +word 147:151 ^--^ host + val 135:151 ^--------------^ No route to host +pair 135:151 ^--------------^ No route to host +msg :Sendto[ipv6] fd01:0:106:5:0:a:0:1511: No route to host +format :Sendto[#] #: # +{ + "Sendto": [ + "ipv6" + ], + "col_0": "fd01:0:106:5:0:a:0:1511", + "col_1": "No route to host" +} diff --git a/test/logfile_haproxy.0 b/test/logfile_haproxy.0 index a9ee9e6..92e1a8b 100644 --- a/test/logfile_haproxy.0 +++ b/test/logfile_haproxy.0 @@ -9,9 +9,9 @@ Feb 25 16:20:04 192.168.4.2 haproxy[7]: 141.35.244.171:53337 [25/Feb/2019:16:20: Feb 25 16:20:09 192.168.4.2 haproxy[7]: 89.247.124.65:15564 [25/Feb/2019:16:20:06.321] prod_http_in~ bk_ktest_kt/nginx_sonst 0/0/1/43/2707 200 26170 - - ---- 3/3/1/1/0 0/0 {Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0} {} "GET /portal/?Script=934&onlinetest=korrektur&anm=13915¤tPage=0 HTTP/1.1" Feb 25 16:20:11 192.168.4.2 haproxy[7]: 89.247.124.65:15565 [25/Feb/2019:16:20:08.872] prod_http_in~ bk_ktest_kt/nginx_sonst 0/0/1/26/2442 200 26170 - - ---- 3/2/1/1/0 0/0 {Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0} {} "GET /portal/?Script=934&onlinetest=korrektur&anm=13915¤tPage=0 HTTP/1.1" Feb 25 16:20:12 192.168.4.2 haproxy[7]: 87.183.41.77:50186 [25/Feb/2019:16:20:11.910] prod_http_in~ bk_ktest_kt/nginx_sonst 0/0/0/236/236 200 4586 - - ---- 4/4/3/3/0 0/0 {Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0} {} "GET /portal/?Script=934&lehrer=77798 HTTP/1.1" -Feb 25 16:20:12 192.168.4.2 haproxy[7]: 87.183.41.77:50186 [25/Feb/2019:16:20:12.234] prod_http_in~ bk_ktest_sonst/nginx_sonst 0/0/1/0/1 200 16416 - - ---- 4/4/0/0/0 0/0 {Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0} {} "GET /media/core/bootstrap_3.3.7/css/bootstrap.css?1550939643 HTTP/1.1" -Feb 25 16:20:12 192.168.4.2 haproxy[7]: 87.183.41.77:50186 [25/Feb/2019:16:20:12.317] prod_http_in~ bk_ktest_sonst/nginx_sonst 0/0/0/1/1 200 11065 - - ---- 9/9/0/0/0 0/0 {Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0} {} "GET /media/core/jquery/jquery-ui-1.12.1.js?1550939557 HTTP/1.1" -Feb 25 16:20:12 192.168.4.2 haproxy[7]: 95.216.197.33:56224 [25/Feb/2019:16:20:10.111] prod_http_in/sktst2: SSL handshake failure -Feb 25 16:20:12 192.168.4.2 haproxy[7]: 87.183.41.77:50188 [25/Feb/2019:16:20:12.321] prod_http_in~ bk_ktest_sonst/nginx_sonst 0/0/1/0/1 200 5959 - - ---- 9/9/0/0/0 0/0 {Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0} {} "GET /media/pi_fontawesome/css/font-awesome.css?1550939694 HTTP/1.1" -Feb 25 16:20:12 192.168.4.2 haproxy[7]: 87.183.41.77:50187 [25/Feb/2019:16:20:12.325] prod_http_in~ bk_ktest_sonst/nginx_sonst 0/0/1/0/1 200 1859 - - ---- 9/9/0/0/0 0/0 {Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0} {} "GET /media/pi_popup/1.1.0/magnific-popup.css?1550939704 HTTP/1.1" -Feb 25 16:20:12 192.168.4.2 haproxy[7]: 87.183.41.77:50189 [25/Feb/2019:16:20:12.331] prod_http_in~ bk_ktest_sonst/nginx_sonst 0/0/1/0/1 200 2496 - - ---- 9/9/0/0/0 0/0 {Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0} {} "GET /media/core/core.css?1550939640 HTTP/1.1" +Feb 25 16:20:13 192.168.4.2 haproxy[7]: 87.183.41.77:50186 [25/Feb/2019:16:20:13.234] prod_http_in~ bk_ktest_sonst/nginx_sonst 0/0/1/0/1 200 16416 - - ---- 4/4/0/0/0 0/0 {Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0} {} "GET /media/core/bootstrap_3.3.7/css/bootstrap.css?1550939643 HTTP/1.1" +Feb 25 16:20:14 192.168.4.2 haproxy[7]: 87.183.41.77:50186 [25/Feb/2019:16:20:14.317] prod_http_in~ bk_ktest_sonst/nginx_sonst 0/0/0/1/1 200 11065 - - ---- 9/9/0/0/0 0/0 {Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0} {} "GET /media/core/jquery/jquery-ui-1.12.1.js?1550939557 HTTP/1.1" +Feb 25 16:20:15 192.168.4.2 haproxy[7]: 95.216.197.33:56224 [25/Feb/2019:16:20:10.111] prod_http_in/sktst2: SSL handshake failure +Feb 25 16:20:16 192.168.4.2 haproxy[7]: 87.183.41.77:50188 [25/Feb/2019:16:20:12.321] prod_http_in~ bk_ktest_sonst/nginx_sonst 0/0/1/0/1 200 5959 - - ---- 9/9/0/0/0 0/0 {Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0} {} "GET /media/pi_fontawesome/css/font-awesome.css?1550939694 HTTP/1.1" +Feb 25 16:20:17 192.168.4.2 haproxy[7]: 87.183.41.77:50187 [25/Feb/2019:16:20:12.325] prod_http_in~ bk_ktest_sonst/nginx_sonst 0/0/1/0/1 200 1859 - - ---- 9/9/0/0/0 0/0 {Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0} {} "GET /media/pi_popup/1.1.0/magnific-popup.css?1550939704 HTTP/1.1" +Feb 25 16:20:18 192.168.4.2 haproxy[7]: 87.183.41.77:50189 [25/Feb/2019:16:20:12.331] prod_http_in~ bk_ktest_sonst/nginx_sonst 0/0/1/0/1 200 2496 - - ---- 9/9/0/0/0 0/0 {Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0} {} "GET /media/core/core.css?1550939640 HTTP/1.1" diff --git a/test/logfile_json.json b/test/logfile_json.json index 55657f7..dd6c9d2 100644 --- a/test/logfile_json.json +++ b/test/logfile_json.json @@ -1,11 +1,11 @@ -{"ts": "2013-09-06T20:00:48.124817Z", "lvl": "TRACE", "msg": "trace test"} -{"ts": "2013-09-06T20:00:49.124817Z", "lvl": "INFO", "msg": "Starting up \u001B[0;32mservice\u001B[0m"} +{"ts": "2013-09-06T20:00:48.124817Z", "logger": "com.example.foo.bar.bazzer", "lvl": "TRACE", "msg": "trace test"} +{"ts": "2013-09-06T20:00:49.124817Z", "logger": "com.example.demo", "lvl": "INFO", "msg": "Starting up \u001B[0;32mservice\u001B[0m"} {"ts": "2013-09-06T22:00:49.124817Z", "lvl": "INFO", "msg": "Shutting down service", "user": "steve@example.com"} -{"ts": "2013-09-06T22:00:59.124817Z", "lvl": "DEBUG5", "msg": "Details...\n"} -{"ts": "2013-09-06T22:00:59.124817Z", "lvl": "DEBUG4", "msg": "Details...\n"} +{"ts": "2013-09-06T22:00:59.124817Z", "lvl": "DEBUG5", "msg": "D\bDetails...\n"} +{"ts": "2013-09-06T22:00:59.124817Z", "lvl": "DEBUG4", "msg": "D\bDe\betails...\n"} {"ts": "2013-09-06T22:00:59.124817Z", "lvl": "DEBUG3", "msg": "Details...\n"} {"ts": "2013-09-06T22:00:59.124817Z", "lvl": "DEBUG2", "msg": "Details...\n"} -{"ts": "2013-09-06T22:00:59.124817Z", "lvl": "DEBUG", "msg": "Details..."} +{"ts": "2013-09-06 22:01:00Z", "lvl": "DEBUG", "msg": "Details..."} {"ts": "2013-09-06T22:01:49.124817Z", "lvl": "STATS", "msg": "1 beat per second"} {"ts": "2013-09-06T22:01:49.124817Z", "lvl": "WARNING", "msg": "not looking good"} {"ts": "2013-09-06T22:01:49.124817Z", "lvl": "ERROR", "msg": "looking bad"} diff --git a/test/logfile_json_subsec.json b/test/logfile_json_subsec.json index 3ddc190..c572651 100644 --- a/test/logfile_json_subsec.json +++ b/test/logfile_json_subsec.json @@ -1,2 +1,2 @@ {"instant":{"epochSecond": 1663977609,"nanoOfSecond": 484000000}, "msg": "Hello, World!"} -{"instant":{"epochSecond": 1663977619,"nanoOfSecond": 222000000}, "msg": "Goodbye, World!"} +{"instant":{"epochSecond": 1663977619,"nanoOfSecond": 222000123}, "msg": "Goodbye, World!"} diff --git a/test/logfile_nextcloud.0 b/test/logfile_nextcloud.0 new file mode 100644 index 0000000..efa3a1a --- /dev/null +++ b/test/logfile_nextcloud.0 @@ -0,0 +1,5 @@ +{"reqId":"twvbRFk1OwgHo2bqggnx","level":1,"time":"2023-10-01T02:39:09+00:00","remoteAddr":"10.0.0.1","user":"admin","app":"files_antivirus","method":"","url":"--","message":"Tried to scan non file","userAgent":"--","version":"29.1.1.0","data":{"app":"files_antivirus"}} +{"reqId":"twvbRFk1OwgHo2bqggnx","level":1,"time":"2023-10-01T02:39:09+00:00","remoteAddr":"","user":"--","app":"files_antivirus","method":"","url":"--","message":"Tried to scan non file","userAgent":"--","version":"29.1.1.0","data":{"app":"files_antivirus"}} +{"reqId":"pZpwRdWUcILeyKMZNPQt","level":1,"time":"2023-10-01T02:50:03+00:00","remoteAddr":"","user":"--","app":"fulltextsearch_elasticsearch","method":"","url":"--","message":"Request: PUT http://elasticsearch:9200/nextcloud/_doc/files%3A1780281","userAgent":"--","version":"29.1.1.0","data":{"app":"fulltextsearch_elasticsearch","request":"{\"[object] (GuzzleHttp\\Psr7\\Request)\":{\"GuzzleHttp\\Psr7\\Requestmethod\":\"PUT\",\"GuzzleHttp\\Psr7\\RequestrequestTarget\":null,\"GuzzleHttp\\Psr7\\Requesturi\":{\"[object] (GuzzleHttp\\Psr7\\Uri)\":{\"GuzzleHttp\\Psr7\\Urischeme\":\"http\",\"GuzzleHttp\\Psr7\\UriuserInfo\":\"\",\"GuzzleHttp\\Psr7\\Urihost\":\"elasticsearch\",\"GuzzleHttp\\Psr7\\Uriport\":9200,\"GuzzleHttp\\Psr7\\Uripath\":\"/nextcloud/_doc/files%3A1780281\",\"GuzzleHttp\\Psr7\\Uriquery\":\"\",\"GuzzleHttp\\Psr7\\Urifragment\":\"\",\"GuzzleHttp\\Psr7\\UricomposedComponents\":\"http://elasticsearch:9200/nextcloud/_doc/files%3A1780281\"}},\"GuzzleHttp\\Psr7\\Requestheaders\":{\"Host\":[\"elasticsearch:9200\"],\"Accept\":[\"application/vnd.elasticsearch+json; compatible-with=8\"],\"Content-Type\":[\"application/vnd.elasticsearch+json; compatible-with=8\"],\"User-Agent\":[\"elasticsearch-php/8.6.1 (Linux 5.15.0-84-generic; PHP 8.2.11)\"],\"x-elastic-client-meta\":[\"es=8.6.1,php=8.2.11,t=8.7.0,a=0,gu=7.8.0\"]},\"GuzzleHttp\\Psr7\\RequestheaderNames\":{\"accept\":\"Accept\",\"content-type\":\"Content-Type\",\"host\":\"Host\",\"user-agent\":\"User-Agent\",\"x-elastic-client-meta\":\"x-elastic-client-meta\"},\"GuzzleHttp\\Psr7\\Requestprotocol\":\"1.1\",\"GuzzleHttp\\Psr7\\Requeststream\":{\"[object] (GuzzleHttp\\Psr7\\Stream)\":{\"GuzzleHttp\\Psr7\\Streamstream\":\"[resource] Resource id #1635\",\"GuzzleHttp\\Psr7\\Streamsize\":null,\"GuzzleHttp\\Psr7\\Streamseekable\":true,\"GuzzleHttp\\Psr7\\Streamreadable\":true,\"GuzzleHttp\\Psr7\\Streamwritable\":true,\"GuzzleHttp\\Psr7\\Streamuri\":\"php://temp\",\"GuzzleHttp\\Psr7\\StreamcustomMetadata\":[]}}}}"}} +{"reqId":"WO0XBZZfZbekindHeptb","level":1,"time":"2023-10-16T01:47:44+00:00","remoteAddr":"192.168.1.1","user":"jeff","app":"memories","method":"PATCH","url":"--","message":"Memories: Updated item successfully","userAgent":"--","version":"29.1.2.1","data":{"app":"memories"}} +{"reqId":"SblFU0l19re9TAE2UQft","level":1,"time":"2023-10-16T01:50:18+00:00","remoteAddr":"192.168.1.1","user":"jeff","app":"files_versions","method":"","url":"--","message":"Mark to expire /Documents/phat.txt next version should be 1697407738 or smaller. (prevTimestamp: 1697411338; step: 3600","userAgent":"--","version":"29.1.2.1","data":{"app":"files_versions"}} diff --git a/test/logfile_partitions.0 b/test/logfile_partitions.0 new file mode 100644 index 0000000..5e5487e --- /dev/null +++ b/test/logfile_partitions.0 @@ -0,0 +1,82 @@ +Apr 28 04:02:03 tstack-centos5 syslogd 1.4.1: restart. +Apr 28 04:04:01 tstack-centos5 avahi-daemon[2467]: Invalid query packet. +Apr 28 06:53:54 tstack-centos5 dhclient: DHCPREQUEST on eth0 to 10.1.10.1 port 67 (xid=0x654a04aa) +Apr 28 06:53:54 tstack-centos5 dhclient: DHCPNAK from 10.1.10.1 (xid=0x654a04aa) +Apr 28 06:53:54 tstack-centos5 NET[31050]: /sbin/dhclient-script : updated /etc/resolv.conf +Apr 28 06:53:54 tstack-centos5 avahi-daemon[2467]: Withdrawing address record for 10.1.10.49 on eth0. +Apr 28 06:53:54 tstack-centos5 avahi-daemon[2467]: Leaving mDNS multicast group on interface eth0.IPv4 with address 10.1.10.49. +Apr 28 06:53:54 tstack-centos5 avahi-daemon[2467]: iface.c: interface_mdns_mcast_join() called but no local address available. +Apr 28 06:53:54 tstack-centos5 avahi-daemon[2467]: Interface eth0.IPv4 no longer relevant for mDNS. +Apr 28 06:53:54 tstack-centos5 dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5 (xid=0x4e17f141) +Apr 28 06:53:55 tstack-centos5 dhclient: DHCPOFFER from 10.1.10.1 +Apr 28 06:53:55 tstack-centos5 dhclient: DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x4e17f141) +Apr 28 06:53:55 tstack-centos5 dhclient: DHCPACK from 10.1.10.1 (xid=0x4e17f141) +Apr 28 06:53:55 tstack-centos5 avahi-daemon[2467]: New relevant interface eth0.IPv4 for mDNS. +Apr 28 06:53:55 tstack-centos5 avahi-daemon[2467]: Joining mDNS multicast group on interface eth0.IPv4 with address 10.1.10.103. +Apr 28 06:53:55 tstack-centos5 avahi-daemon[2467]: Registering new address record for 10.1.10.103 on eth0. +Apr 28 06:53:55 tstack-centos5 avahi-daemon[2467]: Withdrawing address record for 10.1.10.103 on eth0. +Apr 28 06:53:55 tstack-centos5 avahi-daemon[2467]: Leaving mDNS multicast group on interface eth0.IPv4 with address 10.1.10.103. +Apr 28 06:53:55 tstack-centos5 avahi-daemon[2467]: iface.c: interface_mdns_mcast_join() called but no local address available. +Apr 28 06:53:55 tstack-centos5 avahi-daemon[2467]: Interface eth0.IPv4 no longer relevant for mDNS. +Apr 28 06:53:55 tstack-centos5 avahi-daemon[2467]: New relevant interface eth0.IPv4 for mDNS. +Apr 28 06:53:55 tstack-centos5 avahi-daemon[2467]: Joining mDNS multicast group on interface eth0.IPv4 with address 10.1.10.103. +Apr 28 06:53:55 tstack-centos5 avahi-daemon[2467]: Registering new address record for 10.1.10.103 on eth0. +Apr 28 06:53:55 tstack-centos5 NET[31132]: /sbin/dhclient-script : updated /etc/resolv.conf +Apr 28 06:53:55 tstack-centos5 dhclient: bound to 10.1.10.103 -- renewal in 54694 seconds. +Apr 28 07:03:50 tstack-centos5 avahi-daemon[2467]: Invalid query packet. +Apr 28 17:01:19 tstack-centos5 avahi-daemon[2467]: Invalid query packet. +Apr 28 22:05:28 tstack-centos5 dhclient: DHCPREQUEST on eth0 to 10.1.10.1 port 67 (xid=0x4e17f141) +Apr 28 22:05:29 tstack-centos5 dhclient: DHCPACK from 10.1.10.1 (xid=0x4e17f141) +Apr 28 22:05:29 tstack-centos5 dhclient: bound to 10.1.10.103 -- renewal in 8787 seconds. +Apr 28 22:10:01 tstack-centos5 avahi-daemon[2467]: Invalid query packet. +Apr 29 00:31:55 tstack-centos5 dhclient: DHCPREQUEST on eth0 to 10.1.10.1 port 67 (xid=0x4e17f141) +Apr 29 00:31:56 tstack-centos5 dhclient: DHCPACK from 10.1.10.1 (xid=0x4e17f141) +Apr 29 00:31:56 tstack-centos5 dhclient: bound to 10.1.10.103 -- renewal in 9938 seconds. +Apr 29 00:39:19 tstack-centos5 avahi-daemon[2467]: Invalid query packet. +Apr 29 03:17:34 tstack-centos5 dhclient: DHCPREQUEST on eth0 to 10.1.10.1 port 67 (xid=0x4e17f141) +Apr 29 03:17:34 tstack-centos5 dhclient: DHCPACK from 10.1.10.1 (xid=0x4e17f141) +Apr 29 03:17:34 tstack-centos5 dhclient: bound to 10.1.10.103 -- renewal in 2656 seconds. +Apr 29 03:18:07 tstack-centos5 avahi-daemon[2467]: Invalid query packet. +Apr 29 04:01:50 tstack-centos5 dhclient: DHCPREQUEST on eth0 to 10.1.10.1 port 67 (xid=0x4e17f141) +Apr 29 04:01:50 tstack-centos5 dhclient: DHCPACK from 10.1.10.1 (xid=0x4e17f141) +Apr 29 04:01:50 tstack-centos5 dhclient: bound to 10.1.10.103 -- renewal in 15112 seconds. +Apr 29 04:10:03 tstack-centos5 avahi-daemon[2467]: Invalid query packet. +Apr 29 05:55:18 tstack-centos5 avahi-daemon[2467]: Invalid query packet. +Apr 29 06:39:04 tstack-centos5 avahi-daemon[2467]: Invalid query packet. +Apr 29 08:13:41 tstack-centos5 dhclient: DHCPREQUEST on eth0 to 10.1.10.1 port 67 (xid=0x4e17f141) +Apr 29 08:13:42 tstack-centos5 dhclient: DHCPNAK from 10.1.10.1 (xid=0x4e17f141) +Apr 29 08:13:42 tstack-centos5 NET[13600]: /sbin/dhclient-script : updated /etc/resolv.conf +Apr 29 08:13:42 tstack-centos5 avahi-daemon[2467]: Withdrawing address record for 10.1.10.103 on eth0. +Apr 29 08:13:42 tstack-centos5 avahi-daemon[2467]: Leaving mDNS multicast group on interface eth0.IPv4 with address 10.1.10.103. +Apr 29 08:13:42 tstack-centos5 avahi-daemon[2467]: iface.c: interface_mdns_mcast_join() called but no local address available. +Apr 29 08:13:42 tstack-centos5 avahi-daemon[2467]: Interface eth0.IPv4 no longer relevant for mDNS. +Apr 29 08:13:42 tstack-centos5 dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5 (xid=0xd16b79d) +Apr 29 08:13:43 tstack-centos5 dhclient: DHCPOFFER from 10.1.10.1 +Apr 29 08:13:43 tstack-centos5 dhclient: DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0xd16b79d) +Apr 29 08:13:43 tstack-centos5 dhclient: DHCPACK from 10.1.10.1 (xid=0xd16b79d) +Apr 29 08:13:43 tstack-centos5 avahi-daemon[2467]: New relevant interface eth0.IPv4 for mDNS. +Apr 29 08:13:43 tstack-centos5 avahi-daemon[2467]: Joining mDNS multicast group on interface eth0.IPv4 with address 10.1.10.62. +Apr 29 08:13:43 tstack-centos5 avahi-daemon[2467]: Registering new address record for 10.1.10.62 on eth0. +Apr 29 08:13:43 tstack-centos5 avahi-daemon[2467]: Withdrawing address record for 10.1.10.62 on eth0. +Apr 29 08:13:43 tstack-centos5 avahi-daemon[2467]: Leaving mDNS multicast group on interface eth0.IPv4 with address 10.1.10.62. +Apr 29 08:13:43 tstack-centos5 avahi-daemon[2467]: iface.c: interface_mdns_mcast_join() called but no local address available. +Apr 29 08:13:43 tstack-centos5 avahi-daemon[2467]: Interface eth0.IPv4 no longer relevant for mDNS. +Apr 29 08:13:43 tstack-centos5 avahi-daemon[2467]: New relevant interface eth0.IPv4 for mDNS. +Apr 29 08:13:43 tstack-centos5 avahi-daemon[2467]: Joining mDNS multicast group on interface eth0.IPv4 with address 10.1.10.62. +Apr 29 08:13:43 tstack-centos5 avahi-daemon[2467]: Registering new address record for 10.1.10.62 on eth0. +Apr 29 08:13:43 tstack-centos5 NET[13682]: /sbin/dhclient-script : updated /etc/resolv.conf +Apr 29 08:13:43 tstack-centos5 dhclient: bound to 10.1.10.62 -- renewal in 31782 seconds. +Apr 29 08:15:06 tstack-centos5 avahi-daemon[2467]: Invalid query packet. +Apr 29 17:03:19 tstack-centos5 avahi-daemon[2467]: Invalid query packet. +Apr 29 17:03:25 tstack-centos5 dhclient: DHCPREQUEST on eth0 to 10.1.10.1 port 67 (xid=0xd16b79d) +Apr 29 17:03:25 tstack-centos5 dhclient: DHCPACK from 10.1.10.1 (xid=0xd16b79d) +Apr 29 17:03:25 tstack-centos5 dhclient: bound to 10.1.10.62 -- renewal in 19742 seconds. +Apr 29 17:03:51 tstack-centos5 avahi-daemon[2467]: Invalid query packet. +Apr 29 17:20:00 tstack-centos5 avahi-daemon[2467]: Invalid query packet. +Apr 29 22:32:26 tstack-centos5 dhclient: DHCPREQUEST on eth0 to 10.1.10.1 port 67 (xid=0xd16b79d) +Apr 29 22:32:27 tstack-centos5 dhclient: DHCPACK from 10.1.10.1 (xid=0xd16b79d) +Apr 29 22:32:27 tstack-centos5 dhclient: bound to 10.1.10.62 -- renewal in 55327 seconds. +Apr 29 22:45:57 tstack-centos5 avahi-daemon[2467]: Invalid query packet. +Apr 29 23:02:45 tstack-centos5 avahi-daemon[2467]: Invalid response packet from host 10.1.10.10. +Apr 29 23:02:45 tstack-centos5 avahi-daemon[2467]: Invalid response packet from host fe80::22c9:d0ff:fe15:1b7c. +Apr 29 23:02:46 tstack-centos5 avahi-daemon[2467]: Invalid query packet. diff --git a/test/logfile_regexp_access_log.0 b/test/logfile_regexp_access_log.0 new file mode 100644 index 0000000..6f37afd --- /dev/null +++ b/test/logfile_regexp_access_log.0 @@ -0,0 +1,2 @@ +localhost:443 178.20.184.42 1j0vhgd jsmith [26/Jul/2023:00:01:26 -0700] "GET /secure/RapidBoard.jspa?rapidView=1295&selectedIssue=AA-409111&quickFilter=385508&quickFilter=387097 HTTP/2.0" 200 17163 "-" "Mozilla/5.0" 116075 +localhost:443 154.57.4.229 cger1e khenry [26/Jul/2023:00:02:12 -0700] "GET /secure/RapidBoard.jspa?rapidView=1839&view=planning.nodetail&issueLimit=100 HTTP/2.0" 200 16517 "https://localhost/secure/RapidBoard.jspa?rapidView=1843&view=planning.nodetail&issueLimit=100" "Mozilla/5.0" 156302 diff --git a/test/logfile_rollover.2 b/test/logfile_rollover.2 new file mode 100644 index 0000000..6c9f7a4 --- /dev/null +++ b/test/logfile_rollover.2 @@ -0,0 +1,375 @@ +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:34 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed +Nov 3 09:23:38 veridian automount[16442]: attempting to mount entry /auto/opt +Nov 3 09:23:38 veridian automount[7999]: lookup(file): lookup for opt failed +Nov 3 09:47:02 veridian sudo: timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages +Feb 3 09:23:38 veridian automount[7998]: lookup(file): lookup for foobar failed diff --git a/test/logfile_with_zones.0 b/test/logfile_with_zones.0 new file mode 100644 index 0000000..127d4fe --- /dev/null +++ b/test/logfile_with_zones.0 @@ -0,0 +1,3 @@ +2022-08-27T14:22:01.613Z space01.global-acme.entp NSX 3106 - [abc@6876 comp="abc-edge" subcomp="abc-sha" username="root" level="INFO" s2comp="fork-monitor"] keep-alive check received resp {'seq': 1017276, 'type': 0, 'executor': 2, 'timestamp': 3976009.961550321, 'stats': [{'req': 1017277, 'resp': 1017276, 'pending_req': 0, 'peak_pending_req': 2, 'req_error': 0, 'resp_error': 0, 'req_dropped_no_resource': 0}, {0: {'req': 316363, 'resp': 316363}, 1: {'req': 316430, 'resp': 316430}, 2: {'req': 316416, 'resp': 316416}, 3: {'req': 34178, 'resp': 34178}, 4: {'req': 33890, 'resp': 33890}}]} for req{'seq': 1017276, 'check': True, 'timeout': 4, 'timestamp': 3976009.961173802, 'type': 0} +2022-08-27T17:22:01.694554+03:00 space01.global-acme.entp CRON 20856 - - (root) CMD ( /usr/bin/nice -n 10 /opt/acme/bin/mem_usage_monitor.py >/dev/null 2>&1) +2022-08-27T14:22:01.888Z space01.global-acme.entp NSX 4828 SWITCHING [abc@6876 comp="abc-edge" subcomp="datapathd" s2comp="neigh" tname="dp-learning3" level="INFO"] dynamic arp entry(28b18eb1-3575-4179-956b-aae009433d27, 10.12.160.4) is created diff --git a/test/man_echo.txt b/test/man_echo.txt new file mode 100644 index 0000000..1f4fa53 --- /dev/null +++ b/test/man_echo.txt @@ -0,0 +1,38 @@ +ECHO(1) General Commands Manual ECHO(1) + +NNAAMMEE + eecchhoo – write arguments to the standard output + +SSYYNNOOPPSSIISS + eecchhoo [--nn] [_s_t_r_i_n_g _._._.] + +DDEESSCCRRIIPPTTIIOONN + The eecchhoo utility writes any specified operands, separated by single blank + (‘ ’) characters and followed by a newline (‘\n’) character, to the + standard output. + + The following option is available: + + --nn Do not print the trailing newline character. This may also be + achieved by appending ‘\c’ to the end of the string, as is done by + iBCS2 compatible systems. Note that this option as well as the + effect of ‘\c’ are implementation-defined in IEEE Std 1003.1-2001 + (“POSIX.1”) as amended by Cor. 1-2002. Applications aiming for + maximum portability are strongly encouraged to use printf(1) to + suppress the newline character. + + Some shells may provide a builtin eecchhoo command which is similar or + identical to this utility. Most notably, the builtin eecchhoo in sh(1) does + not accept the --nn option. Consult the builtin(1) manual page. + +EEXXIITT SSTTAATTUUSS + The eecchhoo utility exits 0 on success, and >0 if an error occurs. + +SSEEEE AALLSSOO + builtin(1), csh(1), printf(1), sh(1) + +SSTTAANNDDAARRDDSS + The eecchhoo utility conforms to IEEE Std 1003.1-2001 (“POSIX.1”) as amended + by Cor. 1-2002. + +macOS 13.5 April 12, 2003 macOS 13.5 diff --git a/test/naughty_files.py b/test/naughty_files.py new file mode 100755 index 0000000..0b8e5c1 --- /dev/null +++ b/test/naughty_files.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 + +import os + +os.makedirs("naughty", 0o700, True) +with open('naughty/file-with-escape-sequences-\x1b[31mred\x1b[m-color.txt', 'w+') as fi: + fi.write('boo') + +with open('naughty/file-with-escape-sequences-\x1b[31mred\x1b[m-color.log', 'w+') as fi: + fi.write('2012-07-02 10:22:40,672:DEBUG:foo bar baz\n') + +try: + with open(b'naughty/text-file-with-invalid-utf-\xc3\x28', 'w+') as fi: + fi.write('boo') + + with open(b'naughty/log-file-with-invalid-utf-\xc3\x28', 'w+') as fi: + fi.write('2015-04-24T21:09:39.296 25376]ERROR:somemodule:Something very INFOrmative.') +except OSError as e: + pass + +with open('naughty/file-with-hidden-text.txt', 'w+') as fi: + fi.write('Hello, \x1b[30;40mWorld!\x1b[m!\n') + fi.write('Goodbye, \x1b[37;47mWorld!\x1b[m!\n') + fi.write('That is not\b\b\ball\n') + +with open('naughty/file-with-terminal-controls.txt', 'w+') as fi: + fi.write('time for a reset \x1bckapow\n') + fi.write('ding dong! \x07\n') diff --git a/test/parser_debugger.py b/test/parser_debugger.py index d2818f5..2f9b102 100755 --- a/test/parser_debugger.py +++ b/test/parser_debugger.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # Copyright (c) 2013, Timothy Stack # @@ -44,6 +44,7 @@ list_depth = {} list_format = {} breakpoints = set() + def completer(text, state): options = [x for x in itertools.chain(name_to_addr, element_lists, @@ -54,6 +55,7 @@ def completer(text, state): except IndexError: return None + readline.set_completer(completer) if 'libedit' in readline.__doc__: @@ -67,27 +69,30 @@ for line in open("scanned.dpt"): if line.startswith("input "): input_line = line[6:-1] else: - ops.append(map(string.strip, line.split())) + ops.append([x.strip() for x in line.split()]) + def getstr(capture): start, end = capture.split(':') return input_line[int(start):int(end)] + def printlist(name_or_addr): if name_or_addr in name_to_addr: addr = name_to_addr[name_or_addr] - print "% 3d (%s:%s) %s" % (list_depth.get(addr, -1), name_or_addr, addr, element_lists[addr]) + print("% 3d (%s:%s) %s" % (list_depth.get(addr, -1), name_or_addr, addr, element_lists[addr])) elif name_or_addr in element_lists: addr = name_or_addr - print "% 3d (%s:%s) %s" % (list_depth.get(name_or_addr, -1), - addr_to_name.get(name_or_addr, name_or_addr), - name_or_addr, - element_lists[name_or_addr]) + print("% 3d (%s:%s) %s" % (list_depth.get(name_or_addr, -1), + addr_to_name.get(name_or_addr, name_or_addr), + name_or_addr, + element_lists[name_or_addr])) else: - print "error: unknown list --", name_or_addr + print("error: unknown list --", name_or_addr) if addr in list_format: - print " format -- appender(%s) term(%s) qual(%s) sep(%s) prefix_term(%s)" % tuple(list_format[addr]) + print(" format -- appender(%s) term(%s) qual(%s) sep(%s) prefix_term(%s)" % tuple(list_format[addr])) + def handleop(fields): addr = fields[0] @@ -113,6 +118,8 @@ def handleop(fields): list_depth[addr] = -1 elif method_name == 'push_back': el.append((method_args[0], getstr(method_args[1]))) + elif method_name == 'push_front': + el.insert(0, (method_args[0], getstr(method_args[1]))) elif method_name == 'pop_front': el.pop(0) elif method_name == 'pop_back': @@ -122,7 +129,7 @@ def handleop(fields): elif method_name == 'splice': pos = int(method_args[0]) other = element_lists[method_args[1]] - start, from_end = map(int, method_args[2].split(':')) + start, from_end = list(map(int, method_args[2].split(':'))) end = len(other) - from_end sub_list = other[start:end] del other[start:end] @@ -134,7 +141,8 @@ def handleop(fields): elif method_name == 'point': breakpoints.add(method_args[0]) else: - print "Unhandled method: ", method_name + print("Unhandled method: ", method_name) + def playupto(length): addr_to_name.clear() @@ -144,6 +152,7 @@ def playupto(length): for index in range(length): handleop(ops[index]) + def find_prev_point(start, name): orig_start = start while start > 0: @@ -155,6 +164,7 @@ def find_prev_point(start, name): return start + 1 return orig_start + 1 + def find_next_point(start, name): orig_start = start while start < len(ops): @@ -166,13 +176,15 @@ def find_next_point(start, name): return start + 1 return orig_start + 1 + def printall(): - print input_line + print(input_line) sorted_lists = [(list_depth.get(addr, -1), addr) for addr in element_lists] sorted_lists.sort() for _depth, addr in sorted_lists: printlist(addr) + index = len(ops) last_cmd = [''] watch_list = set() @@ -180,20 +192,20 @@ while True: playupto(index) if index == 0: - print "init" + print("init") else: op = ops[index - 1] - print "#%s %s" % (index -1, op) + print("#%s %s" % (index - 1, op)) if op[2] == 'push_back': - print getstr(op[4]) + print(getstr(op[4])) for list_name in watch_list: printlist(list_name) try: - cmd = raw_input("> ").split() + cmd = input("> ").split() except EOFError: - print + print() break if not cmd or cmd[0] == '': @@ -202,16 +214,16 @@ while True: if not cmd or cmd[0] == '': pass elif cmd[0] == 'h': - print 'Help:' - print ' q - quit' - print ' s - Start over' - print ' n - Next step' - print ' r - Previous step' - print ' b - Previous breakpoint' - print ' c - Next breakpoint' - print ' p - Print state' - print ' w <var> - Add a variable to the watch list' - print ' u <var> - Remove a variable from the watch list' + print('Help:') + print(' q - quit') + print(' s - Start over') + print(' n - Next step') + print(' r - Previous step') + print(' b - Previous breakpoint') + print(' c - Next breakpoint') + print(' p - Print state') + print(' w <var> - Add a variable to the watch list') + print(' u <var> - Remove a variable from the watch list') elif cmd[0] == 'q': break elif cmd[0] == 's': @@ -242,7 +254,7 @@ while True: if watch_list: watch_list.remove(cmd[1]) else: - print "error: unknown command --", cmd + print("error: unknown command --", cmd) printall() diff --git a/test/pyfile_0.py b/test/pyfile_0.py new file mode 100644 index 0000000..43696e9 --- /dev/null +++ b/test/pyfile_0.py @@ -0,0 +1,9 @@ +# Test file for syntax-highlighting + +def hello(abc): + """ + This is a multi-line string + + @param abc: blah blah + """ + return abc + 1 diff --git a/test/scripty.cc b/test/scripty.cc index 2f7bb94..23144d3 100644 --- a/test/scripty.cc +++ b/test/scripty.cc @@ -108,7 +108,8 @@ public: memset(&ws, 0, sizeof(ws)); if (isatty(STDIN_FILENO) - && tcgetattr(STDIN_FILENO, &this->ct_termios) == -1) { + && tcgetattr(STDIN_FILENO, &this->ct_termios) == -1) + { throw error(errno); } @@ -122,7 +123,8 @@ public: ws.ws_row = 24; if (openpty(this->ct_master.out(), slave.out(), nullptr, nullptr, &ws) - < 0) { + < 0) + { throw error(errno); } @@ -174,20 +176,11 @@ public: return retval; }; - bool is_child() const - { - return this->ct_child == 0; - }; + bool is_child() const { return this->ct_child == 0; }; - pid_t get_child_pid() const - { - return this->ct_child; - }; + pid_t get_child_pid() const { return this->ct_child; }; - int get_fd() const - { - return this->ct_master; - }; + int get_fd() const { return this->ct_master; }; protected: pid_t ct_child; @@ -328,15 +321,9 @@ struct term_machine { std::vector<std::string> ta_desc; }; - term_machine(child_term& ct) : tm_child_term(ct) - { - this->clear(); - } + term_machine(child_term& ct) : tm_child_term(ct) { this->clear(); } - ~term_machine() - { - this->flush_line(); - } + ~term_machine() { this->flush_line(); } void clear() { @@ -460,7 +447,8 @@ struct term_machine { line_len -= 4; } for (size_t lpc2 = lpc + 1; lpc2 < this->tm_line_attrs.size(); - lpc2++) { + lpc2++) + { auto bar_pos = 7 + this->tm_line_attrs[lpc2].ta_pos; if (bar_pos < line_len) { @@ -488,7 +476,8 @@ struct term_machine { int val, last; if (sscanf(&this->tm_escape_buffer[index], "%d%n", &val, &last) - == 1) { + == 1) + { retval.push_back(val); index += last; if (this->tm_escape_buffer[index] != ';') { @@ -503,10 +492,7 @@ struct term_machine { return retval; } - void new_user_input(char ch) - { - this->tm_user_input.push_back(ch); - } + void new_user_input(char ch) { this->tm_user_input.push_back(ch); } void new_input(char ch) { @@ -521,7 +507,7 @@ struct term_machine { this->tm_unicode_buffer.pop_front(); return retval; - }); + }).unwrap(); } return; } else { @@ -602,7 +588,8 @@ struct term_machine { case state::ESCAPE_FIXED_LENGTH: { this->tm_escape_buffer.push_back(ch); if (this->tm_escape_buffer.size() - == this->tm_escape_expected_size) { + == this->tm_escape_expected_size) + { auto iter = CSI_TO_DESC.find( std::string(this->tm_escape_buffer.data(), this->tm_escape_buffer.size())); @@ -1101,7 +1088,8 @@ main(int argc, char* argv[]) #endif tm.new_input(buffer[lpc]); if (scripty_data.sd_replay.size() - != last_replay_size) { + != last_replay_size) + { last = now; last_replay_size = scripty_data.sd_replay.size(); diff --git a/test/test_ansi_scrubber.cc b/test/test_ansi_scrubber.cc index 5371a31..1bb67f2 100644 --- a/test/test_ansi_scrubber.cc +++ b/test/test_ansi_scrubber.cc @@ -37,6 +37,7 @@ #include <assert.h> #include "base/ansi_scrubber.hh" +#include "base/attr_line.builder.hh" #include "config.h" #include "view_curses.hh" @@ -45,6 +46,50 @@ using namespace std; int main(int argc, char* argv[]) { + printf("BEGIN test\n"); + + { + std::string zero_width = "\x16 1 \x16 2 \x16"; + string_attrs_t sa; + + scrub_ansi_string(zero_width, &sa); + printf("zero width: '%s'\n", + fmt::format(FMT_STRING("{:?}"), zero_width).c_str()); + assert(zero_width == " 1 2 "); + for (const auto& attr : sa) { + printf("attr %d:%d %s\n", + attr.sa_range.lr_start, + attr.sa_range.lr_end, + attr.sa_type->sat_name); + if (attr.sa_type == &VC_HYPERLINK) { + printf(" value: %s\n", + attr.sa_value.get<std::string>().c_str()); + } + if (attr.sa_type == &SA_ORIGIN_OFFSET) { + printf(" value: %lld\n", attr.sa_value.get<int64_t>()); + } + } + } + + { + std::string bad_bold = "That is not\b\b\ball\n"; + string_attrs_t sa; + + scrub_ansi_string(bad_bold, &sa); + printf("bad bold1: '%s'\n", + fmt::format(FMT_STRING("{:?}"), bad_bold).c_str()); + assert(bad_bold == "That is not\b\b\ball\n"); + } + { + std::string bad_bold = "test r\bra\bc not\b\b\ball \x16"; + string_attrs_t sa; + + scrub_ansi_string(bad_bold, &sa); + printf("bad bold2: '%s'\n", + fmt::format(FMT_STRING("{:?}"), bad_bold).c_str()); + assert(bad_bold == "test ra\bc not\b\b\ball "); + } + { char input[] = "Hello, \x1b[33;mWorld\x1b[0;m!"; @@ -56,6 +101,13 @@ main(int argc, char* argv[]) } { + std::string bad_bold = "^_\x8b\b "; + string_attrs_t sa; + + scrub_ansi_string(bad_bold, &sa); + } + + { std::string boldish = "\u2022\b\u2022\u2023\b\u2023 h\bhe\bel\blo\bo _\ba_\bb_\bc a\b_ " "b"; @@ -82,17 +134,61 @@ main(int argc, char* argv[]) } } } + { + string_attrs_t sa; + string str_cp; + + str_cp = "Hello, World!"; + scrub_ansi_string(str_cp, &sa); + + assert(str_cp == "Hello, World!"); + assert(sa.empty()); + + str_cp = "Hello\x1b[44;m, \x1b[33;mWorld\x1b[0;m!"; + scrub_ansi_string(str_cp, &sa); + assert(str_cp == "Hello, World!"); + printf("%s\n", str_cp.c_str()); + for (const auto& attr : sa) { + printf(" attr %d:%d %s %s\n", + attr.sa_range.lr_start, + attr.sa_range.lr_end, + attr.sa_type->sat_name, + string_fragment::from_str_range( + str_cp, attr.sa_range.lr_start, attr.sa_range.lr_end) + .to_string() + .c_str()); + } + } - string_attrs_t sa; - string str_cp; + { + // "•]8;;http://example.com•\This_is_a_link•]8;;•\_" + auto hlink = std::string( + "\033]8;;http://example.com\033\\This is a " + "link\033]8;;\033\\\n"); + + auto al = attr_line_t(); + attr_line_builder alb(al); - str_cp = "Hello, World!"; - scrub_ansi_string(str_cp, &sa); + alb.append_as_hexdump(hlink); + printf("%s\n", al.get_string().c_str()); - assert(str_cp == "Hello, World!"); - assert(sa.empty()); + string_attrs_t sa; + scrub_ansi_string(hlink, &sa); - str_cp = "Hello\x1b[44;m, \x1b[33;mWorld\x1b[0;m!"; - scrub_ansi_string(str_cp, &sa); - assert(str_cp == "Hello, World!"); + printf("hlink %d %d %s", hlink.size(), sa.size(), hlink.c_str()); + assert(sa.size() == 3); + for (const auto& attr : sa) { + printf("attr %d:%d %s\n", + attr.sa_range.lr_start, + attr.sa_range.lr_end, + attr.sa_type->sat_name); + if (attr.sa_type == &VC_HYPERLINK) { + printf(" value: %s\n", + attr.sa_value.get<std::string>().c_str()); + } + if (attr.sa_type == &SA_ORIGIN_OFFSET) { + printf(" value: %lld\n", attr.sa_value.get<int64_t>()); + } + } + } } diff --git a/test/test_cli.sh b/test/test_cli.sh index be773f5..195f8bc 100644 --- a/test/test_cli.sh +++ b/test/test_cli.sh @@ -5,7 +5,7 @@ export YES_COLOR=1 run_cap_test ${lnav_test} -n -c 'foo' -run_cap_test ${lnav_test} -d /tmp/lnav.err -t -n <<EOF +run_cap_test ${lnav_test} -d /tmp/lnav.err -n <<EOF Hello, World! Goodbye, World! EOF @@ -29,3 +29,33 @@ printf "a\ba _\ba a\b_" | run_cap_test env TEST_COMMENT="overstrike bold" \ grep abcd textfile_long_lines.0 | run_cap_test \ ${lnav_test} -n -d /tmp/lnav.err \ -c ';SELECT filepath, lines FROM lnav_file' + +export HOME="./piper-config" +rm -rf ./piper-config +mkdir -p $HOME/.lnav + +${lnav_test} -Nn -c ':config /tuning/piper/max-size 128' + +cat ${test_dir}/logfile_haproxy.0 | run_cap_test \ + env TEST_COMMENT="stdin rotation" ${lnav_test} -n + +export HOME="./mgmt-config" +rm -rf ./mgmt-config +mkdir -p $HOME/.lnav +run_cap_test ${lnav_test} -m -I ${test_dir} config get + +run_cap_test ${lnav_test} -m -I ${test_dir} config blame + +export TMPDIR="piper-tmp" +rm -rf ./piper-tmp +run_cap_test ${lnav_test} -n -e 'echo hi' + +run_cap_test ${lnav_test} -m piper list + +PIPER_URL=$(env NO_COLOR=1 ${lnav_test} -m -q piper list | tail -1 | sed -r -e 's;.*(piper://[^ ]+).*;\1;g') + +run_cap_test ${lnav_test} -n $PIPER_URL + +run_cap_test ${lnav_test} -n $PIPER_URL \ + -c ";SELECT filepath, descriptor, mimetype, jget(content, '/ctime') as ctime, jget(content, '/cwd') as cwd FROM lnav_file_metadata" \ + -c ':write-json-to -' diff --git a/test/test_cmds.sh b/test/test_cmds.sh index 5cb0a43..5103f79 100644 --- a/test/test_cmds.sh +++ b/test/test_cmds.sh @@ -1,6 +1,38 @@ #! /bin/bash +export TZ=UTC export YES_COLOR=1 +export DUMP_CRASH=1 + +run_cap_test ${lnav_test} -n \ + -c ":goto 0" \ + -c ":convert-time-to bad-zone" \ + ${test_dir}/logfile_access_log.0 + +run_cap_test ${lnav_test} -n \ + -c ":goto 0" \ + -c ":convert-time-to America/Los_Angeles" \ + ${test_dir}/logfile_access_log.0 + +run_cap_test ${lnav_test} -nN \ + -c ";SELECT ':echo Hello' || char(10) || ':echo World' AS cmds" \ + -c ':eval ${cmds}' + +run_cap_test ${lnav_test} -nN \ + -c ":cd /bad-dir" + +run_cap_test ${lnav_test} -nN \ + -c ":cd ${test_dir}/logfile_access_log.0" + +run_cap_test ${lnav_test} -nN \ + -c ":cd ${test_dir}" \ + -c ":open logfile_access_log.0" + +run_cap_test ${lnav_test} -nN \ + -e "echo Hello, World!" + +run_cap_test ${lnav_test} -nN \ + -e "echo Hello, World! > /dev/stderr" run_cap_test ${lnav_test} -n \ -c ":switch-to-view help" \ @@ -30,6 +62,10 @@ run_cap_test env TZ=UTC ${lnav_test} -n \ -c ":unix-time 1612072409" \ "${test_dir}/logfile_access_log.*" +#run_cap_test env TZ=UTC ${lnav_test} -n \ +# -c ":unix-time 16120724091612072409" \ +# "${test_dir}/logfile_access_log.*" + run_cap_test env TZ=UTC ${lnav_test} -n \ -c ":current-time" \ "${test_dir}/logfile_access_log.*" @@ -143,6 +179,10 @@ run_cap_test ${lnav_test} -n \ -c ":hide-fields access_log.c_ip access_log.cs_uri_stem" \ ${test_dir}/logfile_access_log.0 +run_cap_test ${lnav_test} -n \ + -c ':hide-fields log_time log_level' \ + ${test_dir}/logfile_generic.0 + run_cap_test ${lnav_test} -f- -n < ${test_dir}/formats/scripts/multiline-echo.lnav run_cap_test ${lnav_test} -n \ @@ -375,6 +415,12 @@ run_cap_test ${lnav_test} -n \ ${test_dir}/logfile_access_log.0 run_cap_test ${lnav_test} -n \ + -I ${test_dir} \ + -c ":goto 5" \ + -c ":pipe-line-to echo \$log_raw_text \$log_level \$user" \ + ${test_dir}/logfile_json.json + +run_cap_test ${lnav_test} -n \ -c ":switch-to-view pretty" \ ${test_dir}/textfile_json_one_line.0 diff --git a/test/test_config.sh b/test/test_config.sh index 4722abb..e186bb5 100755 --- a/test/test_config.sh +++ b/test/test_config.sh @@ -37,3 +37,6 @@ run_cap_test ${lnav_test} -W -n \ run_cap_test ${lnav_test} -nN \ -c ":reset-config /bad/path" + +run_cap_test ${lnav_test} -n -I ${test_dir} \ + hw://seattle/finn diff --git a/test/test_date_time_scanner.cc b/test/test_date_time_scanner.cc index 8a85993..c19d9c8 100644 --- a/test/test_date_time_scanner.cc +++ b/test/test_date_time_scanner.cc @@ -30,11 +30,24 @@ #include <assert.h> #include <locale.h> +#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN #include "../src/lnav_util.hh" #include "base/date_time_scanner.hh" #include "config.h" +#include "doctest/doctest.h" +#include "lnav_config.hh" +#include "ptimec.hh" static const char* GOOD_TIMES[] = { + "2023-08-11T00:59:36.208491Z", + "09/Aug/2023:21:41:44 +0000", + "2022-08-27T17:22:01.694554+03:00", + "2022-08-27T17:22:01.694554+0300", + "2022-08-27T17:22:01.694554+00:00", + "2022-08-27T17:22:01.694554+0000", + "2022-08-27T17:22:01.694554Z", + "2022-08-27 17:22:01.694554 UTC", + "2022-08-27 17:22:01.694554 GMT", "2017 May 08 Mon 18:57:57.578", "May 01 00:00:01", "May 10 12:00:01", @@ -53,11 +66,11 @@ static const char* BAD_TIMES[] = { "@4000000043", }; -int -main(int argc, char* argv[]) +TEST_CASE("date_time_scanner") { setenv("TZ", "UTC", 1); + lnav_config.lc_log_date_time.c_zoned_to_local = false; for (const auto* good_time : GOOD_TIMES) { date_time_scanner dts; struct timeval tv; @@ -65,16 +78,71 @@ main(int argc, char* argv[]) const char* rc; rc = dts.scan(good_time, strlen(good_time), nullptr, &tm, tv); + CHECK(dts.dts_zoned_to_local == false); printf("ret %s %p\n", good_time, rc); assert(rc != nullptr); char ts[64]; - gmtime_r(&tv.tv_sec, &tm.et_tm); dts.ftime(ts, sizeof(ts), nullptr, tm); + printf("fmt %s\n", PTIMEC_FORMATS[dts.dts_fmt_lock].pf_fmt); printf("orig %s\n", good_time); printf("loop %s\n", ts); - assert(strcmp(ts, good_time) == 0); + CHECK(std::string(ts) == std::string(good_time)); + } + + { + const auto sf + = string_fragment::from_const("2014-02-11 16:12:34.123.456"); + struct timeval tv; + struct exttm tm; + date_time_scanner dts; + const auto* rc = dts.scan(sf.data(), sf.length(), nullptr, &tm, tv); + CHECK((tm.et_flags & ETF_MILLIS_SET)); + CHECK(std::string(rc) == sf.substr(23).to_string()); + + char ts[64]; + dts.ftime(ts, sizeof(ts), nullptr, tm); + + CHECK(std::string(ts) == std::string("2014-02-11 16:12:34.123")); + } + + { + const auto sf + = string_fragment::from_const("2014-02-11 16:12:34.12345Z"); + struct timeval tv; + struct exttm tm; + date_time_scanner dts; + const auto* rc = dts.scan(sf.data(), sf.length(), nullptr, &tm, tv); + printf("fmt %s\n", PTIMEC_FORMAT_STR[dts.dts_fmt_lock]); + CHECK(rc != nullptr); + CHECK((tm.et_flags & ETF_MICROS_SET)); + CHECK(*rc == '\0'); + + char ts[64]; + dts.ftime(ts, sizeof(ts), nullptr, tm); + + CHECK(std::string(ts) == std::string("2014-02-11 16:12:34.123450Z")); + } + + { + const auto sf + = string_fragment::from_const("Tue Jul 25 12:01:01 AM UTC 2023"); + struct timeval tv; + struct exttm tm; + date_time_scanner dts; + const auto* rc = dts.scan(sf.data(), sf.length(), nullptr, &tm, tv); + printf("fmt %s\n", PTIMEC_FORMAT_STR[dts.dts_fmt_lock]); + CHECK(rc != nullptr); + CHECK((tm.et_flags & ETF_ZONE_SET)); + CHECK((tm.et_flags & ETF_Z_IS_UTC)); + CHECK(*rc == '\0'); + + char ts[64]; + dts.ftime(ts, sizeof(ts), nullptr, tm); + + CHECK(std::string(ts) + == std::string("Tue Jul 25 12:01:01 AM UTC 2023")); } { diff --git a/test/test_events.sh b/test/test_events.sh index 2266c4b..494284e 100644 --- a/test/test_events.sh +++ b/test/test_events.sh @@ -4,6 +4,7 @@ rm -rf events-home mkdir -p events-home export HOME=events-home export YES_COLOR=1 +export TZ=UTC run_cap_test ${lnav_test} -n \ -c ';SELECT json(content) as content FROM lnav_events' \ diff --git a/test/test_format_installer.sh b/test/test_format_installer.sh index 2b94d3d..764f879 100644 --- a/test/test_format_installer.sh +++ b/test/test_format_installer.sh @@ -8,6 +8,7 @@ rm -rf "${CONFIG_DIR}/.lnav/formats" HOME=${CONFIG_DIR} unset XDG_CONFIG_HOME export HOME +export YES_COLOR=1 ${lnav_test} -i ${srcdir}/formats/jsontest/format.json @@ -16,6 +17,19 @@ if ! test -f ${CONFIG_DIR}/.lnav/formats/installed/test_log.json; then exit 1 fi +run_cap_test ${lnav_test} -i ${srcdir}/formats/jsontest/format.json + +echo corrupt > ${CONFIG_DIR}/.lnav/formats/installed/test_log.json + +run_cap_test env TEST_COMMENT='overwrite file' ${lnav_test} -i ${srcdir}/formats/jsontest/format.json + +if ! test -f ${CONFIG_DIR}/.lnav/formats/installed/test_log.json.bak; then + echo "Format not backed up correctly?" + exit 1 +fi + +run_cap_test ${lnav_test} -i /non-existent/file + if test x"${TEST_GIT_INSTALL}" = x""; then # Hitting the git repos frequently is slow/noisy exit 0 diff --git a/test/test_gantt.sh b/test/test_gantt.sh new file mode 100644 index 0000000..b64c130 --- /dev/null +++ b/test/test_gantt.sh @@ -0,0 +1,43 @@ +#! /bin/bash + +export YES_COLOR=1 + +export TZ=UTC + +run_cap_test ${lnav_test} -n \ + -c ':switch-to-view gantt' \ + ${test_dir}/logfile_generic.0 + +run_cap_test ${lnav_test} -n \ + -c ':switch-to-view gantt' \ + ${test_dir}/logfile_bro_http.log.0 + +run_cap_test ${lnav_test} -n \ + -c ':switch-to-view gantt' \ + -c ':filter-in CdysLK1XpcrXOpVDuh' \ + ${test_dir}/logfile_bro_http.log.0 + +run_cap_test ${lnav_test} -n \ + -c ':switch-to-view gantt' \ + -c ':filter-out CdysLK1XpcrXOpVDuh' \ + ${test_dir}/logfile_bro_http.log.0 + +run_cap_test ${lnav_test} -n \ + -c ':switch-to-view gantt' \ + -c ':hide-file *' \ + ${test_dir}/logfile_bro_http.log.0 + +run_cap_test ${lnav_test} -n \ + -c ':switch-to-view gantt' \ + -c ':close *' \ + ${test_dir}/logfile_bro_http.log.0 + +run_cap_test ${lnav_test} -n \ + -c ':switch-to-view gantt' \ + -c ':hide-lines-before 2011-11-03 00:19:37' \ + ${test_dir}/logfile_bro_http.log.0 + +run_cap_test ${lnav_test} -n \ + -c ':switch-to-view gantt' \ + -c ':hide-lines-after 2011-11-03 00:20:30' \ + ${test_dir}/logfile_bro_http.log.0 diff --git a/test/test_json_format.sh b/test/test_json_format.sh index 435e8e3..d56f0c8 100644 --- a/test/test_json_format.sh +++ b/test/test_json_format.sh @@ -1,5 +1,6 @@ #! /bin/bash +export TZ=UTC export YES_COLOR=1 # journald json log format is not working" @@ -154,3 +155,9 @@ run_cap_test ${lnav_test} -n \ run_cap_test ${lnav_test} -n \ -c ':show-fields RayID' \ ${test_dir}/logfile_cloudflare.json + +run_cap_test ${lnav_test} -n \ + ${test_dir}/logfile_nextcloud.0 + +run_cap_test ${lnav_test} -n \ + ${test_dir}/gharchive_log.jsonl diff --git a/test/test_logfile.sh b/test/test_logfile.sh index 86e26c9..0fe2908 100644 --- a/test/test_logfile.sh +++ b/test/test_logfile.sh @@ -1,5 +1,6 @@ #! /bin/bash +export TZ=UTC echo ${top_srcdir} echo ${top_builddir} @@ -9,6 +10,9 @@ printf '#Date:\t20\x800-2-02\n0\n' | run_cap_test \ printf '000\n000\n#Fields: 0\n0\n#Fields: 0\n0' | run_cap_test \ env TEST_COMMENT="invalid w3c log" ${lnav_test} -n +printf '#Date:\t3/9/3/0\x85 2\n0\n' | run_cap_test \ + env TEST_COMMENT="invalid w3c timestamp" ${lnav_test} -n + cat > rollover_in.0 <<EOF 2600/2 0 00:00:00 0: 00:2 0 00:00:00 0: @@ -37,17 +41,18 @@ run_cap_test ${lnav_test} -n \ -c ';SELECT * FROM logline' \ ${test_dir}/logfile_block.1 -run_test ${lnav_test} -d /tmp/lnav.err -n -w logfile_stdin.0.log \ - -c ':shexec sleep 1 && touch -t 200711030923 logfile_stdin.0.log' <<EOF -2013-06-06T19:13:20.123 Hi -EOF +if test x"${TSHARK_CMD}" != x""; then + run_test env TZ=UTC ${lnav_test} -n ${test_dir}/dhcp.pcapng -check_output "piping to stdin is not working?" <<EOF -2013-06-06T19:13:20.123 Hi + check_output "pcap file is not recognized" <<EOF +2004-12-05T19:16:24.317 0.0.0.0 → 255.255.255.255 DHCP 314 DHCP Discover - Transaction ID 0x3d1d +2004-12-05T19:16:24.317 192.168.0.1 → 192.168.0.10 DHCP 342 DHCP Offer - Transaction ID 0x3d1d +2004-12-05T19:16:24.387 0.0.0.0 → 255.255.255.255 DHCP 314 DHCP Request - Transaction ID 0x3d1e +2004-12-05T19:16:24.387 192.168.0.1 → 192.168.0.10 DHCP 342 DHCP ACK - Transaction ID 0x3d1e EOF -if test x"${TSHARK_CMD}" != x""; then - run_test env TZ=UTC ${lnav_test} -n ${test_dir}/dhcp.pcapng + # make sure piped binary data is left alone + run_test cat ${test_dir}/dhcp.pcapng | env TZ=UTC ${lnav_test} -n check_output "pcap file is not recognized" <<EOF 2004-12-05T19:16:24.317 0.0.0.0 → 255.255.255.255 DHCP 314 DHCP Discover - Transaction ID 0x3d1d @@ -59,7 +64,8 @@ EOF run_test ${lnav_test} -n ${test_dir}/dhcp-trunc.pcapng check_error_output "truncated pcap file is not recognized" <<EOF -error: unable to open file: {test_dir}/dhcp-trunc.pcapng -- tshark: The file "{test_dir}/dhcp-trunc.pcapng" appears to have been cut short in the middle of a packet. +✘ error: unable to open file: {test_dir}/dhcp-trunc.pcapng + reason: tshark: The file "{test_dir}/dhcp-trunc.pcapng" appears to have been cut short in the middle of a packet. EOF fi @@ -377,8 +383,6 @@ TCF 2014-04-06 11:01:11.475557: 0: <--- R 2 ["P1"] <eom> EOF -# The TCSH format converts to local time, so we need to specify a TZ -export TZ="UTC" run_test ./drive_logfile -t -f tcsh_history ${srcdir}/logfile_tcsh_history.0 check_output "TCSH timestamp interpreted incorrectly?" <<EOF @@ -396,6 +400,10 @@ Jul 20 22:59:29 2009 -- 000 Jul 20 22:59:29 2009 -- 000 EOF +run_cap_test env TZ=America/Los_Angeles ./drive_logfile -t -f access_log ${srcdir}/logfile_access_log.0 + +run_cap_test env TZ=America/Los_Angeles ${lnav_test} -n ${srcdir}/logfile_access_log.0 + run_test ./drive_logfile -t -f generic_log ${srcdir}/logfile_tai64n.0 check_output "tai64n timestamps interpreted incorrectly?" <<EOF @@ -543,6 +551,12 @@ error 0x0 error 0x0 EOF +run_cap_test ./drive_logfile -t -f generic_log ${test_dir}/logfile_with_zones.0 + +run_cap_test env TZ=America/Los_Angeles ./drive_logfile -t -f generic_log ${test_dir}/logfile_with_zones.0 + +run_cap_test env TZ=America/New_York ./drive_logfile -t -f generic_log ${test_dir}/logfile_with_zones.0 + touch -t 200711030923 ${srcdir}/logfile_glog.0 run_test ./drive_logfile -t -f glog_log ${srcdir}/logfile_glog.0 @@ -588,15 +602,6 @@ info 0x0 error 0x0 EOF -run_test ${lnav_test} -d /tmp/lnav.err -nt -w logfile_stdin.log <<EOF -Hi -EOF - -check_output "piping to stdin is not working?" <<EOF -2013-06-06T19:13:20.123 Hi -2013-06-06T19:13:20.123 ---- END-OF-STDIN ---- -EOF - run_test ${lnav_test} -C ${test_dir}/logfile_bad_access_log.0 sed -ibak -e "s|/.*/logfile_bad_access_log.0|logfile_bad_access_log.0|g" `test_err_filename` @@ -635,8 +640,8 @@ EOF run_test ${lnav_test} -n -I ${test_dir} ${srcdir}/logfile_epoch.0 check_output "rewriting machine-oriented timestamp didn't work?" <<EOF -2015-04-10 02:58:07.123000 Hello, World! -2015-04-10 02:58:07.456000 Goodbye, World! +2015-04-10 02:58:07.123 Hello, World! +2015-04-10 02:58:07.456 Goodbye, World! EOF run_test ${lnav_test} -n -I ${test_dir} ${srcdir}/logfile_crlf.0 @@ -705,3 +710,29 @@ run_cap_test ${lnav_test} -n \ run_cap_test ${lnav_test} -n \ -c ':filter-in Air Mob' \ ${test_dir}/logfile_ansi.1 + +export HOME="./file-tz" +rm -rf "./file-tz" +mkdir -p $HOME + +touch -t 200711030000 ${srcdir}/logfile_syslog.0 + +run_cap_test ${lnav_test} -n \ + -c ':set-file-timezone America/Los_Angeles' \ + ${test_dir}/logfile_syslog.0 + +# make sure the file options were saved and restored +run_cap_test ${lnav_test} -n \ + ${test_dir}/logfile_syslog.0 + +run_cap_test ${lnav_test} -n \ + -c ";SELECT options_path, options FROM lnav_file" \ + ${test_dir}/logfile_syslog.0 + +run_cap_test ${lnav_test} -n \ + -c ':set-file-timezone America/New_York' \ + ${test_dir}/logfile_syslog.0 + +run_cap_test ${lnav_test} -n \ + -c ':set-file-timezone bad' \ + ${test_dir}/logfile_syslog.0 diff --git a/test/test_meta.sh b/test/test_meta.sh index caab4f9..e57a30c 100644 --- a/test/test_meta.sh +++ b/test/test_meta.sh @@ -2,6 +2,7 @@ export YES_COLOR=1 +export TZ=UTC export HOME="./meta-sessions" export XDG_CONFIG_HOME="./meta-sessions/.config" rm -rf "./meta-sessions" @@ -108,3 +109,28 @@ run_cap_test ${lnav_test} -n -f- \ This is `markdown` now! EOF + +run_cap_test ${lnav_test} -n \ + -c ":goto 46" \ + -c ":tag bro-test" \ + -c ":save-session" \ + -c ";SELECT log_line, log_tags FROM bro_http_log WHERE log_tags IS NOT NULL" \ + ${test_dir}/logfile_bro_http.log.0 + +run_cap_test ${lnav_test} -n \ + -c ":load-session" \ + -c ";SELECT log_line, log_tags FROM bro_http_log WHERE log_tags IS NOT NULL" \ + ${test_dir}/logfile_bro_http.log.0 + +run_cap_test ${lnav_test} -n \ + -c ";UPDATE access_log SET log_annotations = '1' WHERE log_line = 0" \ + ${test_dir}/logfile_access_log.0 + +run_cap_test ${lnav_test} -n \ + -c ";UPDATE access_log SET log_annotations = '{\"abc\": \"def\"' WHERE log_line = 0" \ + ${test_dir}/logfile_access_log.0 + +run_cap_test ${lnav_test} -n \ + -c ";UPDATE access_log SET log_annotations = '{\"abc\": \"def\"}' WHERE log_line = 0" \ + -c ";SELECT log_line,log_annotations FROM access_log WHERE log_annotations IS NOT NULL" \ + ${test_dir}/logfile_access_log.0 diff --git a/test/test_prql.sh b/test/test_prql.sh new file mode 100644 index 0000000..bc27908 --- /dev/null +++ b/test/test_prql.sh @@ -0,0 +1,17 @@ +#! /bin/bash + +export TZ=UTC +export YES_COLOR=1 +unset XDG_CONFIG_HOME + +run_cap_test ${lnav_test} -n \ + -c ";from access_log | take 1" \ + ${test_dir}/logfile_access_log.0 + +run_cap_test ${lnav_test} -n \ + -c ";from access_log | take abc" \ + ${test_dir}/logfile_access_log.0 + +run_cap_test ${lnav_test} -n \ + -c ";from bro_http_log | stats.hist bro_host slice:'1m'" \ + ${test_dir}/logfile_bro_http.log.0 diff --git a/test/test_sessions.sh b/test/test_sessions.sh index db71e5f..7e5b830 100644 --- a/test/test_sessions.sh +++ b/test/test_sessions.sh @@ -1,5 +1,6 @@ #! /bin/bash +export TZ=UTC export HOME="./sessions" unset XDG_CONFIG_HOME rm -rf "./sessions" @@ -77,6 +78,14 @@ run_cap_test ${lnav_test} -n \ -c ':write-csv-to -' \ ${test_dir}/logfile_access_log.0 +# partition name was not saved in session and doesn't not show up in crumbs +run_cap_test ${lnav_test} -n \ + -c ":load-session" \ + -c ':goto 2' \ + -c ";SELECT top_meta FROM lnav_views WHERE name = 'log'" \ + -c ':write-json-to -' \ + ${test_dir}/logfile_access_log.0 + # adjust time is not working run_cap_test ${lnav_test} -nq \ -c ":adjust-log-time 2010-01-01T00:00:00" \ @@ -117,3 +126,31 @@ run_cap_test ${lnav_test} -n -d /tmp/lnav.err \ -c ":load-session" \ -c ":test-comment restore hidden lines" \ ${test_dir}/logfile_access_log.0 + +# hiding fields failed +export TZ="UTC" +rm -rf ./sessions +mkdir -p $HOME +run_cap_test ${lnav_test} -n \ + -c ":hide-fields bro_uid" \ + -c ":goto -10" \ + -c ":save-session" \ + ${test_dir}/logfile_bro_http.log.0 + +# restoring hidden fields failed +run_cap_test ${lnav_test} -n \ + -c ":load-session" \ + -c ":goto -10" \ + -c ":test-comment restoring hidden fields" \ + ${test_dir}/logfile_bro_http.log.0 + +export TEST_ANNO=1 +run_cap_test ${lnav_test} -d /tmp/lnav.err -I ${test_dir} -n \ + -c ':annotate' \ + -c ':save-session' \ + support-dump/logfile_access_log.0 + +run_cap_test ${lnav_test} -d /tmp/lnav.err -I ${test_dir} -n \ + -c ':load-session' \ + -c ':export-session-to -' \ + support-dump/logfile_access_log.0 diff --git a/test/test_shlexer.sh b/test/test_shlexer.sh index 747de95..e05cc50 100644 --- a/test/test_shlexer.sh +++ b/test/test_shlexer.sh @@ -30,3 +30,5 @@ run_cap_test ./drive_shlexer 'abc $DEF 123' run_cap_test ./drive_shlexer '~ foo' run_cap_test ./drive_shlexer '~nonexistent/bar baz' + +run_cap_test ./drive_shlexer 'abc ' diff --git a/test/test_sql.sh b/test/test_sql.sh index 369351c..6abb5ad 100644 --- a/test/test_sql.sh +++ b/test/test_sql.sh @@ -1,5 +1,6 @@ #! /bin/bash +export TZ=UTC export YES_COLOR=1 lnav_test="${top_builddir}/src/lnav-test" @@ -29,118 +30,26 @@ run_cap_test ${lnav_test} -n \ cp ${srcdir}/logfile_syslog.2 logfile_syslog_test.2 touch -t 201511030923 logfile_syslog_test.2 -run_test ${lnav_test} -n \ +run_cap_test ${lnav_test} -n \ -c ";SELECT *, log_msg_schema FROM all_logs" \ -c ":write-csv-to -" \ logfile_syslog_test.2 -check_output "all_logs does not work?" <<EOF -log_line,log_part,log_time,log_idle_msecs,log_level,log_mark,log_comment,log_tags,log_filters,log_msg_format,log_msg_schema -0,<NULL>,2015-11-03 09:23:38.000,0,info,0,<NULL>,<NULL>,<NULL>,# is up,aff2bfc3c61e7b86329b83190f0912b3 -1,<NULL>,2015-11-03 09:23:38.000,0,info,0,<NULL>,<NULL>,<NULL>,# is up,aff2bfc3c61e7b86329b83190f0912b3 -2,<NULL>,2015-11-03 09:23:38.000,0,info,0,<NULL>,<NULL>,<NULL>,# is down,506560b3c73dee057732e69a3c666718 -EOF - - -run_test ${lnav_test} -n \ +run_cap_test ${lnav_test} -n \ -c ";SELECT fields FROM logfmt_log" \ -c ":write-json-to -" \ ${test_dir}/logfile_logfmt.0 -check_output "logfmt fields are not handled correctly?" <<EOF -[ - { - "fields": { - "namespace": "inc-1-enh-domain-c14-ns-2", - "pod": "hello-inc-1-enh-domain-c14-ns-2-3-d8f465685-k75gp", - "reason": "", - "status": "Pending" - } - }, - { - "fields": { - "error": "pod inc-1-domain-c14-ns-6/fe-inc-1-domain-c14-ns-6-5-656d9bb695-4584b is not found: PodNotFound", - "namespace": "inc-1-domain-c14-ns-6", - "pod": "fe-inc-1-domain-c14-ns-6-5-656d9bb695-4584b", - "uid": "be2def59-3a08-42fd-8f84-6f64cfcefa93" - } - }, - { - "fields": { - "namespace": "inc-1-domain-c14-ns-6", - "pod": "fe-inc-1-domain-c14-ns-6-5-656d9bb695-4584b", - "uid": "be2def59-3a08-42fd-8f84-6f64cfcefa93" - } - }, - { - "fields": { - "namespace": "inc-1-domain-c14-ns-6", - "pod": "fe-inc-1-domain-c14-ns-6-5-656d9bb695-4584b", - "uid": "be2def59-3a08-42fd-8f84-6f64cfcefa93" - } - }, - { - "fields": { - "namespace": "inc-1-enh-domain-c14-ns-2", - "pod": "hello-inc-1-enh-domain-c14-ns-2-7-5ddd6bcd69-6rqct", - "reason": "", - "status": "Pending" - } - } -] -EOF - - -run_test ${lnav_test} -n \ +run_cap_test ${lnav_test} -n \ -c ";SELECT sc_substatus FROM w3c_log" \ -c ":write-json-to -" \ ${test_dir}/logfile_w3c.3 -check_output "w3c quoted strings are not handled correctly?" <<EOF -[ - { - "sc_substatus": 0 - }, - { - "sc_substatus": 0 - }, - { - "sc_substatus": null - } -] -EOF - -run_test ${lnav_test} -n \ +run_cap_test ${lnav_test} -n \ -c ";SELECT cs_headers FROM w3c_log" \ -c ":write-json-to -" \ ${test_dir}/logfile_w3c.3 -check_output "w3c headers are not captured?" <<EOF -[ - { - "cs_headers": { - "User-Agent": "Mozilla/5.0 (Linux; Android 4.4.4; SM-G900V Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.59 Mobile Safari/537.36", - "Referer": "http://example.com/Search/SearchResults.pg?informationRecipient.languageCode.c=en", - "Host": "xzy.example.com" - } - }, - { - "cs_headers": { - "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36", - "Referer": null, - "Host": "example.hello.com" - } - }, - { - "cs_headers": { - "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36", - "Referer": null, - "Host": "hello.example.com" - } - } -] -EOF - run_cap_test ${lnav_test} -n \ -c ";SELECT * FROM generate_series()" \ ${test_dir}/logfile_access_log.0 @@ -158,34 +67,16 @@ run_cap_test ${lnav_test} -n \ -c ";SELECT raise_error('oops!')" \ ${test_dir}/logfile_access_log.0 -run_test ${lnav_test} -n \ +run_cap_test ${lnav_test} -n \ -c ";SELECT basename(filepath) as name, content, length(content) FROM lnav_file" \ -c ":write-csv-to -" \ ${test_dir}/logfile_empty.0 -check_output "empty content not handled correctly?" <<EOF -name,content,length(content) -logfile_empty.0,,0 -EOF - -run_test ${lnav_test} -n \ +run_cap_test ${lnav_test} -n \ -c ";SELECT distinct xp.node_text FROM lnav_file, xpath('//author', content) as xp" \ -c ":write-csv-to -" \ ${test_dir}/books.xml -check_output "xpath on file content not working?" <<EOF -node_text -"Gambardella, Matthew" -"Ralls, Kim" -"Corets, Eva" -"Randall, Cynthia" -"Thurman, Paula" -"Knorr, Stefan" -"Kress, Peter" -"O'Brien, Tim" -"Galos, Mike" -EOF - gzip -c ${srcdir}/logfile_json.json > logfile_json.json.gz dd if=logfile_json.json.gz of=logfile_json-trunc.json.gz bs=64 count=2 @@ -212,7 +103,7 @@ ts 2013-09-06T22:00:59.124817Z 2013-09-06T22:00:59.124817Z 2013-09-06T22:00:59.124817Z -2013-09-06T22:00:59.124817Z +2013-09-06 22:01:00Z 2013-09-06T22:01:49.124817Z 2013-09-06T22:01:49.124817Z 2013-09-06T22:01:49.124817Z @@ -263,10 +154,10 @@ run_test ${lnav_test} -n \ check_output "time_offset in lnav_file table is not reordering?" <<EOF Wed May 19 12:00:01 2021 line 1 /abc/def -Wed May 19 12:00:02 UTC 2021 line 2 +Wed May 19 12:00:02 +0000 2021 line 2 Wed May 19 12:00:03 2021 line 3 /ghi/jkl -Wed May 19 12:00:04 UTC 2021 line 4 +Wed May 19 12:00:04 +0000 2021 line 4 EOF @@ -280,15 +171,20 @@ EOF run_cap_test ${lnav_test} -n \ -c ":goto 2" \ - -c ";SELECT log_top_line()" \ + -c ";SELECT log_top_line(), log_msg_line()" \ ${test_dir}/logfile_uwsgi.0 run_cap_test ${lnav_test} -n \ -c ":goto 2" \ - -c ";SELECT log_top_line()" \ + -c ";SELECT log_top_line(), log_msg_line()" \ ${test_dir}/logfile_empty.0 run_cap_test ${lnav_test} -n \ + -c ":goto 1" \ + -c ";SELECT log_top_line(), log_msg_line()" \ + ${test_dir}/logfile_multiline.0 + +run_cap_test ${lnav_test} -n \ -c ":goto 2" \ -c ";SELECT log_top_datetime()" \ ${test_dir}/logfile_uwsgi.0 @@ -317,49 +213,21 @@ s_runtime 0.01 EOF -run_test env TZ=UTC ${lnav_test} -n \ +run_cap_test env TZ=UTC ${lnav_test} -n \ -c ";SELECT bro_conn_log.bro_duration as duration, bro_conn_log.bro_uid, group_concat( distinct (bro_method || ' ' || bro_host)) as req from bro_http_log, bro_conn_log where bro_http_log.bro_uid = bro_conn_log.bro_uid group by bro_http_log.bro_uid order by duration desc limit 10" \ -c ":write-csv-to -" \ ${test_dir}/logfile_bro_http.log.0 ${test_dir}/logfile_bro_conn.log.0 -check_output "bro logs are not recognized?" <<EOF -duration,bro_uid,req -116.438679,CwFs1P2UcUdlSxD2La,GET www.reddit.com -115.202498,CdZUPH2DKOE7zzCLE3,GET feeds.bbci.co.uk -115.121914,CdrfXZ1NOFPEawF218,GET c.thumbs.redditmedia.com -115.121837,CoX7zA3OJKGUOSCBY2,GET e.thumbs.redditmedia.com -115.12181,CJxSUgkInyKSHiju1,GET e.thumbs.redditmedia.com -115.121506,CT0JIh479jXIGt0Po1,GET f.thumbs.redditmedia.com -115.121339,CJwUi9bdB9c1lLW44,GET f.thumbs.redditmedia.com -115.119217,C6Q4Vm14ZJIlZhsXqk,GET a.thumbs.redditmedia.com -72.274459,CbNCgO1MzloHRNeY4f,GET www.google.com -71.658218,CnGze54kQWWpKqrrZ4,GET ajax.googleapis.com -EOF - -run_test env TZ=UTC ${lnav_test} -n \ +run_cap_test env TZ=UTC ${lnav_test} -n \ -c ";SELECT * FROM bro_http_log LIMIT 5" \ -c ":write-csv-to -" \ ${test_dir}/logfile_bro_http.log.0 -check_output "bro logs are not recognized?" <<EOF -log_line,log_part,log_time,log_idle_msecs,log_level,log_mark,log_comment,log_tags,log_filters,bro_ts,bro_uid,bro_id_orig_h,bro_id_orig_p,bro_id_resp_h,bro_id_resp_p,bro_trans_depth,bro_method,bro_host,bro_uri,bro_referrer,bro_version,bro_user_agent,bro_request_body_len,bro_response_body_len,bro_status_code,bro_status_msg,bro_info_code,bro_info_msg,bro_tags,bro_username,bro_password,bro_proxied,bro_orig_fuids,bro_orig_filenames,bro_orig_mime_types,bro_resp_fuids,bro_resp_filenames,bro_resp_mime_types -0,<NULL>,2011-11-03 00:19:26.452,0,info,0,<NULL>,<NULL>,<NULL>,1320279566.452687,CwFs1P2UcUdlSxD2La,192.168.2.76,52026,132.235.215.119,80,1,GET,www.reddit.com,/,<NULL>,1.1,Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1,0,109978,200,OK,<NULL>,<NULL>,,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,Ftw3fJ2JJF3ntMTL2,<NULL>,text/html -1,<NULL>,2011-11-03 00:19:26.831,379,info,0,<NULL>,<NULL>,<NULL>,1320279566.831619,CJxSUgkInyKSHiju1,192.168.2.76,52030,72.21.211.173,80,1,GET,e.thumbs.redditmedia.com,/E-pbDbmiBclPkDaX.jpg,http://www.reddit.com/,1.1,Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1,0,2300,200,OK,<NULL>,<NULL>,,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,FFTf9Zdgk3YkfCKo3,<NULL>,image/jpeg -2,<NULL>,2011-11-03 00:19:26.831,0,info,0,<NULL>,<NULL>,<NULL>,1320279566.831563,CJwUi9bdB9c1lLW44,192.168.2.76,52029,72.21.211.173,80,1,GET,f.thumbs.redditmedia.com,/BP5bQfy4o-C7cF6A.jpg,http://www.reddit.com/,1.1,Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1,0,2272,200,OK,<NULL>,<NULL>,,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,FfXtOj3o7aub4vbs2j,<NULL>,image/jpeg -3,<NULL>,2011-11-03 00:19:26.831,0,info,0,<NULL>,<NULL>,<NULL>,1320279566.831473,CoX7zA3OJKGUOSCBY2,192.168.2.76,52027,72.21.211.173,80,1,GET,e.thumbs.redditmedia.com,/SVUtep3Rhg5FTRn4.jpg,http://www.reddit.com/,1.1,Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1,0,2562,200,OK,<NULL>,<NULL>,,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,F21Ybs3PTqS6O4Q2Zh,<NULL>,image/jpeg -4,<NULL>,2011-11-03 00:19:26.831,0,info,0,<NULL>,<NULL>,<NULL>,1320279566.831643,CT0JIh479jXIGt0Po1,192.168.2.76,52031,72.21.211.173,80,1,GET,f.thumbs.redditmedia.com,/uuy31444rLSyKdHS.jpg,http://www.reddit.com/,1.1,Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1,0,1595,200,OK,<NULL>,<NULL>,,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,Fdk0MZ1wQmKWAJ4WH4,<NULL>,image/jpeg -EOF - -run_test env TZ=UTC ${lnav_test} -n \ +run_cap_test env TZ=UTC ${lnav_test} -n \ -c ";SELECT * FROM bro_http_log WHERE log_level = 'error'" \ -c ":write-csv-to -" \ ${test_dir}/logfile_bro_http.log.0 -check_output "bro logs are not recognized?" <<EOF -log_line,log_part,log_time,log_idle_msecs,log_level,log_mark,log_comment,log_tags,log_filters,bro_ts,bro_uid,bro_id_orig_h,bro_id_orig_p,bro_id_resp_h,bro_id_resp_p,bro_trans_depth,bro_method,bro_host,bro_uri,bro_referrer,bro_version,bro_user_agent,bro_request_body_len,bro_response_body_len,bro_status_code,bro_status_msg,bro_info_code,bro_info_msg,bro_tags,bro_username,bro_password,bro_proxied,bro_orig_fuids,bro_orig_filenames,bro_orig_mime_types,bro_resp_fuids,bro_resp_filenames,bro_resp_mime_types -118,<NULL>,2011-11-03 00:19:49.337,18,error,0,<NULL>,<NULL>,<NULL>,1320279589.337053,CBHHuR1xFnm5C5CQBc,192.168.2.76,52074,74.125.225.76,80,1,GET,i4.ytimg.com,/vi/gDbg_GeuiSY/hqdefault.jpg,<NULL>,1.1,Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1,0,893,404,Not Found,<NULL>,<NULL>,,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,F2GiAw3j1m22R2yIg2,<NULL>,image/jpeg -EOF - run_test ${lnav_test} -n \ -c ';select log_time from access_log where log_line > 100000' \ -c ':switch-to-view db' \ @@ -417,7 +285,7 @@ run_cap_test ${lnav_test} -n \ -c ':spectrogram c_ip' \ ${test_dir}/logfile_access_log.0 -run_cap_test env TZ=UTC LC_NUMERIC=C ${lnav_test} -n \ +run_cap_test env TZ=UTC LC_ALL=C ${lnav_test} -n \ -c ':spectrogram bro_response_body_len' \ ${test_dir}/logfile_bro_http.log.0 @@ -493,59 +361,29 @@ log_line,log_part EOF -run_test ${lnav_test} -n \ +run_cap_test ${lnav_test} -n \ -I "${top_srcdir}/test" \ -c ";select * from web_status" \ -c ':write-csv-to -' \ ${test_dir}/logfile_access_log.0 -check_output "access_log table is not working" <<EOF -group_concat(cs_uri_stem),sc_status -"/vmw/cgi/tramp,/vmw/vSphere/default/vmkernel.gz",200 -/vmw/vSphere/default/vmkboot.gz,404 -EOF - - -run_test ${lnav_test} -n \ +run_cap_test ${lnav_test} -n \ -c ";select * from access_log" \ -c ':write-csv-to -' \ ${test_dir}/logfile_access_log.0 -check_output "access_log table is not working" <<EOF -log_line,log_part,log_time,log_idle_msecs,log_level,log_mark,log_comment,log_tags,log_filters,c_ip,cs_method,cs_referer,cs_uri_query,cs_uri_stem,cs_user_agent,cs_username,cs_version,sc_bytes,sc_status,cs_host -0,<NULL>,2009-07-20 22:59:26.000,0,info,0,<NULL>,<NULL>,<NULL>,192.168.202.254,GET,-,<NULL>,/vmw/cgi/tramp,gPXE/0.9.7,-,HTTP/1.0,134,200,<NULL> -1,<NULL>,2009-07-20 22:59:29.000,3000,error,0,<NULL>,<NULL>,<NULL>,192.168.202.254,GET,-,<NULL>,/vmw/vSphere/default/vmkboot.gz,gPXE/0.9.7,-,HTTP/1.0,46210,404,<NULL> -2,<NULL>,2009-07-20 22:59:29.000,0,info,0,<NULL>,<NULL>,<NULL>,192.168.202.254,GET,-,<NULL>,/vmw/vSphere/default/vmkernel.gz,gPXE/0.9.7,-,HTTP/1.0,78929,200,<NULL> -EOF - - -run_test ${lnav_test} -n \ +run_cap_test ${lnav_test} -n \ -c ";select * from access_log where log_level >= 'warning'" \ -c ':write-csv-to -' \ ${test_dir}/logfile_access_log.0 -check_output "loglevel collator is not working" <<EOF -log_line,log_part,log_time,log_idle_msecs,log_level,log_mark,log_comment,log_tags,log_filters,c_ip,cs_method,cs_referer,cs_uri_query,cs_uri_stem,cs_user_agent,cs_username,cs_version,sc_bytes,sc_status,cs_host -1,<NULL>,2009-07-20 22:59:29.000,3000,error,0,<NULL>,<NULL>,<NULL>,192.168.202.254,GET,-,<NULL>,/vmw/vSphere/default/vmkboot.gz,gPXE/0.9.7,-,HTTP/1.0,46210,404,<NULL> -EOF - - # XXX The timestamp on the file is used to determine the year for syslog files. touch -t 200711030923 ${test_dir}/logfile_syslog.0 -run_test ${lnav_test} -n \ +run_cap_test ${lnav_test} -n \ -c ";select * from syslog_log" \ -c ':write-csv-to -' \ ${test_dir}/logfile_syslog.0 -check_output "syslog_log table is not working" <<EOF -log_line,log_part,log_time,log_idle_msecs,log_level,log_mark,log_comment,log_tags,log_filters,log_hostname,log_msgid,log_pid,log_pri,log_procname,log_struct,log_syslog_tag,syslog_version -0,<NULL>,2007-11-03 09:23:38.000,0,error,0,<NULL>,<NULL>,<NULL>,veridian,<NULL>,7998,<NULL>,automount,<NULL>,automount[7998],<NULL> -1,<NULL>,2007-11-03 09:23:38.000,0,info,0,<NULL>,<NULL>,<NULL>,veridian,<NULL>,16442,<NULL>,automount,<NULL>,automount[16442],<NULL> -2,<NULL>,2007-11-03 09:23:38.000,0,error,0,<NULL>,<NULL>,<NULL>,veridian,<NULL>,7999,<NULL>,automount,<NULL>,automount[7999],<NULL> -3,<NULL>,2007-11-03 09:47:02.000,1404000,info,0,<NULL>,<NULL>,<NULL>,veridian,<NULL>,<NULL>,<NULL>,sudo,<NULL>,sudo,<NULL> -EOF - - run_test ${lnav_test} -n \ -c ";select * from syslog_log where log_time >= NULL" \ -c ':write-csv-to -' \ @@ -736,8 +574,8 @@ check_output "schema view is not working" <<EOF ATTACH DATABASE '' AS 'main'; CREATE VIRTUAL TABLE environ USING environ_vtab_impl(); CREATE VIRTUAL TABLE lnav_static_files USING lnav_static_file_vtab_impl(); -CREATE VIRTUAL TABLE lnav_views USING lnav_views_impl(); CREATE VIRTUAL TABLE lnav_view_filter_stats USING lnav_view_filter_stats_impl(); +CREATE VIRTUAL TABLE lnav_views USING lnav_views_impl(); CREATE VIRTUAL TABLE lnav_view_files USING lnav_view_files_impl(); CREATE VIRTUAL TABLE lnav_view_stack USING lnav_view_stack_impl(); CREATE VIRTUAL TABLE lnav_view_filters USING lnav_view_filters_impl(); @@ -816,58 +654,19 @@ log_line,log_part 2,<NULL> EOF +# test the partitions defined in the format +run_cap_test ${lnav_test} -n \ + -I ${test_dir} \ + -c ";SELECT log_line, log_part, log_body FROM syslog_log" \ + -c ":write-csv-to -" \ + ${test_dir}/logfile_partitions.0 -run_test ${lnav_test} -n \ +run_cap_test ${lnav_test} -n \ -c ";SELECT * FROM openam_log" \ -c ":write-json-to -" \ ${test_dir}/logfile_openam.0 -check_output "write-json-to isn't working?" <<EOF -[ - { - "log_line": 0, - "log_part": null, - "log_time": "2014-06-15 01:04:52.000", - "log_idle_msecs": 0, - "log_level": "info", - "log_mark": 0, - "log_comment": null, - "log_tags": null, - "log_filters": null, - "contextid": "82e87195d704585501", - "data": "http://localhost:8086|/|<samlp:Response xmlns:samlp=\"urn:oasis:names:tc:SAML:2.0:protocol\" ID=\"s2daac0735bf476f4560aab81104b623bedfb0cbc0\" InResponseTo=\"84cbf2be33f6410bbe55877545a93f02\" Version=\"2.0\" IssueInstant=\"2014-06-15T01:04:52Z\" Destination=\"http://localhost:8086/api/1/rest/admin/org/530e42ccd6f45fd16d0d0717/saml/consume\"><saml:Issuer xmlns:saml=\"urn:oasis:names:tc:SAML:2.0:assertion\">http://openam.vagrant.dev/openam</saml:Issuer><samlp:Status xmlns:samlp=\"urn:oasis:names:tc:SAML:2.0:protocol\">\\\\n<samlp:StatusCode xmlns:samlp=\"urn:oasis:names:tc:SAML:2.0:protocol\"\\\\nValue=\"urn:oasis:names:tc:SAML:2.0:status:Success\">\\\\n</samlp:StatusCode>\\\\n</samlp:Status><saml:Assertion xmlns:saml=\"urn:oasis:names:tc:SAML:2.0:assertion\" ID=\"s2a0bee0da937e236167e99b209802056033816ac2\" IssueInstant=\"2014-06-15T01:04:52Z\" Version=\"2.0\">\\\\n<saml:Issuer>http://openam.vagrant.dev/openam</saml:Issuer><ds:Signature xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\">\\\\n<ds:SignedInfo>\\\\n<ds:CanonicalizationMethod Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"/>\\\\n<ds:SignatureMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#rsa-sha1\"/>\\\\n<ds:Reference URI=\"#s2a0bee0da937e236167e99b209802056033816ac2\">\\\\n<ds:Transforms>\\\\n<ds:Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"/>\\\\n<ds:Transform Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"/>\\\\n</ds:Transforms>\\\\n<ds:DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"/>\\\\n<ds:DigestValue>4uSmVzjovUdQd3px/RcnoxQBsqE=</ds:DigestValue>\\\\n</ds:Reference>\\\\n</ds:SignedInfo>\\\\n<ds:SignatureValue>\\\\nhm/grge36uA6j1OWif2bTcvVTwESjmuJa27NxepW0AiV5YlcsHDl7RAIk6k/CjsSero3bxGbm56m\\\\nYncOEi9F1Tu7dS0bfx+vhm/kKTPgwZctf4GWn4qQwP+KeoZywbNj9ShsYJ+zPKzXwN4xBSuPjMxP\\\\nNf5szzjEWpOndQO/uDs=\\\\n</ds:SignatureValue>\\\\n<ds:KeyInfo>\\\\n<ds:X509Data>\\\\n<ds:X509Certificate>\\\\nMIICQDCCAakCBEeNB0swDQYJKoZIhvcNAQEEBQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh\\\\nbGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMQwwCgYDVQQKEwNTdW4xEDAOBgNVBAsTB09w\\\\nZW5TU08xDTALBgNVBAMTBHRlc3QwHhcNMDgwMTE1MTkxOTM5WhcNMTgwMTEyMTkxOTM5WjBnMQsw\\\\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxMLU2FudGEgQ2xhcmExDDAK\\\\nBgNVBAoTA1N1bjEQMA4GA1UECxMHT3BlblNTTzENMAsGA1UEAxMEdGVzdDCBnzANBgkqhkiG9w0B\\\\nAQEFAAOBjQAwgYkCgYEArSQc/U75GB2AtKhbGS5piiLkmJzqEsp64rDxbMJ+xDrye0EN/q1U5Of+\\\\nRkDsaN/igkAvV1cuXEgTL6RlafFPcUX7QxDhZBhsYF9pbwtMzi4A4su9hnxIhURebGEmxKW9qJNY\\\\nJs0Vo5+IgjxuEWnjnnVgHTs1+mq5QYTA7E6ZyL8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB3Pw/U\\\\nQzPKTPTYi9upbFXlrAKMwtFf2OW4yvGWWvlcwcNSZJmTJ8ARvVYOMEVNbsT4OFcfu2/PeYoAdiDA\\\\ncGy/F2Zuj8XJJpuQRSE6PtQqBuDEHjjmOQJ0rV/r8mO1ZCtHRhpZ5zYRjhRC9eCbjx9VrFax0JDC\\\\n/FfwWigmrW0Y0Q==\\\\n</ds:X509Certificate>\\\\n</ds:X509Data>\\\\n</ds:KeyInfo>\\\\n</ds:Signature><saml:Subject>\\\\n<saml:NameID Format=\"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress\" NameQualifier=\"http://openam.vagrant.dev/openam\">user@example.com</saml:NameID><saml:SubjectConfirmation Method=\"urn:oasis:names:tc:SAML:2.0:cm:bearer\">\\\\n<saml:SubjectConfirmationData InResponseTo=\"84cbf2be33f6410bbe55877545a93f02\" NotOnOrAfter=\"2014-06-15T01:14:52Z\" Recipient=\"http://localhost:8086/api/1/rest/admin/org/530e42ccd6f45fd16d0d0717/saml/consume\"/></saml:SubjectConfirmation>\\\\n</saml:Subject><saml:Conditions NotBefore=\"2014-06-15T00:54:52Z\" NotOnOrAfter=\"2014-06-15T01:14:52Z\">\\\\n<saml:AudienceRestriction>\\\\n<saml:Audience>http://localhost:8086</saml:Audience>\\\\n</saml:AudienceRestriction>\\\\n</saml:Conditions>\\\\n<saml:AuthnStatement AuthnInstant=\"2014-06-15T01:00:25Z\" SessionIndex=\"s2f9b4d4b453d12b40ef3905cc959cdb40579c2301\"><saml:AuthnContext><saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef></saml:AuthnContext></saml:AuthnStatement></saml:Assertion></samlp:Response>", - "domain": "dc=openam", - "hostname": "192.168.33.1\t", - "ipaddr": "Not Available", - "loggedby": "cn=dsameuser,ou=DSAME Users,dc=openam", - "loginid": "id=openamuser,ou=user,dc=openam", - "messageid": "SAML2-37", - "modulename": "SAML2.access", - "nameid": "user@example.com" - }, - { - "log_line": 1, - "log_part": null, - "log_time": "2014-06-15 01:04:52.000", - "log_idle_msecs": 0, - "log_level": "trace", - "log_mark": 0, - "log_comment": null, - "log_tags": null, - "log_filters": null, - "contextid": "ec5708a7f199678a01", - "data": "vagrant|/", - "domain": "dc=openam", - "hostname": "127.0.1.1\t", - "ipaddr": "Not Available", - "loggedby": "cn=dsameuser,ou=DSAME Users,dc=openam", - "loginid": "cn=dsameuser,ou=DSAME Users,dc=openam", - "messageid": "COT-22", - "modulename": "COT.access", - "nameid": "Not Available" - } -] -EOF +touch -t 200711030000 ${srcdir}/logfile_for_join.0 run_cap_test ${lnav_test} -d "/tmp/lnav.err" -n \ -c ";select log_line, col_0 from logline" \ @@ -952,18 +751,11 @@ unset LNAVSECURE touch -t 201503240923 ${test_dir}/logfile_syslog_with_access_log.0 -run_test ${lnav_test} -n -d /tmp/lnav.err \ +run_cap_test ${lnav_test} -n -d /tmp/lnav.err \ -c ";select * from access_log" \ -c ':write-csv-to -' \ ${test_dir}/logfile_syslog_with_access_log.0 -check_output "access_log not found within syslog file" <<EOF -log_line,log_part,log_time,log_idle_msecs,log_level,log_mark,log_comment,log_tags,log_filters,c_ip,cs_method,cs_referer,cs_uri_query,cs_uri_stem,cs_user_agent,cs_username,cs_version,sc_bytes,sc_status,cs_host -1,<NULL>,2015-03-24 14:02:50.000,6927348000,info,0,<NULL>,<NULL>,<NULL>,127.0.0.1,GET,<NULL>,<NULL>,/includes/js/combined-javascript.js,<NULL>,-,HTTP/1.1,65508,200,<NULL> -2,<NULL>,2015-03-24 14:02:50.000,0,error,0,<NULL>,<NULL>,<NULL>,127.0.0.1,GET,<NULL>,<NULL>,/bad.foo,<NULL>,-,HTTP/1.1,65508,404,<NULL> -EOF - - run_test ${lnav_test} -n \ -c ";select log_text from generic_log" \ -c ":write-json-to -" \ @@ -1095,3 +887,7 @@ run_cap_test ${lnav_test} -n \ run_cap_test ${lnav_test} -Nn \ -c ";select *,case match_index when 2 then replicate('abc', 1000) else '' end from regexp_capture_into_json('10;50;50;50;', '(\d+);')" + +run_cap_test ${lnav_test} -n \ + -c ";.msgformats" \ + ${test_dir}/logfile_for_join.0 diff --git a/test/test_sql_anno.sh b/test/test_sql_anno.sh index e09c312..74af141 100644 --- a/test/test_sql_anno.sh +++ b/test/test_sql_anno.sh @@ -48,3 +48,9 @@ run_cap_test ./drive_sql_anno \ "SELECT * from vmw_log, regexp_capture(log_body, '--> /SessionStats/SessionPool/Session/(?<line>[abc]+)')" run_cap_test ./drive_sql_anno "SELECT * FROM foo.bar" + +run_cap_test ./drive_sql_anno "SELECT json_object('abc', 'def') ->> '$.abc'" + +run_cap_test ./drive_sql_anno "SELECT 0x77, 123, 123e4" + +run_cap_test ./drive_sql_anno "from access_log | filter cs_method == 'GET' || cs_method == 'PUT'" diff --git a/test/test_sql_fs_func.sh b/test/test_sql_fs_func.sh index e3da92b..7955c57 100644 --- a/test/test_sql_fs_func.sh +++ b/test/test_sql_fs_func.sh @@ -51,3 +51,9 @@ run_cap_test ./drive_sql "select joinpath('foo')" run_cap_test ./drive_sql "select joinpath('foo', 'bar', 'baz')" run_cap_test ./drive_sql "select joinpath('foo', 'bar', 'baz', '/root')" + +run_cap_test ${lnav_test} -Nn -c ";SELECT shell_exec('echo hi')" + +run_cap_test ${lnav_test} -Nn -c ";SELECT * FROM fstat('/non-existent')" + +run_cap_test ${lnav_test} -Nn -c ";SELECT * FROM fstat('/*.non-existent')" diff --git a/test/test_sql_indexes.sh b/test/test_sql_indexes.sh index 951c7a6..763e234 100644 --- a/test/test_sql_indexes.sh +++ b/test/test_sql_indexes.sh @@ -1,5 +1,6 @@ #! /bin/bash +export TZ=UTC export YES_COLOR=1 # XXX sqlite reports different results for the "detail" column, so we @@ -43,3 +44,7 @@ run_cap_test ${lnav_test} -n \ run_cap_test ${lnav_test} -n \ -c ";SELECT * FROM all_logs WHERE log_level > 'error'" \ ${test_dir}/logfile_access_log.* + +run_cap_test ${lnav_test} -n \ + -c ";SELECT * FROM all_logs WHERE log_line <= 20" \ + ${test_dir}/logfile_access_log.* diff --git a/test/test_sql_regexp.sh b/test/test_sql_regexp.sh index 23d0425..06d7457 100644 --- a/test/test_sql_regexp.sh +++ b/test/test_sql_regexp.sh @@ -29,4 +29,14 @@ run_cap_test ${lnav_test} -nN \ -c ";SELECT * from regexp_capture('abc=def;ghi=jkl;', '^(\w+)=([^;]+);')" run_cap_test ${lnav_test} -nN \ + -c ";SELECT * from regexp_capture('abc=def;ghi=jkl;', '^(')" + +run_cap_test ${lnav_test} -nN \ -c ";SELECT * from regexp_capture_into_json('abc=def;ghi=jkl;', '^(\w+)=([^;]+);')" + +run_cap_test ${lnav_test} -nN \ + -c ";SELECT * from regexp_capture_into_json('abc=def;ghi=jkl;', '^(')" + +run_cap_test ${lnav_test} -n \ + -c ";select regexp_replace(cs_uri_query, '.*rapidView=(\d+).*', '\1') from access_log;" \ + ${test_dir}/logfile_regexp_access_log.0 diff --git a/test/test_sql_search_table.sh b/test/test_sql_search_table.sh index bf5e71b..e1e1dbd 100644 --- a/test/test_sql_search_table.sh +++ b/test/test_sql_search_table.sh @@ -1,5 +1,6 @@ #! /bin/bash +export TZ=UTC export YES_COLOR=1 run_cap_test ${lnav_test} -n \ diff --git a/test/test_sql_str_func.sh b/test/test_sql_str_func.sh index e4cb96b..816e260 100644 --- a/test/test_sql_str_func.sh +++ b/test/test_sql_str_func.sh @@ -1,5 +1,7 @@ #! /bin/bash +export YES_COLOR=1 + run_cap_test ./drive_sql "select length(gzip(1))" run_cap_test ./drive_sql "select gunzip(gzip(1))" @@ -109,6 +111,8 @@ run_cap_test ./drive_sql "SELECT encode('foo', null)" run_cap_test ./drive_sql "SELECT encode(null, 'base64')" +run_cap_test ./drive_sql "SELECT encode('hi' || char(10), 'hex')" + run_cap_test ./drive_sql "SELECT gunzip(decode(encode(gzip('Hello, World!'), 'base64'), 'base64'))" #run_cap_test env TEST_COMMENT=invalid_url ./drive_sql <<'EOF' @@ -143,6 +147,10 @@ run_cap_test env TEST_COMMENT=parse_url6 ./drive_sql <<'EOF' SELECT parse_url('https://example.com/sea%26rch?flag&flag2&=def#frag1%20space') EOF +run_cap_test env TEST_COMMENT=parse_url7 ./drive_sql <<'EOF' +SELECT parse_url('https://example.com/sea%26rch?flag&flag2&=def&flag3=abc+def#frag1%20space') +EOF + run_cap_test env TEST_COMMENT=unparse_url3 ./drive_sql <<'EOF' SELECT unparse_url(parse_url('https://example.com/search?flag')) @@ -160,6 +168,26 @@ run_cap_test env TEST_COMMENT=unparse_url6 ./drive_sql <<'EOF' SELECT unparse_url(parse_url('https://example.com/search?flag&flag2&=def#frag1%20space')) EOF +run_cap_test env TEST_COMMENT=unparse_url7 ./drive_sql <<'EOF' +SELECT unparse_url(NULL) +EOF + +run_cap_test env TEST_COMMENT=unparse_url8 ./drive_sql <<'EOF' +SELECT unparse_url(123) +EOF + +run_cap_test env TEST_COMMENT=unparse_url9 ./drive_sql <<'EOF' +SELECT unparse_url('[1, 2, 3]') +EOF + +run_cap_test env TEST_COMMENT=unparse_url10 ./drive_sql <<'EOF' +SELECT unparse_url(json_object('unknown', 'abc')) +EOF + +run_cap_test env TEST_COMMENT=unparse_url11 ./drive_sql <<'EOF' +SELECT unparse_url('{}') +EOF + run_cap_test ${lnav_test} -n \ -c ';SELECT log_body, extract(log_body) from vmw_log' \ -c ':write-json-to -' \ @@ -168,3 +196,6 @@ run_cap_test ${lnav_test} -n \ run_cap_test ${lnav_test} -n \ -c ';SELECT anonymize(bro_id_resp_h) FROM bro_http_log' \ ${test_dir}/logfile_bro_http.log.0 + +run_cap_test ${lnav_test} -nN \ + -c ";SELECT humanize_id('foo'), humanize_id('bar')" diff --git a/test/test_sql_time_func.sh b/test/test_sql_time_func.sh index 181dd70..1e35bd9 100644 --- a/test/test_sql_time_func.sh +++ b/test/test_sql_time_func.sh @@ -69,3 +69,17 @@ run_cap_test ./drive_sql "select timediff('today', 'yesterday')" # timeslice day run_cap_test ./drive_sql "select timediff('foo', 'yesterday')" + +run_cap_test ./drive_sql "SELECT timezone('America/Los_Angeles', '2022-03-02T10:00')" + +run_cap_test ./drive_sql "SELECT timezone('America/Los_Angeles', '2022-03-02T10:20:30.400-0700')" + +run_cap_test ./drive_sql "SELECT timezone('America/Los_Angeles', '2022-04-02T10:20:30.400-0700')" + +run_cap_test ./drive_sql "SELECT timezone('America/New_York', '2022-03-02T10:20:30.400-0700')" + +run_cap_test ./drive_sql "SELECT timezone('UTC', '2022-03-02T10:20:30.400-0700')" + +run_cap_test ${lnav_test} -nN -c ";SELECT timezone('bad-zone', '2022-03-02T10:20:30.400-0700')" + +run_cap_test ${lnav_test} -nN -c ";SELECT timezone('UTC', '2022-03-02T10:20:30.400bad')" diff --git a/test/test_sql_views_vtab.sh b/test/test_sql_views_vtab.sh index 606a673..c1e4d29 100644 --- a/test/test_sql_views_vtab.sh +++ b/test/test_sql_views_vtab.sh @@ -1,5 +1,6 @@ #! /bin/bash +export TZ=UTC export YES_COLOR=1 unset XDG_CONFIG_HOME @@ -121,7 +122,7 @@ run_test ${lnav_test} -n \ check_output "delete from lnav_views table works?" <<EOF count(*) -8 +9 EOF @@ -133,7 +134,7 @@ run_test ${lnav_test} -n \ check_output "insert into lnav_views table works?" <<EOF count(*) -8 +9 EOF run_cap_test ${lnav_test} -n \ @@ -177,3 +178,17 @@ run_cap_test ${lnav_test} -n \ -c ";SELECT top_meta FROM lnav_top_view" \ -c ":write-json-to -" \ ${test_dir}/logfile_xml_msg.0 + +run_cap_test ${lnav_test} -n -I ${test_dir} \ + -c ";UPDATE lnav_views SET options = json_object('row-details', 'show') WHERE name = 'log'" \ + -c ":goto 2" \ + ${test_dir}/logfile_xml_msg.0 + +run_cap_test ${lnav_test} -n -I ${test_dir} \ + -c ";UPDATE lnav_views SET options = json_object('row-details', 'show') WHERE name = 'log'" \ + -c ":goto 9" \ + ${test_dir}/logfile_bunyan.0 + +run_cap_test ${lnav_test} -n \ + -c ";UPDATE lnav_views SET top_meta = json_object('file', 'bad') WHERE name = 'text'" \ + ${test_dir}/textfile_ansi.0 diff --git a/test/test_sql_xml_func.sh b/test/test_sql_xml_func.sh index 72f1b0c..51357eb 100644 --- a/test/test_sql_xml_func.sh +++ b/test/test_sql_xml_func.sh @@ -1,5 +1,7 @@ #! /bin/bash +export YES_COLOR=1 + run_cap_test ./drive_sql "SELECT * FROM xpath('/abc[', '<abc/>')" run_cap_test ./drive_sql "SELECT * FROM xpath('/abc', '<abc')" @@ -9,3 +11,11 @@ run_cap_test ./drive_sql "SELECT * FROM xpath('/abc/def', '<abc/>')" run_cap_test ./drive_sql "SELECT * FROM xpath('/abc/def[@a=\"b\"]', '<abc><def/><def a=\"b\">ghi</def></abc>')" run_cap_test ./drive_sql "SELECT * FROM xpath('/abc/def', '<abc><def>Hello ></def></abc>')" + +run_cap_test ${lnav_test} -n \ + -c ";SELECT * FROM xpath('/catalog', (SELECT content FROM lnav_file LIMIT 1))" \ + ${test_dir}/invalid-books.xml + +run_cap_test ${lnav_test} -n \ + -c ";SELECT * FROM xpath('/cat[alog', (SELECT content FROM lnav_file LIMIT 1))" \ + ${test_dir}/books.xml diff --git a/test/test_stubs.cc b/test/test_stubs.cc index 7d273b3..ff18224 100644 --- a/test/test_stubs.cc +++ b/test/test_stubs.cc @@ -69,6 +69,11 @@ rebuild_indexes_repeatedly() { } +void +wait_for_pipers(nonstd::optional<timeval>) +{ +} + readline_context::command_map_t lnav_commands; namespace injector { diff --git a/test/test_text_anonymizer.cc b/test/test_text_anonymizer.cc index 162111f..d163085 100644 --- a/test/test_text_anonymizer.cc +++ b/test/test_text_anonymizer.cc @@ -59,7 +59,7 @@ TEST_CASE("url") lnav::text_anonymizer ta; CHECK(ta.next(string_fragment::from_const("retrieving https://bob:abc@example.com/fooooooo22/192.168.1.33/barrrrr44?abcdef=foobar&ghijkl=123456&bazzer&ip=192.168.1.2#heading-2")) == - "aback https://meerkat:67c93775f715ab8ab01178caf86713c6@achondroplasia.example.com/abaft22/10.0.0.1/abashed44?aberrant=abhorrent&abiding=123456&abject&ip=10.0.0.2#able-2"); + "aback https://meerkat:67c93775f715ab8ab01178caf86713c6@achondroplasia.example.com/abaft22/10.0.0.1/abashed44?aberrant=abhorrent&abiding=123456&abject&ip=10.0.0.2#heading-2"); } TEST_CASE("email") @@ -127,5 +127,5 @@ TEST_CASE("xml") lnav::text_anonymizer ta; CHECK(ta.next(string_fragment::from_const("<o:gupdate xmlns:o=\"http://www.google.com/update2/request\" protocol=\"2.0\" version=\"KeystoneDaemon-1.2.0.7709\" ismachine=\"1\" requestid=\"{0DFDBCD1-5E29-4DFC-BD99-31A2397198FE}\">")) == - "<o:gupdate xmlns:o=\"http://achondroplasia.example.com/aback2/abandoned\" protocol=\"2.0\" version=\"Abashed-1.2.0.7709\" ismachine=\"1\" requestid=\"{1ca0a968-cbe9-e75b-d00b-4859609878ea}\">"); + "<o:gupdate xmlns:o=\"http://achondroplasia.example.com/aback2/abandoned\" protocol=\"2.0\" version=\"KeystoneDaemon-1.2.0.7709\" ismachine=\"1\" requestid=\"{1ca0a968-cbe9-e75b-d00b-4859609878ea}\">"); } diff --git a/test/test_text_file.sh b/test/test_text_file.sh index 166f790..57ac32e 100644 --- a/test/test_text_file.sh +++ b/test/test_text_file.sh @@ -1,9 +1,15 @@ #! /bin/bash +export TZ=UTC export YES_COLOR=1 unset XDG_CONFIG_HOME run_cap_test ${lnav_test} -n \ + -c ':goto 5' \ + -c ':filter-out Lorem|sed' \ + ${test_dir}/textfile_plain.0 + +run_cap_test ${lnav_test} -n \ ${top_srcdir}/README.md run_cap_test ${lnav_test} -n -c ':goto #screenshot' \ @@ -34,3 +40,85 @@ run_cap_test ${lnav_test} -n \ run_cap_test ${lnav_test} -n \ ${test_dir}/textfile_ansi_expanding.0 + +run_cap_test ${lnav_test} -n \ + ${test_dir}/textfile_0.md + +run_cap_test ${lnav_test} -n \ + ${test_dir}/pyfile_0.py + +run_cap_test ${lnav_test} -n \ + ${test_dir}/man_echo.txt + +run_cap_test ${lnav_test} -n \ + -c ";SELECT top_meta FROM lnav_views WHERE name = 'text'" \ + -c ':write-json-to -' \ + ${test_dir}/man_echo.txt + +run_cap_test ${lnav_test} -n \ + -c ':goto 8' \ + -c ";SELECT top_meta FROM lnav_views WHERE name = 'text'" \ + -c ':write-json-to -' \ + < ${test_dir}/man_echo.txt + +run_cap_test ${lnav_test} -n \ + -c ':goto 6' \ + -c ";SELECT top_meta FROM lnav_views WHERE name = 'text'" \ + -c ':write-json-to -' \ + < ${test_dir}/example.toml + +run_cap_test ${lnav_test} -n \ + -c ':goto 9' \ + -c ";SELECT top_meta FROM lnav_views WHERE name = 'text'" \ + -c ':write-json-to -' \ + < ${test_dir}/example.patch + +run_cap_test ${lnav_test} -n \ + < ${top_srcdir}/autogen.sh + +run_cap_test ${lnav_test} -n \ + -c ';SELECT content FROM lnav_file' \ + ${test_dir}/textfile_nonl.txt + +run_cap_test ${lnav_test} -n \ + -c ':goto 23' \ + -c ';SELECT top_meta FROM lnav_top_view' \ + -c ':write-json-to -' \ + ${test_dir}/formats/jsontest/format.json + +run_cap_test ${lnav_test} -n \ + -c ':goto 3' \ + -c ':next-section' \ + ${test_dir}/books.json + +run_cap_test ${lnav_test} -n \ + -c ':goto 3' \ + -c ':next-section' \ + < ${test_dir}/books.json + +run_cap_test ${lnav_test} -n \ + -c ':goto #/catalog/1/title' \ + ${test_dir}/books.json + +run_cap_test ${lnav_test} -n \ + -c ':goto #/catalog/1/title' \ + < ${test_dir}/books.json + +echo "Hello, World!" | run_cap_test env TEST_COMMENT="piper crumbs" ${lnav_test} -n \ + -c ';SELECT top_meta FROM lnav_top_view' \ + -c ':write-json-to -' + +echo "Hello, World!" | run_cap_test \ + env TEST_COMMENT="piper crumbs" TZ=America/Los_Angeles \ + ${lnav_test} -n \ + -c ';SELECT top_meta FROM lnav_top_view' \ + -c ':write-json-to -' + +echo "Hello, World!" | run_cap_test \ + env TEST_COMMENT="piper crumbs" TZ=America/Los_Angeles \ + ${lnav_test} -nt + +${test_dir}/naughty_files.py +run_cap_test ${lnav_test} -n naughty/file-with-hidden-text.txt + +run_cap_test ${lnav_test} -n naughty/file-with-terminal-controls.txt diff --git a/test/textfile_0.md b/test/textfile_0.md index 377e46f..7bda8e1 100644 --- a/test/textfile_0.md +++ b/test/textfile_0.md @@ -7,3 +7,54 @@ * One * Two * Three + +<img src="../docs/lnav-tui.png" /> + +<img src="../docs/lnav-architecture.png" alt="The internal architecture of lnav" /> + +<span style="color: #f00; font-weight: bold">Bold red</span> + +<span style="text-decoration: underline; background-color: darkblue">Underline</span> + +<pre> + Hello, + <span class="name">World</span>! +</pre> + +Goodbye, <span style="border-left: solid cyan; border-right: dashed green">World</span>! + +```foolang +foo bar bar +baz "xyz" +``` + +```c +/* + * This program prints "Hello, World!" + */ + +#include <stdio.h> + +int main() { + printf("Hello, World!\n"); +} +``` + +```python +def hw(name): + """ + This function prints "Hello, <name>!" + """ + + print(f"Hello, {name}!") # test comment +``` + +```xml +<?xml version="1.0" encoding="utf-8" ?> +<books> + <!-- Line comment --> + <book id="100"> + <author>Finnegan</author> + </book> +</books> +``` diff --git a/test/textfile_cjk.0 b/test/textfile_cjk.0 new file mode 100644 index 0000000..09c4899 --- /dev/null +++ b/test/textfile_cjk.0 @@ -0,0 +1,3 @@ +一二三四五六七八九十Group1一二三四五六七八九十Group2一二三四五六七八九十Group3一二三四五六七八九十Group4一二三四五六七八九十Group5 + +This is an example of a normally-behavioring text wrap example. All letters are ASCII and containing no CJK letters.
\ No newline at end of file diff --git a/test/textfile_nonl.txt b/test/textfile_nonl.txt new file mode 100644 index 0000000..f2ba8f8 --- /dev/null +++ b/test/textfile_nonl.txt @@ -0,0 +1 @@ +abc
\ No newline at end of file diff --git a/test/textfile_plain.0 b/test/textfile_plain.0 new file mode 100644 index 0000000..f7ad1ef --- /dev/null +++ b/test/textfile_plain.0 @@ -0,0 +1,9 @@ + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, +sed do eiusmod tempor incididunt ut labore et dolore magna +aliqua. Ut enim ad minim veniam, quis nostrud exercitation +ullamco laboris nisi ut aliquip ex ea commodo consequat. +Duis aute irure dolor in reprehenderit in voluptate velit +esse cillum dolore eu fugiat nulla pariatur. Excepteur +sint occaecat cupidatat non proident, sunt in culpa qui +officia deserunt mollit anim id est laborum. |