# Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

description     "Metrics Library upstart file"
author          "chromium-os-dev@chromium.org"

# The metrics library is used by several programs (daemons and others)
# to send UMA stats.
start on starting boot-services

pre-start script
  # Create the file used as communication endpoint for metrics.
  METRICS_DIR=/var/lib/metrics
  EVENTS_FILE=${METRICS_DIR}/uma-events
  perms=$(stat -c %a "${EVENTS_FILE}") || :
  mkdir -p "${METRICS_DIR}"
  if [ "${perms}" != 666 ]; then
    # File does not exist or has wrong perms. This is not expected to happen,
    # but we don't remove it unconditionally because it may already have
    # accumulated samples.
    if [ -e "${EVENTS_FILE}" ]; then
      logger -t "${JOB}" "${EVENTS_FILE} has wrong perms (${perms}), removing"
      rm "${EVENTS_FILE}"
    fi
    old_umask=$(umask)
    umask 0
    touch "${EVENTS_FILE}"
    umask ${old_umask}
  fi
  chown chronos:chronos "${EVENTS_FILE}"
  # Create all intermediate directories until external.
  mkdir -p /run/metrics/external
  # TRANSITION ONLY.
  # TODO(semenzato) Remove after Chrome change, see issue 447256.
  # Let Chrome read the metrics file from the old location.
  ln -sf ${EVENTS_FILE} /run/metrics
  # For reporting external flags to metrics.
  chown -R metrics:metrics /run/metrics
end script
