def install_tor(self): if sys_kernel() == 'Windows': self.download_file() self.windows() elif sys_kernel() == 'Linux': self.download_file() self.unpack_file() self.linux()
def set_cache_dir(self): ''' O arquivo será baixado no diretório de cache ''' if sys_kernel() == 'Linux': dirCache = (f'{DirHomeUser}/.cache/download') elif sys_kernel() == 'Windows': dirCache = ('{}\\download'.format(tmpDir)) if os.path.isdir(dirCache) == False: os.makedirs(dirCache) return dirCache
def remove_tor(self): yellow('Removendo torbrowser') if sys_kernel() == 'Windows': self.remove_torwindows() elif sys_kernel() == 'Linux': self.remove_torlinux()
class ConfigTor: ''' Setar o URL de acordo com o sistema e setar o caminho completo de onde o arquivo deve ser baixado diretório+nome_do_arquivo.exe/.tar.xz ''' if sys_kernel() == 'Linux': url = SetDataTor().set_linux_url() file = SetDataTor().set_filename_linux() # Nome do arquivo. dirCache = SetDataTor().set_cache_dir() # Pasta de download file = (f'{dirCache}/{file}') # Path completo no disco. elif sys_kernel() == 'Windows': url = SetDataTor().set_windows_url() file = SetDataTor().set_filename_windows() dirCache = SetDataTor().set_cache_dir() file = (f'{dirCache}\\{file}') def __init__(self): pass def bar_custom(self, current, total, width=80): # https://pt.stackoverflow.com/questions/207887/como-imprimir-texto-na-mesma-linha-em-python # print('\033[K[>] Progresso: %d%% [%d / %d]MB ' % (progress, current, total), end='\r') # current = current / 1048576 # Converter bytes para MB total = total / 1048576 # Converter bytes para MB progress = (current / total) * 100 # Percentual if progress == '100': print('[>] Progresso: %d%% [%d / %d]MB ' % (progress, current, total)) print('\033[K[>] Progresso: %d%% [%d / %d]MB ' % (progress, current, total), end='\r') def download_file(self): ''' wget.download(url, out=None, bar=<function bar_adaptive at 0x7f7fdfed9d30>) wget.download(url, out=None, bar=bar_adaptive(current, total, width=80)) ''' import wget if os.path.isfile(self.file): yellow(f'Arquivo encontrado: {self.file}') return yellow(f'Baixando: {self.url}') yellow(f'Destino: {self.file}') try: wget.download(self.url, self.file, bar=self.bar_custom) print('OK ') except: print('\n') red('Falha no download') if os.path.isfile(self.file): os.remove(self.file) def unpack_file(self): # https://docs.python.org/3.3/library/tarfile.html yellow(f'Descomprimindo: {self.file}') yellow(f'Destino: {DirUnpackTor}') os.chdir(DirUnpackTor) tar = tarfile.open(self.file) tar.extractall() tar.close() def linux(self): ''' Instalar o tor no linux. ''' dir_temp_tor = (f'{DirUnpackTor}/tor-browser_en-US') list_files = os.listdir(dir_temp_tor) if os.path.isdir(DESTINATION_TOR) == False: yellow(f'Criando: {DESTINATION_TOR}') os.makedirs(DESTINATION_TOR) os.chdir(dir_temp_tor) # Mover arquivos descompactados para o diretório de instalação. for X in range(0, len(list_files)): OldFile = list_files[X] NewFile = (f'{DESTINATION_TOR}/{list_files[X]}') if (os.path.isdir(NewFile)) or (os.path.isfile(NewFile)): yellow(f'Encontrado: {NewFile}') else: yellow(f'Movendo: {OldFile} => {NewFile}') shutil.move(OldFile, NewFile) shutil.rmtree(DirUnpackTor) yellow(f'Criando atalho para execução em: {EXECUTABLE_TOR}') with open(EXECUTABLE_TOR, 'w') as f: f.write('#!/bin/sh\n') f.write(f'cd {DESTINATION_TOR}\n') f.write('{}/{}\n'.format(DESTINATION_TOR, 'start-tor-browser.desktop "$@"')) yellow(f'Executando: chdir {DESTINATION_TOR}') os.chdir(DESTINATION_TOR) os.chmod('start-tor-browser.desktop', 0o755) os.chmod(EXECUTABLE_TOR, 0o755) yellow('./{} --register-app'.format('start-tor-browser.desktop')) os.system('./{} --register-app'.format('start-tor-browser.desktop')) yellow('Use: torbrowser --help - para mais informações') os.system('torbrowser') def remove_torlinux(self): ''' Desinstalar tor no Linux ''' if os.path.isfile(DESKTOP_FILE) == True: yellow(f'Removendo: {DESKTOP_FILE}') os.remove(DESKTOP_FILE) if os.path.isfile(EXECUTABLE_TOR): yellow(f'Removendo: {EXECUTABLE_TOR}') os.remove(EXECUTABLE_TOR) def windows(self): ''' Executa o instalador .exe do windows ''' os.chdir(f"{self.dirCache}") os.system(self.file) # Executar o instalador def remove_torwindows(self): pass def install_tor(self): if sys_kernel() == 'Windows': self.download_file() self.windows() elif sys_kernel() == 'Linux': self.download_file() self.unpack_file() self.linux() def remove_tor(self): yellow('Removendo torbrowser') if sys_kernel() == 'Windows': self.remove_torwindows() elif sys_kernel() == 'Linux': self.remove_torlinux()
__version__ = '2020-06-06' import sys import os import re import tempfile import tarfile import shutil import argparse import urllib.request from subprocess import getstatusoutput from platform import system as sys_kernel from pathlib import Path if sys_kernel() == 'Linux': CRed = '\033[0;31m' CGreen = '\033[0;32m' CYellow = '\033[0;33m' CWhite = '\033[0;37m' CReset = '\033[m' else: CRed = '' CGreen = '' CYellow = '' CWhite = '' CReset = '' # Linux ou Windows? if (sys_kernel() != 'Linux') and (sys_kernel() != 'Windows'): print(f'{CRed}Execute este programa em sistemas Linux ou Windows{CReset}')
CBRed = '\033[5;31m' CBGreen = '\033[5;32m' CBYellow = '\033[5;33m' CBBlue = '\033[5;34m' CBWhite = '\033[5;37m' # Reset CReset = '\033[0m' # root if os.geteuid() == int('0'): red('Usuário não pode ser o root saindo') sys.exit('1') # Linux if (sys_kernel() != 'Linux') and (sys_kernel != 'FreeBSD'): red('Execute este program em sistemas Linux ou FreeBSD') exit() parser = argparse.ArgumentParser( description='Instala o wine e programas relacionados em sistemas Linux.') parser.add_argument('-v', '--version', action='version', version=(f"%(prog)s {__version__}")) parser.add_argument( '-l', '--list', action='store_true',
def __init__(self, os_kernel=sys_kernel()): self.os_kernel = os_kernel