aboutsummaryrefslogtreecommitdiff
path: root/hooks/pre-commit-copyright-check
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2020-08-12 13:11:00 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2020-08-12 13:11:00 +0300
commit97d33a602e4c0b5a65ac36543e22f2fddb7ecdbc (patch)
tree601ca4604afc039df616e8955fd0825c58ca6855 /hooks/pre-commit-copyright-check
parent8e192a198d03368d22524c8b949eb1bf9625aa70 (diff)
Move pre-commit hooks to bdep-util project
Diffstat (limited to 'hooks/pre-commit-copyright-check')
-rwxr-xr-xhooks/pre-commit-copyright-check70
1 files changed, 0 insertions, 70 deletions
diff --git a/hooks/pre-commit-copyright-check b/hooks/pre-commit-copyright-check
deleted file mode 100755
index 1bdeffd..0000000
--- a/hooks/pre-commit-copyright-check
+++ /dev/null
@@ -1,70 +0,0 @@
-#! /usr/bin/env bash
-
-# Check copyright notices in the COPYRIGHT and LICENSE files and issue a
-# warning if they don't include the current year.
-#
-# Specifically, look first for COPYRIGHT and then LICENSE in the root
-# directory and all subdirectories in a project.
-#
-# Then in each file look for the first line matching the:
-#
-# ^Copyright (\([cC]\))? ...
-#
-# Regex, where "..." matches various year lists/ranges (e.g., "2010", "2010,
-# 2011", "2010-2011", and their combinations; see the pattern below for
-# details). Specifically, we don't consider Copyright notices that:
-#
-# - don't start at the very beginning of a line (indented, etc)
-# - contain something other than years prior to the last year (names, etc)
-# - wrap over multiple lines (long year list, etc)
-#
-# Note also that the current year is obtained in the UTC timezone.
-#
-trap 'exit 1' ERR
-set -o errtrace # Trap in functions.
-
-function info () { echo "$*" 1>&2; }
-function error () { info "$*"; exit 1; }
-
-# Recursively collect the COPYRIGHT and LICENSE files, skipping the LICENSE
-# files in directories that contain the COPYRIGHT file.
-#
-# @@ Note that for now we assume that there are no spaces in the project file
-# and directory names.
-#
-files=()
-
-fs=($(find . \( -type f -o -type l \) -name COPYRIGHT))
-
-for f in "${fs[@]}"; do
- files+=("$f")
-done
-
-fs=($(find . \( -type f -o -type l \) -name LICENSE))
-
-for f in "${fs[@]}"; do
- d="$(dirname "$f")"
-
- if [ ! -f "$d/COPYRIGHT" ]; then
- files+=("$f")
- fi
-done
-
-# Grep for the Copyright notice in the collected files and issue the warning
-# if it is present and is outdated.
-#
-# @@ We should probably skip the COPYRIGHT/LICENSE files whose parent
-# directories don't (recursively) contain staged files (think of projects
-# with multiple packages, bundled third-party code, etc). Note that we can
-# obtain the staged file list with the `git diff --name-only --cached`
-# command.
-#
-current_year="$(date -u +'%Y')"
-
-for f in "${files[@]}"; do
- year="$(sed -n -re 's%^Copyright( +\([cC]\))?[ 0-9,-]*[ ,-]([0-9]{4}).*$%\2%p' "$f" | head -n 1)"
-
- if [ -n "$year" -a "$year" != "$current_year" ]; then
- info "WARNING: last copyright year in '${f#./}' is $year"
- fi
-done