Enviado em 03/03/2013 - 19:06h
Olá. Traduzí para Português este Script de desmascarar Pacotes Gentoo:
#!/bin/bash
#
# SCRIPT PARA DESMASCARAR PACOTES DE PORTAGE A SEREM INSTALADOS EM SABAYON OU GENTOO.
#
# Código de Autoria de: Alex, DeathSquad 3000, Suécia, 2008.
# https://ds3k.wordpress.com/
# Publicado diretamente em Domínio Público,
# portanto livre para uso e modificações.
# Tradução para Português do Brasil e modificação por
# Alberto Federman Neto, albfneto <albfneto@fcfrp.usp,br>, Brasil, 2013.
# http://va.mu/AP1
#
# Este Script desmascara pacotes e suas dependências.
# Ele não funcionará com pacotes hardmasked ou com EAPI ou SLOT diferentes,
# Somente funcionará em Portage versão 2.2_rc12 ou mais recente.
# e somente para as máscaras padrão por Palavra-Chave,
# como as dos pacotes estáveis ou instáveis,
# Ex. x86 ou ~amd64.
# Antes de usar este Script, lembre-se de sincronizar e atualizar
# o Portage e instalar as dependências necessárias:
# $ sudo emerge --sync
# $ sudo emerge av --oneshot portage PortageXS
# Código:
#
# Esta função checa se um pacote é mascarado por palavra chave ou não:
#
check_if_keyworded() {
if [[ $(emerge --pretend --quiet $package_to_emerge | grep 'masked by:' | cut -d ' ' -f 5 | head -n 1) == "missing" ]]; then
return 1
else
return 0
fi
}
#
# Esta função o desmascara:
#
do_unmasking() {
echo 'Aguarde um momento, desmascarando o (os) pacote (os)...'
while ! emerge --pretend --quiet $package_to_emerge &> /dev/null; do
spin
package_to_unmask=$(emerge --pretend --quiet $package_to_emerge | grep 'masked by: ~' | cut -d ' ' -f 2 | head -n 1)
echo "=$package_to_unmask" >> $outputpath/$outputfile
done
endspin
echo "Desmascarado. Checar em $outputpath/$outputfile."
}
#
# Assegurar que está locado como Superusuário, somente o Root pode executar o Script
#
if [[ $EUID -ne 0 ]]; then
echo "Este Script só pode ser executado em modo Root" 1>&2
exit 1
fi
if [[ -z "$1" ]]; then
echo 'Vôce precisa colocar o pacote na forma de Argumento, Assim,'
echo 'sh desmasc.sh Argumento. Ex:'
echo './desmasc.sh =categoria/package-versão'
exit
fi
#
# Variáveis necessárias:
#
typeset package_to_emerge=$1
typeset package_to_unmask
typeset -i count=1
typeset outputfile
typeset outputpath=/etc/portage/package.keywords
#
#Spinner que roda durante o tempo do desmascaramento
# Thanks a http://wooledge.org pelo código
#
typeset sp="/-\|"
typeset -i sc=0
spin() {
printf "\b${sp:sc++:1}"
((sc==${#sp})) && sc=0
}
endspin() {
printf "\r%s\n" "$@"
}
#
# Criando e renomeando o pacote desmascarado
# (Nome do Pacote no diretório adequado '/' )
#
outputfile=${package_to_emerge#*/}
# Thanks http://anton.lr2.com :-), pelo código
#
# Se não existir Palavra-Chave em /etc/portage/package.keywords, cria-la.
# Se existir, somente migrar conteúdo.
#
if [[ ! -e "$outputpath" ]]; then
echo "Criando Diretórios e Arquivos..."
mkdir -p $outputpath
touch $outputpath/$outputfile
fi
if [[ -f "$outputpath" ]]; then
echo "$outputpath é um arquivo."
echo "Criando diretório $outputpath"
echo 'e movendo o conteúdo antigo para o arquivo old'
echo 'aguarde por uns instantes'
echo "$outputpath/keywords-old"
sleep 3s
mv $outputpath /etc/portage/keywords-old
mkdir -p $outputpath
touch $outputpath/$outputfile
mv /etc/portage/keywords-old $outputpath
fi
#
# Verificar se o pacote foi desmascarado e caso não tenha sido, abortar.
#
if ! check_if_keyworded; then
echo 'Pacote sem Palavra-Chave manipulável. Não Desmascarável, Desculpe'
exit
else
do_unmasking
fi
# Fim do Código
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Recuperar arquivos de HD em formato RAW usando Linux (0)
SysAdmin ou DevOps: Qual curso inicial pra essa área? (0)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta