From 3f532c5ceeeafa5e0eb060225e648e7223c064e1 Mon Sep 17 00:00:00 2001 From: Kamil Lepek Date: Wed, 4 May 2022 13:09:49 +0200 Subject: [PATCH] Added header verification script Signed-off-by: Kamil Lepek --- .github/verify_header.sh | 24 ++++++++++++++++++++++ .github/workflows/pullrequest.yml | 34 +++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 .github/verify_header.sh create mode 100644 .github/workflows/pullrequest.yml diff --git a/.github/verify_header.sh b/.github/verify_header.sh new file mode 100644 index 0000000..42ddc01 --- /dev/null +++ b/.github/verify_header.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# +# Copyright(c) 2022 Intel Corporation +# SPDX-License-Identifier: BSD-3-Clause +# + +YEAR=$(date +"%Y") +REGEX="Copyright\(c\) [0-9]{4}-([0-9]{4}) |Copyright\(c\) ([0-9]{4}) " + +while read -r line; do + if [[ "$line" =~ $REGEX ]]; then + echo ${BASH_REMATCH[0]} + if [[ $YEAR == ${BASH_REMATCH[1]} || $YEAR == ${BASH_REMATCH[2]} ]]; then + echo $1 have appropriate license header + exit 0 + fi + echo $1 have wrong license header year + exit 1 + fi +done < "$1" + +echo $1 does not contain appropriate license header +exit 1 diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml new file mode 100644 index 0000000..d1fc3c1 --- /dev/null +++ b/.github/workflows/pullrequest.yml @@ -0,0 +1,34 @@ +name: Licence-date-verification +on: + pull_request: + branches: + - master + +env: + EXTENSIONS: "c h cpp py go sh" +jobs: + verify-date: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2.1.0 + with: + fetch-depth: 0 + - name: Get changed files + id: changed-files + uses: tj-actions/changed-files@v18.2 + with: + files_ignore: '.github/**' + - name: List all changed files + run: | + for FILE in ${{ steps.changed-files.outputs.all_changed_files }}; do + REGEX=".*\.(.*)" + if [[ "$FILE" =~ $REGEX ]] + then + EXTENSION=${BASH_REMATCH[1]} + EXTENSIONS_LIST=($EXTENSIONS) + if [[ " ${EXTENSIONS_LIST[*]} " =~ " ${EXTENSION} " ]] + then + .github/verify_header.sh $FILE + fi + fi + done