-
-
Save morkin1792/8bd72b21339ba293b3076a343c4076ed to your computer and use it in GitHub Desktop.
Tentativa de fazer um gerenciador de pacotes que não dependa de root e sirva para distros não baseadas em debian.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
tmp='/tmp' | |
tdir="$tmp"/v #local de arquivo temporario | |
mkdir -p "$tdir" | |
link='https://packages.debian.org' | |
search="/search?keywords=" | |
word="gimp" #nome exemplo de pesquisa | |
arch='amd64' | |
version='jessie' | |
[ "$1" ] && { | |
word="$1" | |
} | |
lista() { #mostra resultados possíveis para a pesquisa em r1 | |
(curl "$link""$search""$word") > "$tdir"/tname | |
r1=( $(cat "$tdir"/tname | grep -Ei -o "<[^>]*>Package [^<]*$word[^<]*" | grep -E -o '[^\ ]*[\ ]*$') ) | |
} | |
get_link(){ | |
r2=$(curl "$link"/"$version"/"$arch"/$1/download | grep -E -o '"(http[s]?[^<>]*[.]deb)"' | head -1 | grep -E -o 'http[^"]*[.]deb') | |
} | |
lista | |
c=0 #c conta a quantia de opções disponíveis | |
for i in ${r1[@]}; do | |
((c++)) | |
echo "[$c] - $i" | |
done | |
if [ $c -gt 1 ];then #se há 1 opção ou mais encontradas | |
echo -n "Escolha um dos pacotes [1-$c]: " | |
read n | |
get_link "${r1[n-1]}" | |
if [ -z "$r2" ]; then | |
echo "Não foi encontrado o pacote para '$version' ou '$arch'" | |
else | |
echo "${r1[n-1]} downloading in $tmp... " | |
(cd "$tmp"; curl -# "$r2" -O) | |
echo "Done" | |
fi | |
else | |
echo "Nenhum pacote encontrado para '$word'." | |
fi | |
rm -rf "$tdir" 2>/dev/null |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Por enquanto só baixa pacote, sem verificar dependências.