| #!/bin/bash |
| # Copyright 2018 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=Build |
| ### re-use a previous build directory set up by `fx set` |
| |
| ## usage: fx use DIR |
| ## or: fx --dir DIR use |
| ## or: fx use |
| ## |
| ## Switches further `fx` commands to using a different build directory. |
| ## This only works if `fx --dir DIR set ...` succeeded previously |
| ## (and DIR has not been removed since). The next `fx build` or other |
| ## such command will now refer to DIR. The previous build directory is |
| ## left in place, so you can switch back again with `fx use` later. |
| ## |
| ## fx use without arguments will list the available build directories, naming |
| ## the current active build directory (if any). |
| |
| source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/lib/vars.sh || exit $? |
| |
| function main { |
| local build_dir="$1" |
| |
| case "${build_dir}" in |
| -h|--help) |
| fx-command-help |
| return 0 |
| ;; |
| esac |
| |
| if [[ -z "${build_dir}" ]]; then |
| build_dir="${_FX_BUILD_DIR}" |
| fi |
| |
| if [[ -z "${build_dir}" ]]; then |
| fx-warn "no new build dir selected, listing build directories:" |
| fx-build-dir-if-present |
| local current="${FUCHSIA_BUILD_DIR##"${FUCHSIA_DIR}"/}" |
| if [[ -n "${current}" ]]; then |
| echo "${current} (current)" |
| fi |
| for d in ${FUCHSIA_DIR}/out/*; do |
| local build_dir="${d##"${FUCHSIA_DIR}"/}" |
| if [[ "${build_dir}" != out/*.zircon && "${build_dir}" != out/*.device \ |
| && "${build_dir}" != "${current}" && "${build_dir}" != out/*crash.log ]]; then |
| echo "${build_dir}" |
| fi |
| done |
| return 1 |
| fi |
| |
| if [[ "$build_dir" == /* ]]; then |
| local -r full_build_dir="${build_dir}" |
| else |
| local -r full_build_dir="${FUCHSIA_DIR}/${build_dir}" |
| fi |
| |
| if [[ -e "${full_build_dir}/args.gn" ]]; then |
| fx-change-build-dir "${build_dir}" |
| else |
| echo "\"${build_dir}\" is not a valid build dir." |
| echo "" |
| fx-command-help |
| exit 1 |
| fi |
| } |
| |
| main "$@" |