Slocal Manipulação de pacotes Slackware

Publicado por Jefferson Rocha (última atualização em 26/01/2018)

[ Hits: 1.232 ]

Homepage: https://slackjeff.com.br

Download slocal




Manipulação de pacotes Slackware via http local.
Altere no script a variavel diretorio e sincronizar.

  



Esconder código-fonte

#!/bin/bash
#---------HEADER--------------------------------------------------------------|
#DATA:
# 01 dezembro 2017 
#AUTOR:
#   Jefferson Rocha <lrcjefferson@gmail.com>
#
#PROGRAMA:
#   Slocal - Manutenção de pacotes locais em rede.
#
#CHANGELOG:
#   (v1.0) 01/12/2017 - Jefferson rocha
#    - Lançamento
#
#   (v1.1) 01/12/2017 - Jefferson Rocha
#    - Retirado bug do 'PACKAGE.TXT' que ficava na lista no select.
#    - Retirado opção 'install' em linha
#    - Adicionado opção de sincronizar pacotes.
#
#MODO DE USO:
#
#
#-----------------------------------------------------------------------------|

#-------CONFIGURAÇÕES-----#
PROGRAMA="slocal v1.1 - 01/12/2017"       # Nome e versão do programa
diretorio="/var/www/htdocs/slackware14.2" # DIRETORIO DOS PACOTES no servidor
URL="192.168.0.4/slackware14.2"           # URL DO SERVIDOR
sincronizar="/home/slackjeff/Downloads"   # Local onde os novos pacotes ficam
nome_do_hospedeiro="darkstar"             # Nome do Hospedeiro
root=$(id -u)


#--------FUNÇÕES-----------#
hospedeira(){
   PACOTES=$(ls "$diretorio" > $diretorio/PACKAGE.txt)   # Listagem do pascotes
}

baixar_package_txt(){
   curl "$URL/PACKAGE.txt" > PACKAGE.txt
   mv PACKAGE.txt /tmp
}

#-------VERIFICAÇÕES INICIAIS-------#
[ "$root" -ne "0" ] && echo "Favor logar como root." && exit 1    # É root?

# Obtendo pacotes no diretorio raiz, máquina hospedeira.
[ -d "$diretorio" ] && hospedeira   # Chamada função hospedeira

#-------INICIO-----------#

# Menu principal
while [ -n "$1" ]; do
   case $1 in
      update) baixar_package_txt ;;   # Update do PACKAGE.txt

      # Opção sync apenas para máquina HOSPEDEIRA dos pacotes.
      sync)
               if [ "$nome_do_hospedeiro" = "$(echo $HOSTNAME)" ]; then
                  cp $sincronizar/*.t?z "$diretorio" \
                  && echo -e "\033[35;1mConcluido! Pacotes copiados para $diretorio\033[m"
               else
                  echo -e "\033[31;1mSomente máquinas hospedeiras podem rodar este comando.\033[m"
                  exit 1
               fi
      ;;

      search)
         shift
         grep "^$1" /tmp/PACKAGE.txt   # procura, termos que comecem com a busca
         [ "$?" = "1" ] && echo -e "\033[31;1mPacote não encontrado, digite outro termo de busca.\033[m"
      ;;

      select)   # Selecione e instale de uma vez!
               packs=$(cat "/tmp/PACKAGE.txt" | sed '/PACKAGE.txt/d')
               PS3=$'\033[34;1mSelecione um pacote para instalar: \033[m'
               select i in $packs "SAIR"; do
                     [ "$i" = "SAIR" ] && exit 0
                     wget -P "/tmp" "$URL/$i" 2>/dev/null && \
                     upgradepkg --install-new "/tmp/$i"
                     rm /tmp/${i:?echo "ERRO ao remover pacote do sistema."}   # Var nula dá erro!
               done
    ;;

      help) cat << EOF
Opções disponiveis no $PROGRAMA.

 ------------------------------------------------------------
 | search |
 Localiza em 'linha' um pacote no repositorio local.

 EXEMPLO:
 # slocal search [Bb]re.ze
 breeze-icons-5.28.0-noarch-1alien.txz

 ------------------------------------------------------------
 | sync |
 Sincroniza pacotes de um determinado diretorio para
 o servidor.
 Este comando só pode ser executado na máquina hospedeira.

 ------------------------------------------------------------
 | select |
 Menu principal para escolher e instalar um pacote.

 ------------------------------------------------------------
 | update |
 Faz update do arquivo PACKAGE.txt, é importante,
 executar esta opção sempre que for sincronizado novos pacotes,
 no servidor!

 ------------------------------------------------------------

EOF
;;

      *) echo "Consulte slocal help para receber ajuda" ;;
esac
   shift
done

Scripts recomendados

Wake up, neo... 0.2

Baixa arquivos de Podcast

Script em Xdialog para montar/desmontar dispositivos

Enviar e-mails

Verificar IP Externo no Linux.


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts