meta-freescale/scripts/generate-license-file
Rasmus Villemoes 0602af4c78 scripts: avoid pointless LICENSE churn
I was wondering why a bot decided to force-push a commit to a PR of
mine. It turns out the script responsible for generating the LICENSE
file is not deterministic, so depending on random file system layout
we can end up regenerating the LICENSE without any actual change. For
example:

$ diff -u <(git show baf20676~1:LICENSE | sort) <(git show baf20676:LICENSE | sort)

shows that baf20676 didn't provide any change at all in the actual
contents, yet

$ git show --stat baf20676
commit baf20676bc
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Date:   Wed Jan 22 21:42:44 2025 +0000

    Auto-update LICENSE file with current recipe licenses

 LICENSE | 256 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------
 1 file changed, 128 insertions(+), 128 deletions(-)
2025-01-29 09:40:23 +01:00

21 lines
671 B
Bash
Executable File

#!/bin/bash
export LC_ALL=C
# Create or clear the LICENSE file
echo "# License Information" > LICENSE
echo "" >> LICENSE
echo "This file lists all licenses used by recipes in the meta-freescale layer." >> LICENSE
echo "" >> LICENSE
# Find all .bb and .inc files and extract license information
find . -type f \( -name "*.bb" -o -name "*.inc" \) | sort | while read -r file; do
# Extract the license line from each recipe file, if it exists
license_line=$(grep -i "^LICENSE" "$file")
if [ -n "$license_line" ]; then
echo "$file: $license_line" >> LICENSE
fi
done
echo "LICENSE file has been generated and updated with current recipe licenses."