Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import atexit | 5 import atexit |
| 6 import datetime | 6 import datetime |
| 7 import email.utils | 7 import email.utils |
| 8 import errno | 8 import errno |
| 9 import gzip | |
| 10 import hashlib | 9 import hashlib |
| 11 import logging | 10 import logging |
| 12 import math | 11 import math |
| 13 import os.path | 12 import os.path |
| 14 import shutil | |
| 15 import socket | 13 import socket |
| 14 import subprocess | |
| 15 import tempfile | |
| 16 import threading | 16 import threading |
| 17 import tempfile | |
| 18 | 17 |
| 19 import SimpleHTTPServer | 18 import SimpleHTTPServer |
| 20 import SocketServer | 19 import SocketServer |
| 21 | 20 |
| 22 _ZERO = datetime.timedelta(0) | 21 _ZERO = datetime.timedelta(0) |
| 23 | 22 |
| 24 | 23 |
| 25 class UTC_TZINFO(datetime.tzinfo): | 24 class UTC_TZINFO(datetime.tzinfo): |
| 26 """UTC time zone representation.""" | 25 """UTC time zone representation.""" |
| 27 | 26 |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 148 for prefix, local_base_path_list in mappings: | 147 for prefix, local_base_path_list in mappings: |
| 149 if normalized_path.startswith(prefix): | 148 if normalized_path.startswith(prefix): |
| 150 for local_base_path in local_base_path_list: | 149 for local_base_path in local_base_path_list: |
| 151 candidate = os.path.join(local_base_path, | 150 candidate = os.path.join(local_base_path, |
| 152 normalized_path[len(prefix):]) | 151 normalized_path[len(prefix):]) |
| 153 if os.path.isfile(candidate): | 152 if os.path.isfile(candidate): |
| 154 if gzipped: | 153 if gzipped: |
| 155 if not self.gzipped_file: | 154 if not self.gzipped_file: |
| 156 self.gzipped_file = tempfile.NamedTemporaryFile(delete=False) | 155 self.gzipped_file = tempfile.NamedTemporaryFile(delete=False) |
| 157 self.original_file_name = candidate | 156 self.original_file_name = candidate |
| 158 with open(candidate, 'rb') as source: | 157 subprocess.check_call(['gzip', '-c', candidate], |
|
piotrt
2015/08/25 09:23:36
Maybe it would be good to handle errors here? the
ppi
2015/08/25 11:34:36
Done.
| |
| 159 with gzip.GzipFile(fileobj=self.gzipped_file) as target: | 158 stdout=self.gzipped_file) |
| 160 shutil.copyfileobj(source, target) | |
| 161 self.gzipped_file.close() | 159 self.gzipped_file.close() |
| 162 return self.gzipped_file.name | 160 return self.gzipped_file.name |
| 163 return candidate | 161 return candidate |
| 164 else: | 162 else: |
| 165 self.send_response(404) | 163 self.send_response(404) |
| 166 return None | 164 return None |
| 167 self.send_response(404) | 165 self.send_response(404) |
| 168 return None | 166 return None |
| 169 | 167 |
| 170 def guess_type(self, path): | 168 def guess_type(self, path): |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 220 except socket.error as v: | 218 except socket.error as v: |
| 221 error_code = v[0] | 219 error_code = v[0] |
| 222 print 'Failed to start http server for %s on port %d: %s.' % ( | 220 print 'Failed to start http server for %s on port %d: %s.' % ( |
| 223 str(mappings), host_port, os.strerror(error_code)) | 221 str(mappings), host_port, os.strerror(error_code)) |
| 224 if error_code == errno.EADDRINUSE: | 222 if error_code == errno.EADDRINUSE: |
| 225 print (' Run `fuser %d/tcp` to find out which process is using the port;' | 223 print (' Run `fuser %d/tcp` to find out which process is using the port;' |
| 226 % host_port) | 224 % host_port) |
| 227 print (' or `fuser -k %d/tcp` terminate it.' % host_port) | 225 print (' or `fuser -k %d/tcp` terminate it.' % host_port) |
| 228 print '---' | 226 print '---' |
| 229 raise | 227 raise |
| OLD | NEW |