Merge commit '42a3762d0138d6dd0c0f96964be98d0b21ab6bef'
[unleashed.git] / usr / src / tools / scripts / protocmp.terse.sh
blobedaf02b9d36e793f025dc9b3cad86f7267f7a333
1 #!/bin/ksh
3 # CDDL HEADER START
5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License, Version 1.0 only
7 # (the "License"). You may not use this file except in compliance
8 # with the License.
10 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11 # or http://www.opensolaris.org/os/licensing.
12 # See the License for the specific language governing permissions
13 # and limitations under the License.
15 # When distributing Covered Code, include this CDDL HEADER in each
16 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17 # If applicable, add the following below this CDDL HEADER, with the
18 # fields enclosed by brackets "[]" replaced with your own identifying
19 # information: Portions Copyright [yyyy] [name of copyright owner]
21 # CDDL HEADER END
24 # Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved.
25 # Use is subject to license terms.
27 #ident "%Z%%M% %I% %E% SMI"
29 opts=""
30 while getopts guplmsLv arg
32 if [ "$arg" = "?" ]; then
33 exit 1
35 opts="$opts -$arg"
36 done
38 shift $(($OPTIND - 1))
40 if [ $# -le 3 ]; then
41 echo "$0: at least 3 arguments required." >&2
42 exit 1
45 old="$1"; shift
46 new="$1"; shift
47 differ="$1"; shift
49 errlog=/tmp/protocmp.err.$$
51 protocmp $opts "$@" 2>$errlog |
52 nawk -v old="$old" -v new="$new" -v differ="$differ" '
53 /^\**$/ {
54 next;
56 /^\* Entries/ {
57 category++;
58 next;
60 /^\* filea ==/ {
61 filea = $NF;
62 next;
64 /^\* fileb ==/ {
65 fileb = $NF;
66 next;
69 buf[category, ++line[category]] = $0
71 END {
72 if (line[1] > 2) {
73 printf("\n%s\n\n", old);
74 for (i = 1; i <= line[1]; i++) {
75 print buf[1, i];
78 if (line[2] > 2) {
79 printf("\n%s\n\n", new);
80 for (i = 1; i <= line[2]; i++) {
81 print buf[2, i];
84 if (line[3] > 2) {
85 printf("\n%s\n\n", differ);
86 for (i = 1; i <= line[3]; i++) {
87 print buf[3, i];
92 if [ -s $errlog ]; then
93 echo "\n====== protocmp ERRORS =====\n"
94 cat $errlog
96 rm -f $errlog