#!/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.

### verify the structure of the build package directory in a layer

## usage: fx verify-build-packages zircon|garnet|peridot|topaz|vendor/foo

set -e

source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"/lib/vars.sh
fx-config-read

if [[ "$#" -ne 1 ]]; then
  fx-command-help
  exit 1
fi

readonly layer="$1"

layer_arg=""
if [[ ${layer} =~ vendor/([a-zA-Z0-9_-]+) ]]; then
  readonly vendor="${BASH_REMATCH[1]}"
  layer_arg="--vendor-layer ${vendor}"
elif [[ "${layer}" == "zircon" ]]; then
  # Zircon does not have build packages.
  exit 0
elif [[ "${layer}" == "garnet" ]] ||
     [[ "${layer}" == "peridot" ]] ||
     [[ "${layer}" == "topaz" ]]; then
  layer_arg="--layer ${layer}"
else
  fx-command-help
  exit 1
fi

readonly validator="${FUCHSIA_BUILD_DIR}/host_x64/json_validator"

if [[ ! -f ${validator} ]]; then
  echo >&2 "error: Cannot find JSON validator at ${validator}."
  echo >&2 "Try running 'fx build' first."
  exit 1
fi

"${FUCHSIA_DIR}/scripts/packages/verify_layer.py" \
  --json-validator "${validator}" \
  ${layer_arg}
