#!/usr/bin/env bash set -e source ./scripts/test_lib.sh function bom_fixlet { log_callout "generating bill-of-materials.json" cp go.mod go.mod.tmp cp go.sum go.sum.tmp local modules # shellcheck disable=SC2207 modules=($(modules_exp)) if GOFLAGS=-mod=mod run_go_tool "github.com/coreos/license-bill-of-materials" \ --override-file ../bill-of-materials.override.json \ "${modules[@]}" > ../bill-of-materials.json.tmp; then cp ../bill-of-materials.json.tmp ../bill-of-materials.json log_success "bom refreshed" else log_error "FAIL: bom refreshing failed" fi mv go.mod.tmp go.mod mv go.sum.tmp go.sum } function bom_fix { # We regenerate bom from the tests directory, as it's a module # that depends on all other modules, so we can generate comprehensive content. # TODO: Migrate to root module, when root module depends on everything (including server & tests). run_for_module "./tests" bom_fixlet } # only build when called directly, not sourced if [[ "$0" =~ updatebom.sh$ ]]; then bom_fix fi