# 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   "Remove ARC data for user"
author        "chromium-os-dev@chromium.org"

# This job is started by the Chrome Browser.
# Stop the job on 'stopping ui' because once ui is stopped, ARC data files
# in the user's home directory will not be accessible anyway.
stop on stopping ui

task

import CHROMEOS_USER
# export for arc-stale-directory-remover.conf
export CHROMEOS_USER

pre-start exec /sbin/minijail0 -c 0x6 -- \
    /usr/sbin/arc-setup --log_tag=arc-setup-remove-data --mode=remove-data

# This is needed to ensure this job doesn't remain in the started state.
exec /bin/true
