From 9efcfad4f34d1430a860c5b96f69e23190978b47 Mon Sep 17 00:00:00 2001 From: Matthew Tancik Date: Tue, 12 Jul 2022 16:49:04 -0700 Subject: [PATCH] Add extra checks for license (#120) Add extra checks for license --- .github/workflows/code_checks.yml | 3 ++ pyrad/viewer/server/__init__.py | 13 ++++++++ pyrad/viewer/server/transformations.py | 14 +++++++++ scripts/debugging/run_actions.py | 7 ++--- scripts/licensing/license_headers.sh | 43 ++++++++++++++++++++++++-- 5 files changed, 73 insertions(+), 7 deletions(-) diff --git a/.github/workflows/code_checks.yml b/.github/workflows/code_checks.yml index 4571ce8c5..7f589a994 100644 --- a/.github/workflows/code_checks.yml +++ b/.github/workflows/code_checks.yml @@ -24,6 +24,9 @@ jobs: python -m pip install --upgrade pip pip install -r environment/requirements.txt pip install -e . + - name: Run license checks + run: | + ./scripts/licensing/license_headers.sh --check - name: Run Black run: black pyrad/ notebooks/ --check - name: Python Pylint diff --git a/pyrad/viewer/server/__init__.py b/pyrad/viewer/server/__init__.py index e69de29bb..02655775e 100644 --- a/pyrad/viewer/server/__init__.py +++ b/pyrad/viewer/server/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2022 The Plenoptix Team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/pyrad/viewer/server/transformations.py b/pyrad/viewer/server/transformations.py index 134b07d0c..41a06f8d0 100644 --- a/pyrad/viewer/server/transformations.py +++ b/pyrad/viewer/server/transformations.py @@ -1,3 +1,17 @@ +# Copyright 2022 The Plenoptix Team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + """ Some helpful functions for creating geometric transformations. """ diff --git a/scripts/debugging/run_actions.py b/scripts/debugging/run_actions.py index a1e2cdccd..4633c7a36 100644 --- a/scripts/debugging/run_actions.py +++ b/scripts/debugging/run_actions.py @@ -4,7 +4,7 @@ import sys import yaml -LOCAL_TESTS = ["Run Black", "Python Pylint", "Test with pytest"] +LOCAL_TESTS = ["Run license checks", "Run Black", "Python Pylint", "Test with pytest"] def run_command(command): @@ -25,6 +25,7 @@ if __name__ == "__main__": for step in steps: if "name" in step and step["name"] in LOCAL_TESTS: compressed = step["run"].replace("\n", ";").replace("\\", "") + compressed = compressed.replace("--check", "") curr_command = f"{compressed}" print("*" * 100) @@ -38,10 +39,6 @@ if __name__ == "__main__": print_green("Building Documentation") run_command("cd docs/; make html; cd ../") - # Add licensing to all pyrad files - print_green("Add licensing headers") - run_command("./scripts/licensing/license_headers.sh") - print("\n") print_green("=" * 100) print_green("ALL CHECKS PASSED") diff --git a/scripts/licensing/license_headers.sh b/scripts/licensing/license_headers.sh index c95a102b0..6c17581b4 100755 --- a/scripts/licensing/license_headers.sh +++ b/scripts/licensing/license_headers.sh @@ -1,9 +1,48 @@ #!/bin/bash +VALID_ARGS=$(getopt -o c --long check -- "$@") + +eval set -- "$VALID_ARGS" +check=false +while [ : ]; do + case "$1" in + -c | --check) + check=true + shift + ;; + --) shift; + break + ;; + esac +done + +check_failed=false +added_headers=false for i in $(find pyrad/ -name '*.py'); do if ! grep -q Copyright $i then - cat scripts/licensing/copyright.txt $i >$i.new && mv $i.new $i + if [ "$check" = true ]; + then + echo "$i missing copyright header" + check_failed=true + else + cat scripts/licensing/copyright.txt $i >$i.new && mv $i.new $i + echo "Adding license header to $i." + fi + added_headers=true fi -done \ No newline at end of file +done + +if [ "$check_failed" = true ]; + then + echo "Run '.scripts/licensing/license_headers.sh to add missing headers.'" + exit 1 +fi + +if [ "$added_headers" = false ]; + then + echo "No missing license headers found." +fi + +exit 0 \ No newline at end of file