35 lines
		
	
	
		
			952 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			952 B
		
	
	
	
		
			Python
		
	
	
	
| import sys, os
 | |
| 
 | |
| def get_terminal_width():
 | |
|     try:
 | |
|         import termios,fcntl,struct
 | |
|         call = fcntl.ioctl(0,termios.TIOCGWINSZ,"\000"*8)
 | |
|         height,width = struct.unpack( "hhhh", call ) [:2]
 | |
|         terminal_width = width
 | |
|     except (SystemExit, KeyboardInterrupt), e:
 | |
|         raise
 | |
|     except:
 | |
|         # FALLBACK
 | |
|         terminal_width = int(os.environ.get('COLUMNS', 80))-1
 | |
|     return terminal_width
 | |
| 
 | |
| terminal_width = get_terminal_width()
 | |
| 
 | |
| def ansi_print(text, esc, file=None, newline=True, flush=False):
 | |
|     if file is None:
 | |
|         file = sys.stderr
 | |
|     text = text.rstrip()
 | |
|     if esc and sys.platform != "win32" and file.isatty():
 | |
|         if not isinstance(esc, tuple):
 | |
|             esc = (esc,)
 | |
|         text = (''.join(['\x1b[%sm' % cod for cod in esc])  +  
 | |
|                 text +
 | |
|                 '\x1b[0m')     # ANSI color code "reset"
 | |
|     if newline:
 | |
|         text += '\n'
 | |
|     file.write(text)
 | |
|     if flush:
 | |
|         file.flush()
 | |
| 
 | |
| 
 |