From 682087c6ec42beca7a1eb82da3578879b4364819 Mon Sep 17 00:00:00 2001 From: Kristo Copani <31226503+quantumryuu@users.noreply.github.com> Date: Fri, 3 Jan 2025 20:31:06 +0200 Subject: [PATCH] Github action to check metadata lines in scripts. (#1110) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Create check-metadata.yml * Update check-metadata.yml * Update check-metadata.yml * Update check-metadata.yml * Update .github/workflows/check-metadata.yml Co-authored-by: Sébastiaan * Update .github/workflows/check-metadata.yml Co-authored-by: Sébastiaan --------- Co-authored-by: Sébastiaan --- .github/workflows/check-metadata.yml | 55 ++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 .github/workflows/check-metadata.yml diff --git a/.github/workflows/check-metadata.yml b/.github/workflows/check-metadata.yml new file mode 100644 index 00000000..67159feb --- /dev/null +++ b/.github/workflows/check-metadata.yml @@ -0,0 +1,55 @@ +name: Check Metadata +on: + pull_request: + paths: + - '/ct/*.sh' + - '/install/*.sh' +jobs: + check-metadata: + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v4 + - name: Check Metadata Lines in Scripts + shell: bash + run: | + set -e + ERROR_COUNT=0 + FILES=$(find . -name "*.sh") + + for FILE in $FILES; do + if [[ "$(sed -n '3p' "$FILE")" == "# Copyright (c) 2021-2024 community-scripts ORG" ]]; then + echo "Check for Copyright metadata passed for line 3 in: $FILE" + else + echo "Error in $FILE: Copyright metadata missing or not on line 3" + ERROR_COUNT=$((ERROR_COUNT + 1)) + fi + + if sed -n '4p' "$FILE" | grep -qE "^# Author: .+"; then + echo "Check for Author metadata passed for line 4 in: $FILE" + else + echo "Error in $FILE: Author metadata missing or invalid on line 4" + ERROR_COUNT=$((ERROR_COUNT + 1)) + fi + + if [[ "$(sed -n '5p' "$FILE")" == "# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE" ]]; then + echo "Check for License metadata passed for line 5 in: $FILE" + else + echo "Error in $FILE: License metadata missing or not on line 5" + ERROR_COUNT=$((ERROR_COUNT + 1)) + fi + + if sed -n '6p' "$FILE" | grep -qE "^# Source: .+"; then + echo "Check for Source metadata passed for line 6 in: $FILE" + else + echo "Error in $FILE: Source metadata missing or invalid on line 6" + ERROR_COUNT=$((ERROR_COUNT + 1)) + fi + done + + if [[ "$ERROR_COUNT" -gt 0 ]]; then + echo "$ERROR_COUNT script(s) failed validation." + exit 1 + else + echo "All scripts passed." + fi