ISOsync_pt-BR.py - Um Baixador Automático de ISOs de Sabayon, escrito em Python
Publicado por Alberto Federman Neto. (última atualização em 31/05/2017)
[ Hits: 2.015 ]
Homepage: https://ciencialivre.blog/
Nova versão de Junho de 2017, corrigindo pequenos Bugs de Tradução e Código.
Esta é uma adaptação (para servidores brasileiros) e tradução (para pt-BR) de um "Baixador" de ISOs, para baixar os Sabayon Linux atuais (Daily 17.05 e Monthly 17.03) de Junho de 2017.
O arquivo é uma tradução, atualização (o original era para Sabayon 16) e modificação do arquivo original.escrito em Python (ISO Sync) por Wolfden, EUA. Ele é um dos desenvolvedores do Sabayon.
Link do original:
https://github.com/wolfden/Coding/blob/master/python%20files/iso_rsync#L1
Os servidores RSYNC (originais da Bélgica) foram substituídos pelos espelhos do RSYNC brasileiro, e os comandos de baixar foram modificados para funcionarem com os parâmetros brasileiros.
Para ir atualizando este script, certifique-se de editar as linhas para adequar sempre para as mais recentes ISOs Monthly, veja aqui, quais...
http://sabayon.c3sl.ufpr.br/stable/
Se não editar, não funcionará, somente para as Daily Builds.
Testado em 13 de Junho de 2017, em Sabayon Linux 17.05. Baixa quaisquer "Daily Builds" e as estáveis, Montly, 17.03.
Para rodar o script, execute:
python ISOsync_pt-BR.py
#!/usr/bin/python
# ISORSYNC,Portugues do Brasil, um Baixador Automatico de ISOs novas
# do Sabayon Linux.
# Programado Em Python, por Wolfden, Desenvolvedor Sabayon.
# 2017.
# github.com/wolfden/Coding/blob/master/python%20files/iso_rsync#L1
# Traduzido e Modificado para os Espelhos Brasileiros,em
# Editor Geany:
# Alberto Federman Neto, <albfneto@fcfrp.usp.br>, 2017.
# Versao 4, Build 3.
# Servidor RSYNC trocado para Espelho Brasileiro e comandos adaptados para funcionar
# com os espelhos do Brasil.
# converted Joost's bash script to python by wolfden
# script for rsyncing iso files
# Edit the mirrors to your liking
# Edit the isos directory to your liking
# Agora para as Novas versoes estaveis, 17.03.
# original version for 16.11 stable releases
import subprocess
import sys
# Change daily mirror url to your favorite mirror
# Espelho Brasileiro
mirror = "rsync://sabayon.c3sl.ufpr.br"
mpath = "/sabayon/iso/daily/"
# Change monthly mirror url to your favorite mirror
# Espelho Brasileiro
smirror = "rsync://sabayon.c3sl.ufpr.br"
smpath = "/sabayon/iso/monthly/"
smstab = "/sabayon/stable/"
# Directory of stored ISOs -- Edit to fit your setup
# Diretorio para sua ISO. Modifique, se quiser:
isos = "/home/albfneto/Desktop/PACOTES/sabaisos"
# Dev ISOs
dvkde = "/Sabayon_Linux_DAILY_amd64_KDE-dev.iso"
dvgnome = "/Sabayon_Linux_DAILY_amd64_GNOME-dev.iso"
dvmate = "/Sabayon_Linux_DAILY_amd64_MATE-dev.iso"
dvxfce = "/Sabayon_Linux_DAILY_amd64_Xfce-dev.iso"
dvminimal = "/Sabayon_Linux_DAILY_amd64_Minimal-dev.iso"
dvspinbase = "/Sabayon_Linux_DAILY_amd64_SpinBase-dev.iso"
dvserver = "/Sabayon_Linux_DAILY_amd64_Server-dev.iso"
# Dev ISOs sources
dvksource = mirror + mpath + dvkde
dvgsource = mirror + mpath + dvgnome
dvmasource = mirror + mpath + dvmate
dvxsource = mirror + mpath + dvxfce
dvmsource = mirror + mpath + dvminimal
dvssource = mirror + mpath + dvspinbase
dvsvsource = mirror + mpath + dvserver
# Dev md5
dvkdemd5 = "/Sabayon_Linux_DAILY_amd64_KDE-dev.iso.md5"
dvgnomemd5 = "/Sabayon_Linux_DAILY_amd64_GNOME-dev.iso.md5"
dvmatemd5 = "/Sabayon_Linux_DAILY_amd64_MATE-dev.iso.md5"
dvxfcemd5 = "/Sabayon_Linux_DAILY_amd64_Xfce-dev.iso.md5"
dvminimalmd5 = "/Sabayon_Linux_DAILY_amd64_Minimal-dev.iso.md5"
dvspinbasemd5 = "/Sabayon_Linux_DAILY_amd64_SpinBase-dev.iso.md5"
dvsvsourcemd5 = "/Sabayon_Linux_DAILY_amd64_Server-dev.iso.md5"
# Dev md5 sources
dvksourcemd5 = mirror + mpath + dvkdemd5
dvgsourcemd5 = mirror + mpath + dvgnomemd5
dvmasourcemd5 = mirror + mpath + dvmatemd5
dvxsourcemd5 = mirror + mpath + dvxfcemd5
dvmsourcemd5 = mirror + mpath + dvminimalmd5
dvssourcemd5 = mirror + mpath + dvspinbasemd5
dvsvsourcemd5 = mirror + mpath + dvsvsourcemd5
# Dev pkglist
dvkdepkglist = "/Sabayon_Linux_DAILY_amd64_KDE-dev.iso.pkglist"
dvgnomepkglist = "/Sabayon_Linux_DAILY_amd64_GNOME-dev.iso.pkglist"
dvmatepkglist = "/Sabayon_Linux_DAILY_amd64_MATE-dev.iso.pkglist"
dvxfcepkglist = "/Sabayon_Linux_DAILY_amd64_Xfce-dev.iso.pkglist"
dvminimalpkglist = "/Sabayon_Linux_DAILY_amd64_Minimal-dev.iso.pkglist"
dvspinbasepkglist = "/Sabayon_Linux_DAILY_amd64_SpinBase-dev.iso.pkglist"
dvsvsourcepkglist = "/Sabayon_Linux_DAILY_amd64_Server-dev.iso.pkglist"
# Dev pkglist sources
dvksourcepkglist = mirror + mpath + dvkdepkglist
dvgsourcepkglist = mirror + mpath + dvgnomepkglist
dvmasourcepkglist = mirror + mpath + dvmatepkglist
dvxsourcepkglist = mirror + mpath + dvxfcepkglist
dvmsourcepkglist = mirror + mpath + dvminimalpkglist
dvssourcepkglist = mirror + mpath + dvspinbasepkglist
dvsvsourcepkglist = mirror + mpath + dvsvsourcepkglist
# Daily ISOs
dkde = "/Sabayon_Linux_DAILY_amd64_KDE.iso"
dgnome = "/Sabayon_Linux_DAILY_amd64_GNOME.iso"
dmate = "/Sabayon_Linux_DAILY_amd64_MATE.iso"
dxfce = "/Sabayon_Linux_DAILY_amd64_Xfce.iso"
dminimal = "/Sabayon_Linux_DAILY_amd64_Minimal.iso"
dspinbase = "/Sabayon_Linux_DAILY_amd64_SpinBase.iso"
dforensics = "/Sabayon_Linux_DAILY_amd64_ForensicsXfce.iso"
dserver = "/Sabayon_Linux_DAILY_amd64_Server.iso"
# Daily sources
dksource = mirror + mpath + dkde
dgsource = mirror + mpath + dgnome
dmasource = mirror + mpath + dmate
dxsource = mirror + mpath + dxfce
dmsource = mirror + mpath + dminimal
dssource = mirror + mpath + dspinbase
dfsource = mirror + mpath + dforensics
dsvsource = mirror + mpath + dserver
# Daily md5s
dkdemd5 = "/Sabayon_Linux_DAILY_amd64_KDE.iso.md5"
dgnomemd5 = "/Sabayon_Linux_DAILY_amd64_GNOME.iso.md5"
dmatemd5 = "/Sabayon_Linux_DAILY_amd64_MATE.iso.md5"
dxfcemd5 = "/Sabayon_Linux_DAILY_amd64_Xfce.iso.md5"
dminimalmd5 = "/Sabayon_Linux_DAILY_amd64_Minimal.iso.md5"
dspinbasemd5 = "/Sabayon_Linux_DAILY_amd64_SpinBase.iso.md5"
dforensicsmd5 = "/Sabayon_Linux_DAILY_amd64_ForensicsXfce.iso.md5"
dservermd5 = "/Sabayon_Linux_DAILY_amd64_Server.iso.md5"
# Daily md5 sources
dkmd5source = mirror + mpath + dkdemd5
dgmd5source = mirror + mpath + dgnomemd5
dmamd5source = mirror + mpath + dmatemd5
dxmd5source = mirror + mpath + dxfcemd5
dmmd5source = mirror + mpath + dxfcemd5
dsmd5source = mirror + mpath + dspinbasemd5
dfmd5source = mirror + mpath + dforensicsmd5
dsvmd5source = mirror + mpath + dservermd5
# Daily ISO pkglist
dkdepkglist = "/Sabayon_Linux_DAILY_amd64_KDE.iso.pkglist"
dgnomepkglist = "/Sabayon_Linux_DAILY_amd64_GNOME.iso.pkglist"
dmatepkglist = "/Sabayon_Linux_DAILY_amd64_MATE.iso.pkglist"
dxfcepkglist = "/Sabayon_Linux_DAILY_amd64_Xfce.iso.pkglist"
dminimalpkglist = "/Sabayon_Linux_DAILY_amd64_Minimal.iso.pkglist"
dspinbasepkglist = "/Sabayon_Linux_DAILY_amd64_SpinBase.iso.pkglist"
dforensicspkglist = "/Sabayon_Linux_DAILY_amd64_ForensicsXfce.iso.pkglist"
dserverpkglist = "/Sabayon_Linux_DAILY_amd64_Server.iso.pkglist"
# Daily ISO pkglist sources
dkpkglistsource = mirror + mpath + dkdepkglist
dgpkglistsource = mirror + mpath + dgnomepkglist
dmapkglistsource = mirror + mpath + dmatepkglist
dxpkglistsource = mirror + mpath + dxfcepkglist
dmpkglistsource = mirror + mpath + dminimalpkglist
dspkglistsource = mirror + mpath + dspinbasepkglist
dfpkglistsource = mirror + mpath + dforensicspkglist
dsvpkglistsource = mirror + mpath + dserverpkglist
# Stable ISOs - edit version number to current one, otherwise it will fail
# ISOs de KDE Estaveis, as Monthly. Edite para a mais nova versao, ou nao vai funcionar:
skde = "/Sabayon_Linux_17.03_amd64_KDE.iso"
sgnome = "/Sabayon_Linux_17.03_amd64_GNOME.iso"
smate = "/Sabayon_Linux_17.03_amd64_MATE.iso"
sxfce = "/Sabayon_Linux_17.03_amd64_Xfce.iso"
sminimal = "/Sabayon_Linux_17.03_amd64_Minimal.iso"
sspinbase = "/Sabayon_Linux_17.03_amd64_SpinBase.iso"
sserver = "/Sabayon_Linux_17.03_amd64_Server.iso"
# Stable sources
sksource = smirror + smstab + skde
sgsource = smirror + smstab + sgnome
smasource = smirror + smstab + smate
sxsource = smirror + smstab + sxfce
smsource = smirror + smstab + sminimal
sssource = smirror + smstab + sspinbase
ssvsource = smirror + smstab + sserver
# Stable md5 - edit version number to current one, otherwise it will fail
# ISOs de KDE Estaveis, Monthly. Edite para a mais nova versao, ou nao vai funcionar:
skdemd5 = "/Sabayon_Linux_17.03_amd64_KDE.iso.md5"
sgnomemd5 = "/Sabayon_Linux_17.03_amd64_GNOME.iso.md5"
smatemd5 = "/Sabayon_Linux_17.03_amd64_MATE.iso.md5"
sxfcemd5 = "/Sabayon_Linux_17.03_amd64_Xfce.iso.md5"
sminimalmd5 = "/Sabayon_Linux_17.03_amd64_Minimal.iso.md5"
sspinbasemd5 = "/Sabayon_Linux_17.03_amd64_SpinBase.iso.md5"
sservermd5 = "/Sabayon_Linux_17.03_amd64_Server.iso.md5"
# Stable md5 sources
sksourcemd5 = smirror + smstab + skdemd5
sgsourcemd5 = smirror + smstab + sgnomemd5
smasourcemd5 = smirror + smstab + smatemd5
sxsourcemd5 = smirror + smstab + sxfcemd5
smsourcemd5 = smirror + smstab + sminimalmd5
sssourcemd5 = smirror + smstab + sspinbasemd5
ssvsourcemd5 = smirror + smstab + sservermd5
# Stable pkglist - edit version number to current one, otherwise it will fail
# # ISOs de KDE Estaveis, Monthly. Edite para a mais nova versao, ou nao funcionara:
skdepkglist = "/Sabayon_Linux_17.03_amd64_KDE.iso.pkglist"
sgnomepkglist = "/Sabayon_Linux_17.03_amd64_GNOME.iso.pkglist"
smatepkglist = "/Sabayon_Linux_17.03_amd64_MATE.iso.pkglist"
sxfcepkglist = "/Sabayon_Linux_17.03_amd64_Xfce.iso.pkglist"
sminimalpkglist = "/Sabayon_Linux_17.03_amd64_Minimal.iso.pkglist"
sspinbasepkglist = "/Sabayon_Linux_17.03_amd64_SpinBase.iso.pkglist"
sserverbasepkglist = "/Sabayon_Linux_17.03_amd64_Server.iso.pkglist"
# Stable pkglist sources
sksourcepkglist = smirror + smstab + skdepkglist
sgsourcepkglist = smirror + smstab + sgnomepkglist
smasourcepkglist = smirror + smstab + smatepkglist
sxsourcepkglist = smirror + smstab + sxfcepkglist
smsourcepkglist = smirror + smstab + sminimalpkglist
sssourcepkglist = smirror + smstab + sspinbasepkglist
ssvsourcepkglist = smirror + smstab + sspinbasepkglist
print "\nBenvindo ao Sincronizador: Sabayon Linux(tm) Syncmaster!"
print "\nEscolha Qual Sabayon Voce Quer Baixar!"
# Menu with choice, user will enter a number for desire choice
# Menu de Escolha da ISO.
ans = True
while ans:
print ("""
Sabayon Linux, ISOs Daily, Novas e Tipo Dev:
0.Sabayon_Linux_DAILY_amd64_KDE-dev
1.Sabayon_Linux_DAILY_amd64_GNOME-dev
2.Sabayon_Linux_DAILY_amd64_MATE-dev
3.Sabayon_Linux_DAILY_amd64_Xfce-dev
4.Sabayon_Linux_DAILY_amd64_Minimal-dev
5.Sabayon_Linux_DAILY_amd64_SpinBase-dev
6.Sabayon_Linux_DAILY_amd64_Server-dev
Sabayon Linux ISOs Daily Gerais, as mais Novas:
7.Sabayon_Linux_DAILY_amd64_KDE
8.Sabayon_Linux_DAILY_amd64_GNOME
9.Sabayon_Linux_DAILY_amd64_MATE
10.Sabayon_Linux_DAILY_amd64_Xfce
11.Sabayon_Linux_DAILY_amd64_Minimal
12.Sabayon_Linux_DAILY_amd64_SpinBase
13.Sabayon_Linux_DAILY_amd64_Server
Sabayon Linux, ISOs Montly, Estaveis:
14.Sabayon_Linux_amd64_KDE
15.Sabayon_Linux_amd64_GNOME
16.Sabayon_Linux_amd64_MATE
17.Sabayon_Linux_amd64_Xfce
18.Sabayon_Linux_amd64_Minima
19.Sabayon_Linux_amd64_SpinBase
20.Sabayon_Linux_amd64_Server
Sabayon Forense de Wolfden:
21.Sabayon_Linux_amd64_ForensicsXfce
22.Exit
""")
# All the rsync stuffs via menu selection
# Rsync vai baixar, de acordo com sua selecao
ans = raw_input("Entre com o Numero Correspondente ao Sabayon Que Quer Baixar.")
if ans == "0":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', dvksource, isos])
subprocess.call(['rsync', '-av', '--progress', dvksourcemd5, isos])
subprocess.call(['rsync', '-av',
'--progress', dvksourcepkglist, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "1":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', dvgsource, isos])
subprocess.call(['rsync', '-av', '--progress', dvgsourcemd5, isos])
subprocess.call(['rsync', '-av',
'--progress', dvgsourcepkglist, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "2":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', dvmasource, isos])
subprocess.call(['rsync', '-av', '--progress', dvmasourcemd5, isos])
subprocess.call(['rsync', '-av',
'--progress', dvmasourcepkglist, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "3":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', dvxsource, isos])
subprocess.call(['rsync', '-av', '--progress', dvxsourcemd5, isos])
subprocess.call(['rsync', '-av',
'--progress', dvxsourcepkglist, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "4":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', dvmsource, isos])
subprocess.call(['rsync', '-av', '--progress', dvmsourcemd5, isos])
subprocess.call(['rsync', '-av',
'--progress', dvmsourcepkglist, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "5":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', dvssource, isos])
subprocess.call(['rsync', '-av', '--progress', dvssourcemd5, isos])
subprocess.call(['rsync', '-av',
'--progress', dvssourcepkglist, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "6":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', dvsvsource, isos])
subprocess.call(['rsync', '-av', '--progress', dvsvsourcemd5, isos])
subprocess.call(['rsync', '-av',
'--progress', dvsvsourcepkglist, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "7":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', dksource, isos])
subprocess.call(['rsync', '-av', '--progress', dkmd5source, isos])
subprocess.call(['rsync', '-av',
'--progress', dkpkglistsource, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "8":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', dgsource, isos])
subprocess.call(['rsync', '-av', '--progress', dgmd5source, isos])
subprocess.call(['rsync', '-av', '--progress', dgpkglistsource, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "9":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', dmasource, isos])
subprocess.call(['rsync', '-av', '--progress', dmamd5source, isos])
subprocess.call(['rsync', '-av',
'--progress', dmapkglistsource, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "10":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', dxsource, isos])
subprocess.call(['rsync', '-av', '--progress', dxmd5source, isos])
subprocess.call(['rsync', '-av', '--progress', dxpkglistsource, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "11":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', dmsource, isos])
subprocess.call(['rsync', '-av', '--progress', dmmd5source, isos])
subprocess.call(['rsync', '-av', '--progress', dmpkglistsource, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "12":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', dssource, isos])
subprocess.call(['rsync', '-av', '--progress', dsmd5source, isos])
subprocess.call(['rsync', '-av', '--progress', dspkglistsource, isos])
elif ans == "13":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', dsvsource, isos])
subprocess.call(['rsync', '-av', '--progress', dsvmd5source, isos])
subprocess.call(['rsync', '-av',
'--progress', dsvpkglistsource, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "14":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', sksource, isos])
subprocess.call(['rsync', '-av', '--progress', sksourcemd5, isos])
subprocess.call(['rsync', '-av', '--progress', sksourcepkglist, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "15":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', sgsource, isos])
subprocess.call(['rsync', '-av', '--progress', sgsourcemd5, isos])
subprocess.call(['rsync', '-av', '--progress', sgsourcepkglist, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "16":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', smasource, isos])
subprocess.call(['rsync', '-av', '--progress', smasourcemd5, isos])
subprocess.call(['rsync', '-av',
'--progress', smasourcepkglist, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "17":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', sxsource, isos])
subprocess.call(['rsync', '-av', '--progress', sxsourcemd5, isos])
subprocess.call(['rsync', '-av', '--progress', sxsourcepkglist, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "18":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', smsource, isos])
subprocess.call(['rsync', '-av', '--progress', smsourcemd5, isos])
subprocess.call(['rsync', '-av',
'--progress', smsourcepkglist, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "19":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', sssource, isos])
subprocess.call(['rsync', '-av', '--progress', sssourcemd5, isos])
subprocess.call(['rsync', '-av', '--progress', sssourcepkglist, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "20":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', ssvsource, isos])
subprocess.call(['rsync', '-av', '--progress', ssvsourcemd5, isos])
subprocess.call(['rsync', '-av',
'--progress', ssvsourcepkglist, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "21":
print "Iniciando RSYNC e Baixando..."
subprocess.call(['rsync', '-av', '--progress', dfsource, isos])
subprocess.call(['rsync', '-av', '--progress', dfmd5source, isos])
subprocess.call(['rsync', '-av', '--progress', dfpkglistsource, isos])
print "Sincronismo Completo e ISO Baixada."
elif ans == "22":
print "Obrigado por usar o Sincronizador, Sabayon Linux(tm) Syncmaster"
sys.exit()
elif ans != "":
print "Erro ou Arquivo nao Achado"
Conversor de dólares em reais e vice-versa
Cria no fluxbox um menu para mudar o wallpaper
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Adicionar botão "mostrar área de trabalho" no Zorin OS
Como montar um servidor de backup no linux
Trazendo de volta o Serviços em Segundo Plano no Plasma6









