about summary refs log tree commit diff stats
path: root/scripts/cprh.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/cprh.sh')
-rwxr-xr-xscripts/cprh.sh67
1 files changed, 67 insertions, 0 deletions
diff --git a/scripts/cprh.sh b/scripts/cprh.sh
new file mode 100755
index 0000000..96c85f9
--- /dev/null
+++ b/scripts/cprh.sh
@@ -0,0 +1,67 @@
+#! /usr/bin/env sh
+
+# yt - A fully featured command line YouTube client
+#
+# Copyright (C) 2024 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of Yt.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
+die() {
+    echo "$@" 1>&2
+    exit 1
+}
+
+help() {
+    cat <<EOF
+A copyright header managment tool.
+
+USAGE:
+    cprh.sh [OPTIONS] contribute NAME EMAIL FILE..
+
+OPTIONS:
+    --help      | -h
+                            Display this help and exit.
+
+ARGUMENTS:
+    NAME := [[git config user.name]]
+                            Your name.
+
+    NAME := [[git config user.email]]
+                            Your email address.
+
+    FILE := [[git diff --name-only --cached]]
+                            The file you want to change. This can be given multiple times.
+EOF
+}
+
+for arg in "$@"; do
+    case "$arg" in
+    "--help" | "-h")
+        help
+        exit 0
+        ;;
+    *)
+        echo "'$1' is not a recognized option. See --help for more!" 1>&2
+        exit 1
+        ;;
+    esac
+done
+
+user_name="$1"
+[ -z "$user_name" ] && die "No NAME set! See --help for more"
+
+user_email="$2"
+[ -z "$user_email" ] && die "No EMAIL set! See --help for more"
+shift 2
+
+styleOne=""
+styleTwo=""
+[ "$COMMENT_STYLE" ] && styleOne="--style" && styleTwo="$COMMENT_STYLE"
+
+# The styleTwo must be unquoted to avoid adding empty args to reuse
+# shellcheck disable=2086
+reuse annotate --copyright "$user_name <$user_email>" --copyright-prefix string-c --template default --multi-line $styleOne $styleTwo