1 #!/usr/bin/sh 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, Version 1.0 only 7 # (the "License"). You may not use this file except in compliance 8 # with the License. 9 # 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. 14 # 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] 20 # 21 # CDDL HEADER END 22 # 23 # 24 # Copyright (c) 1993-1998 by Sun Microsystems, Inc. 25 # All rights reserved. 26 # 27 #ident "%Z%%M% %I% %E% SMI" 28 # 29 # This script is to be used to remove files from any CodeManager 30 # workspace. It will do this by moving the specified file, 31 # and its corresponding s-dot file, to a .del-<file>-`date` 32 # format. 33 # 34 # The only way to remove files under the CodeManager is 35 # through the rename mechanism - it is not enough to 36 # simply 'rm' the file. 37 # 38 39 USAGE="usage: sccsrm [-f] <filename> ..." 40 41 message() { 42 if [ ${F_FLAG} -eq 0 ]; then 43 echo "$*" 44 fi 45 } 46 47 # 48 # LC_ALL=C is set so that the this script will work no matter 49 # which localization you have installed on your machine. Some 50 # localizations can cause the output of 'date' and other commands 51 # to vary. 52 # 53 LC_ALL="C"; export LC_ALL 54 55 date=`/usr/bin/date +%h-%d-%y` 56 F_FLAG=0 57 58 59 # 60 # Parse options... 61 # 62 set -- `getopt f $*` 63 if [ $? != 0 ]; then 64 echo $USAGE 65 exit 2 66 fi 67 68 69 for i in $* 70 do 71 case $i in 72 -f) F_FLAG=1; shift;; 73 --) shift; break;; 74 esac 75 done 76 77 if [ $# -eq 0 ]; then 78 message $USAGE 79 exit 1 80 fi 81 82 # 83 # Process s-dot files. 84 # 85 for file in $* 86 do 87 new_file="${file}-${date}" 88 # 89 # if there is a deleted file of the same name we then append the pid 90 # to the name. 91 if [ -f SCCS/s..del-${new_file} -o -d .del-${new_file} ]; then 92 new_file="${new_file}.$$" 93 fi 94 if [ -f SCCS/s.$file ]; then 95 if [ -f SCCS/p.${file} ]; then 96 if [ ${F_FLAG} -eq 0 ]; then 97 echo "warning: ${file} is checked out for editing, all edits will be lost - continue (y/n)" 98 read ans 99 while [ `expr $ans : "^[YyNn]"` -eq 0 ] 100 do 101 echo "warning: ${file} is checked out for editing, all edits will be lost - continue (y/n)" 102 read ans 103 done 104 else 105 ans="y" 106 fi 107 if [ `expr $ans : "^[Yy]"` -eq 1 ]; then 108 rm -f SCCS/p.${file} 109 rm -f ${file} 110 else 111 continue 112 fi 113 fi 114 if [ -f ${file} ]; then 115 mv ${file} .del-${new_file} 116 fi 117 mv SCCS/s.${file} SCCS/s..del-${new_file} 118 elif [ -d ${file} -a ${file} != "SCCS" ]; then 119 mv ${file} .del-${new_file} 120 else 121 message "${file}: not an SCCS file" 122 fi 123 done 124 125 126 127