3 votes

Python fabric sudo() renvoie des caractères d'échappement bizarres en sortie

Le code que j'essaie d'exécuter :

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)

Exécuté avec fabric 0.9.something :

$ 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"

Exécuté avec le tissu 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>"

Vous pouvez voir que la sortie du tissu 1.2.2 a quelques caractères d'échappement non désirés autour de la sortie réelle.

J'ai essayé d'utiliser sudo('... ').stdout, mais le résultat est le même.

Des idées ?

3voto

favoretti Points 10076

Conformément au journal des modifications de Fabric :

Dans le cadre des changements effectués dans le #7, run et sudo ont eu la valeur par défaut de leurs kwargs pty changée de False à True. Ceci, plus l'ajout de la kwarg/env var combine_stderr, peut entraîner des changements de comportement significatifs dans les programmes distants qui fonctionnent différemment lorsqu'ils sont attachés à un tty.

En fait, de 0.9 à 1.x, la valeur par défaut a été échangée, d'où la différence de résultats.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X