Skip to content

adding openclaw removal script (#18) #78

adding openclaw removal script (#18)

adding openclaw removal script (#18) #78

Workflow file for this run

name: License Header Check
on:
pull_request:
push:
branches: [ "main", "master" ]
jobs:
check-license:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check for License Headers
env:
BASE_REF: ${{ github.base_ref }}
EVENT_NAME: ${{ github.event_name }}
run: |
failed=0
error_report_file=$(mktemp)
if [ "$EVENT_NAME" == "pull_request" ]; then
git fetch origin "$BASE_REF"
files=$(git diff --name-only "origin/$BASE_REF" HEAD | grep -E '\.(sh|go|swift|py)|README\.md$' || true)
else
# Find files: .sh, .go, .swift, .py
# Exclude hidden directories/files (like inside .git)
files=$(find . -type f \( -name "*.sh" -o -name "*.go" -o -name "*.swift" -o -name "*.py" -o -name "README.md" \) -not -path '*/.*')
fi
for file in $files; do
if [ ! -f "$file" ]; then
continue
fi
if [ "$file" = "./README.md" ] || [ "$file" = "README.md" ]; then
continue
fi
missing_reqs=0
# Requirement 1: A line with both "Copyright" and "Jamf"
# We grep for Copyright, then pipe to grep for Jamf to ensure they are on the same line.
if ! grep "Copyright" "$file" | grep -q "Jamf"; then
msg="Missing 'Copyright' and 'Jamf' on the same line."
echo "::error file=$file::$msg"
echo "- $file: $msg" >> "$error_report_file"
missing_reqs=1
fi
filename=$(basename "${file}")
if [ "${filename}" = "README.md" ]; then
echo "skipping license check for: ${file}"
else
# Requirement 2: Specific license string
if ! grep -Fq "This work is licensed under the terms of the Jamf Source Available License" "$file"; then
msg="Missing 'This work is licensed under the terms of the Jamf Source Available License'"
echo "::error file=$file::$msg"
echo "- $file: $msg" >> "$error_report_file"
missing_reqs=1
fi
# Requirement 3: License URL
if ! grep -Fq "https://github.com/jamf/scripts/blob/main/LICENCE.md" "$file"; then
msg="Missing 'https://github.com/jamf/scripts/blob/main/LICENCE.md'"
echo "::error file=$file::$msg"
echo "- $file: $msg" >> "$error_report_file"
missing_reqs=1
fi
fi
if [ $missing_reqs -eq 1 ]; then
failed=1
fi
done
if [ $failed -eq 1 ]; then
echo "---------------------------------------------------"
echo "License Check Summary: Failed Files"
echo "---------------------------------------------------"
cat "$error_report_file"
echo "---------------------------------------------------"
rm "$error_report_file"
exit 1
else
echo "All scanned files contain the required license headers."
fi