]> git.cworth.org Git - apitrace/blob - scripts/tracediff.sh
cli: Add a new "apitrace diff" command.
[apitrace] / scripts / tracediff.sh
1 #!/bin/bash
2 ##########################################################################
3 #
4 # Copyright 2011 Jose Fonseca
5 # All Rights Reserved.
6 #
7 # Permission is hereby granted, free of charge, to any person obtaining a copy
8 # of this software and associated documentation files (the "Software"), to deal
9 # in the Software without restriction, including without limitation the rights
10 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 # copies of the Software, and to permit persons to whom the Software is
12 # furnished to do so, subject to the following conditions:
13 #
14 # The above copyright notice and this permission notice shall be included in
15 # all copies or substantial portions of the Software.
16 #
17 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 # THE SOFTWARE.
24 #
25 ##########################################################################/
26
27 set -e
28
29 APITRACE=${APITRACE:-apitrace}
30
31 $APITRACE dump
32
33 stripdump () {
34     $APITRACE dump --color=never "$1" \
35     | sed \
36         -e 's/\r$//g' \
37         -e 's/^[0-9]\+ //' \
38         -e 's/hdc = \w\+/hdc/g' \
39     | head -1000 \
40     > "$2"
41 }
42
43 FIFODIR=`mktemp -d`
44 FIFO1="$FIFODIR/1"
45 FIFO2="$FIFODIR/2"
46
47 mkfifo "$FIFO1"
48 mkfifo "$FIFO2"
49
50 stripdump "$1" "$FIFO1" &
51 stripdump "$2" "$FIFO2" &
52
53 sdiff \
54     --width=`tput cols` \
55     --speed-large-files \
56     "$FIFO1" "$FIFO2" \
57 | less -R
58
59 rm -rf "$FIFODIR"