Do not emit progress if stderr is not a tty

Avoids logging progress data into cron logs, etc.

Suggested-by: Michael Richardson <mcr@sandelman.ottawa.on.ca>
Change-Id: I4eefa2c282f0ca0a95a0185612b52e2146669e4c
Signed-off-by: Shawn O. Pearce <sop@google.com>
This commit is contained in:
Shawn O. Pearce 2010-05-27 16:48:36 -07:00
parent 18afd7f679
commit f4f04d9fa8

View File

@ -13,10 +13,13 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
import os
import sys import sys
from time import time from time import time
from trace import IsTrace from trace import IsTrace
_NOT_TTY = not os.isatty(2)
class Progress(object): class Progress(object):
def __init__(self, title, total=0): def __init__(self, title, total=0):
self._title = title self._title = title
@ -29,7 +32,7 @@ class Progress(object):
def update(self, inc=1): def update(self, inc=1):
self._done += inc self._done += inc
if IsTrace(): if _NOT_TTY or IsTrace():
return return
if not self._show: if not self._show:
@ -56,7 +59,7 @@ class Progress(object):
sys.stderr.flush() sys.stderr.flush()
def end(self): def end(self):
if IsTrace() or not self._show: if _NOT_TTY or IsTrace() or not self._show:
return return
if self._total <= 0: if self._total <= 0: