commit 865b49574cee54bea03bd68d1f8b33bc9ca49cfc Author: Bruno Silva Tosta Date: Mon Sep 23 09:21:47 2024 -0300 Enviar arquivos para "/" diff --git a/hub b/hub new file mode 100644 index 0000000..cfcd3ac --- /dev/null +++ b/hub @@ -0,0 +1,120 @@ +#!/bin/bash +# ┌──────────────────────────────────────────────────────────┐ +# │ Author: Bruno.Tosta │ +# │ Desc: HUB de instalação │ +# └─────────────────────────────────────────────{ VARIAVEIS }┘ +VERSAO="H11" +REPOSITORIO='download.sigsolucoes.net.br/public/Tosta/ERP/controle' +GNOMO='HUB' && source <(wget -qO- "$REPOSITORIO/config") +# ┌──────────────────────────────────────────────────────────┐ +# └─────────────────────────────────────────────────{ MENUS }┘ +MenuExecutar(){ + unset PACOTES[0]; clear + echo " ┌─────────────── BAIXAR ARQUIVOS ──────────────┐ + │ │" + for i in "${!PACOTES[@]}"; do + printf " │ $i │ "${PACOTES[$i]}" │\n" + done + read -p " │ │ + └──────────────────────────────────────── $VERSAO ─┘ + Escolha uma opção: " EXECUTAR && Executavel +} +MenuAtualizacao(){ + clear; read -p " + ┌────────────────── ATUALIZAR ─────────────────┐ + │ │ + │ Existe uma versão do HUB mais recente │ + │ Deseja atualizar para a versão mais recente? │ + │ S/N │ + └──────────────────────────────────────── $VERSAO ─┘ + Escolha uma opção: " RESPOSTA +} +MenuStatus(){ + clear; echo " + ┌──────────────────────────────────────────────┐ + │ │ + │ $1 │ + │ │ + └──────────────────────────────────────────────┘ + "; sleep 1 +} +MenuSudo(){ + echo ' + ┌─────────────────── ATENCAO ──────────────────┐ + │ │ + │ Necessário logar como usuário root │ + │ │ + └──────────────────────────────────────────────┘ + '; sudo su -s '/bin/bash' -c 'hub' +} +# ┌──────────────────────────────────────────────────────────┐ +# └────────────────────────────────────────────────{ OPCOES }┘ +Executavel(){ +for i in "${!PACOTES[@]}"; do + CASE+=" + $i) clear; APLICATIVO=\"${PACOTES[$i]}\"; VerificaArquivo ;;" +done +eval " +case \"\$EXECUTAR\" in + $CASE + *) MenuStatus 'INVALIDO'; MenuExecutar ;; +esac" +} +# ┌──────────────────────────────────────────────────────────┐ +# └─────────────────────────────────────────────{ DOWNLOADS }┘ +BuscarVersao(){ + SERVER=$(wget -qO- "$REPOSITORIO/$APLICATIVO" | grep -oP 'VERSAO="\K[^"]+' | head -1) + CLIENT=$(grep -oP 'VERSAO="\K[^"]+' "/usr/local/bin/$APLICATIVO" | head -1) +} +PerguntarAtualizar(){ + BuscarVersao +[ "$SERVER" == "$CLIENT" ] && MenuExecutar || { clear; MenuAtualizacao +while true; do + case "$RESPOSTA" in + S|Sim|s|sim) RealizarAtualizacao; break ;; + N|Nao|n|nao) exit 0 ;; + *) clear; MenuStatus 'INVALIDO'; PerguntarAtualizar;; + esac +done +} +} +RealizarAtualizacao(){ + rm "/usr/local/bin/$APLICATIVO"; BaixarArquivos && MenuStatus 'ATUALIZADO' +} +VerificaArquivo(){ +[ $APLICATIVO = 'todos' ] && { unset PACOTES[$i]; + for ((N=1; N<=${#PACOTES[@]}; N++)); do + APLICATIVO="${PACOTES[$N]}"; VerificaArquivo + done +} || { + [ -x "/usr/local/bin/$APLICATIVO" ] && RealizarAtualizacao || { + BaixarArquivos && MenuStatus 'BAIXADO' +} +} +} +BaixarArquivos(){ + wget -q --show-progress -O "/usr/local/bin/$APLICATIVO" "$REPOSITORIO/$APLICATIVO"; chmod 777 "/usr/local/bin/$APLICATIVO" +} +# ┌──────────────────────────────────────────────────────────┐ +# └─────────────────────────────────────────────{ PRINCIPAL }┘ +USUARIO=$(id -u); [ "$USUARIO" != '0' ] && MenuSudo || { +[ -z "$1" ] && { + APLICATIVO='hub'; PerguntarAtualizar +} || { +while [ -n "$1" ]; do + case "$1" in + -V|-v) MATRIZ=('hub' 'atua' 'backup'); clear; + for ((i=0; i<=2; i++)); do + APLICATIVO="${MATRIZ[$i]}" && BuscarVersao + printf "$APLICATIVO: $CLIENT\n" + done; exit ;; + -U|-u) clear; APLICATIVO='hub'; RealizarAtualizacao; exit ;; + -A|-a) clear; APLICATIVO='atua'; RealizarAtualizacao; exit ;; + -B|-b) clear; APLICATIVO='backup'; RealizarAtualizacao; exit ;; + -O|-o) clear; APLICATIVO='openvpn'; RealizarAtualizacao; exit ;; + *) clear; MenuStatus 'INVALIDO'; MenuExecutar ;; + esac +done +} +} +# └──────────────────────────────────────────────────────────┘