|  | #!/bin/bash | 
|  | # Copyright 2020 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 LLVM binutils tools | 
|  |  | 
|  | ## usage: fx binutils [tool name] | 
|  | ## | 
|  | ##    -h|--help     Shows this help and lists all available llvm tools | 
|  |  | 
|  | source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/../lib/vars.sh || exit $? | 
|  | readonly clang_prefix="${PREBUILT_CLANG_DIR}/bin/llvm-" | 
|  |  | 
|  | 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 LLVM tools accessible is:" | 
|  |  | 
|  | for f in ${clang_prefix}*; do | 
|  | if [[ -x "$f" ]]; then | 
|  | t="$(basename "$f")" | 
|  | echo "   ${t#llvm-}" | 
|  | fi | 
|  | done | 
|  | exit 0 | 
|  | fi | 
|  |  | 
|  | readonly tool="${1}" | 
|  | shift | 
|  | readonly tool_path="${clang_prefix}${tool}" | 
|  |  | 
|  | if [[ ! -x "${tool_path}" ]]; then | 
|  | fx-error "Prebuilt binutils tool doesn't exist or is not executable: '${tool_path}'" | 
|  | exit 1 | 
|  | fi | 
|  |  | 
|  | "${tool_path}" "$@" | 
|  | } | 
|  |  | 
|  | binutils "$@" |