2017-12-19 4 views
0

Wenn Sie ansible-playbook in einer Konsole ausführen, kann das Konsolenfenster verkleinert werden, um die Zeilenlänge der Konsolenausgabe zu begrenzen. ansible verwendet die fcntl.ioctlTIOCGWINSZ zu bekommen, wenn sie einen tty findet os.isatty(0) zB: (von /ansible/utils/display.py kopiert)Begrenzte Zeilenlänge in der Konsolenausgabe von ansible

def _set_column_width(self): 
    if os.isatty(0): 
     tty_size = unpack('HHHH', 
         fcntl.ioctl(0, TIOCGWINSZ, pack('HHHH', 0, 0, 0, 0)))[1] 
    else: 
     tty_size = 0 
    self.columns = max(79, tty_size - 1) 

Tools wie man eine Umgebung MANWIDTH Variable bieten diese zur Verfügung zu stellen, ohne die Größe ändern Konsolenfenster.

Wie kann ich die Größe der Konsolenausgabe ändern, ohne die Größe des Konsolenfensters zu ändern?

Antwort

0

Der Check-in ansilbes os.isatty(0) prüft, ob stdin offen ist, so dass die Lösung nur stdin umleiten sollte, wenn der Befehl zum Beispiel den Aufruf, ich habe:

ansible-playbook -v -i dev --check --diff playbook.yml 0</dev/null

Hinweis: diese Begrenzung nicht den Ausgang von den Modulen, aber das ist eine andere Geschichte, schätze ich.

BEARBEITEN: Wie in der Funktion _set_column_width zu sehen ist, ist der Ausgang standardmäßig auf 79 Zeichenzeilenlänge eingestellt, wenn kein TTY vorhanden ist (Stdin ist geschlossen).