#!/bin/sh
#
# instala-ppp - script de instalao de PPP + PAP para usurios dialup
# Autor: Augusto C. Campos <brain@matrix.com.br>
#

echo "--------------------------------------------------------------"
echo "instala-ppp 1.1 - (c) Augusto C. Campos <brain@matrix.com.br>"
echo "--------------------------------------------------------------"

diret="/etc"

# verifica se tem o nmero correto de parmetros
#
if [ $# -ne 3 ]; then
  echo 
  echo "Sintaxe: $0 telefone login senha"
  echo "Exemplo: $0 2171056 juquinha 1rt3p4"
  echo 
  exit 5
fi

# verifica se tem direito de escrita
#
if [ ! -w $diret ]; then
  echo
  echo "Erro: voc no tem direito de escrita no $diret"
  echo "Tente rodar o $0 como o usurio root"
  echo
  exit 5
fi

if [ ! -w /usr/bin ]; then
  echo
  echo "Erro: voc no tem direito de escrita no /usr/bin"
  echo "Tente rodar o $0 como o usurio root"
  echo
#  exit 5
fi

# cria o diretorio do script - faz backup se nao existir
#
echo Criando diretorio $diret/ppp
if [ -e $diret/ppp ]; then
  if [ -e $diret/ppp.old ]; then
    rm -r $diret/ppp.old
  fi
  echo Fazendo backup de $diret/ppp
  mv $diret/ppp $diret/ppp.old
fi  
mkdir $diret/ppp

#/////////////////////////////////////////////////////////
# cria o LEIAME
#/////////////////////////////////////////////////////////
echo Criando o LEIAME
cat << foobar > $diret/ppp/options
Estes so os arquivos de configurao gerados com o instalappp
Copyright (c) 1999 Augusto C. Campos (brain@matrix.com.br)
http://www.linux.trix.net
foobar

#/////////////////////////////////////////////////////////
# cria o ip-up
#/////////////////////////////////////////////////////////
echo Criando o ip-up
cat << foobar > $diret/ppp/ip-up
#!/bin/bash
# (c) Augusto Campos <brain@matrix.com.br> 1999
# Nao mude nada aqui. Se quiser executar algum comando sempre que
# o pppd conectar, crie um arquivo /etc/ppp/ip-up.local e torne-o executavel
LOGDEVICE=\$6
REALDEVICE=\$1
export PATH=/sbin:/usr/sbin:/bin:/usr/bin
echo "\$REALDEVICE" > /var/run/ppp-\$LOGDEVICE.dev
[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local \$*
exit 0
foobar

#/////////////////////////////////////////////////////////
# cria o ip-down
#/////////////////////////////////////////////////////////
echo Criando o ip-down
cat << foobar > $diret/ppp/ip-down
#!/bin/bash
# (c) Augusto Campos <brain@matrix.com.br> 1999
# Nao mude nada aqui. Se quiser executar algum comando sempre que
# o pppd conectar, crie um arquivo /etc/ppp/ip-up.local e torne-o executavel
LOGDEVICE=\$6
REALDEVICE=\$1
[ -x /etc/ppp/ip-down.local ] && /etc/ppp/ip-down.local \$*
exit 0
foobar

#/////////////////////////////////////////////////////////
# cria o options
#/////////////////////////////////////////////////////////
echo Criando o options
cat << foobar > $diret/ppp/options
/dev/modem
115200
crtscts
lock
name "$2"
noipdefault
remotename generic
defaultroute
debug
foobar


#/////////////////////////////////////////////////////////
# cria o pap-secrets
#/////////////////////////////////////////////////////////
echo Criando o pap-secrets
echo "$2 * $3" > $diret/ppp/pap-secrets

#/////////////////////////////////////////////////////////
# cria o chat.conf
#/////////////////////////////////////////////////////////
echo Criando o generic.chat
cat << foobar > $diret/ppp/generic.chat
TIMEOUT 60
REPORT CONNECT
ABORT "NO CARRIER"
ABORT BUSY
ABORT "NO DIALTONE"
ABORT ERROR
"" +++ATZ
OK ATDT$1
CONNECT ""
foobar

#/////////////////////////////////////////////////////////
# cria o /usr/bin/ppp-up
#/////////////////////////////////////////////////////////
echo Criando o ppp-up
cat << foobar > /usr/bin/ppp-up
#!/bin/sh
/usr/sbin/pppd connect "/usr/sbin/chat -f $diret/ppp/generic.chat" \
	file $diret/ppp/options
foobar


#/////////////////////////////////////////////////////////
# cria o /usr/bin/ppp-down
#/////////////////////////////////////////////////////////
echo Criando o ppp-down
cat << foobar > /usr/bin/ppp-down
#!/bin/sh
if [ "\$1" = "" ]; then
   DEVICE=ppp0
else
   DEVICE=\$1
fi
if [ -r /var/run/\$DEVICE.pid ]; then
   kill -INT \`cat /var/run/\$DEVICE.pid\`   
   if [ ! "\$?" = "0" ]; then
      rm -f /var/run/\$DEVICE.pid
      echo "ERROR: Removed stale pid file"
      exit 1
   fi
   echo "PPP link to \$DEVICE terminated."
   exit 0
fi
# The ppp process is not running for ppp0
echo "ERROR: PPP link is not active on \$DEVICE"
exit 1
foobar

#//////////////////////////////////////////////////////////////
# mudando os atributos
#/////////////////////////////////////////////////////////////
echo Mudando atributos
chmod 600 $diret/ppp/*secrets
chmod 755 $diret/ppp/ip-* /usr/bin/ppp-*



#//////////////////////////////////////////////////////////////
# Fim da execuo
#//////////////////////////////////////////////////////////////

echo "Fim da execuo. Se no apareceram mensagens de erro, voc j"
echo "deve poder ativar seu link PPP digitando (como root) o comando"
echo "   ppp-up"
echo "Para desativar o link, digite (como root)"
echo "   ppp-down"
echo "Os arquivos de configurao esto em $diret/ppp"
echo "Se a sua senha no provedor mudar, basta rodar novamente este script"
echo "Para maiores informaes visite www.linux.trix.net"
