From 31acd201a6fed3f121e3465813a32661d757a056 Mon Sep 17 00:00:00 2001 From: Colin Casey Date: Fri, 1 Mar 2024 10:18:30 -0400 Subject: [PATCH] Add `bin/report` script to capture buildpack metadata (#110) * Add `bin/report` script to capture buildpack metadata [W-15039947](https://gus.lightning.force.com/lightning/r/a07EE00001k7v4BYAQ/view) --- CHANGELOG.md | 1 + bin/report | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100755 bin/report diff --git a/CHANGELOG.md b/CHANGELOG.md index b24fd59..8fa85ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Unreleased +- Add `bin/report` script to capture buildpack metadata ## 2021-03-10 diff --git a/bin/report b/bin/report new file mode 100755 index 0000000..7c7b723 --- /dev/null +++ b/bin/report @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +# bin/report + +### Configure environment + +set -o errexit # always exit on error +set -o pipefail # don't ignore exit codes when piping output + +BUILD_DIR=${1:-} + +packages=() +custom_packages=() +custom_repositories=() + +while IFS= read -r line; do + if grep --silent -e "^:repo:" <<< "${line}"; then + custom_repositories+=("${line//:repo:/}") + elif [[ $line == *deb ]]; then + custom_packages+=("${line}") + else + packages+=("${line}") + fi +done < <(grep --invert-match -e "^#" -e "^\s*$" "${BUILD_DIR}/Aptfile") + +output_key_value() { + local key value + key="$1" + shift + # sort & join the array values with a ',' then escape both '\' and '"' characters + value=$(printf '%s\n' "$@" | sort | tr '\n' ',' | sed 's/,$/\n/' | sed 's/\\/\\\\/g' | sed 's/"/\\"/g') + if [[ -n "${value}" ]]; then + echo "$key: \"$value\"" + fi +} + +output_key_value "packages" "${packages[@]}" +output_key_value "custom_packages" "${custom_packages[@]}" +output_key_value "custom_repositories" "${custom_repositories[@]}"