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

### compute some blobfs statistics from the build

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

case "$(uname -s)" in
    Linux)
        PREBUILT_DART="${FUCHSIA_DIR}/prebuilt/third_party/dart/linux-x64/bin/dart"
        ;;
    Darwin)
        PREBUILT_DART="${FUCHSIA_DIR}/prebuilt/third_party/dart/mac-x64/bin/dart"
        ;;
esac

cd "${FUCHSIA_BUILD_DIR}"

exec "${PREBUILT_DART}" \
  --packages="${FUCHSIA_DIR}/scripts/blobstats/blobstats.packages" \
  "${FUCHSIA_DIR}/scripts/blobstats/blobstats.dart" "$@"
