Как при выозве команды «git clone» получать вывод в процессе её выполнения?

python 3

Я так понимаю дело в subprecess.Popen, но я уже замучался перебирать варианты, вот код, который не работает\

import subprocess, shlex
from typing import Callable
def RunCommandAndWatchItsProcess(cmd: str, watch: Callable[[str], None], **kwargs) -> None:
    """ Runs system command in another process. """

    # quoting arguments
    for k in kwargs:
        cmd = cmd.replace('%' + k, shlex.quote(kwargs[k]))

    print(shlex.split(cmd))
    proc = subprocess.Popen(
        #["#!/usr/bin/sh\n" + cmd]
        shlex.split(cmd)
        , stdout=subprocess.PIPE)

    while proc.poll() is None:
         line = proc.stdout.readline()
         print("...")
         watch (line)

RunCommandAndWatchItsProcess("git clone %url /tmp/abff1c3f4fg44f551", lambda str: print('`' + str.decode() + '`'), url="https://github.com/vega0/gm_sourcenet")


Так же заголовок вопроса применим ко всем другим вызовам функции, при которой watch не срабатывает
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы