# Copyright 2018 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     "Downloadable content service daemon"
author          "chromium-os-dev@chromium.org"

start on starting system-services
stop on stopping system-services
expect fork
respawn
respawn limit 3 10  # if the job respawns 3 times in 10 seconds, stop trying.

pre-start script
  # Initialize:
  # -The DLC preload directory.
  # -The DLC module image root directory.
  # -The DLC metadata directory.
  dlc_preload_path="/mnt/stateful_partition/var_overlay/cache/dlc-images"
  if [ -d "${dlc_preload_path}" ]; then
    chmod -R u+rwX,go+rX,go-w "${dlc_preload_path}" > /dev/null
    chown -R dlcservice:dlcservice "${dlc_preload_path}" > /dev/null
  fi
  # TODO(crbug.com/912666): Remove /var/lib/dlc
  for dlc_path in "/var/cache/dlc" "/var/lib/dlc" "/var/lib/dlcservice"
  do
    mkdir -p "${dlc_path}"
    chmod -R u+rwX,go+rX,go-w "${dlc_path}"
    chown -R dlcservice:dlcservice "${dlc_path}"
  done
end script

exec minijail0 -i -u dlcservice -g dlcservice -G -n -S \
  /usr/share/policy/dlcservice-seccomp.policy /usr/sbin/dlcservice
