home *** CD-ROM | disk | FTP | other *** search
/ Unix System Administration Handbook 1997 October / usah_oct97.iso / news / cnews.tar / conf / cpto < prev    next >
Text File  |  1994-09-15  |  866b  |  52 lines

  1. #! /bin/sh
  2. # copy files to a directory
  3. # -n means copy only new files (don't overwrite old ones)
  4. # -e means strip off trailing ".eg" on names
  5.  
  6. newonly=n
  7. strip=n
  8. for dummy
  9. do
  10.     case "$1" in
  11.     -n)    newonly=y    ;;
  12.     -e)    strip=y        ;;
  13.     --)    shift ; break    ;;
  14.     -*)    echo "$0: unknown option \`$1'" >&2 ; exit 2    ;;
  15.     *)    break        ;;
  16.     esac
  17.     shift
  18. done
  19.  
  20. case "$#" in
  21. 0|1)    echo "Usage: $0 dir file ..." >&2 ; exit 2    ;;
  22. esac
  23.  
  24. dest="$1"
  25. shift
  26. if test ! -d "$dest"
  27. then
  28.     echo "$0: directory \`$dest' does not exist" >&2
  29.     exit 1
  30. fi
  31.  
  32. for f
  33. do
  34.     case "$f" in
  35.     */*)    echo "$0: cannot handle / in \`$f'" >&2 ; exit 1    ;;
  36.     esac
  37.     case "$strip:$f" in
  38.     y:*.eg)    d="$dest/`expr $f : '\(.*\)\.eg'`"    ;;
  39.     *)    d="$dest/$f"                ;;
  40.     esac
  41.     if test " $newonly" = " n"
  42.     then
  43.         cp "$f" "$d" || exit 1
  44.     elif test ! -f "$d"
  45.     then
  46.         cp "$f" "$d" || exit 1
  47.     else
  48.         echo "\`$d' already exists -- not copied"
  49.     fi
  50. done
  51. exit 0
  52.