| #!/bin/bash |
| |
| # SPDX-FileCopyrightText: 2022 The Calyx Institute |
| # |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| # |
| # update-vars: |
| # |
| # Update Pixel device-specific variables by parsing Google's pages |
| # |
| # |
| ############################################################################## |
| |
| |
| ### SET ### |
| |
| # use bash strict mode |
| set -euo pipefail |
| |
| |
| ### TRAPS ### |
| |
| # trap signals for clean exit |
| trap 'error_m interrupted!' SIGINT |
| |
| ### CONSTANTS ### |
| readonly script_path="$(cd "$(dirname "$0")";pwd -P)" |
| readonly vars_path="${script_path}/../../../vendor/bliss/vars" |
| |
| source "${vars_path}/pixels" |
| |
| ## HELP MESSAGE (USAGE INFO) |
| # TODO |
| |
| ### FUNCTIONS ### |
| |
| |
| |
| # error message |
| # ARG1: error message for STDERR |
| # ARG2: error status |
| error_m() { |
| echo "ERROR: ${1:-'failed.'}" 1>&2 |
| return "${2:-1}" |
| } |
| |
| # print help message. |
| help_message() { |
| echo "${help_message:-'No help available.'}" |
| } |
| |
| main() { |
| local key="${1}" |
| local value="${2}" |
| shift; shift |
| if [[ $# -ne 0 ]]; then |
| local files="${@}" |
| else |
| local files="${devices[@]}" |
| fi |
| |
| for f in ${files}; do |
| ( |
| local fv="${vars_path}/${f}" |
| source "${fv}" |
| sed -i "/ prev_${key}=/c\readonly prev_${key}=\"${!key}\"" "${fv}" |
| sed -i "/ ${key}=/c\readonly ${key}=\"$value\"" "${fv}" |
| ) |
| done |
| } |
| |
| ### RUN PROGRAM ### |
| |
| main "${@}" |
| |
| |
| ## |