blob: d12dde5e2f3fcb54b16e249c9b2c8d57be473672 [file] [log] [blame]
#!/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}"