# Copyright 2019 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     "Chrome OS CUPS Proxy Daemon"
author          "chromium-os-dev@chromium.org"

# This daemon is started by D-Bus service activation configured in
# cups_proxy/dbus/org.chromium.CupsProxyDaemon.service.
start on starting vm_concierge
stop on stopped vm_concierge
respawn
expect fork

exec minijail0 -e -i -n -N -p -r -v -l --uts -c 0 \
  -S /usr/share/policy/cups_proxy-seccomp.policy \
  -u cups-proxy -g cups-proxy -- /usr/bin/cups_proxy

# Wait for daemon to claim its D-Bus name before transitioning to started.
post-start exec minijail0 -u cups-proxy -g cups-proxy /usr/bin/gdbus \
    wait --system --timeout 15 org.chromium.CupsProxyDaemon
