Put command execution related logic into a class so that we can have a mock command executer, for testing/dry-run purposes. De-coupled command execution and logging.

PRESUBMIT=passed
R=asharif
DELTA=425  (217 added, 130 deleted, 78 changed)
OCL=45487-p2
RCL=45495-p2
RDATE=2010/11/29 16:15:34


P4 change: 42606657
diff --git a/v14/build_chromeos.py b/v14/build_chromeos.py
index 688710c..9ff7866 100755
--- a/v14/build_chromeos.py
+++ b/v14/build_chromeos.py
@@ -14,8 +14,12 @@
 import os
 import sys
 import tc_enter_chroot
+from utils import command_executer
+from utils import logger
 from utils import utils
 
+cmd_executer = command_executer.GetCommandExecuter()
+
 
 def Usage(parser, message):
   print "ERROR: " + message
@@ -29,12 +33,12 @@
   chrome_mount = ""
   if chrome_root:
     chrome_mount = "--chrome_root=" + chromeos_root + "/" + chrome_root
-  argv=[os.path.dirname(os.path.abspath(__file__)) + "/tc_enter_chroot.py",
-        "--chromeos_root=" + chromeos_root,
-        "--toolchain_root=" + toolchain_root,
-        chrome_mount,
-        "--",
-        command]
+  argv = [os.path.dirname(os.path.abspath(__file__)) + "/tc_enter_chroot.py",
+          "--chromeos_root=" + chromeos_root,
+          "--toolchain_root=" + toolchain_root,
+          chrome_mount,
+          "--",
+          command]
   return tc_enter_chroot.Main(argv)
 
 
@@ -48,17 +52,16 @@
     if clobber_chroot:
       clobber_chroot = "--replace"
     commands.append("./make_chroot --fast " + clobber_chroot)
-    ret = utils.RunCommands(commands)
+    ret = cmd_executer.RunCommands(commands)
     utils.AssertTrue(ret == 0, "make_chroot failed")
   else:
-    utils.main_logger.LogOutput("Did not make_chroot because it already exists")
+    logger.GetLogger().LogOutput("Did not make_chroot because it already exists")
 
 
 def Main():
   """Build ChromeOS."""
   # Common initializations
-  (rootdir, basename) = utils.GetRoot(sys.argv[0])
-  utils.InitLogger(rootdir, basename)
+  logger.InitLogger(sys.argv[0])
 
   parser = optparse.OptionParser()
   parser.add_option("--chromeos_root", dest="chromeos_root",
@@ -100,10 +103,11 @@
     if options.clobber_board:
       force = "--force"
     # Run build_tc.py from binary package
-    ret = utils.RunCommand(rootdir + "/build_tc.py --chromeos_root=%s "
-                           "--toolchain_root=%s --board=%s -B"
-                           % (options.chromeos_root, options.toolchain_root,
-                              options.board))
+    rootdir = utils.GetRoot(sys.argv[0])[0]
+    ret = cmd_executer.RunCommand(rootdir + "/build_tc.py --chromeos_root=%s "
+                                  "--toolchain_root=%s --board=%s -B"
+                                  % (options.chromeos_root,
+                                     options.toolchain_root, options.board))
     utils.AssertTrue(ret == 0, "build_tc.py failed")
     version_number = utils.GetRoot(rootdir)[1]
     pkgdir = "/usr/local/toolchain_root/" + version_number + "/pkgs"
@@ -113,7 +117,8 @@
                                  "%s" % (pkgdir, options.board, force))
     utils.AssertTrue(ret == 0, "setup_board failed")
   else:
-    utils.main_logger.LogOutput("Did not setup_board because it already exists")
+    logger.GetLogger().LogOutput("Did not setup_board "
+                                 "because it already exists")
 
   # Modify make.conf to add CFLAGS/CXXFLAGS/LDFLAGS
   ret1 = ExecuteCommandInChroot(options.chromeos_root, options.toolchain_root,
@@ -125,8 +130,8 @@
               #"CFLAGS='%s'\\\nCXXFLAGS='%s'\\\nLDFLAGS='%s'\\\n" %
               #(options.cflags, options.cxxflags, options.ldflags))
   ret2 = ExecuteCommandInChroot(options.chromeos_root, options.toolchain_root,
-                                "\"if [ -e /build/%s/etc/make.conf.orig ] ; then "
-                                "sudo echo -e \\\"%s\\\" | sudo tee "
+                                "\"if [ -e /build/%s/etc/make.conf.orig ] ; "
+                                "then sudo echo -e \\\"%s\\\" | sudo tee "
                                 "/build/%s/etc/make.conf > /dev/null ;"
                                 "else exit 1 ; fi\""
                                 % (options.board, makeconf, options.board))
@@ -134,9 +139,9 @@
   utils.AssertTrue(ret1 == 0 and ret2 == 0, "Could not modify make.conf")
 
   # Find Chrome browser version
-  chrome_version = utils.RunCommand("%s/src/scripts/chromeos_version.sh | "
-                                    "grep CHROME_BUILD"
-                                    % options.chromeos_root, True)
+  chrome_version = cmd_executer.RunCommand("%s/src/scripts/chromeos_version.sh "
+                                           "| grep CHROME_BUILD"
+                                           % options.chromeos_root, True)
 
   ret = chrome_version[0]
   utils.AssertTrue(ret == 0, "Could not determine Chrome browser version")