Enviar arquivos para "/"
This commit is contained in:
277
atua
Normal file
277
atua
Normal file
@@ -0,0 +1,277 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# ┌──────────────────────────────────────────────────────────┐
|
||||||
|
# │ Author: Bruno.Tosta │
|
||||||
|
# │ Desc: Atualiza o SigERP e SigPDV │
|
||||||
|
# └─────────────────────────────────────────────{ VARIAVEIS }┘
|
||||||
|
VERSAO="6.3" SISTEMA=$(lsb_release -cs) V='×'
|
||||||
|
REPOSITORIO='download.sigsolucoes.net.br/public/Tosta/ERP'
|
||||||
|
VerificaInstalados(){
|
||||||
|
[ -d '/usr/local/sigerp' ] && X='1' || X='0'
|
||||||
|
[ -d '/usr/local/sigpdv' ] && Y='2' || Y='0'
|
||||||
|
case "$X$Y" in
|
||||||
|
10) Configurar '1'; MenuAtualizar;;
|
||||||
|
02) Configurar '2'; MenuAtualizar;;
|
||||||
|
12) MenuExecutar ;;
|
||||||
|
00) MenuStatus 'NÃO HÁ'; exit
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
Configurar(){
|
||||||
|
case "$1" in
|
||||||
|
1) source <(wget -qO- "$REPOSITORIO/controle/config");;
|
||||||
|
2) source <(wget -qO- "$REPOSITORIO/controle/config");;
|
||||||
|
esac
|
||||||
|
case "$SISTEMA" in
|
||||||
|
'xenial') [ "$ATUALIZANDO" = 'sigerp' ] && exit 1 || unset PACOTES[0];;
|
||||||
|
'bionic') S='0' ;;
|
||||||
|
*) MenuStatus 'NÃO HOMOLOGADO'; exit ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
# ┌──────────────────────────────────────────────────────────┐
|
||||||
|
# └─────────────────────────────────────────────────{ MENUS }┘
|
||||||
|
MenuExecutar(){
|
||||||
|
clear; read -p "
|
||||||
|
┌─ $SISTEMA ─────────────────────────────────────┐
|
||||||
|
│ │
|
||||||
|
│ 1 │ Atualizar o SigERP │
|
||||||
|
│ 2 │ Atualizar o SigPDV │
|
||||||
|
│ 0 │ Sair │
|
||||||
|
│ │
|
||||||
|
└──────────────────────────────────────── $VERSAO ─┘
|
||||||
|
Escolha uma opção: " EXECUTAR && Executavel
|
||||||
|
}
|
||||||
|
MenuAtualizar(){
|
||||||
|
clear; read -p "
|
||||||
|
┌─ $TITULO ─ $MODULO ───────────────────────────────┐
|
||||||
|
│ $V │
|
||||||
|
│ 1 │ Atualizar com Backup │
|
||||||
|
│ 2 │ Atualizar sem Backup │
|
||||||
|
│ 3 │ Atualizar Pacotes │
|
||||||
|
│ 4 │ Fazer backup da base │$BARRA
|
||||||
|
│ 0 │ Sair │
|
||||||
|
│ │
|
||||||
|
└──────────────────────────────────────── $VERSAO ─┘
|
||||||
|
Escolha uma opção: " ATUALIZAR && Atualizavel
|
||||||
|
}
|
||||||
|
MenuPacotes(){
|
||||||
|
clear; echo " ┌─ PACOTES ─ $ATUALIZANDO ───────────────────────────┐
|
||||||
|
│ $V │"
|
||||||
|
for i in "${!PACOTES[@]}"; do
|
||||||
|
printf " │ $((i + 1)) │ "${PACOTES[$i]}" │\n"
|
||||||
|
done
|
||||||
|
read -p " │ │
|
||||||
|
└──────────────────────────────────────── $VERSAO ─┘
|
||||||
|
Escolha uma opção: " EMPACOTAR && Empacotavel
|
||||||
|
}
|
||||||
|
MenuAtualizacao(){
|
||||||
|
clear; read -p "
|
||||||
|
┌───────────────── ATUALIZAR ──────────────────┐
|
||||||
|
│ │
|
||||||
|
│ Existe uma versão do ATUA mais recente │
|
||||||
|
│ Deseja atualizar para a versão mais recente? │
|
||||||
|
│ S/N │
|
||||||
|
└──────────────────────────────────────── $VERSAO ─┘
|
||||||
|
Escolha uma opção: " RESPOSTA
|
||||||
|
}
|
||||||
|
MenuSudo(){
|
||||||
|
echo '
|
||||||
|
┌────────────────── ATENCAO! ──────────────────┐
|
||||||
|
│ │
|
||||||
|
│ Necessário logar como usuário root │
|
||||||
|
│ │
|
||||||
|
└──────────────────────────────────────────────┘
|
||||||
|
'; sudo su -s '/bin/bash' -c 'atua'
|
||||||
|
}
|
||||||
|
MenuStatus(){
|
||||||
|
clear; echo "
|
||||||
|
┌──────────────────────────────────────────────┐
|
||||||
|
│ │
|
||||||
|
│ $1 │
|
||||||
|
│ │
|
||||||
|
└──────────────────────────────────────────────┘
|
||||||
|
"; sleep 1
|
||||||
|
}
|
||||||
|
# ┌──────────────────────────────────────────────────────────┐
|
||||||
|
# └─────────────────────────────────────────────────{ OPCAO }┘
|
||||||
|
Executavel(){
|
||||||
|
case "$EXECUTAR" in
|
||||||
|
1) Configurar '1'; MenuAtualizar ;;
|
||||||
|
2) Configurar '2'; MenuAtualizar ;;
|
||||||
|
0) MenuStatus 'SAINDO'; exit ;;
|
||||||
|
*) MenuStatus 'INVALIDO'; MenuExecutar
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
Atualizavel(){
|
||||||
|
case "$ATUALIZAR" in
|
||||||
|
1) Identifica 'BACKUP'; Instalar ;;
|
||||||
|
2) Instalar ;;
|
||||||
|
3) MenuPacotes ;;
|
||||||
|
4) Identifica 'BACKUP' ;;
|
||||||
|
5) [[ "$ATUALIZANDO" = 'sigerp' ]] && {
|
||||||
|
Identifica 'LEVANTAR'; ParaSistema; IniciaSistema
|
||||||
|
} || { MenuStatus 'INVALIDO'; MenuExecutar
|
||||||
|
} ;;
|
||||||
|
0) MenuStatus 'SAINDO'; exit ;;
|
||||||
|
*) MenuStatus 'INVALIDO'; MenuExecutar
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
Empacotavel(){
|
||||||
|
for i in "${!PACOTES[@]}"; do
|
||||||
|
CASE+="
|
||||||
|
$i) APLICATIVO=\"${PACOTES[$i]}\"; InstalacaoPacote ;;"
|
||||||
|
done
|
||||||
|
eval "
|
||||||
|
case \"$(($EMPACOTAR-1))\" in
|
||||||
|
$CASE
|
||||||
|
0) MenuStatus 'SAINDO'; exit ;;
|
||||||
|
*) MenuStatus 'INVALIDO'; MenuExecutar ;;
|
||||||
|
esac"
|
||||||
|
}
|
||||||
|
Instalar(){
|
||||||
|
ParaSistema; VerificaATUA && PastaBackup && BuscaArquivo && VerificaSigEXT && Permissao && ApagaTemp; [ "$ATUALIZANDO" = 'sigpdv' ] && exit || Identifica 'LEVANTAR' && IniciaSistema
|
||||||
|
}
|
||||||
|
InstalacaoPacote(){
|
||||||
|
VerificaATUA && BaixaArquivo && ApagaTemp; [ "$ATUALIZANDO" = 'sigpdv' ] && exit || ParaSistema; IniciaSistema
|
||||||
|
}
|
||||||
|
# ┌──────────────────────────────────────────────────────────┐
|
||||||
|
# └──────────────────────────────────────────────────{ BASE }┘
|
||||||
|
Identifica(){
|
||||||
|
VerificaPasta
|
||||||
|
for ((N=1; N <= "$QUANTIDADE"; N++)) do
|
||||||
|
BASE=$(PGPASSWORD="$SENHA" psql -U "$USER" -l | awk '{ if ($3 == "'$USER'" && $1 != "template0" && $1 != "template1" && $1 != "'$USER'") print $1 }' | head -$(($N+B)) | tail -1)
|
||||||
|
printf "\nQuantidade: $N/$QUANTIDADE \nBase: $BASE \n"
|
||||||
|
case "$1" in
|
||||||
|
BACKUP) PGPASSWORD="$SENHA" /usr/bin/pg_dump -h 'localhost' -p '5432' -U "$USER" --role "$USER" -F 'c' -b -v -T 'logs_logs' -T 'ir_attachment' -T 'logs_detalhe' -T 'ecf_exportar_osv_id_seq' -f "/backup/$BASE.$DATA.dump" -d "$BASE"
|
||||||
|
;;
|
||||||
|
LEVANTAR) sudo -u openerp 'openerp-server' -uall -d "$BASE" -c '/etc/openerp-server.conf' --stop-after-init
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
printf "Completo: $BASE \n"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
# ┌──────────────────────────────────────────────────────────┐
|
||||||
|
# └───────────────────────────────────────────────{ FUNCOES }┘
|
||||||
|
ParaSistema(){
|
||||||
|
[ "$ATUALIZANDO" = 'sigpdv' ] && killall 'python' || {
|
||||||
|
service 'openerp-server' stop; /etc/init.d/openerp-server stop 2>'/dev/null' && echo 'OK' || killall 'openerp-server'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
IniciaSistema(){
|
||||||
|
service 'openerp-server' start; /etc/init.d/openerp-server start
|
||||||
|
}
|
||||||
|
InstalaArquivo(){
|
||||||
|
python 'setup.py' install
|
||||||
|
}
|
||||||
|
VerificaPasta(){
|
||||||
|
mkdir -m 777 '/backup' 2>'/dev/null' && echo 'Pasta de backup criada' || echo 'Pasta de backup já existe'
|
||||||
|
}
|
||||||
|
PastaBackup(){
|
||||||
|
VerificaPasta; cd "$LOCAL/" && tar cfvz "/backup/$ATUALIZANDO.$DATA.tar.gz" "$ATUALIZANDO"
|
||||||
|
}
|
||||||
|
VerificaATUA(){
|
||||||
|
mkdir -m 777 '/tmp/ATUA' 2>'/dev/null' && echo 'Pasta de atualização criada!' || echo 'Pasta de atualização já existe!'
|
||||||
|
}
|
||||||
|
BaixaPacote(){
|
||||||
|
cd '/tmp/ATUA' && pip install -r <(wget -qO- "$REPOSITORIO/controle/requirements") && echo 'Requisitos instalados' || echo 'Houve algum erros entre pacotes'
|
||||||
|
}
|
||||||
|
# ┌──────────────────────────────────────────────────────────┐
|
||||||
|
# └─────────────────────────────────────────────{ DOWNLOADS }┘
|
||||||
|
BuscaArquivo(){
|
||||||
|
VerificaATUA
|
||||||
|
for APLICATIVO in "${PACOTES[@]:$S}"; do
|
||||||
|
BaixaArquivo
|
||||||
|
done
|
||||||
|
}
|
||||||
|
BaixaArquivo(){
|
||||||
|
BAIXAR=$(wget -qO- "$REPOSITORIO/controle/update" | grep -wi "$APLICATIVO" | cut -d"=" -f2)
|
||||||
|
wget -q -O "/tmp/ATUA/$APLICATIVO-$BAIXAR.tar.gz" "$REPOSITORIO/$APLICATIVO/$APLICATIVO-$BAIXAR.tar.gz"
|
||||||
|
ExtraiArquivo
|
||||||
|
}
|
||||||
|
ExtraiArquivo(){
|
||||||
|
[ "$APLICATIVO" != "$ATUALIZANDO" ] && {
|
||||||
|
cd '/tmp/ATUA/'; tar xfvz "$APLICATIVO-$BAIXAR.tar.gz"
|
||||||
|
cd "$APLICATIVO-$BAIXAR"; InstalaArquivo &&
|
||||||
|
echo "Instalação do $APLICATIVO-$BAIXAR efetuada com sucesso!"
|
||||||
|
} || {
|
||||||
|
mv "$LOCAL/$ATUALIZANDO/" "/tmp/ATUA/$ATUALIZANDO-old"
|
||||||
|
cp "/tmp/ATUA/$APLICATIVO-$BAIXAR.tar.gz" "$LOCAL/"
|
||||||
|
cd "$LOCAL/"; tar xfvz "$APLICATIVO-$BAIXAR.tar.gz"
|
||||||
|
rm "$LOCAL/$APLICATIVO-$BAIXAR.tar.gz"
|
||||||
|
echo "Extração dos arquivos do $APLICATIVO-$BAIXAR efetuada com sucesso!"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Permissao(){
|
||||||
|
for PERMISSAO in "${PERMISSOES[@]}"; do
|
||||||
|
chmod -R 777 "$PERMISSAO"
|
||||||
|
done; echo 'Permissões ajustadas!'
|
||||||
|
}
|
||||||
|
ApagaTemp(){
|
||||||
|
cd '/'; rm -rf '/tmp/ATUA/' && echo 'Arquivos e pastas temporárias para a atualização deletados'
|
||||||
|
}
|
||||||
|
# ┌──────────────────────────────────────────────────────────┐
|
||||||
|
# └───────────────────────────────────────────{ APP.CONFIGS }┘
|
||||||
|
VerificaSigEXT(){
|
||||||
|
mkdir "$LOCAL/sigext" 2>'/dev/null' && echo 'Pasta do SigEXT criada' || echo 'Pasta do SigEXT já existe'
|
||||||
|
chmod 777 -R "$LOCAL/sigext"
|
||||||
|
chown -R root:root "$LOCAL/sigext"
|
||||||
|
BuscaSigEXT
|
||||||
|
}
|
||||||
|
BuscaSigEXT(){
|
||||||
|
for N in 0 1; do
|
||||||
|
APP="${APP[$N]}" _APP="${_APP[$N]}" __APP="${__APP[$N]}"; IndexarSigEXT
|
||||||
|
done
|
||||||
|
}
|
||||||
|
IndexarSigEXT(){
|
||||||
|
[ ! -e "$LOCAL/sigext/$__APP" ] && {
|
||||||
|
echo "Arquivo $__APP no $ATUALIZANDO não existe, irei procurar!"
|
||||||
|
cd "/tmp/ATUA/$ATUALIZANDO-old/$_APP"
|
||||||
|
[ -e "$APP" ] && {
|
||||||
|
cp "$APP" "$LOCAL/sigext/$__APP"
|
||||||
|
chmod 777 "$LOCAL/sigext/$__APP"
|
||||||
|
chown root:root "$LOCAL/sigext/$__APP"
|
||||||
|
CriarAtalho
|
||||||
|
} || {
|
||||||
|
echo "Arquivo $__APP no $ATUALIZANDO não existe!"
|
||||||
|
}
|
||||||
|
} || {
|
||||||
|
CriarAtalho
|
||||||
|
}
|
||||||
|
}
|
||||||
|
CriarAtalho(){
|
||||||
|
ln -s "$LOCAL/sigext/$__APP" "$LOCAL/$ATUALIZANDO/$_APP$APP" &&
|
||||||
|
echo "Arquivo $__APP do $ATUALIZANDO teve seu atalho criado!"
|
||||||
|
chmod 777 "$LOCAL/$ATUALIZANDO/$_APP$APP"
|
||||||
|
chown $CHOWN:$CHOWN "$LOCAL/$ATUALIZANDO/$_APP$APP"
|
||||||
|
}
|
||||||
|
# ┌──────────────────────────────────────────────────────────┐
|
||||||
|
# └─────────────────────────────────────────────{ ATUALIZAR }┘
|
||||||
|
PerguntarAtualizar(){
|
||||||
|
[ ! -e '/usr/local/bin/hub' ] && wget -q --show-progress -O '/usr/local/bin/hub' "$REPOSITORIO/controle/hub" && chmod 777 '/usr/local/bin/hub'
|
||||||
|
SERVER=$(wget -qO- "$REPOSITORIO/controle/atua" | grep -oP 'VERSAO="\K[^"]+' | head -1)
|
||||||
|
CLIENT=$(grep -oP 'VERSAO="\K[^"]+' '/usr/local/bin/atua' | head -1)
|
||||||
|
[[ "$SERVER" = "$CLIENT" ]] && VerificaInstalados || { MenuAtualizacao
|
||||||
|
while true; do
|
||||||
|
case "$RESPOSTA" in
|
||||||
|
S|Sim|s|sim) sudo su -s '/bin/bash' -c 'hub -A'; exit;;
|
||||||
|
N|Nao|n|nao) MenuStatus 'SAINDO'; exit ;;
|
||||||
|
*) MenuStatus 'INVALIDO'; MenuAtualizacao ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# ┌──────────────────────────────────────────────────────────┐
|
||||||
|
# └─────────────────────────────────────────────{ PRINCIPAL }┘
|
||||||
|
LOGFILE="/tmp/${0##*/}".log
|
||||||
|
exec 1> >(tee -a "$LOGFILE"); exec 2>&1
|
||||||
|
USUARIO=$(id -u); [ "$USUARIO" != '0' ] && MenuSudo || {
|
||||||
|
[ -z "$1" ] && PerguntarAtualizar || {
|
||||||
|
while [ -n "$1" ]; do
|
||||||
|
case "$1" in
|
||||||
|
-U|-u) sudo su -s '/bin/bash' -c 'hub -A'; exit;;
|
||||||
|
-E|-e) Configurar '1'; MenuAtualizar ;;
|
||||||
|
-P|-p) Configurar '2'; MenuAtualizar ;;
|
||||||
|
*) MenuStatus 'INVALIDO'; MenuExecutar ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# └──────────────────────────────────────────────────────────┘
|
||||||
Reference in New Issue
Block a user