diff --git a/.gitignore b/.gitignore index dd82b4451..9be8b53fa 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,9 @@ dist/ # exclude the copy of swagger.yaml moved into assets during packaging web/assets/swagger.yaml +# exclude the copy of all_licenses.txt moved into assets during packaging +web/assets/all_licenses.txt + # exludes docker-volume from exemple/docker-compose example/docker-compose/docker-volume diff --git a/.goreleaser.yml b/.goreleaser.yml index 6b3d79f38..03f305890 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -17,6 +17,8 @@ before: - yarn --cwd ./web/source install - yarn --cwd ./web/source ts-patch install # https://typia.io/docs/setup/#manual-setup - yarn --cwd ./web/source build + # Bundle all licenses into web/assets/all_licenses.txt + - ./scripts/bundle_licenses.sh # https://goreleaser.com/customization/build/ builds: diff --git a/scripts/bundle_licenses.sh b/scripts/bundle_licenses.sh new file mode 100755 index 000000000..a883a0d8f --- /dev/null +++ b/scripts/bundle_licenses.sh @@ -0,0 +1,34 @@ +#!/bin/sh +set -ex + +# Split on +# new line +IFS=' +' + +license_filter() { grep -iE '.*/license(\.\w+)?$'; } + +OUTPUT='./web/assets/all_licenses.txt' +echo '' > "$OUTPUT" # reset output + +# Copy over any licenses in our golang dependencies +for file in $(find ./vendor | license_filter); do + echo "${file}:" >> "$OUTPUT" + cat "$file" >> "$OUTPUT" + echo >> "$OUTPUT" +done + +# Copy over any licenses in our javacsript dependencies +for file in $(find ./web/source | license_filter); do + echo "${file}:" >> "$OUTPUT" + cat "$file" >> "$OUTPUT" + echo >> "$OUTPUT" +done + +# Copy over misc other licenses +for file in ./LICENSE \ + ./web/source/nollamasworker/sha256.js; do + echo "${file}:" >> "$OUTPUT" + cat "$file" >> "$OUTPUT" + echo >> "$OUTPUT" +done