From 915802420f10eb09885c52bb2f8b6d77cf9a0358 Mon Sep 17 00:00:00 2001 From: Ian Kelling Date: Tue, 16 Apr 2024 02:05:37 -0400 Subject: [PATCH] improve apache license functions --- brc2 | 43 ++++++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/brc2 b/brc2 index 3f953c1..551c974 100644 --- a/brc2 +++ b/brc2 @@ -1996,16 +1996,10 @@ capache() - - -apache-apply() { - for file; do - if head -n1 "$file"| grep -E '^#!/bin/bash\b' &>/dev/null; then - { - head -n1 "$file" - # First paragraph is to avoid people being confused about why a - # file is apache licensed. - cat <<'EOF' +apache-header() { + # First paragraph is to avoid people being confused about why a + # file is apache licensed. + cat <<'EOF' # I, Ian Kelling, follow the GNU license recommendations at # https://www.gnu.org/licenses/license-recommendations.en.html. They # recommend that small programs, < 300 lines, be licensed under the @@ -2028,14 +2022,41 @@ apache-apply() { # limitations under the License. EOF + +} + +# apply apache to git tracked bash files + README, except files with A?GPL3 header. +apache-apply-repo() { + for f in $(git ls-files); do + [[ -L $f || ! -f $f ]] && continue + if [[ $f != README ]]; then + if ! grep -n '^#!/bin/bash' $f | grep ^1: &>/dev/null; then continue; fi + if head -n 10 $f | grep 'it under the terms of the GNU General Public License as published by' &>/dev/null; then continue; fi + fi + apache-apply $f + done +} + +apache-apply() { + for file; do + if head -n1 "$file"| grep -E '^#!/bin/bash\b' &>/dev/null; then + { + head -n1 "$file" + apache-header tail -n+2 "$file" } | sponge "$file" + else + { + apache-header + cat "$file" + } | sponge "$file" fi done } +# strip out the apache license from a file. apache-strip() { for f in $(find . -type f -maxdepth 1); do if head -n1 "$f"| grep -E '^#!/bin/bash\b' &>/dev/null; then { head -n 20 $f | tac | sed '/^# limitations under the License.$/,/^# Copyright.*Ian Kelling$/d' | tac; tail -n+21 $f; } |sponge $f; fi ; done - } +} chrome() { if type -p chromium &>/dev/null; then -- 2.30.2