element-ios/Tools/Logs/filterStartupLogs.sh

41 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
# Filter Riot logs to extract only logs related to end-to-end encryption.
# The output is colorised according to the cryto sub module.
#
# Usage:
# ./filterStartupLogs.sh console.log
FILES=$1
if [ ! -n "$FILES" ]; then
FILES="*"
fi
grep -iE 'AppDelegate|crypto|MXSession|\[MXKAccount\]|[0-9]+ms|\[MXHTTPClient\]\ \#' $FILES \
| grep -viE 'MXJSONModels|MXOlmSessionResult|MXRealmCryptoStore|NSCocoaErrorDomain|olm_keys_not_sent_error|decryptEvent:\ Error|\[MXFileStore\ commit\]' \
| awk '{
# Errors in red (I failed to make a gsub case insensitive)
gsub(".*error.*", "\033[0;31m&\033[0m");
gsub(".*Error.*", "\033[0;31m&\033[0m");
gsub(".*ERROR.*", "\033[0;31m&\033[0m");
gsub("\\[AppDelegate\\]", "\033[0;33m&\033[0m");
gsub("\\[MXSession\\]", "\033[1;35m&\033[0m");
gsub("\\[MXCrypto\\]", "\033[0;36m&\033[0m");
gsub("\\[MXRoom\\]", "\033[0;36m&\033[0m");
gsub("\\[MXHTTPClient\\]", "\033[0;34m&\033[0m");
gsub("\\[MXKAccount\\]", "\033[0;32m&\033[0m");
gsub("\[0-9\]+ms", "\033[0;33m&\033[0m");
gsub(".*The session is ready.*", "&\n----\n\n\n\n");
print
}'