# Copyright (c) 2013 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    "Overlay factory test logo onto boot splash"
author         "chromium-os-dev@chromium.org"

# This needs to wait until boot-splash finishes to override the screen with the
# factory splash screen and we also need to wait until chromeos_startup script
# finishes. We want to hold up the boot-services job to allow the splash screen
# to show up before the X server starts.
# The boot-services job already depends on both startup and boot-splash to be
# stopped, so we can simply start on starting boot-services here.
start on starting boot-services
task

script
  . /usr/share/cros/factory_utils.sh
  if is_factory_mode; then
    ply-image "/usr/local/factory/misc/boot_splash.png" --offset=0,+80
  fi
end script
