Busca de arquivos nas ports FreeBSD

Publicado por Perfil removido (última atualização em 30/12/2009)

[ Hits: 6.378 ]

Download dgfbuscaports.sh




Faz uma busca do arquivo desejado, trazendo uma hierarquia de resultados "Recomendável", "Semelhantes" e "Outros resultados"

O diretório ports padrão do FreeBSD fica em "/usr/ports", caso seu sistema adote outros padrões de diretórios, altere a variável "PORTS" encontrada no início do script.

Requerimentos:
- permissão de escrita no diretório "~/", caso não tenha altere a variável "LOG" no início do script

  



Esconder código-fonte

#!/usr/local/bin/bash
# -----------------------------------------------------------------------
# - Feito por: Douglas Giorgio Fim               -
# - E-mail: dgf_skt@hotmail.com                  -
# - MSN: dgf_skt@hotmail.com                  -
# - Programa: dgfbuscaports                     -
# - Versao: 1.0 Stable                       -
# -                           -
# - Este script pode ser alterado e distribuido por qualquer pessoa,   -
# - desde que este quadro se mantenha inalterado!         -
# -                            -
# - Obs.: Este script foi desenvolvido para buscar os programas nas ports com hierarquia   -
# -----------------------------------------------------------------------

PORTS=/usr/ports # altere essas variavel para o diretorio ports
LOG=~/tmp/DGF
rm -rf "$LOG"  # remove os logs anteriores
mkdir -p "$LOG"
touch "$LOG/busca"
touch "$LOG/semelhante"

echo -n 'Escolha um aplicativo: '; read aplicativo # declara valor a variavel

find /usr/ports -type d -iname "*$aplicativo*" >> "$LOG/busca" # procura o aplicarivo e redireciona ao log

DIR=$PORTS/*/$aplicativo
DIR2=$PORTS/*/$aplicativo*

clear
echo "Recomendavel:"
for nome in `cat $LOG/busca`; do
  if [ $DIR = $nome ]; then
    recomendavel=$nome
    grep -v "^$recomendavel$" "$LOG/busca" > "$LOG/busca.new"
    mv $LOG/busca.new $LOG/busca
    echo "$recomendavel"
  fi
done
echo

echo "Semelhantes:"

echo "$DIR2" > $LOG/semelhante

for num in `wc -w $LOG/semelhante | tr -d ^[a-z][A-Z]" ".\/\\\,\;\_\-` ; do
  for i in `cat $LOG/semelhante | cut -f$num -d" "`; do
    for nome2 in `cat $LOG/busca`; do
      if [ $i = "$nome2" ]; then
        semelhantes=$nome2
        grep -v "^$semelhantes$" "$LOG/busca" > "$LOG/busca.new"
        mv $LOG/busca.new $LOG/busca
        echo $semelhantes
      fi
    done
  done
done
echo

echo "Outros resultados:"
nome3=`cat $LOG/busca`

echo "$nome3"

rm -rf "$LOG"  # remove os logs

Scripts recomendados

Adicionando "automagicamente" usuários

Ver último twitter pelo terminal ou na barra de notificação

Script para criação de pacote rpm.

mountcp1.sh

Failover WAN entre dois links


  

Comentários
[1] Comentário enviado por irado em 31/12/2009 - 08:40h

bem.. sem querer desmerecer o trabalho do colega, o FreeBSD sempre contou com instrumentos de pesquisa no ports, via o próprio make:

# cd /usr/ports
# make search name=lsof
Port: lsof-4.56.4
Path: /usr/ports/sysutils/lsof
Info: Lists information about open files (similar to fstat(1))
Maint: obrien@FreeBSD.org
Index: sysutils
B-deps:
R-deps:

existem outros modos de pesquisa "embutidos" no makefile do ports, um make help vai mostrar como criar arquivos html com o resultado das pesquisas, pesquisa por palavra chave, pesquisas parciais, etc.

o handbook:
http://www.freebsd.org/doc/en/books/handbook/ports-using.html

e algumas outras informações aqui, sobre buscas parciais, por palavra-chave, etc:

http://www.freebsdmadeeasy.com/tutorials/freebsd/using-the-freebsd-ports-collection.php


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts