From bcba0b92ed7842310959f82cc9ee93673c5dba87 Mon Sep 17 00:00:00 2001 From: Michael Sloan Date: Mon, 17 Feb 2025 00:05:01 -0700 Subject: [PATCH] Fail if `cargo about` emits warnings (#24996) Warnings are emitted despite --fail have no license field like `ring` Release Notes: - N/A --- script/generate-licenses | 13 ++++++++++++- script/generate-licenses-csv | 13 ++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/script/generate-licenses b/script/generate-licenses index 9602813f0c..1be79e2e9b 100755 --- a/script/generate-licenses +++ b/script/generate-licenses @@ -24,11 +24,20 @@ else fi echo "Generating cargo licenses" + +stderr_file=$(mktemp) + cargo about generate \ --fail \ -c script/licenses/zed-licenses.toml \ - "${TEMPLATE_FILE}" >> $OUTPUT_FILE + "${TEMPLATE_FILE}" \ + 2> >(tee "$stderr_file") \ + >> $OUTPUT_FILE +if cat "$stderr_file" | grep -v "\[WARN\]" > /dev/null; then + echo "Error: License check failed - warnings found" >&2 + exit 1 +fi sed -i.bak 's/"/"/g' $OUTPUT_FILE sed -i.bak 's/'/'\''/g' $OUTPUT_FILE # The ` '\'' ` thing ends the string, appends a single quote, and re-opens the string @@ -38,3 +47,5 @@ sed -i.bak 's/<//g' $OUTPUT_FILE rm -rf "${OUTPUT_FILE}.bak" + +echo "generate-licenses completed. See $OUTPUT_FILE" diff --git a/script/generate-licenses-csv b/script/generate-licenses-csv index 63bfee83a5..121d71b9d1 100755 --- a/script/generate-licenses-csv +++ b/script/generate-licenses-csv @@ -14,10 +14,21 @@ else fi echo "Generating cargo licenses" + +stderr_file=$(mktemp) + cargo about generate \ --fail \ -c script/licenses/zed-licenses.toml \ script/licenses/template.csv.hbs \ + 2> >(tee "$stderr_file") \ | awk 'NR==1{print;next} NF{print | "sort"}' \ > $OUTPUT_FILE -echo "Completed. See $OUTPUT_FILE" + +# Check that there are no warnings. +if echo "$about_stderr" | grep -v "\[WARN\]" > /dev/null; then + echo "Error: License check failed - warnings found" >&2 + exit 1 +fi + +echo "generate-licenses-csv completed. See $OUTPUT_FILE"