Allow to set a fixed port for the development server.

Running on the fixed port enables service cache to store responses
between shell runs.

Fixes domokit/devtools#37

R=tonyg@chromium.org

Review URL: https://codereview.chromium.org/1305293003 .

Cr-Mirrored-From: https://github.com/domokit/mojo
Cr-Mirrored-Commit: b5a95ab8ee61e1ed8295df23a21b9672a8057c91
diff --git a/devtoolslib/shell_arguments.py b/devtoolslib/shell_arguments.py
index 53e467f..7e46b01 100644
--- a/devtoolslib/shell_arguments.py
+++ b/devtoolslib/shell_arguments.py
@@ -157,7 +157,9 @@
   Returns:
     The updated argument list.
   """
-  server_url = shell.serve_local_directories(dev_server_config.mappings)
+  port = dev_server_config.port if dev_server_config.port else 0
+  server_url = shell.serve_local_directories(dev_server_config.mappings,
+                                             port=port)
   shell_args.append('--map-origin=%s=%s' % (dev_server_config.host, server_url))
   print "Configured %s locally at %s to serve:" % (dev_server_config.host,
                                                    server_url)
diff --git a/devtoolslib/shell_config.py b/devtoolslib/shell_config.py
index 227b979..6a93cb0 100644
--- a/devtoolslib/shell_config.py
+++ b/devtoolslib/shell_config.py
@@ -48,6 +48,7 @@
   """
   def __init__(self):
     self.host = None
+    self.port = None
     self.mappings = None
 
 
@@ -193,6 +194,7 @@
         for dev_server_spec in config['dev_servers']:
           dev_server_config = DevServerConfig()
           dev_server_config.host = dev_server_spec['host']
+          dev_server_config.port = dev_server_spec.get('port', None)
           dev_server_config.mappings = []
           for prefix, path in dev_server_spec['mappings']:
             dev_server_config.mappings.append((prefix, path))
diff --git a/remote_adb_setup b/remote_adb_setup
index d275ff6..df3176d 100755
--- a/remote_adb_setup
+++ b/remote_adb_setup
@@ -44,8 +44,10 @@
 # and from the local host to the remote host:
 #   9998: http server for Sky
 #   31840: http server for the local mojo: origin
+#   31839: http server for https://core.mojoapps.io
 ssh -C \
     -R 5037:127.0.0.1:5037 \
     -L 9998:127.0.0.1:9998 \
+    -L 31839:127.0.0.1:31839 \
     -L 31840:127.0.0.1:31840 \
     "$remote_host"