Add event flags to build_packages

* Added --withevents flag to enable events in parallel_emerge
* Added --eventdir flag that is passed through to parallel_emerge

BUG=chromium:660050
TEST=./build_packages --withevents --board "x86-generic"
CQ-DEPEND=CL:413424

Change-Id: I081392bd7bc8d05bee7f9aac120a24e396abdb4b
Reviewed-on: https://chromium-review.googlesource.com/413155
Commit-Ready: Douglas Anderson <dianders@chromium.org>
Tested-by: Chris Ching <chingcodes@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
diff --git a/build_packages b/build_packages
index 0ceb9e2..6b23afb 100755
--- a/build_packages
+++ b/build_packages
@@ -30,6 +30,10 @@
   "Don't build anything; instead only fetch and unpack what is needed."
 DEFINE_boolean withdebugsymbols "${FLAGS_FALSE}" \
   "Install the debug symbols for all packages"
+DEFINE_boolean withevents "${FLAGS_FALSE}" \
+  "Generate events during parallel_emerge step"
+DEFINE_string eventfile "${DEFAULT_EVENT_FILE}" \
+  "Define the file that event logs will be written."
 
 # The --board_root flag specifies the environment variables ROOT and PKGDIR.
 # This allows fetching and emerging of all packages to specified board_root.
@@ -191,6 +195,16 @@
   export USE="${USE} -cros-debug"
 fi
 
+# TODO Handle case where passed default value, but events not enabled
+if [[ "${FLAGS_eventfile}" != "${DEFAULT_EVENT_FILE}" ]]; then
+  FLAGS_withevents="${FLAGS_TRUE}"
+fi
+
+if [[ "${FLAGS_withevents}" -eq "${FLAGS_TRUE}" ]]; then
+  mkdir -p "$(dirname $FLAGS_eventfile)"
+  EMERGE_FLAGS+=( "--eventlogfile=${FLAGS_eventfile}" )
+fi
+
 # Figure out which packages we should be building.
 PACKAGES=( "$@" )
 FORCE_LOCAL_BUILD_PKGS=()
diff --git a/common.sh b/common.sh
index 7820123..2d00ac8 100644
--- a/common.sh
+++ b/common.sh
@@ -375,6 +375,12 @@
 # they don't pollute the source directory.
 DEFAULT_BUILD_ROOT=${CHROMEOS_BUILD_ROOT:-"${SRC_ROOT}/build"}
 
+# Default location for event files
+DEFAULT_EVENT_DIR=${DEFAULT_EVENT_DIR:-"${DEFAULT_BUILD_ROOT}/events"}
+
+# Default event file. Format is YYYYDD.HHMM.json
+DEFAULT_EVENT_FILE=${DEFAULT_EVENT_FILE:-"${DEFAULT_EVENT_DIR}/$(date +%Y%m%d.%H%M.).json"}
+
 # Set up a global ALL_BOARDS value
 if [[ -d ${SRC_ROOT}/overlays ]]; then
   ALL_BOARDS=$(cd "${SRC_ROOT}/overlays"; \