aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-04-02 13:19:32 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-04-02 13:24:36 +0200
commitc800a8a50092df687f338fe8c48fb158ffd15210 (patch)
tree8aa4657595ac1c3528ffe0180f71051448b0befc
parentbuild(update_common_files): Allow to specify which file to move where (diff)
downloadflake-templates-c800a8a50092df687f338fe8c48fb158ffd15210.zip
fix(common): Remove the last occurrences of hard coded values
Diffstat (limited to '')
-rw-r--r--common/.licensure.yml14
-rw-r--r--common/default.nix1
-rw-r--r--common/docs/TODO.1.md54
-rwxr-xr-xcommon/init41
4 files changed, 89 insertions, 21 deletions
diff --git a/common/.licensure.yml b/common/.licensure.yml
index 942a96f..60ef45c 100644
--- a/common/.licensure.yml
+++ b/common/.licensure.yml
@@ -22,10 +22,10 @@ licenses:
email: "%INIT_AUTHOR_EMAIL"
template: |
- TODO 2024 - [year] (C) by [name of author]
+ %INIT_APPLIACATION_NAME_STYLIZED %INIT_YEAR - [year] (C) by [name of author]
SPDX-License-Identifier: CC-BY-SA-4.0
- TODO is licensed under a
+ %INIT_APPLIACATION_NAME_STYLIZED is licensed under a
Creative Commons Attribution-ShareAlike 4.0 International License.
You should have received a copy of the license along with this
@@ -51,9 +51,9 @@ licenses:
# A list of authors who hold copyright over these files
authors:
# Provide either your full name or company name for copyright purposes
- - name: Benedikt Peetz
+ - name: "%INIT_AUTHOR_NAME"
# Optionally provide email for copyright purposes
- email: "benedikt.peetz@b-peetz.de"
+ email: "%INIT_AUTHOR_EMAIL"
# The template that will be rendered to generate the header before
# comment characters are applied. Available variables are:
@@ -63,13 +63,13 @@ licenses:
# Name <email@example.com>. If multiple authors are provided the
# list is concatenated together with commas.
template: |
- Copyright (C) 2023 - [year]:
+ Copyright (C) %INIT_YEAR - [year]:
[name of author]
SPDX-License-Identifier: GPL-3.0-or-later
- This file is part of the TODO.
+ This file is part of %INIT_APPLICATION_NAME_STYLIZED.
- TODO is free software: you can redistribute it and/or modify
+ %INIT_APPLICATION_NAME_STYLIZED is free software: you can redistribute it and/or modify
it under the terms of the Lesser GNU General Public License as
published by the Free Software Foundation, either version 3 of
the License, or (at your option) any later version.
diff --git a/common/default.nix b/common/default.nix
index 473d4f8..1475541 100644
--- a/common/default.nix
+++ b/common/default.nix
@@ -37,3 +37,4 @@ in
// (mkAll "scripts/renew_copyright_header.sh")
// (mkAll "shell_line_editor.sh")
// (mkAll "treefmt.nix")
+ // (mkProgramming "docs/TODO.1.md")
diff --git a/common/docs/TODO.1.md b/common/docs/TODO.1.md
new file mode 100644
index 0000000..15d5072
--- /dev/null
+++ b/common/docs/TODO.1.md
@@ -0,0 +1,54 @@
+% %INIT_APPLICATION_NAME_CAPITALIZED(1) %INIT_APPLICATION_NAME %INIT_APPLICATION_VERSION
+% %INIT_AUTHOR_NAME
+% %INIT_CURRENT_DATE
+
+# NAME
+
+%INIT_APPLICATION_NAME - %INIT_DESCRIPTION
+
+# SYNOPSIS
+
+**%INIT_APPLICATION_NAME** \[*--help*|*--version*\]
+
+# DESCRIPTION
+
+TODO
+
+# OPTIONS
+
+**--help**, **-h**
+: Displays a help message and exit.
+
+**--version**, **-v**
+: Displays the software version and exit.
+
+# EXAMPLES
+
+**%INIT_APPLICATION_NAME**
+: TODO. See the Description section for further details.
+
+# FILES
+
+*name.file*
+: This file is important because it does x.
+
+# BUGS
+
+Report bugs to <https://%INIT_REMOTE/%INIT_OWNER/%INIT_REPOSITORY/issues>.
+
+# COPYRIGHT
+
+Copyright (C) %INIT_YEAR %INIT_AUTOHR_NAME
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <https://www.gnu.org/licenses/>.
diff --git a/common/init b/common/init
index 787b663..1b7c86b 100755
--- a/common/init
+++ b/common/init
@@ -5,33 +5,40 @@
replacement_file="$(mktemp)"
trap cleanup INT
-trap "cleanup; remove" EXIT
+trap "cleanup; remove_self" EXIT
cleanup() {
rm "$replacement_file"
}
-remove() {
+remove_self() {
rm "$(realpath "$0")"
rm "$(realpath "$(dirname "$0")")/shell_line_editor.sh"
- git add .
}
-# Prompt the user for a specific variable. The variable is the first
-# input, the second is an optional description.
-# The third argument can be a suggested answer, already pre populated.
+# Prompt the user for a specific variable.
+# ## Args:
+# [1]: Name of the variable to populate the answer to
+# [2]: An optional description
+# [3]: An optionally suggested answer
+# [4]: If this is set, the user is not even asked.
prompt() {
pr_variable_upper="$(echo "$1" | sed 's/\([a-z]\)/\U\1/')"
pr_description="$2"
pr_suggested_answer="$3"
+ pr_ask="$4"
- printf "\033[94;1mEnter %s\033[0m" "$pr_variable_upper"
- if [ -n "$pr_description" ];then
- printf " (\033[93;1m%s\033[0m):\n" "$pr_description"
+ if [ -n "$pr_ask" ]; then
+ REPLY="$pr_suggested_answer";
else
- printf ":\n"
- fi
+ printf "\033[94;1mEnter %s\033[0m" "$pr_variable_upper"
+ if [ -n "$pr_description" ];then
+ printf " (\033[93;1m%s\033[0m):\n" "$pr_description"
+ else
+ printf ":\n"
+ fi
- # LE "> " 0 " " "$pr_suggested_answer" "yes_please_produce_debug_output"
- LE "> " 0 " " "$pr_suggested_answer" ""
+ # LE "> " 0 " " "$pr_suggested_answer" "yes_please_produce_debug_output"
+ LE "> " 0 " " "$pr_suggested_answer" ""
+ fi
pr_new_variable="$(printf '%s="%s"' "$pr_variable_upper" "$REPLY")"
@@ -43,7 +50,10 @@ git init
# necessary meta data
prompt APPLICATION_NAME "The name of the application" "$(basename "$PWD")"
-prompt APPLICATION_NAME_STYLIZED "The stylized name of the application (for documentation)" "$(basename "$PWD" | sed 's/\([a-z]\)/\u\1/')"
+prompt APPLICATION_NAME_STYLIZED "The stylized name of the application (for documentation)" "$(echo "$APPLICATION_NAME" | sed 's/\([a-z]\)/\u\1/')"
+prompt APPLICATION_NAME_CAPITALIZED "The capitalized name of the application (for documentation)" "$(echo "$APPLICATION_NAME" | sed 's/\([a-z]\)/\U\1/')" "dont_ask"
+prompt APPLICATION_VERSION "The version of this program, without the prefix" "0.1.0"
+
prompt AUTHOR_NAME "The name of the author (or authors)" "$(git config --get user.name)"
prompt AUTHOR_EMAIL "The email of the author (or authors)" "$(git config --get user.email)"
@@ -54,6 +64,8 @@ prompt OWNER "The name of owner of the repository" "$AUTHOR_NAME"
# nice meta data
prompt DESCRIPTION "The description of this project" "[can be empty]"
+prompt CURRENT_DATE "The stylized version of the current date" "$(date +'%b %Y')"
+prompt YEAR "The year the work on this has begun (for copyright reasons)" "$(date +'%Y')"
# LICENSE.spdx data (source: https://github.com/david-a-wheeler/spdx-tutorial)
prompt APPLICATION_ORIGINATOR "The person or organization from whom the package originally came" "$AUTHOR_NAME"
@@ -68,4 +80,5 @@ while read -r var; do
fd . --hidden --type file --exec sed --in-place "s|%\bINIT_$var_name\b|$var_value|"
done < "$replacement_file"
+
# vim: ft=sh