| #!/bin/sh |
| # |
| # Copyright 2015 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. |
| # |
| # Script used to show boot message. |
| |
| FONT_SIZE="60" |
| FONT_COLOR="Green" |
| |
| # Temp message file for display_boot_message. |
| MESSAGE_FILE="$(mktemp --tmpdir)" |
| |
| on_exit() { |
| rm -f "${MESSAGE_FILE}" |
| } |
| |
| # Prints usage help for commands usage. |
| usage_help() { |
| echo "Usage: $0 mode [arg ...] |
| |
| connect_ac: Message for connecting AC. |
| |
| remove_ac: Message for removing AC. |
| |
| charging: Message when charging battery. |
| Arg #1: the current battery level. |
| Arg #2: the minimum battery level to charge. |
| |
| cutting_off: Message when running cut off commands. |
| |
| cutoff_failed: Message when cut off failed. |
| " |
| } |
| |
| prepare_message() { |
| local message=" |
| <span font=\"Noto Sans UI ${FONT_SIZE}\" |
| foreground=\"${FONT_COLOR}\">" |
| |
| printf "${message}\n" |
| # Append messages with newline. |
| for message in "$@"; do |
| printf "${message}\n" |
| done |
| printf "</span>" |
| } |
| |
| display_message() { |
| prepare_message "$@" >"${MESSAGE_FILE}" |
| display_boot_message "show_file" "${MESSAGE_FILE}" |
| } |
| |
| mode_connect_ac() { |
| (FONT_COLOR="Red" && display_message "Battery level too low" \ |
| "Please connect AC power" \ |
| "电池电量过低" \ |
| "请连接AC电源") |
| } |
| |
| mode_remove_ac() { |
| (FONT_COLOR="Red" && display_message "Please remove AC power" \ |
| "请移除AC电源") |
| } |
| |
| mode_charging() { |
| local current_level="$1" |
| local min_level="$2" |
| |
| display_message "Charging battery to ${min_level}%%..." \ |
| "Current level: ${current_level}%%" \ |
| "正在充电至${min_level}%%..." \ |
| "当前电量:${current_level}%%" |
| } |
| |
| mode_cutting_off() { |
| display_message "Cutting off battery" \ |
| "Please wait..." \ |
| "切断电池电源中" \ |
| "请稍候..." |
| } |
| |
| mode_cutoff_failed() { |
| (FONT_COLOR="Red" && display_message "Battery cut-off failed" \ |
| "Please contact factory team" \ |
| "无法切断电池电源" \ |
| "请联络RD") |
| } |
| |
| main() { |
| if [ $# -lt 1 ]; then |
| usage_help |
| exit 1 |
| fi |
| local mode="$1" |
| shift |
| |
| case "${mode}" in |
| "connect_ac" | "remove_ac" | "charging" | "cutting_off" | "cutoff_failed" ) |
| mode_"${mode}" "$@" |
| ;; |
| * ) |
| usage_help |
| exit 1 |
| ;; |
| esac |
| } |
| |
| trap on_exit EXIT |
| main "$@" |