local_server: Add --port option.

Also, only use 1 worker process. This reduces the log noise when you interrupt
the server, as each child process dumps a stacktrace.

BUG=chromium:756762
TEST=Used it.

Change-Id: If28c0478a69b3b54395e84e734ca26b9e64e63fc
diff --git a/bin/local_server b/bin/local_server
index 911526a..77c7af8 100755
--- a/bin/local_server
+++ b/bin/local_server
@@ -8,14 +8,15 @@
 import os
 import subprocess
 
+import fire
 from werkzeug import security
 
-CMD = tuple(
-    'gunicorn -c gunicorn.conf.py -b :8080 main:app --reload'.split())
 
-
-def LocalServer():
+def LocalServer(port=8080):
   """Starts a local development server with autoreload."""
+  cmd = tuple(
+      'gunicorn -b=:{port} main:app --workers=1'
+      ' --reload'.format(port=int(port)).split())
   password = getpass.getpass()
   hashed = security.generate_password_hash(password)
   env = dict(
@@ -24,8 +25,8 @@
       CIDB_CRED_DIR='creds/cidb.dbg',
       DEBUG='True',
       IS_SERVICE='False')
-  subprocess.call(CMD, env=env)
+  subprocess.call(cmd, env=env)
 
 
 if __name__ == '__main__':
-  LocalServer()
+  fire.Fire(LocalServer)