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