diff --git a/.gitignore b/.gitignore index 634b73ac94..d19c5a102a 100644 --- a/.gitignore +++ b/.gitignore @@ -10,7 +10,7 @@ /crates/collab/seed.json /crates/zed/resources/flatpak/flatpak-cargo-sources.json /dev.zed.Zed*.json -/assets/*licenses.md +/assets/*licenses.* **/venv .build *.wasm diff --git a/script/generate-licenses b/script/generate-licenses index 43b2f5c458..9602813f0c 100755 --- a/script/generate-licenses +++ b/script/generate-licenses @@ -4,6 +4,7 @@ set -euo pipefail CARGO_ABOUT_VERSION="0.6.1" OUTPUT_FILE="${1:-$(pwd)/assets/licenses.md}" +TEMPLATE_FILE="script/licenses/template.md.hbs" > $OUTPUT_FILE @@ -23,7 +24,10 @@ else fi echo "Generating cargo licenses" -cargo about generate --fail -c script/licenses/zed-licenses.toml script/licenses/template.hbs.md >> $OUTPUT_FILE +cargo about generate \ + --fail \ + -c script/licenses/zed-licenses.toml \ + "${TEMPLATE_FILE}" >> $OUTPUT_FILE sed -i.bak 's/"/"/g' $OUTPUT_FILE diff --git a/script/generate-licenses-csv b/script/generate-licenses-csv new file mode 100755 index 0000000000..63bfee83a5 --- /dev/null +++ b/script/generate-licenses-csv @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +set -euo pipefail + +CARGO_ABOUT_VERSION="0.6.1" +OUTPUT_FILE="${1:-$(pwd)/assets/licenses.csv}" +TEMPLATE_FILE="script/licenses/template.csv.hbs" + +if ! cargo install --list | grep "cargo-about v$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" +cargo about generate \ + --fail \ + -c script/licenses/zed-licenses.toml \ + script/licenses/template.csv.hbs \ + | awk 'NR==1{print;next} NF{print | "sort"}' \ + > $OUTPUT_FILE +echo "Completed. See $OUTPUT_FILE" diff --git a/script/licenses/template.csv.hbs b/script/licenses/template.csv.hbs new file mode 100644 index 0000000000..1459aa648d --- /dev/null +++ b/script/licenses/template.csv.hbs @@ -0,0 +1,6 @@ +Crate Name,Crate Version,License,Url +{{#each licenses}} +{{#each used_by}} +{{crate.name}},{{crate.version}},{{../name}},{{#if crate.repository}}{{crate.repository}}{{else}}https://crates.io/crates/{{crate.name}}{{/if}} +{{/each}} +{{/each}} diff --git a/script/licenses/template.hbs.md b/script/licenses/template.md.hbs similarity index 100% rename from script/licenses/template.hbs.md rename to script/licenses/template.md.hbs