hwid: Load device info on the device if a filename is not given.

BUG=chrome-os-partner:19839
TEST=Manually on DUT.

Change-Id: I13eb66c2af6a961ba194ca5d5b01db6bb598a7f9
Reviewed-on: https://gerrit.chromium.org/gerrit/59867
Reviewed-by: Jon Salz <jsalz@chromium.org>
Tested-by: Ricky Liang <jcliang@chromium.org>
Commit-Queue: Ricky Liang <jcliang@chromium.org>
diff --git a/py/gooftool/gooftool.py b/py/gooftool/gooftool.py
index d1d4fbc..228658d 100755
--- a/py/gooftool/gooftool.py
+++ b/py/gooftool/gooftool.py
@@ -39,6 +39,7 @@
 from cros.factory.hacked_argparse import verbosity_cmd_arg
 from cros.factory.hwdb import hwid_tool
 from cros.factory.hwid import common
+from cros.factory.test import shopfloor
 from cros.factory.test.factory import FACTORY_LOG_PATH
 from cros.factory.utils.process_utils import Spawn
 from cros.factory.privacy import FilterDict
@@ -809,18 +810,18 @@
   retrieved by probing the DUT. If there are conflits of component information
   between device info and probe result, priority is given to device info.
   """
-  try:
+  if options.device_info:
     with open(options.device_info) as f:
       device_info = yaml.load(f.read())
-  except Exception, e:
-    raise Error, 'Invalid device_info: %s' % e
+  else:
+    device_info = shopfloor.GetDeviceData()
   if options.probe_results:
     with open(options.probe_results) as f:
       probe_results = hwid_tool.ProbeResults.Decode(f.read())
   else:
     probe_results = Probe()
   print 'device_info:'
-  print device_info
+  print yaml.dump(device_info)
   print 'probe results:'
   print probe_results.Encode()