# 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   "Mount /home/chronos/user/MyFiles for ARC."
author        "chromium-os-dev@chromium.org"

start on started arc-myfiles
stop on stopping arc-myfiles

env SOURCE=/home/chronos/user/MyFiles
env DEST=/run/arc/media/MyFiles-read
env UMASK=227
env ANDROID_MEDIA_UID=1023
env ANDROID_MEDIA_GID=1023

expect fork

pre-start exec logger -t "${UPSTART_JOB}" "Pre-start ${UPSTART_JOB}"

# The accesses are intentionally the same as arc-myfiles.conf to restrict access
# to MediaProvider and DocumentsUI. This will be the same behaviour as
# removable-media in pre-72.
# TODO(risan): Remove these mount-passthrough processes or do something to fix
# the mount points.

# systemd-cat is used to redirect stdio from sdcard to journald for logging.
# minijail is used in the mount-passthrough-jailed script.
exec /usr/bin/systemd-cat -t "${UPSTART_JOB}" \
  mount-passthrough-jailed "${SOURCE}" "${DEST}" "${UMASK}" \
    "${ANDROID_MEDIA_UID}" "${ANDROID_MEDIA_GID}" "read"

post-stop exec logger -t "${UPSTART_JOB}" "Post-stop ${UPSTART_JOB}"
