# @(#)restorefiles 1.1 /sccs/src/cmd/sadmin/shell/s.restorefiles
# restore a file from the save area to the regular file systems
flags="-qq -k$$"
trap 'exit' 1 2 15
sfile=`checkre ${flags} -fe 'Enter full path name of file to be restored [q]:
' \
'.' ' ' \
'^[^ ; ][^ ; ]*$' 'Blanks or tabs not permitted in the file name.' \
'^/' 'A full path name must begin with "/".' \
'[^/]$' 'No trailing "/" in the file name.' \
'/[^/]\{1,14\}$' 'No more than 14 characters in a file name.'`
echo 'Enter path name of where restored file is to be placed or
press RETURN if restored file is to be put to its original place:\n\t\c'
read rfile
if [ -z "${rfile}" ]
then
rfile=${sfile}
fi
trap 'exit 1' 1 2 15
trap "rm -f /tmp/$$restorefiles /tmp/$$Xrestorefiles" 0
(
cd /save/list
fgrep -x ${sfile} /dev/null */* | tail -1 >/tmp/$$restorefiles
)
if [ ! -s /tmp/$$restorefiles ]
then
echo "File '${sfile}' not in save area."
exit
fi
ed - /tmp/$$restorefiles <<-!
t.
s;^;cp '/save/files/;
s;:;';
s;$; /tmp/$$Xrestorefiles;
-s/:.*//
s;\(..\).\(..\).\(..\).\(.*\);echo Found '${sfile}' saved \4 \2/\3/\1.;
w
q
!
sh /tmp/$$restorefiles 2>/dev/null ||
{
echo >&2 "Unable to restore '${sfile}'. Wrong permission."
exit 1
}
if mv /tmp/$$Xrestorefiles ${rfile}
then
echo "'${sfile}' now restored as\\n'${rfile}'."
else
echo "'${sfile}' not restored."
fi