run_update - Atualizador de Sabayon

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

[ Hits: 2.754 ]

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

Verificar se um número é primo

Interface para Qemu

Avaliador de Expressões Simples

Bandwidth plugin para xchat

Coquetel


  

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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts