Home | History | Annotate | Download | only in scripts
      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 #
     31 # The CDPATH variable causes ksh's `cd' builtin to emit messages to stdout
     32 # under certain circumstances, which can really screw things up; unset it.
     33 #
     34 unset CDPATH
     35 
     36 PATH=/usr/bin:/usr/ccs/bin
     37 
     38 # yield an exit status and no other output
     39 # /dev/null redirection guards against noise in the event that neither $1
     40 # nor $2 exist
     41 isnewer() {
     42 	[ "$1" -nt "$2" ] && return 0
     43 	[ "$1" -ot "$2" ] && return 1
     44 	left=$(/bin/ls -E "$1" 2>/dev/null | awk '{print $7}')
     45 	left=${left##*.}
     46 	right=$(/bin/ls -E "$2" 2>/dev/null | awk '{print $7}')
     47 	right=${right##*.}
     48 	[ -z "$left" -o -z "$right" -o "$left" -gt "$right" ] && return 0
     49 	return 1
     50 }
     51 
     52 if [ $# -ne 1 ]; then
     53 	echo "Usage: $0 workspace" 1>&2
     54 	exit 1
     55 fi
     56 
     57 CODEMGR_WS="$1"
     58 
     59 if [ ! -d "${CODEMGR_WS}" ]; then
     60     	echo "${CODEMGR_WS}: not a directory" 1>&2
     61 	echo "Usage: $0 workspace" 1>&2
     62 	exit 1
     63 fi
     64 
     65 if [ ! -f "${CODEMGR_WS}"/Codemgr_wsdata/nametable ]; then
     66     	echo "${CODEMGR_WS}: not a workspace (no Codemgr_wsdata/nametable)" 1>&2
     67 	echo "Usage: $0 workspace" 1>&2
     68 	exit 1
     69 fi
     70 
     71 cd ${CODEMGR_WS} &&
     72 tail +2 Codemgr_wsdata/nametable | 
     73 while read file etc; do
     74     	file="./$file"
     75 	sfile="${file%/*}/SCCS/s.${file##*/}"
     76 	if isnewer "$sfile" "$file"; then
     77 	    	ls -E "$sfile"
     78 		ls -E "$file" 
     79 		echo "reget $file:"
     80 		# -G needed so file doesn't land in working dir.
     81 		sccs get -G "$file" "$file"
     82 	fi
     83 done
     84