Use `stty size` to find terminal width if we're on linux and COLUMNS is not exported
authorGeorgi Valkov <georgi.t.valkov@gmail.com>
Tue, 23 Aug 2011 14:03:28 +0000 (17:03 +0300)
committerGeorgi Valkov <georgi.t.valkov@gmail.com>
Tue, 23 Aug 2011 14:03:28 +0000 (17:03 +0300)
youtube-dl

index 34a60afffc553a93f1706bce6efe25f75ff92547..251254765b4c831ca55581c4b8d8b535e88b4523 100755 (executable)
@@ -2744,11 +2744,21 @@ def parseOpts():
 
                return "".join(opts)
 
+       def _find_term_columns():
+               columns = os.environ.get('COLUMNS', None)
+               if columns: return int(columns)
+
+               if sys.platform.startswith('linux'):
+                       try: columns = os.popen('stty size', 'r').read().split()[1]
+                       except: pass
+
+               if columns: return int(columns)
+
        max_width = 80
        max_help_position = 80
 
        # No need to wrap help messages if we're on a wide console
-       columns = os.environ.get('COLUMNS', None)
+       columns = _find_term_columns()
        if columns: max_width = columns
 
        fmt = optparse.IndentedHelpFormatter(width=max_width, max_help_position=max_help_position)