Fix pre-generate logic to work with latest and fix other bug.

Change-Id: I19d1ff21833c36bad8e59514bd64af55d59633df

BUG=8732
TEST=./start_devserver with -p --board=x86-mario --client_prefix=C

Review URL: http://codereview.chromium.org/4504001
diff --git a/devserver.py b/devserver.py
index 4b98db3..8abdb8f 100755
--- a/devserver.py
+++ b/devserver.py
@@ -111,6 +111,8 @@
   parser = optparse.OptionParser(usage)
   parser.add_option('--archive_dir', dest='archive_dir',
                     help='serve archived builds only.')
+  parser.add_option('--board', dest='board',
+                    help='When pre-generating update, board for latest image.')
   parser.add_option('--client_prefix', dest='client_prefix',
                     help='Required prefix for client software version.',
                     default='MementoSoftwareUpdate')
@@ -164,7 +166,8 @@
       use_cached=options.use_cached,
       port=options.port,
       src_image=options.src_image,
-      vm = options.vm)
+      vm=options.vm,
+      board=options.board)
 
   # Sanity-check for use of validate_factory_config.
   if not options.factory_config and options.validate_factory_config:
@@ -177,6 +180,7 @@
     if options.validate_factory_config:
       sys.exit(0)
   elif options.pregenerate_update:
-    updater.PreGenerateUpdate()
+    if not updater.PreGenerateUpdate():
+      sys.exit(1)
 
   cherrypy.quickstart(DevServerRoot(), config=_GetConfig(options))