Tool de atualização Kurupira
#!/bin/bash
#Teste para o atualizador/baixador das ferramentas da uname para o Kurupira OS
echo -e "\nSeja bem-vindo à tool de download/update para as ferramentas da Uname"
echo -e "Corporation."
help()
{
echo -e "\nAjuda do programa:\n"
echo -e "-h | --help Este menu de ajuda"
echo -e "-d | --download Menu de download de ferramentas"
}
error()
{
echo -e "\nOpa, parece que você digitou um comando inválido...\n";
}
download()
{
count=0;
repo=`curl -s https://github.com/unamecorporation | fgrep '<h3>' -A 5 \
| egrep '<a href=".*">' \
| sed 's@ itemprop=.*>@@g; s@<a href="/unamecorporation/@@g' \
| tr -d ' "' 2>/dev/null`;
echo -e "\nSegue a lista das ferramentas no repositório:\n";
#echo "$repo" |
while read -r line
do
((++count));
echo "$count - $line"
done <<< $(echo "$repo")
echo -e "\nEscolha um dos números listados acima para começar o download ou";
echo -e "pressione 0 para sair:\n"
read chosen;
if [[ "$chosen" == "0" ]]; then
{
exit 0;
}
fi
if [[ "$chosen" == "" ]]; then
echo "Você precisa escolher um número."
else
while [[ ! $chosen =~ ^[0-"$count"]$ ]]; do
echo -e "\n\nVocê precisa escolher um valor listado acima\n";
read chosen
done
fi
cnt=0;
for i in $(echo $repo)
do
((++cnt));
if [[ "$cnt" == "$chosen" ]]; then
chosen=`echo $i`;
fi
done
if [[ -d /usr/share/UnameCorp/$chosen ]]; then
echo -e "A ferramenta escolhida já encontra-se instalada.";
echo -e "Deseja sobrescrevê-la com a versão do repositório? (y/N)";
read swrite; swrite=`echo $swrite | tr A-Z a-z 2>/dev/null`
if [[ "$swrite" == "" ]]; then
swrite=n; exit 0;
elif [[ "$swrite" == "y" ]]; then
cd /usr/share/UnameCorp/$chosen; ls > /tmp/swrite-$chosen.txt; file="";
while read file
do
cab=`head -1 $file`;
if [[ "$cab" =~ ^#\!/.*$ ]]; then #Testa se um arquivo é uma tool (shebang)
sudo rm -f /usr/bin/$file 2>/dev/null
fi
if [[ "$file" =~ ^.*\.bc$ ]]; then #Testa se o arquivo é um bash_completion
existebc=`sudo ls /etc/bash_completion.d/$file`
if [[ ! -z "$existebc" ]]; then
sudo rm -f /etc/bash_completion.d/$file 2>/dev/null
fi
fi
done < /tmp/swrite-$chosen.txt
rm /tmp/swrite-$chosen.txt
else
while [[ ! "$swrite" =~ ^[y|n]?$ ]]
do
read swrite; swrite=`echo $swrite | tr A-Z a-z 2>/dev/null`
done
fi
fi
echo "Selecione o diretório onde o diretório $chosen será criado:"
echo -e "Caminho atual:"
cd ; pwd;
read dir;
cd `echo $dir` 2>/dev/null;
if [[ "$?" != "0" ]]; then
echo -e "\nOpa, parece que aconteceu algo de errado ..."
echo -e "Você digitou um caminho válido e tem permissões?\nSaindo..."
fi
echo -e ""
git clone https://github.com/unamecorporation/$chosen
if [[ "$?" != 0 ]]; then
exit;
fi
echo -e "";
cd $chosen;
ls > /tmp/filesondir.txt
echo -e "A seguir se dará o processo de instalação do programa selecionado."
echo -e "Para tal, acesso administrativo é necessário."
while read file
do
cab=`head -1 $file`;
if [[ "$cab" =~ ^#\!/.*$ ]]; then #Testa se um arquivo é uma tool (shebang)
if [[ ! -d /usr/share/UnameCorp ]]; then
sudo mkdir /usr/share/UnameCorp
fi
if [[ ! -d "/usr/share/UnameCorp/$chosen" ]]; then
sudo mkdir /usr/share/UnameCorp/$chosen
fi
sudo cp $file /usr/share/UnameCorp/$chosen/
sudo chmod +x /usr/share/UnameCorp/$chosen/$file
sudo ln -s /usr/share/UnameCorp/$chosen/$file /usr/bin
fi
if [[ "$file" =~ ^.*\.bc$ ]]; then #Testa se o arquivo é um bash_completion
existebc=`sudo ls /etc/bash_completion.d/$file`
if [[ -z "$existebc" ]]; then
sudo cp $file /etc/bash_completion.d/
sudo cp $file /usr/share/UnameCorp/$chosen
fi
fi
done < /tmp/filesondir.txt
rm /tmp/filesondir.txt
if [[ "$dir" =~ ^/.*$ ]]; then
rm -r $dir;
elif [[ "$dir" == "" ]]; then
rm -rf /home/$USER/$chosen
else
rm -rf /home/$USER/$dir
fi
}
if [ "$*" == "-h" ] || [ "$*" == "--help" ] || [ "$*" == "" ]; then
help;
else
case "$1" in
-d | --download ) download; ;;
-h | --help ) help; ;;
* ) error; exit 1; ;;
esac
fi