Busca de arquivos nas ports FreeBSD

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

[ Hits: 6.247 ]

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

Album de fotografias

video2gif: converta videoclipes em GIFs animados

NFS server/client com iptables

Como Converter várias fotos JPG em arquivos PDFs, compactando e girando em 90º

Limpar arquivos core


  

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