aboutsummaryrefslogtreecommitdiff
path: root/emrun
diff options
context:
space:
mode:
Diffstat (limited to 'emrun')
-rwxr-xr-x[-rw-r--r--]emrun56
1 files changed, 31 insertions, 25 deletions
diff --git a/emrun b/emrun
index c6c9cf4d..d5975b8a 100644..100755
--- a/emrun
+++ b/emrun
@@ -93,17 +93,7 @@ http_mutex = RLock()
# Prints a log message to 'info' stdout channel. Always printed.
def logi(msg):
global last_message_time
- if emrun_options.log_html:
- sys.stdout.write(format_html(msg))
- else:
- print >> sys.stdout, msg
- sys.stdout.flush()
- last_message_time = time.clock()
-
-# Prints a verbose log message to stdout channel. Only shown if run with --verbose.
-def logv(msg):
- global emrun_options, last_message_time
- if emrun_options.verbose:
+ with http_mutex:
if emrun_options.log_html:
sys.stdout.write(format_html(msg))
else:
@@ -111,15 +101,28 @@ def logv(msg):
sys.stdout.flush()
last_message_time = time.clock()
+# Prints a verbose log message to stdout channel. Only shown if run with --verbose.
+def logv(msg):
+ global emrun_options, last_message_time
+ with http_mutex:
+ if emrun_options.verbose:
+ if emrun_options.log_html:
+ sys.stdout.write(format_html(msg))
+ else:
+ print >> sys.stdout, msg
+ sys.stdout.flush()
+ last_message_time = time.clock()
+
# Prints an error message to stderr channel.
def loge(msg):
global last_message_time
- if emrun_options.log_html:
- sys.stderr.write(format_html(msg))
- else:
- print >> sys.stderr, msg
- sys.stderr.flush()
- last_message_time = time.clock()
+ with http_mutex:
+ if emrun_options.log_html:
+ sys.stderr.write(format_html(msg))
+ else:
+ print >> sys.stderr, msg
+ sys.stderr.flush()
+ last_message_time = time.clock()
def format_eol(msg):
if WINDOWS:
@@ -129,8 +132,6 @@ def format_eol(msg):
# Prints a message to the browser stdout output stream.
def browser_logi(msg):
global browser_stdout_handle
- if browser_stdout_handle != sys.stdout and not msg.endswith('\n'):
- msg += '\n'
msg = format_eol(msg)
print >> browser_stdout_handle, msg
browser_stdout_handle.flush()
@@ -139,8 +140,6 @@ def browser_logi(msg):
# Prints a message to the browser stderr output stream.
def browser_loge(msg):
global browser_stderr_handle
- if browser_stderr_handle != sys.stderr and not msg.endswith('\n'):
- msg += '\n'
msg = format_eol(msg)
print >> browser_stderr_handle, msg
browser_stderr_handle.flush()
@@ -216,7 +215,6 @@ class HTTPWebServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer):
elif seq_num < self.expected_http_seq_num:
log(data)
else:
- log(data)
self.http_message_queue += [(seq_num, data, log)]
self.http_message_queue.sort(key=itemgetter(0))
if len(self.http_message_queue) > 16:
@@ -1043,6 +1041,10 @@ def main():
else:
browser_stderr_handle = open(options.log_stderr, 'ab')
+ if not options.no_server:
+ logv('Starting web server in port ' + str(options.port))
+ httpd = HTTPWebServer(('', options.port), HTTPHandler)
+
if not options.no_browser:
logv("Executing %s" % ' '.join(browser))
if browser[0] == 'cmd':
@@ -1054,9 +1056,11 @@ def main():
if options.android:
browser_process = None
+ if browser_process and browser_process.poll() == None:
+ options.serve_after_close = True
+ logv('Warning: emrun got detached from the target browser process. Cannot detect when user closes the browser. Behaving as if --serve_after_close was passed in.')
+
if not options.no_server:
- logv('Starting web server in port ' + str(options.port))
- httpd = HTTPWebServer(('', options.port), HTTPHandler)
try:
httpd.serve_forever()
except KeyboardInterrupt:
@@ -1074,4 +1078,6 @@ def main():
return page_exit_code
if __name__ == '__main__':
- sys.exit(main())
+ returncode = main()
+ logv('emrun quitting with process exit code ' + str(returncode))
+ sys.exit(returncode)