home *** CD-ROM | disk | FTP | other *** search
/ norge.freeshell.org (192.94.73.8) / 192.94.73.8.tar / 192.94.73.8 / pub / computers / 3b2 / restorefiles < prev    next >
Text File  |  1985-07-02  |  1KB  |  54 lines

  1. #    @(#)restorefiles    1.1    /sccs/src/cmd/sadmin/shell/s.restorefiles
  2. #    restore a file from the save area to the regular file systems
  3.  
  4. flags="-qq -k$$"
  5. trap 'exit' 1 2  15
  6.  
  7. sfile=`checkre ${flags} -fe 'Enter full path name of file to be restored [q]:
  8.     ' \
  9.     '.' ' ' \
  10.     '^[^ ;    ][^ ;    ]*$' 'Blanks or tabs not permitted in the file name.' \
  11.     '^/' 'A full path name must begin with "/".' \
  12.     '[^/]$' 'No trailing "/" in the file name.' \
  13.     '/[^/]\{1,14\}$' 'No more than 14 characters in a file name.'`
  14. echo 'Enter path name of where restored file is to be placed or
  15. press RETURN if restored file is to be put to its original place:\n\t\c'
  16. read rfile
  17. if [ -z "${rfile}" ]
  18. then
  19.     rfile=${sfile}
  20. fi
  21.  
  22. trap 'exit 1' 1 2  15
  23. trap "rm -f /tmp/$$restorefiles /tmp/$$Xrestorefiles" 0
  24. (
  25.     cd /save/list
  26.     fgrep -x ${sfile} /dev/null */*  |  tail -1 >/tmp/$$restorefiles
  27. )
  28. if [ ! -s /tmp/$$restorefiles ]
  29. then
  30.     echo "File '${sfile}' not in save area."
  31.     exit
  32. fi
  33. ed - /tmp/$$restorefiles <<-!
  34.     t.
  35.     s;^;cp '/save/files/;
  36.     s;:;';
  37.     s;$; /tmp/$$Xrestorefiles;
  38.     -s/:.*//
  39.     s;\(..\).\(..\).\(..\).\(.*\);echo Found '${sfile}' saved \4 \2/\3/\1.;
  40.     w
  41.     q
  42. !
  43. sh /tmp/$$restorefiles 2>/dev/null  ||
  44. {
  45.     echo >&2 "Unable to restore '${sfile}'.  Wrong permission."
  46.     exit 1
  47. }
  48. if  mv /tmp/$$Xrestorefiles ${rfile}
  49. then
  50.     echo "'${sfile}' now restored as\\n'${rfile}'."
  51. else
  52.     echo "'${sfile}' not restored."
  53. fi
  54.