[FUG-BR] Script para atualizar o ports (Script inline)

Renato Botelho rbgarga em gmail.com
Ter Jan 25 16:23:43 BRST 2005


Me esqueci que a lista não aceita anexos, então aqui vai o script:

---------------------------------------------------------------------------------------------
#!/bin/sh

##########################################################################
# check_updates.sh                                                       #
#                                                                        #
# Funcoes:                                                               #
#                                                                        #
# - Verifica quais ports necessitam de atualizacao, enviando um email    #
#   para o responsavel                                                   #
# - Usando o parametro '--cvsup' o script ira atualizar a arvore do      #
#   ports do FreeBSD (4.x ou 5.x) e atualiza o INDEX de modo incremental #
#   usando o software FreeBSD::Portindex                                 #
#                                                                        #
# Versao:  1.0                                                           #
#                                                                        #
# Autor:   Renato Botelho (rbgarga em gmail.com)                            #
#                                                                        #
# Licenca: Este script pode ser livremente alterado ou redistribuido     #
#          sem previa autorizacao do autor, desde que este cabecalho     #
#          seja mantido.                                                 #
##########################################################################

# Checa se os programas necessarios estao instalados
if [ ! -x /usr/local/bin/cvsup ]; then
  echo "cvsup NAO esta instalado,"
  echo "instale-o usando 'pkg_add -r cvsup-without-gui' antes de continuar"
  exit 1
fi

if [ ! -x /usr/local/bin/cache-update ]; then
  echo "cache-update NAO esta instalado,"
  echo "instale-o usando o ports 'sysutils/p5-FreeBSD-Portindex'"
  echo "Leia atentamente a documentacao, rode o cache-init antes de continuar"
  exit 1
fi

if [ ! -x /usr/local/sbin/portsdb ]; then
  echo "portsdb NAO esta instalado,"
  echo "instale-o usando o ports 'sysutils/portupgrade'"
  exit 1
fi

# Mail que ira receber os avisos de atualizacao
MAIL_TO=updates@`/bin/hostname`

# Diretorio temporario
TMPDIR=/var/tmp/ports

# arquivo de configuracao do cvsup para atualizar a arvore do ports
PORTS_SUPFILE=/usr/local/etc/cvsup/ports-supfile

# Verifica a versão do Free para calcular o nome do arquivo INDEX do ports
VERSAO=`/usr/bin/uname -v | /usr/bin/sed 's/^[^ ]* \([0-9]\).*$/\1/'`

if [ "$VERSAO" = "5" ]; then
  INDEXFILE=INDEX-5
else
  INDEXFILE=INDEX
fi

# Atualiza a arvore e gera o INDEX atualizado
if [ "$1" = "--cvsup" ]; then
  [ ! -d $TMPDIR ] && mkdir $TMPDIR

  if [ ! -e $PORTS_SUPFILE ]; then
    echo "Arquivo $PORTS_SUPFILE nao existe, impossivel executar o cvsup"
    exit 1
  fi

  if /usr/local/bin/cvsup -g -L2 -r 3 $PORTS_SUPFILE
>$TMPDIR/cvsup.out 2>&1; then
    /usr/local/bin/cache-update -i $TMPDIR/cvsup.out && \
    /usr/local/bin/portindex -o $TMPDIR/$INDEXFILE && \
    cp -vf $TMPDIR/$INDEXFILE /usr/ports/$INDEXFILE && \
    /usr/local/sbin/portsdb -u
  fi
fi

# Verifica os pacotes que necessitam de atualizacao
UPDATES=`/usr/sbin/pkg_version -v -L '='`

# Envia um mail para avisar quais os pacotes necessitam de
atualizacao, se existir algum
if [ "$UPDATES" != "" ]; then
   echo "$UPDATES" | /usr/bin/mail -s "[PORTS] atualizacoes
`/bin/hostname`" $MAIL_TO
fi

_______________________________________________________________
Para enviar um novo email para a lista: freebsd em fug.com.br
Sair da Lista: http://mail.fug.com.br/mailman/listinfo/freebsd_fug.com.br
Historico: http://www4.fugspbr.org/lista/html/FUG-BR/




Mais detalhes sobre a lista de discussão freebsd