#!/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=Software delivery
### run bootserver for paving

## usage: fx pave [extra bootserver arguments]

set -e

source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/lib/vars.sh || exit $?
fx-config-read

name_args=()
name="$(get-device-name)" || exit $?
if [[ -n "$name" ]]; then
  name_args+=("-n" "${name}")
fi

auth_keys_args=(--authorized-keys "${FUCHSIA_DIR}/.ssh/authorized_keys")
if grep 'import("//products/bringup.gni")' "${FUCHSIA_BUILD_DIR}/args.gn" >/dev/null 2>&1; then
  auth_keys_args=()
fi

exec "${FUCHSIA_BUILD_DIR}/pave.sh" "${name_args[@]}" "${auth_keys_args[@]}" "$@"
