Найти - Пользователи
Полная версия: проблема с выводом в stdout в хуке для SVN
Начало » Python для новичков » проблема с выводом в stdout в хуке для SVN
1
sober
Доброго времени суток;

необходимо в хуке для svn сделать вывод в sys.stdout либо sys.stderr в зависимости от результата выполнения метода, например:

def execute():
"""returns True or False"""
...
return succeed

if __name__ == "__main__":

# if succeed
if (execute()):
sys.stdout.write("Hook execution succeed!")
return 0
else:
sys.stderr.write('Hook execution failed!')
return 1
проблема в том, что аутпут виден только в том случае, когда хук пишет в stderr и возвращает единицу; в случае когда хук успешно отрабатывает, все что пишеться в stdout пользователь не видит; подскажите, пожалуйста, в чем может быть проблема.

Простите если это оффтопик и совсем не про python :)
pasaranax
вставляй в нужных местах sys.stdout.flush(), чтобы скинуть буфер
sober
pasaranax, спасибо за совет;
К сожалению, флаш буфера не помог; =(

пробовал так:

import sys
import logging

if __name__ == '__main__':

logger = logging.getLogger(__name__)
stream_hdlr = logging.StreamHandler()
logger.addHandler(stream_hdlr)
logger.setLevel(logging.INFO)

logger.info('starting hook')
stream_hdlr.flush()

sys.stdout.write('writing to stdout')
sys.stdout.flush()
Буду рад любым советам и замечаниям.
sober
никто не знает, в чем может быть проблема?
kmet
судя по этому http://svnbook.red-bean.com/en/1.1/ch05s02.html для хуков start-commit и pre-commit клиенту передается только вывод stderr
sober
действительно, судя по документации, клиент не получает вывод хуков в stdout;
kmet и pasaranax, благодарю за помощь! :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB