xref: /titanic_50/usr/src/tools/scripts/sccscheck.sh (revision 733ed7372ce52463509c62783a184105d3f1a618)
1 #! /bin/ksh -p
2 #
3 # CDDL HEADER START
4 #
5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License (the "License").
7 # You may not use this file except in compliance with the License.
8 #
9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 # or http://www.opensolaris.org/os/licensing.
11 # See the License for the specific language governing permissions
12 # and limitations under the License.
13 #
14 # When distributing Covered Code, include this CDDL HEADER in each
15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 # If applicable, add the following below this CDDL HEADER, with the
17 # fields enclosed by brackets "[]" replaced with your own identifying
18 # information: Portions Copyright [yyyy] [name of copyright owner]
19 #
20 # CDDL HEADER END
21 #
22 
23 #
24 # Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
25 # Use is subject to license terms.
26 #
27 # ident	"%Z%%M%	%I%	%E% SMI"
28 #
29 
30 # Invoked when make thinks a source file is out of touch with SCCS.
31 
32 #
33 # The CDPATH variable causes ksh's `cd' builtin to emit messages to stdout
34 # under certain circumstances, which can really screw things up; unset it.
35 #
36 unset CDPATH
37 
38 
39 PATH=/usr/bin:/usr/ccs/bin
40 
41 if [ $# -ne 1 ]; then
42 	echo "Usage: $0 filename" 1>&2
43 	exit 1
44 fi
45 
46 file="$1"
47 if [ ! -f "$file" ]; then
48 	(echo "\n$0: error: Source file $file has gone missing!"
49 	echo "$0: error: Check for over-enthusiastic clobber rules\n") 1>&2
50 	exit 1
51 fi
52 
53 w=warning
54 status=0
55 
56 if [ ! -z "$SCCSCHECK_FAIL" ]; then
57 	w=error
58 	status=1
59 elif [ -z "$SCCSCHECK_WARN" ]; then
60     	exit 0
61 fi
62 
63 case "$file" in
64 /*)
65 	;;
66 *)
67 	file="./$file";;
68 esac
69 
70 sfile="${file%/*}/SCCS/s.${file##*/}"
71 
72 if [ "$sfile" -nt "$file" ]; then
73 	(echo "\n$0: $w: In $(pwd)"
74 	echo "$0: $w: $file is out of date:\n"
75 	echo "$0: $w: \c"
76 	ls -E $sfile
77 	echo "$0: $w: \c"
78 	ls -E $file
79 	echo "\n$0: $w: Run bringovercheck ${CODEMGR_WS} to fix this workspace.\n") 1>&2
80 	exit $status
81 fi
82 exit 0
83