summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2015-02-17 01:28:47 -0800
committerTodd Gamblin <tgamblin@llnl.gov>2015-02-18 10:59:03 -0800
commit14097e39ccc77e03574119eac59524ad2bb60c6f (patch)
tree61392cb3d30f5b08cb74f2b4f64dab83f68efc45
parent44003449d594e9ba8ea1adaed84c7c938b439972 (diff)
downloadspack-14097e39ccc77e03574119eac59524ad2bb60c6f.tar.gz
spack-14097e39ccc77e03574119eac59524ad2bb60c6f.tar.bz2
spack-14097e39ccc77e03574119eac59524ad2bb60c6f.tar.xz
spack-14097e39ccc77e03574119eac59524ad2bb60c6f.zip
Suppress download status meter when routing I/O to a file.
-rw-r--r--lib/spack/spack/fetch_strategy.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/lib/spack/spack/fetch_strategy.py b/lib/spack/spack/fetch_strategy.py
index a71f3a1531..48313e2b37 100644
--- a/lib/spack/spack/fetch_strategy.py
+++ b/lib/spack/spack/fetch_strategy.py
@@ -41,6 +41,7 @@ in order to build it. They need to define the following methods:
Archive a source directory, e.g. for creating a mirror.
"""
import os
+import sys
import re
import shutil
from functools import wraps
@@ -141,13 +142,19 @@ class URLFetchStrategy(FetchStrategy):
tty.msg("Trying to fetch from %s" % self.url)
+ curl_args = ['-O', # save file to disk
+ '-f', # fail on >400 errors
+ '-D', '-', # print out HTML headers
+ '-L', self.url,]
+
+ if sys.stdout.isatty():
+ curl_args.append('-#') # status bar when using a tty
+ else:
+ curl_args.append('-sS') # just errors when not.
+
# Run curl but grab the mime type from the http headers
- headers = spack.curl('-#', # status bar
- '-O', # save file to disk
- '-f', # fail on >400 errors
- '-D', '-', # print out HTML headers
- '-L', self.url,
- return_output=True, fail_on_error=False)
+ headers = spack.curl(
+ *curl_args, return_output=True, fail_on_error=False)
if spack.curl.returncode != 0:
# clean up archive on failure.