2017-02-15 10 views
3

콘솔 착색을 지원하는 앱의 일반적인 규칙은 현재 콘솔이 TTY 인 경우 콘솔을 활성화하는 것입니다.색을 활성화하기 위해 파이썬에서 의사 콘솔을 감지하는 방법은 무엇입니까?

이 방법은 가상 콘솔 용 TTY를 열지 않기 때문에 Jenkins, Travis 등과 같은 연속 통합 서버에서 중단됩니다.

는 이러한 이가지 경우를 구별 할 수 있다면 나는 궁금 :

  • mycommand 실행 젠킨스에서 - 우리가 색을
  • mycommand >> output.log 사용하려면 - 우리가 ANSI로 끝내고 싶지 않아 로그 파일에서 빠져 나옵니다.

내 오랜 ANSI 감지 코드 :

import sys 
import os 

if (hasattr(sys.stderr, "isatty") and sys.stderr.isatty()) or \ 
    ('TERM' in os.environ.keys() and os.environ['TERM'] in ['linux']) or \ 
    ('PYCHARM_HOSTED' in os.environ.keys()): 
    coloring = True 

내가이 문제를 해결하기 위해이를 개선 할 수 있습니까?

답변

2

이미 환경 변수 PYCHARM_HOSTED을 사용하고 있으므로 CI 환경에서 비슷한 것을 사용하는 것이 좋습니다. 당신은 구체적으로 젠킨스와 트래비스에 대해 언급했습니다. 이 두 시스템 모두 사용할 수있는 환경 변수를 설정합니다.

JENKINS_URL Set to the URL of the Jenkins master that's running the build. 
BUILD_URL The URL where the results of this build can be found. 
BUILD_TAG String of jenkins-${JOB_NAME}-${BUILD_NUMBER}. 

(Source)

트래비스 환경 변수 :

CI=true 
TRAVIS=true 
CONTINUOUS_INTEGRATION=true 

(Source)

일부 가능성은 ...

젠킨스 환경 변수입니다