run_update - Atualizador de Sabayon

Publicado por Alberto Federman Neto. (última atualização em 15/09/2016)

[ Hits: 1.906 ]

Homepage: https://ciencialivre.blog/

Download run_update




Script em Python, para atualizar o Sabayon.

O mérito não é meu. Autoria original de WolfDen, KJS, Dakota do Norte, EUA. Um dos Desenvolvedores do Sabayon Linux:

http://wolf911.us/wgo/script-for-updating-sabayon/
https://github.com/wolfden/Coding/blob/master/python%20files/run_update">https://github.com/wolfden/Coding/blob/master/python%20files/run_update
https://github.com/wolfden

Publico aqui a primeira tradução do script, para o Português Brasileiro.

Observação: não rode, se você usa os repositórios brasileiros como padrão. O comando interno "equo repo mirrorsort" vai bagunçar sua lista de repositórios!

  



Esconder código-fonte

#!/usr/bin/python

# Script in Python, for Upgrading Sabayon Linux
# created by wolfden
# Translated  (to Brazilian Portuguese) by:
# albfneto <albfneto@fcfrp.usp.br>


# my first py file ever

# gol - Atualizar Sabayon com muito pouca intervenção Humana.

import datetime
import subprocess
import argparse
import sys
import time
import os


# Colocando algumas côres legais!
class Bcolors:
    def __init__(self):
        pass

    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKGREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    ENDC = '\033[0m'
    BOLD = '\033[1m'
    UNDERLINE = '\033[4m'

# Checando se o usuário é Root:
if os.geteuid() != 0:
    print "Você deve ser Root, ou entre com sua senha para o Sudo"
    os.execvp("sudo", ["sudo"] + sys.argv)

# Argumentos. Otimizar os repositórios:
# [--limbo] [--main] [--weekly] [--status]
parser = argparse.ArgumentParser()
parser.add_argument("--limbo", help="Otimizar Repositorio Limbo", action="store_true")
parser.add_argument("--main", help="Otimizar repositório Principal", action="store_true")
parser.add_argument("--weekly", help="Otimizar Repositorio Weekly", action="store_true")
parser.add_argument("--status", help="Estado dos Repositorios", action="store_true")
args = parser.parse_args()

if args.limbo:
    print "Otimizando Repositorio Limbo"
    time.sleep(1)
    limbo = subprocess.Popen('equo repo mirrorsort sabayon-limbo', shell=True)
    retval = limbo.wait()
    sys.exit()
elif args.main:
    print "Otimizando Repositório SabayonLinux"
    time.sleep(1)
    main = subprocess.Popen('equo repo mirrorsort \
    sabayonlinux.org', shell=True)
    retval = main.wait()
    sys.exit()
elif args.weekly:
    print "Otimizando Repositório Weekly"
    time.sleep(1)
    weekly = subprocess.Popen('equo repo mirrorsort \
    sabayon-weekly', shell=True)
    retval = weekly.wait()
    sys.exit()
elif args.status:
    print "Avaliando Estado do Repositórios"
    time.sleep(1)
    status = subprocess.Popen('equo status', shell=True)
    retval = status.wait()
    sys.exit()

# Horário para Iniciar:
startTime = datetime.datetime.now()
# Date and Time of Start
date_start = subprocess.Popen('date', shell=False)
retval = date_start.wait()

# Deixe-me quais são os repositórios utilizados:
print Bcolors.BOLD + "====Repositorios Ativados====" + Bcolors.ENDC
equo_repo = subprocess.check_call("equo repo list", shell=True)

# Primeiro precisa atualizar, ou ver seus repositórios correntes
print Bcolors.BOLD + "====Updating the Repositories====" + Bcolors.ENDC
equo_update = subprocess.check_call('equo update', shell=True)

# Sincronizando as licenças, assim não precisa entrar com elas
print Bcolors.BOLD + "====Atualizando aceitação das licenças====" 
+ Bcolors.ENDC
rsync = subprocess.check_call('rsync -av -H -A -X --delete-during \
    "rsync://rsync.at.gentoo.org/gentoo-portage/licenses/" \
    "/usr/portage/licenses/"; ls /usr/portage/licenses -1 | \
    xargs -0 > /etc/entropy/packages/license.accept', shell=True)

# Vendo se o último Entropy está instalado
print Bcolors.BOLD + "====Instalando Último Entropy====" + Bcolors.ENDC
equo_entropy = subprocess.check_call('equo install app-admin/equo \
    sys-apps/entropy --nodeps', shell=True)

# Listando atualizações disponíveis
print Bcolors.BOLD + "====Quantos pacotes a atualizar?====" + Bcolors.ENDC
equo_upgrades_available = subprocess.check_call('equo q updates', shell=True)

# Começando as Atualizações
print Bcolors.BOLD + "====Começando a Atualizar====" + Bcolors.ENDC
equo_upgrade = subprocess.check_call('equo upgrade', shell=True)

# Procurando Dependências
print Bcolors.BOLD + "====Procurando as Dependências====" + Bcolors.ENDC
equo_dep = subprocess.check_call('equo deptest', shell=True)

#Limpando
print Bcolors.BOLD + "====Limpando as Instalações====" + Bcolors.ENDC
equo_clean = subprocess.check_call('equo cleanup', shell=True)

print " \n"
print "==================Informações do Sistema==================="


# Mostrando Informação Complementar no Terminal
cpu = subprocess.check_call('uname -p', shell=True)
kernel_arch = subprocess.check_call('uname -m', shell=True)
release_version = subprocess.check_call('cat /etc/sabayon-release', shell=True)
release_edition = subprocess.check_call('cat /etc/sabayon-edition', shell=True)
kernel_version = subprocess.check_call('uname -r', shell=True)
nodename = subprocess.check_call('uname -n', shell=True)
print " \n"
print "~~~Memória Livre~~~"
mem_free = subprocess.check_call('free -h', shell=True)
print " \n"
print "~~~Espaço de Disco~~~"
disk_space = subprocess.check_call('df -lT --exclude-type=tmpfs \
    --exclude-type=rootfs', shell=True)

print " \n"
print Bcolors.BOLD + "Atualização completada com sucesso" + Bcolors.ENDC

# Data da Finalização:
date_end = subprocess.Popen('date', shell=False)

# Tempo de Execução Total
ctime = datetime.datetime.now() - startTime
print "Tempo de execução total ", ctime


print " \n"

Scripts recomendados

Máquina de Turing em Python 3

Calculadora do IMC em Tkinter

Script para Away com varias funções para xchat.

Mensagem Randômica ao Conectar via SSH

Teclado Numérico


  

Comentários
[1] Comentário enviado por Lisandro em 18/09/2016 - 09:14h

Excelente! Parabéns Alberto, por mais esta ótima contribuição.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts