main
sh 29 lines 746 Bytes
Raw
1 #!/bin/bash
2 # Usage: ./ci_clean_log.sh ci.log
3 # This script strips timestamps and color codes from CI log files.
4
5 # Check if argument is given
6 if [ $# -lt 1 ]; then
7 echo "Usage: $0 ci.log"
8 exit 1
9 fi
10
11 INPUT_FILE="$1"
12
13 # GNU sed uses "-i [-r]" while BSD/macOS sed needs "-i '' [-E]"; detect once.
14 if sed --version >/dev/null 2>&1; then
15 sedi() { sed -i "$@"; }
16 SED_ERE=-r
17 else
18 sedi() { sed -i '' "$@"; }
19 SED_ERE=-E
20 fi
21
22 # Strip timestamps
23 sedi 's/^\[[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}T[0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}Z\] //' "$INPUT_FILE"
24
25 # Strip Buildkite inline timestamp markers (ESC _bk;t=<ms> BEL)
26 sedi 's/\x1B_bk;t=[0-9]*\x07//g' "$INPUT_FILE"
27
28 # Strip colorization
29 sedi "$SED_ERE" 's/\x1B\[[0-9;]*[mK]//g' "$INPUT_FILE"