Get Tool
Publicado por Lucas Allan 27/01/2007
[ Hits: 5.661 ]
O gtool é um simples script que serve para baixar e instalar pacotes no seu Slackware Linux. Por não usar apenas os mirrors oficiais, o gtool possui uma busca muito eficaz utilizando mirrors alternativos (linuxpackages.net).
;]
Espero que gostem!
#!/bin/sh # FUNCOES alternative() { versao=$( dialog --stdout --backtitle "$programaMSG" --title "Alternative" \ --radiolist "Choose the slackware version" 8 60 0 \ "11.0" "Packages for Slackware 11.0" OFF \ "10.2" "Packages for Slackware 11.0" OFF \ "10.1" "Packages for Slackware 11.0" OFF \ "10.0" "Packages for Slackware 11.0" OFF \ "all" "For all version" OFF ) valor=`echo $versao | wc -w` if [ $valor -lt 1 ]; then dialog --backtitle "$programaMSG" --title "Invalid Option" \ --infobox "You must choose an option from the list." 5 50 sleep 2 rm -f $linksArquivo return 1 fi busca=$( dialog --stdout --backtitle "$programaMSG" --title "Search"\ --inputbox "Enter the word to search" 8 60 ) valor=`echo $busca | wc -w` if [ $valor -lt 1 ]; then dialog --backtitle "$programaMSG" --title "Syntax Error" \ --infobox "The value must be just one word." 5 50 sleep 2 return 1 elif [ $valor -gt 1 ]; then dialog --backtitle "$programaMSG" --title "Syntax Error" \ --infobox "The value must be just one word." 5 50 sleep 2 return 1 fi if [ $versao = all ]; then url='http://www.linuxpackages.net/search_view.php?by=name&name='$busca'&ver=' else url='http://www.linuxpackages.net/search_view.php?by=name&name='$busca'&ver='$versao fi # arquivo temporario para armazenar a lista de packs listaArquivos=$TMP'/lista.'$$ # arquivo temporario para armazenar o log do Wget logWget=$TMP'/wget.'$$ dialog --backtitle "$programaMSG" --title "Search" \ --infobox "Updating list of packages..." 5 50 wget -x -o $logWget -O $listaArquivos $url valor=`cat "$logWget" | grep "Login incorrect"` rm -f $logWget valor=`echo $valor | wc -w` if [ $valor -gt 0 ]; then dialog --backtitle "$programaMSG" --title "Connection Error" \ --msgbox "Sorry, the maximum number of clients (32) from\ your class are already connected. Press any key. . ." 9 50 rm -f $listaArquivos return 1 fi resultado=`cat $listaArquivos | grep "\">Download<\/a>" | sed "s/\(.*\)\"\(.*\)\"\(.*\)/\2/"` rm -f $listaArquivos valor=`echo $resultado | wc -w` if [ $valor -lt 1 ]; then dialog --backtitle "$programaMSG" --title "Search Result"\ --msgbox "Package not found." 10 60 else linksArquivo=$TMP'/links.'$$ ( echo 'dialog --backtitle "$programaMSG" --title\ "Search Result : $valor files" --radiolist "Choose the package"\ 10 60 0 \' while [ $valor -gt 0 ]; do url=`echo $resultado | sed 's/\(\S*\)\s\(.*\)/\1/'` resultado=`echo $resultado | sed 's/\(\S*\)\s//'` pagina=`curl -s $url` nome=`echo $pagina | sed 's/\(.*\)file: \(\S*\)<br>\(.*\)/\2/'` tam=`echo $nome | wc -w` if [ $tam -gt 0 ]; then echo $nome '" " OFF \' echo $nome >> $linksArquivo echo $pagina | sed 's/\(.*\)<a href=\(\S*\)>HTTP<\(.*\)/\2/' >> $linksArquivo fi valor=`expr $valor '-' 1` done echo "2>$TMP/retorno.$$" ) > $TMP'/tela.$$' . $TMP'/tela.$$' rm -f $TMP'/tela.$$' opcao="`cat $TMP/retorno.$$`" rm -f $TMP'/retorno.$$' valor=`echo $opcao | wc -w` if [ $valor -lt 1 ]; then dialog --backtitle "$programaMSG" --title "Invalid Option" \ --infobox "You must choose an option from the list." 5 50 sleep 2 rm -f $linksArquivo return 1 fi tarefa=$( dialog --stdout --backtitle "$programaMSG" --title\ "Task" --radiolist "Choose an option"\ 10 60 0 "Download" "Download a package" OFF\ "Install" "Install a package" OFF\ "Exit" "Go back to the menu" OFF ) valor=`echo $tarefa | wc -w` if [ $valor -lt 1 ]; then dialog --backtitle "$programaMSG" --title "Invalid Option" \ --infobox "You must choose an option from the list." 5 50 sleep 2 rm -f $linksArquivo return 1 fi link=`cat $linksArquivo | grep $opcao | sed 's/\(^http:\)\(.*\)/\1\2/'` rm -f $linksArquivo if [ $tarefa = "Download" ]; then diretorio=$( dialog --stdout --backtitle "$programaMSG" --title "Download"\ --inputbox "Enter the destination directory" 8 60 "`pwd`") if [ ! -d $diretorio ]; then dialog --backtitle "$programaMSG" --title "Invalid Directory" \ --infobox "The following directory does not exist." 5 50 sleep 2 return 1 fi diretorio=$diretorio'/'$opcao dialog --backtitle "$programaMSG" --title "Download" \ --infobox "Downloading $opcao..." 5 50 sleep 1 wget -x -o $logWget -O $diretorio $link valor=`cat "$logWget" | grep "Login incorrect"` rm -f $logWget valor=`echo $valor | wc -w` if [ $valor -gt 0 ]; then dialog --backtitle "$programaMSG" --title "Connection Error" \ --msgbox "Sorry, the maximum number of clients (32) from\ your class are already connected. Press any key. . ." 9 50 return 1 fi dialog --backtitle "$programaMSG" --title "Download" \ --infobox "Download successful." 5 50 sleep 2 elif [ $tarefa = "Install" ]; then diretorio=$TMP'/'$opcao dialog --backtitle "$programaMSG" --title "Download" \ --infobox "Downloading $opcao..." 5 50 sleep 1 wget -x -o $logWget -O $diretorio $link valor=`cat "$logWget" | grep "Login incorrect"` rm -f $logWget valor=`echo $valor | wc -w` if [ $valor -gt 0 ]; then dialog --backtitle "$programaMSG" --title "Connection Error" \ --msgbox "Sorry, the maximum number of clients (32) from\ your class are already connected. Press any key. . ." 9 50 return 1 fi dialog --backtitle "$programaMSG" --title "Download" \ --infobox "Download successful." 5 50 sleep 1 dialog --backtitle "$programaMSG" --title "Install" \ --infobox "Installing package data..." 5 50 /sbin/installpkg $diretorio > /dev/null dialog --backtitle "$programaMSG" --title "Install" \ --infobox "Install successful." 5 50 sleep 1 rm -f $diretorio elif [ $tarefa = "Exit" ]; then return 1 fi fi return 0 } credits(){ dialog --msgbox "Credits: \n\n\n Roque Pinel <repinel[a]gmail.com \n\n Lucas Allan <lucas.allan[a]gmail.com\n\n www.got2think.org\n\n" 15 60 } search() { busca=$( dialog --stdout --backtitle "$programaMSG" --title "Search"\ --inputbox "Enter the word to search" 8 60 ) valor=`echo $busca | wc -w` if [ $valor -lt 1 ]; then dialog --backtitle "$programaMSG" --title "Syntax Error" \ --infobox "The value must be just one word." 5 50 sleep 2 return 1 elif [ $valor -gt 1 ]; then dialog --backtitle "$programaMSG" --title "Syntax Error" \ --infobox "The value must be just one word." 5 50 sleep 2 return 1 fi # arquivo temporario para armazenar a lista de packs listaArquivos=$TMP'/lista.'$$ # arquivo temporario para armazenar o log do Wget logWget=$TMP'/wget.'$$ dialog --backtitle "$programaMSG" --title "Search" \ --infobox "Updating list of packages..." 5 50 wget -x -o $logWget -O $listaArquivos ftp://ftp.slackware-brasil.com.br/slackware-current/FILELIST.TXT valor=`cat "$logWget" | grep "Login incorrect"` rm -f $logWget valor=`echo $valor | wc -w` if [ $valor -gt 0 ]; then dialog --backtitle "$programaMSG" --title "Connection Error 530" \ --msgbox "Sorry, the maximum number of clients (32) from\ your class are already connected. Press any key. . ." 9 50 rm -f $listaArquivos return 1 fi resultado=`cat $listaArquivos | grep -i $busca | grep -i 'tgz$' | sed "s/\(.*\)\($busca.*\)/\2/I"` rm -f $listaArquivos valor=`echo $resultado | wc -w` if [ $valor -lt 1 ]; then dialog --backtitle "$programaMSG" --title "Search Result"\ --msgbox "Package not found." 10 60 else dialog --backtitle "$programaMSG" --title "Search Result: $valor files"\ --msgbox "`echo $resultado | sed "s/\s/\n/g" | sort`" 10 60 fi return 0 } sizeof() { du -s "$1" | cut -f1; } running(){ ps $1 | grep $1 >/dev/null; } download() { busca=$( dialog --stdout --backtitle "$programaMSG" --title "Download"\ --inputbox "Enter the program name" 8 60 ) valor=`echo $busca | wc -w` if [ $valor -lt 1 ]; then dialog --backtitle "$programaMSG" --title "Syntax Error" \ --infobox "The value must be just one word." 5 50 sleep 2 return 1 elif [ $valor -gt 1 ]; then dialog --backtitle "$programaMSG" --title "Syntax Error" \ --infobox "The value must be just one word." 5 50 sleep 2 return 1 fi # arquivo temporario para armazenar a lista de packs listaArquivos=$TMP'/lista.'$$ # arquivo temporario para armazenar o log do Wget logWget=$TMP'/wget.'$$ dialog --backtitle "$programaMSG" --title "Search" \ --infobox "Updating list of packages..." 5 50 wget -x -o $logWget -O $listaArquivos ftp://ftp.slackware-brasil.com.br/slackware-current/FILELIST.TXT valor=`cat "$logWget" | grep "Login incorrect"` rm -f $logWget valor=`echo $valor | wc -w` if [ $valor -gt 0 ]; then dialog --backtitle "$programaMSG" --title "Connection Error 530" \ --msgbox "Sorry, the maximum number of clients (32) from\ your class are already connected. Press any key. . ." 9 50 rm -f $listaArquivos return 1 fi resultado=`cat $listaArquivos | grep -i $busca | grep -i 'tgz$' | sed "s/\(.*\)\($busca.*\)/\2/I"` valor=`echo $resultado | wc -w` if [ $valor -lt 1 ]; then dialog --backtitle "$programaMSG" --title "Search Result"\ --msgbox "Package not found." 10 60 rm -f $listaArquivos else ( echo 'dialog --backtitle "$programaMSG" --title\ "Search Result : $valor files" --radiolist "Choose the package"\ 10 60 0 \' echo $resultado | sed 's/ / " " OFF /g;s/\(.$\)/\1 " " OFF \\/g' echo "2>$TMP/retorno.$$" ) > $TMP'/tela.$$' . $TMP'/tela.$$' rm -f $TMP'/tela.$$' opcao="`cat $TMP/retorno.$$`" rm -f '$TMP/retorno.$$' valor=`echo $opcao | wc -w` if [ $valor -lt 1 ]; then dialog --backtitle "$programaMSG" --title "Invalid Option" \ --infobox "You must choose an option from the list." 5 50 sleep 2 rm -f $listaArquivos return 1 fi diretorio=$( dialog --stdout --backtitle "$programaMSG" --title "Download"\ --inputbox "Enter the destination directory" 8 60 "`pwd`") if [ ! -d $diretorio ]; then dialog --backtitle "$programaMSG" --title "Invalid Directory" \ --infobox "The following directory does not exist." 5 50 sleep 2 rm -f $listaArquivos return 1 fi urlArquivo=`cat $listaArquivos | grep -i $opcao | grep -i 'tgz$' | sed "s/\(.*\)\(\.\/.*\)/\2/I" | sed "s/\.\///"` TOTAL=`cat $listaArquivos | grep -i $opcao | grep -i 'tgz$' | sed "s/\(.*\)root\( *\)\([0-9]*\)\(.*\)/\3/"` rm -f $listaArquivos diretorio=$diretorio'/'$opcao wget -x -o $logWget -O $diretorio ftp://ftp.slackware-brasil.com.br/slackware-current/$urlArquivo & ### barra de progresso para download INICIO CPPID=$! valor=`cat "$logWget" | grep "Login incorrect"` rm -f $logWget valor=`echo $valor | wc -w` if [ $valor -gt 0 ]; then dialog --backtitle "$programaMSG" --title "Connection Error 530" \ --msgbox "Sorry, the maximum number of clients (32) from\ your class are already connected. Press any key. . ." 9 50 return 1 fi TOTAL=`expr $TOTAL '/' 1024` EXP=0 # caso o usuário cancele, interrompe a cópia trap "kill $CPPID" 2 15 # loop de checagem de status da cópia ( # enquanto o processo de cópia estiver rodando while running $CPPID; do # quanto já foi copiado? COPIADO=$(sizeof $diretorio) # qual a porcentagem do total? EXP=`expr $COPIADO '*' 100 '/' $TOTAL` # envia a porcentagem para o dialog echo "$EXP" # aguarda até a próxima checagem sleep $INTERVALO done # cópia finalizada, mostra a porcentagem final echo 100 ) | dialog --backtitle "$programaMSG" --title "Download..."\ --gauge "Downloading $opcao" 8 40 0 ### barra de progresso para download FIM fi return 0 } install() { busca=$( dialog --stdout --backtitle "$programaMSG" --title "Install"\ --inputbox "Enter the program name" 8 60 ) valor=`echo $busca | wc -w` if [ $valor -lt 1 ]; then dialog --backtitle "$programaMSG" --title "Syntax Error" \ --infobox "The value must be just one word." 5 50 sleep 2 return 1 elif [ $valor -gt 1 ]; then dialog --backtitle "$programaMSG" --title "Syntax Error" \ --infobox "The value must be just one word." 5 50 sleep 2 return 1 fi # arquivo temporario para armazenar a lista de packs listaArquivos=$TMP'/lista.'$$ listaArquivos='./FILELIST.TXT' # arquivo temporario para armazenar o log do Wget logWget=$TMP'/wget.'$$ dialog --backtitle "$programaMSG" --title "Search" \ --infobox "Updating list of packages..." 5 50 wget -x -o $logWget -O $listaArquivos ftp://ftp.slackware-brasil.com.br/slackware-current/FILELIST.TXT valor=`cat "$logWget" | grep "Login incorrect"` rm -f $logWget valor=`echo $valor | wc -w` if [ $valor -gt 0 ]; then rm -f $listaArquivos dialog --backtitle "$programaMSG" --title "Connection Error 530" \ --msgbox "Sorry, the maximum number of clients (32) from\ your class are already connected. Press any key. . ." 9 50 return 1 fi resultado=`cat $listaArquivos | grep -i $busca | grep -i 'tgz$' | sed "s/\(.*\)\($busca.*\)/\2/I"` valor=`echo $resultado | wc -w` if [ $valor -lt 1 ]; then dialog --backtitle "$programaMSG" --title "Search Result"\ --msgbox "Package not found." 10 60 else ( echo 'dialog --backtitle "$programaMSG" --title\ "Search Result : $valor files" --radiolist "Choose the package"\ 10 60 0 \' echo $resultado | sed 's/ / " " OFF /g;s/\(.$\)/\1 " " OFF \\/g' echo "2>$TMP/retorno.$$" ) > $TMP'/tela.$$' . $TMP'/tela.$$' rm -f $TMP'/tela.$$' opcao="`cat $TMP/retorno.$$`" rm -f $TMP'/retorno.$$' valor=`echo $opcao | wc -w` if [ $valor -lt 1 ]; then dialog --backtitle "$programaMSG" --title "Invalid Option" \ --infobox "You must choose an option from the list." 5 50 sleep 2 rm -f $listaArquivos return 1 fi urlArquivo=`cat $listaArquivos | grep -i $opcao | grep -i 'tgz$' | sed "s/\(.*\)\(\.\/.*\)/\2/I" | sed "s/\.\///"` TOTAL=`cat $listaArquivos | grep -i $opcao | grep -i 'tgz$' | sed "s/\(.*\)root\( *\)\([0-9]*\)\(.*\)/\3/"` rm -f $listaArquivos diretorio=$TMP'/'$opcao wget -x -o $logWget -O $diretorio ftp://ftp.slackware-brasil.com.br/slackware-current/$urlArquivo & ### barra de progresso para download INICIO CPPID=$! valor=`cat "$logWget" | grep "Login incorrect"` rm -f $logWget valor=`echo $valor | wc -w` if [ $valor -gt 0 ]; then dialog --backtitle "$programaMSG" --title "Connection Error 530" \ --msgbox "Sorry, the maximum number of clients (32) from\ your class are already connected. Press any key. . ." 9 50 return 1 fi TOTAL=`expr $TOTAL '/' 1024` EXP=0 # caso o usuário cancele, interrompe a cópia trap "kill $CPPID" 2 15 # loop de checagem de status da cópia ( # enquanto o processo de cópia estiver rodando while running $CPPID; do # quanto já foi copiado? COPIADO=$(sizeof $diretorio) # qual a porcentagem do total? EXP=`expr $COPIADO '*' 100 '/' $TOTAL` # envia a porcentagem para o dialog echo "$EXP" # aguarda até a próxima checagem sleep $INTERVALO done # cópia finalizada, mostra a porcentagem final echo 100 ) | dialog --backtitle "$programaMSG" --title "Download..."\ --gauge "Downloading $opcao" 8 40 0 ### barra de progresso para download FIM dialog --backtitle "$programaMSG" --title "Install" \ --infobox "Installing package data..." 5 50 /sbin/installpkg $diretorio > /dev/null dialog --backtitle "$programaMSG" --title "Install" \ --infobox "Install successful." 5 50 sleep 1 rm -f $diretorio fi return 0 } # STARTING MAIN # titulo dialog programaMSG="Get Tool Program" # diretorio para arquivos temporarios TMP='/tmp' # tempo para atualizacao da barra de download INTERVALO=1 while [ 0 ]; do dialog --backtitle "$programaMSG" --title \ "Main Menu" --menu\ "Welcome to Get Tool Program"\ 8 60 0\ Download "Download the package" \ Install "Install the package" \ Search "Search for a package" \ Alternative "Search in alternative mirror" \ Credits "Credits"\ Exit "Exit program" 2>/tmp/menuitem.$$ if [ ! $? = 0 ]; then dialog --clear exit fi menuitem=`cat /tmp/menuitem.$$` rm -f /tmp/menuitem.$$ case $menuitem in Download) download ;; Install) install ;; Search) search ;; Alternative) alternative ;; Credits) credits;; Exit) dialog --clear; exit;; esac done dialog --clear exit #END OF THE SOURCE
Instalar o Unity 3D Web Player Automatizado
Reconhecendo controladora online
Gerenciador de contas de usuários
dep-info - verificar se o programa está instalado no sistema
Nenhum coment�rio foi encontrado.
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Debian 13 Trixie para Iniciantes
Convertendo pacotes DEB que usam ZSTD (Padrão Novo) para XZ (Padrão Antigo)