Listing 1: mcftp -- Mac ftp

#!/bin/ksh
######################################################################
# mcftp - Mac File Transfer Process                                  #
#                                                                    #
# Date      : 11-16-93                                               #
# Written by:                                                        #
# Donald C. Stone                                 _/_/_/_/_/ _/_/    #
# Information Systems Analyst                    _/_/       _/_/     #
# California Department of Transportation       _/_/   _/_/_/_/_/_/  #
# District 03 Main Office                      _/_/       _/_/       #
# 703 'B' Street                              _/_/_/_/_/ _/_/  _/    #
# Marysville, California, USA 95901                     _/_/_/_/     #
# Phone: (916)741-4031                                               #
# Email: dstone%trmx2@dot.ca.gov                   Caltrans          #
#                                                                    #
#                                                                    #
# Define the below varibles TCP and DIR.  TCP represents the IP      #
# address of the Mac and DIR represents the full pathname of a       #
# folder on the same Mac.  The folder should be accessible by        #
# GUESTs from other Mac's.  Execute this script without parameters   #
# to obtain user-level instructions and a list of options.           #
#                                                                    #
######################################################################

### Define version.  ###
PRG="Mac File Transfer Process"
VER="1.0"

### Define header,spacing, and other. ###
HDR="%%McFTP:"
HSP="        "
TYP="ascii"
COM="/tmp/mcftp.com"
TMP="/tmp/mcftp.tmp"
OPT="$1"
MF1="$2"
MF2="$3"

if [ ! "$MF2" ]; then MF2="$MF1"; fi

### TCP address and directory of remote Mac server. ###
TCP="000.000.000.000"
DIR="/Folder Name/"

echo "$HDR $PRG $VER"

### Get file to remote Mac server. ###
if [ "$OPT" = "-g" -o "$OPT" = "-gb" -o "$OPT" = "-bg" ]; then
  if [ "$OPT" = "-gb" -o "$OPT" = "-bg" ]; then
    TYP="binary"
  fi
  echo "$HSP Remote server    - $TCP"
  echo "$HSP Remote directory - $DIR"
  echo "$HSP Get $MF1 $MF2"
  echo "$HSP Attempting $TYP file transfer ...\c"
  echo "cd \042$DIR\042"                 >  $COM
  echo "$TYP"                            >> $COM
  echo "get \042$MF1\042 \042$MF2\042"   >> $COM
  ftp -vni $TCP                          <  $COM > $TMP 2> $TMP
  echo "\n$HDR FTP Information:"
  cat $TMP |
  while read LINE; do
    echo "$HSP $LINE"
  done

### Send file from remote Mac server. ###
elif [ "$OPT" = "-s" -o "$OPT" = "-sb" -o "$OPT" = "-bs" ]; then
  if [ -f "$MF1" ]; then
    if [ "$OPT" = "-sb" -o "$OPT" = "-bs" ]; then
      TYP="binary"
    fi
    echo "$HSP Remote server    - $TCP"
    echo "$HSP Remote directory - $DIR"
    echo "$HSP Send $MF1 $MF2"
    echo "$HSP Attempting $TYP file transfer ...\c"
    echo "cd \042$DIR\042"                 >  $COM
    echo "$TYP"                            >> $COM
    echo "send \042$MF1\042 \042$MF2\042"  >> $COM
    ftp -vni $TCP                          <  $COM > $TMP 2> $TMP
    echo "\n$HDR FTP Information:"
    cat $TMP |
    while read LINE; do
      echo "$HSP $LINE"
    done
  else
    echo "$HSP $MF1 does not exist!\07"
  fi

### List files on remote Mac server. ###
elif [ "$OPT" = "-l" ]; then
  echo "$HSP Remote server    - $TCP"
  echo "$HSP Remote directory - $DIR"
  echo "$HSP Compiling file list ...\c"
  echo "cd \042$DIR\042"    >  $COM
  echo "ls"                 >> $COM
  ftp -vni $TCP             <  $COM > $TMP 2> $TMP
  echo "\n$HDR FTP Information:"
  cat $TMP |
  while read LINE; do
    echo "$HSP $LINE"
  done

### HELP information on sending/getting files. ###
else
  echo "$HSP This program will transfer ascii/binary files"
  echo "$HSP between the Mac and Unix worlds. Files are"
  echo "$HSP copied to a Mac file server from where Mac"
  echo "$HSP users can access it with the standard point-"
  echo "$HSP and-click capability. The return process is"
  echo "$HSP the same, files are copied from the Mac file"
  echo "$HSP server to the current or specified directory.\n"
  echo "$HSP Examples:"
  echo "$HSP $ mcftp -g filename    (gets file from Mac)"
  echo "$HSP $ mcftp -s filename    (sends file to Mac)"
  echo "$HSP $ mcftp -l             (lists files on Mac)"
  echo "$HSP $ mcftp -h             (help information)\n"
  echo "$HSP Adding a \042b\042 to the \042-g\042 or \042-s\042 options will"
  echo "$HSP transfer files as binary (eg. -gb or -sb)."
  echo " "
  echo "$HSP NOTE:"
  echo "$HSP This program (mcftp) transfers files as"
  echo "$HSP ascii or binary types. It does not trans-"
  echo "$HSP late or convert data within the file."
fi

rm -f $COM $TMP
echo "$HDR [!]"
### The end! ###




