zed/script/generate-licenses
Marshall Bowers c7c874a371
Decouple theme license generation from TypeScript theme definitions (#3917)
This PR decouples the generation of licenses for the themes we ship from
the TypeScript theme definitions.

For now, we are embedding the license information for the themes in the
`theme_importer`, and emit a combined `LICENSES` file in the `theme`
crate whenever we import themes. This is also where we check that each
theme has a valid license.

We then use this `LICENSES` file when building up the global license
file for Zed.

This decoupling is one step towards us being able to delete the old Zed1
styles.

Release Notes:

- N/A
2024-01-05 13:38:12 -05:00

27 lines
936 B
Bash
Executable File

#!/bin/bash
set -e
OUTPUT_FILE=$(pwd)/assets/licenses.md
> $OUTPUT_FILE
echo -e "# ###### THEME LICENSES ######\n" >> $OUTPUT_FILE
echo "Generating theme licenses"
cat crates/theme/src/themes/LICENSES >> $OUTPUT_FILE
echo -e "# ###### CODE LICENSES ######\n" >> $OUTPUT_FILE
[[ "$(cargo about --version)" == "cargo-about 0.5.2" ]] || cargo install cargo-about --locked --git https://github.com/zed-industries/cargo-about --branch error-code-on-warn
echo "Generating cargo licenses"
cargo about generate --fail-on-missing-license -c script/licenses/zed-licenses.toml script/licenses/template.hbs.md >> $OUTPUT_FILE
sed -i '' 's/"/"/g' $OUTPUT_FILE
sed -i '' 's/'/'\''/g' $OUTPUT_FILE # The ` '\'' ` thing ends the string, appends a single quote, and re-opens the string
sed -i '' 's/=/=/g' $OUTPUT_FILE
sed -i '' 's/`/`/g' $OUTPUT_FILE
sed -i '' 's/&lt;/</g' $OUTPUT_FILE
sed -i '' 's/&gt;/>/g' $OUTPUT_FILE