#!/bin/sh

if [ "$initlname" = "" ]; then
  if [ "$lname" = "" ]; then
    initlname=0
  else
    initlname=1
  fi
fi

if [ "$lname" = "" ]; then
  if [ "$1" = "" ]; then
    echo
    echo "Would you like to sign up:"
    echo "1. Your personal Athena account"
    echo "2. A locker that you control (a club, a course, etc)"
    echo "If you do not understand this question, you should answer '1'."
    printf "Please enter either '1' or '2' (without quotes): "
    read whofor
    if [ "$whofor" = 1 ]; then
        lname=$USER
        lroot=$HOME
    elif [ "$whofor" = 2 ]; then
        echo
        echo "OK.  A locker of your choice that you control will be signed up."
        echo "Please enter the name of the selected locker below."
        echo "(For the locker /mit/sipb, you would enter sipb)."
        printf "Locker name: "
        read lname
        lroot="/mit/$lname"
    else
        echo
        echo "ERROR:"
        echo "You must select either '1' or '2'."
        exit 1
    fi
  else
    lname=$1
  fi
fi

attach "$lname" 2>/dev/null

if [ "$lname" != "$USER" ]; then
  temp=$lname
  lname=$USER
  . "/mit/scripts/bin$scriptsdev/signup-minimal"
  lname=$temp

  ans=`athrun scripts scripts-ssh /usr/local/bin/admof "$lname" "$USER@ATHENA.MIT.EDU"` 
  if [ "$ans" != "yes" ]; then
    echo
    echo "ERROR:"
    echo "It appears as though you are not an administrator of the locker <$lname>."
    echo "Try running \"fs sa /mit/$lname $USER all\" and starting over."
    echo "Contact scripts@mit.edu if you are unable to solve the problem."
    exit 0
  fi
fi

attach "$lname" 2>/dev/null

if [ ! -d "/mit/$lname" ]; then
  echo
  echo "ERROR:"
  echo "Cannot find locker <$lname>."
  exit 0
fi

ans=`fs la "/mit/$lname" | grep '^  system:a[nyuth]*user .*l'`
if [ -z "$ans" ]; then
  echo
  echo "ERROR:"
  echo "It appears as though the locker <$lname> is not listable by system:anyuser."
  echo "You might want to run \"fs sa /mit/$lname system:anyuser l\""
  echo "(that's a lowercase L rather than a one) and then try again."
  echo "Contact scripts@mit.edu if you are unable to solve the problem."
  exit 0
fi

mkdir "/mit/$lname/.scripts-signup" 2>/dev/null

if [ ! -d "/mit/$lname/.scripts-signup" ]; then
  echo
  echo "ERROR:"
  echo "It appears as though you do not have write access to the locker <$lname>."
  echo "Contact scripts@mit.edu if you are unable to solve the problem."
  exit 0
fi

if type wget >/dev/null 2>/dev/null; then
  WGET=wget
else
  WGET="athrun gnu wget"
fi

$WGET -q -O/dev/null "http://scripts.mit.edu/~signup/$lname"
rmdir "/mit/$lname/.scripts-signup"

success() {
  if [ "$initlname" -eq 0 ]; then
    echo
    echo "== SUCCESS =="
    echo "$lname is now signed up for $1."
    echo "$2"
    echo
  fi
}
