#!/bin/bash
# Copyright 2021 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
### produce an uncompressed size report from a ZBI

## usage: fx zbi-size-report [--zbi <file>] [--output-json <file>]
##   --zbi <file> path to ZBI to analyze; defaults to out/default/fuchsia.zbi
##   --output-json <file> where to save report of uncompressed file sizes
##                        in a d3js-friendly format; defaults to a temporary file

set -e

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

ZBI=
OUTPUT=

while [[ $# -ge 1 ]]; do
  case "$1" in
  -h|--help)
    fx-command-help
    exit 0
    ;;
  --zbi)
    shift
    ZBI="$1"
    ;;
  --output-json)
    shift
    OUTPUT="$1"
    ;;
  esac
  shift
done

if [[ -z "${ZBI}" ]]; then
  ZBI="${FUCHSIA_BUILD_DIR}/fuchsia.zbi"
  fx-info "--zbi not specified, will build and analyze fuchsia.zbi"
  fx-command-run build fuchsia.zbi
fi

if [[ -z "${OUTPUT}" ]]; then
  OUTPUT="$(mktemp --suffix=.json)"
  fx-info "--output-json not set, Outputting to ${OUTPUT}"
fi

ZBI_JSON="$(mktemp)"
readonly ZBI_JSON
fx-command-run host-tool zbi --list --json-output="${ZBI_JSON}" "${ZBI}"
"${SCRIPT_DIR}/contrib/zbi_json_to_d3js.py" --input "${ZBI_JSON}" --output "${OUTPUT}"
