| #!/bin/bash | |
| # Copyright 2021 The ChromiumOS Authors | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| # This is a script to control the logging behavior of the daemons writing into | |
| # net.log. | |
| # This is not meant to be run from crosh, but from a shell in developer mode. | |
| set_verbose_logging_on_reboot_all() { | |
| CACHE_PATH=/var/cache/modem-utilities | |
| for file_name in log_shill_verbose3 log_modemfwd_debug log_mm_debug \ | |
| log_hermes_debug; do | |
| file_path="${CACHE_PATH}/${file_name}" | |
| case "${1}" in | |
| true) | |
| if [ -L "${file_path}" ]; then | |
| echo "Error: Symlink detected." | |
| exit 1 | |
| fi | |
| touch "${file_path}" | |
| # Keep shill-scripts as the group owner of the file in case `modem` | |
| # needs to write into it later on. | |
| chown :shill-scripts "${file_path}" | |
| chmod 664 "${file_path}" | |
| ;; | |
| false) | |
| rm -f "${file_path}" | |
| ;; | |
| *) | |
| echo "'${1}' is not a valid option." | |
| exit 1 | |
| ;; | |
| esac | |
| done | |
| } | |
| usage() { | |
| echo "Usage: $(basename "$0") <command> [args...]" | |
| echo " set-verbose-logging-on-reboot-all <true/false> Enable or " \ | |
| "disable sticky verbose logging. ModemManager, " \ | |
| "Hermes, ModemFwd will be set to DEBUG, and " \ | |
| "shill to verbose level -3. This configuration " \ | |
| "will survive reboots." | |
| exit 0 | |
| } | |
| main() { | |
| if ! crossystem "cros_debug?1"; then | |
| echo "This script can only be executed in developer mode." | |
| exit 1 | |
| fi | |
| [ -z "$1" ] && echo "Missing argument: ${1}" && usage | |
| cmd="${1}" | |
| shift | |
| case "${cmd}" in | |
| set-verbose-logging-on-reboot-all) | |
| set_verbose_logging_on_reboot_all "$@" | |
| ;; | |
| --help) | |
| usage | |
| return 0 | |
| ;; | |
| *) | |
| echo "Unknown option ${cmd}" | |
| usage | |
| exit 1 | |
| ;; | |
| esac | |
| } | |
| main "$@" |