blob: 93dc07688e6cb13401c7978f245b2452cfef9cb9 [file] [log] [blame]
#!/bin/bash
# Copyright 2021 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.
# 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; 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 will be set to DEBUG, " \
"shill to verbose level -3, and modemfwd to DEBUG. 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 "$@"