Beispiel #1
0
def check_updates():
    """Executa o procedimento de busca e instalação de atualizações"""

    cli.i_am("Procurando atualizações...")

    try:
        latest_release = _fetch_latest_release()
    except RuntimeError as ex:
        gui.error("Falha na atualização." +
                  "Verifique sua conexão com a internet.")
        log.error("fetch-releases", ex)
        return

    cli.info("Encontrado: " + latest_release['tag_name'])

    if latest_release['tag_name'] == version.current():
        cli.success("O god está atualizado.")
        return

    cli.error("O god está desatualizado!")

    if _confirm(latest_release):
        update_dir = _download_update(latest_release)
        _install_update(update_dir)

        version.set_tag(latest_release['tag_name'])

        with open(".version", "w") as version_file:
            version_file.write(version.current())

        os.system("start python apply_update.py")
        sys.exit(0)
    else:
        cli.warning("Ignorando atualização. " +
                    "Cuidado, isso geralmente dá ruim.")
Beispiel #2
0
def use_inet_phrases():
    """Tenta usar frases e autores da internet, se falha usa os locais"""

    cli.i_am("Pegando umas frases aleatórias...")
    try:
        amount = quotes.load_inet()
        cli.success("{} frases".format(amount))
    except RuntimeError:
        cli.error("Falhou :(")
        use_stored_phrases()
Beispiel #3
0
def load_phrases():
    """Carrega informações para citações da fonte mais adequada"""

    cli.i_am("Checando conexão com a internet...")

    if god.check_internet():
        cli.success("OK")
        cli.list_begin()
        use_inet_phrases()
        cli.list_end()
    else:
        cli.error("Internet indisponível")
        cli.list_begin()
        use_stored_phrases()
        cli.list_end()
Beispiel #4
0
def run():
    """Executa o loop de comandos interativos

    Nota
    ----
    Esse método trava a execução até o usuário lançar um comando `quit`

    """

    try:
        while True:
            line = cli.read_command()
            parts = re.split(r"\s+", line)
            command = parts[0].lower()

            for alternatives in _COMMAND_MAP:
                if command in alternatives:
                    _COMMAND_MAP[alternatives](*parts[1:])
                    break
            else:
                cli.error(
                    f"\tComando não reconhecido: `{command}`. Veja `help`.")
    except RuntimeError as ex:
        log.error("interactive", ex)
Beispiel #5
0
def danger():
    """Sinaliza uso de memória elevado e toma as ações necessárias

    Nota
    ----
    Esse método altera o estado do programa para `alert`

    Em caso de falha ao executar as instruções de alerta, usa-se um
    bloco de notas "flashbang" como medida provisória.

    """

    god.state = 'alert'

    try:
        with open('danger.yml', 'r') as danger_file:
            danger_yml = yaml.load(danger_file)

            if 'flashbang' in danger_yml and danger_yml['flashbang']:
                flashbang_notepad()

            if 'kill' in danger_yml and danger_yml['kill']:
                kill_processes(danger_yml['kill'])

            if 'cmd' in danger_yml and danger_yml['cmd']:
                for pname in danger_yml['cmd']:
                    os.system(pname)

            if 'popup' in danger_yml and danger_yml['popup']:
                gui.warning(danger_yml['popup'])

    except RuntimeError as ex:
        log.error("on_danger", ex)
        cli.error("OH GOD OH F**K, I CAN'T RUN THE INSTRUCTIONS!!!!1!!1!!!")
        cli.error("Flashbang it is, then.")
        flashbang_notepad()
Beispiel #6
0
 def func_wrapper(*args):
     if not args[0].isnumeric():
         cli.error("\tEsperava um número. Veja `help`.")
         return None
     return cmd_func(int(args[0]))
Beispiel #7
0
 def func_wrapper(*args):
     if len(args) != 1:
         cli.error("\tSintaxe incorreta. Veja `help`.")
         return None
     return cmd_func(*args)
Beispiel #8
0
 def func_wrapper(*args):
     if len(args) > 1:
         cli.error("\tNão esperava parâmetros, mas OK.")
     return cmd_func(*args)