| #!/bin/bash |
| # Copyright 2021 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| #### CATEGORY=Run, inspect and debug |
| ### Provides a shortcut to the prebuilt GNU diagnostic tools |
| |
| ## usage: fx gnu TOOL [ARGUMENTS...] |
| ## |
| ## -h|--help Shows this help and lists all available GNU tools |
| |
| source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/../lib/vars.sh || exit $? |
| readonly BINUTILS_BIN="${PREBUILT_3P_DIR}/binutils-gdb/${HOST_PLATFORM}/bin" |
| |
| function binutils { |
| fx-config-read |
| |
| if [[ $# -lt 1 ]]; then |
| fx-command-help |
| exit 1 |
| fi |
| |
| if [[ "$1" == -h || "$1" == "--help" ]]; then |
| fx-print-command-help "$0" |
| echo -e "\nThe list of GNU tools accessible is:" |
| |
| local f t |
| for f in "$BINUTILS_BIN"/*; do |
| if [[ -x "$f" ]]; then |
| t="$(basename "$f")" |
| echo " $t" |
| fi |
| done |
| exit 0 |
| fi |
| |
| local tool="${1}" |
| shift |
| local tool_path="${BINUTILS_BIN}/${tool}" |
| |
| if [[ ! -x "${tool_path}" ]]; then |
| fx-error "Prebuilt GNU tool doesn't exist or is not executable: '${tool_path}'" |
| exit 1 |
| fi |
| |
| "${tool_path}" "$@" |
| } |
| |
| binutils "$@" |