
Current main shows this on `script/generate-licenses`: ``` [WARN] failed to validate all files specified in clarification for crate ring 0.17.14: checksum mismatch, expected '76b39f9b371688eac9d8323f96ee80b3aef5ecbc2217f25377bd4e4a615296a9' ``` Ring fixed it's licenses ambiguity upstream. This warning was identifying that their license text (multiple licenses concatenated) had changed (sha mismatch) and thus our license clarification was invalid. Tested the script to confirm this [now fails](https://github.com/zed-industries/zed/actions/runs/16118890720/job/45479355992?pr=34008) under CI and then removed the ring clarification because it is no longer required and now passes. Release Notes: - N/A
55 lines
1.5 KiB
Bash
Executable file
55 lines
1.5 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
CARGO_ABOUT_VERSION="0.7"
|
|
OUTPUT_FILE="${1:-$(pwd)/assets/licenses.md}"
|
|
TEMPLATE_FILE="script/licenses/template.md.hbs"
|
|
|
|
fail_on_stderr() {
|
|
local tmpfile=$(mktemp)
|
|
"$@" 2> >(tee "$tmpfile" >&2)
|
|
local rc=$?
|
|
[ -s "$tmpfile" ] && rc=1
|
|
rm "$tmpfile"
|
|
return $rc
|
|
}
|
|
|
|
echo -n "" >"$OUTPUT_FILE"
|
|
|
|
{
|
|
echo -e "# ###### THEME LICENSES ######\n"
|
|
cat assets/themes/LICENSES
|
|
|
|
echo -e "\n# ###### ICON LICENSES ######\n"
|
|
cat assets/icons/LICENSES
|
|
|
|
echo -e "\n# ###### CODE LICENSES ######\n"
|
|
} >>"$OUTPUT_FILE"
|
|
|
|
if ! cargo about --version | grep "cargo-about $CARGO_ABOUT_VERSION" &>/dev/null; then
|
|
echo "Installing cargo-about@^$CARGO_ABOUT_VERSION..."
|
|
cargo install "cargo-about@^$CARGO_ABOUT_VERSION"
|
|
else
|
|
echo "cargo-about@^$CARGO_ABOUT_VERSION is already installed."
|
|
fi
|
|
|
|
echo "Generating cargo licenses"
|
|
if [ -z "${ALLOW_MISSING_LICENSES-}" ]; then FAIL_FLAG=--fail; else FAIL_FLAG=""; fi
|
|
set -x
|
|
fail_on_stderr cargo about generate \
|
|
$FAIL_FLAG \
|
|
-c script/licenses/zed-licenses.toml \
|
|
"$TEMPLATE_FILE" >>"$OUTPUT_FILE"
|
|
set +x
|
|
|
|
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
|
|
sed -i.bak 's/=/=/g' "$OUTPUT_FILE"
|
|
sed -i.bak 's/`/`/g' "$OUTPUT_FILE"
|
|
sed -i.bak 's/</</g' "$OUTPUT_FILE"
|
|
sed -i.bak 's/>/>/g' "$OUTPUT_FILE"
|
|
|
|
rm -rf "${OUTPUT_FILE}.bak"
|
|
|
|
echo "generate-licenses completed. See $OUTPUT_FILE"
|