Код, который я пытаюсь запустить:
from fabric.api import *
from fabric.contrib.files import *
def git():
with cd('/home/something'):
output = sudo('git log --pretty=oneline --no-color --abbrev-commit -n 1 HEAD')
print repr(output)
Выполнено с тканью 0,9. Что-то:
$ fab git
[localhost] Executing task 'git'
[localhost] sudo: git log --pretty=oneline --no-color --abbrev-commit -n 1 HEAD
Password for deploy@localhost:
[localhost] out: 67bec96 Merge branch 'master' of /home/something
"67bec96 Merge branch 'master' of /home/something"
Исполнено с тканью 1.2.2:
$ fab git
[localhost] Executing task 'git'
[localhost] sudo: git log --pretty=oneline --no-color --abbrev-commit -n 1 HEAD
[localhost] Login password:
[localhost] out: sudo password:
[localhost] out: 67bec96 Merge branch 'master' of /home/something
[localhost] out:
"\x1b[?1h\x1b=\r67bec96 Merge branch 'master' of /home/something\x1b[m\r\n\r\x1b[K\x1b[?1l\x1b>"
Вы можете видеть, что выходные данные из ткани 1.2.2 содержат некоторые нежелательные escape-символы вокруг фактического вывода.
Я пытался использовать sudo ('...') .stdout, но результат тот же.
Идеи