Você não está autenticado.

Anúncio

Arch Linux Brasil está precisando de sua colaboração para realizar o pagamento do domínio e do host, para colaborar, realizar doações via paypal.

Para mais informações: contato at archlinux-br.org.

#1 12/05/2012 01:23:16

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.962

[bash] logpac 0.2

Um script para ajudar a visualizar o log do pacman.

logpac (saída padrão)
ajuda: logpac [opções]
  -h  | --help       : Mostra essa mensagem de ajuda e sai
  -v  | --version    : Mostra a versão do programa e sai
  -i  | --installed  : Mostra últimos instalados
  -r  | --removed    : Mostra últimos removidos
  -u  | --updated    : Mostra últimos atualizados
  -s  | --sort       : Ordenar por ordem descendente
  -n  | --number     : Quantidade a ser mostrada

Exemplo:
logpac (saída padrão)
logpac -i -r -u -s -n15
logpac -u -n 15
logpac -r -n15 -s


Salve como lopgpac

#!/bin/bash
# Analisa o log do pacman
# swatquest

# Declarações Globais
declare -rx SCRIPT=${0##*/}
declare APPVERSION="0.2"
declare -r PACLOG="/var/log/pacman.log"
declare NLIST="10";
declare SORT="0";

# Declarações padrões
declare LISTINST="1";
declare LISTREM="1";
declare LISTUP="1";


# Declarações padrões se usar opções
if [ $# -gt 0 ]; then
declare LISTINST="0";
declare LISTREM="0";
declare LISTUP="0";
fi 


# Verifica se o log do pacman existe
if [ ! -f $PACLOG ]; then
    echo "O arquivo "$PACLOG" não existe"
    exit 0
fi

ajuda() {
cat << USOAJUDA

$SCRIPT (saída padrão)
ajuda: $SCRIPT [opções]
  -h  | --help       : Mostra essa mensagem de ajuda e sai
  -v  | --version    : Mostra a versão do programa e sai
  -i  | --installed  : Mostra últimos instalados
  -r  | --removed    : Mostra últimos removidos
  -u  | --updated    : Mostra últimos atualizados
  -s  | --sort       : Ordenar por ordem descendente
  -n  | --number     : Quantidade a ser mostrada

Exemplo:
$SCRIPT -i -r -u -n15
$SCRIPT -r -n 15 -s 
USOAJUDA
}

while [ $# -gt 0 ];
do
  case "$1" in
    -i | --installed ) LISTINST="1";;
    -r | --removed )   LISTREM="1";;
    -u | --updated ) LISTUP="1";;
    -s | --sort ) SORT="1";;
    -n | --number ) shift; NLIST=$1;;
    -n* | --number* ) NLIST=$(echo "$1" | sed 's/-n//');;
    -h | --help )  ajuda; exit 0;;
    -v | --version )  echo versão: $APPVERSION; exit 0;;
    * ) ajuda; echo "parâmetro desconhecido: $1"; break;;
   esac
 shift
done

if [ -n "$NLIST" ]; then
 if [[ "$NLIST" == *[Aa-Zz]* ]]; then
     echo "O argumento '"$NLIST"' não é válido para -n" >&2
     ajuda
     exit 1
 fi
fi

if [ -z "$NLIST" ]; then
 echo "Falta agumento para -n"
 ajuda
 exit 1
fi

if [[ $LISTINST == 1 ]]; then
LIST=$(grep installed $PACLOG  | tail -n $NLIST | sed -r 's/([a-z]+).* /\x1b[1;32m&\x1b[0m/g')
	echo -e "[\e[1m Últimos $NLIST instalados \e[0m]"
	[[ $SORT == 1 ]] && echo "$LIST" | sort -r || echo "$LIST"
fi

if [[ $LISTREM == 1 ]]; then
LIST=$(grep removed $PACLOG | tail -n $NLIST | sed -r 's/([a-z]+).* /\x1b[1;31m&\x1b[0m/g')
	echo -e "[\e[1m Últimos $NLIST removidos \e[0m]"
	[[ $SORT == 1 ]] && echo "$LIST" | sort -r || echo "$LIST"
fi

if [[ $LISTUP == 1 ]]; then
LIST=$(grep upgraded $PACLOG | tail -n $NLIST | sed -r 's/([a-z]+).*([a-z]+)[^(]/\x1b[1;33m&\x1b[0m/g')
	echo -e "[\e[1m Últimas $NLIST atualizações \e[0m]"
	[[ $SORT == 1 ]] && echo "$LIST" | sort -r || echo "$LIST"
fi

exit 0

$ logpac -r -i -u -n3
[ Últimos 3 instalados ]
[2012-05-06 01:52] installed java-rhino (1.7R3-3)
[2012-05-06 01:52] installed java-jline (1.0-1)
[2012-05-08 16:50] warning: /etc/slim.conf installed as /etc/slim.conf.pacnew
[ Últimos 3 removidos ]
[2012-05-04 23:47] removed procps (3.2.8-5)
[2012-05-05 00:21] removed gmlive (0.22.3-1)
[2012-05-05 00:21] removed intltool (0.50.2-1)
[ Últimas 3 atualizações ]
[2012-05-10 18:48] upgraded linux-ck (3.3.5-1 -> 3.3.5-1)
[2012-05-10 18:48] upgraded linux-ck-headers (3.3.5-1 -> 3.3.5-1)
[2012-05-10 18:54] upgraded nvidia-ck (295.49-1 -> 295.49-1)

Última edição por swatquest (03/01/2013 00:40:20)

Offline

#2 14/05/2012 04:16:30

Mrk3004
Membro
De: São Paulo
Registrado: 25/04/2012
Mensagens: 48
Website

Re: [bash] logpac 0.2

 -n* | --number* ) NLIST=$(echo "$1" | sed 's/-n//');; 

Não esqueceu de nada? rsrs

Abraço!


É um processo lento modificar princípios, e você nunca saberá que eles mudaram até que algo que parecia ser certo não pareça mais.

Offline

#3 23/05/2012 00:47:05

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.962

Re: [bash] logpac 0.2

-n* | --number* ) NLIST=$(echo "$1" | sed 's/-n//');;

você fala " sed 's/-n?//' "

Adicionei isto só para habilitar -n[numero] , apenas substitue o "-n"

assim pode usar -n[numero]  ou -n [numero]

Offline

#4 03/01/2013 00:42:41

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.962

Re: [bash] logpac 0.2

versão 0.2

- fixado as cores nos nomes

Offline

Rodapé do site