diff options
Diffstat (limited to '')
l---------[-rwxr-xr-x] | templates/c/init | 97 |
1 files changed, 1 insertions, 96 deletions
diff --git a/templates/c/init b/templates/c/init index b9b4f80..2daec78 100755..120000 --- a/templates/c/init +++ b/templates/c/init @@ -1,96 +1 @@ -#!/usr/bin/env sh - -. "$(realpath "$(dirname "$0")")/shell_line_editor.sh" - -replacement_file="$(mktemp)" - -trap cleanup INT -trap "cleanup; remove_self" EXIT -cleanup() { - rm "$replacement_file" -} -remove_self() { - rm "$(realpath "$0")" - rm "$(realpath "$(dirname "$0")")/shell_line_editor.sh" -} - -# 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" - - if [ -n "$pr_ask" ]; then - REPLY="$pr_suggested_answer"; - else - 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" "" - fi - - pr_new_variable="$(printf '%s="%s"' "$pr_variable_upper" "$REPLY")" - - eval "$pr_new_variable" - printf "%s\n" "$pr_new_variable" >> "$replacement_file" -} - -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)" "$(echo "$APPLICATION_NAME" | sed 's/\([a-z]*\)/\u\1/')" -prompt APPLICATION_NAME_CAPITALIZED_MAN_PART "The capitalized name of the application (for documentation also with a man section part)" "$(echo "$APPLICATION_NAME" | sed 's/\([a-z]*\)/\U\1(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)" - -# cog change-log variables -prompt REMOTE "The remote, this project will be pushed to" "codeberg.org" -prompt REPOSITORY "The name of the repository in the remote" "$APPLICATION_NAME" -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" -prompt APPLICATION_HOME_PAGE "The package's home page URL" "https://$REMOTE/$OWNER/$REPOSITORY" - -echo "$DESCRIPTION" > .git/description - -while read -r var; do - var_name="${var%=*}" - var_value="${var#*=\"}" - var_value="${var_value%\"}" - - fd . --hidden --type file --exec sed --in-place "s|%\bINIT_$var_name\b|$var_value|g" - - # Replace the variable in file paths - fd "%INIT_$var_name" . --hidden | while read -r file_path; do - new_file_path="$(echo "$file_path" | sed "s|%INIT_$var_name|$var_value|g")"; - mv "$file_path" "$new_file_path" - done -done < "$replacement_file" - -# HACK: Re-add the executable permissions to files, which the nix template has somehow -# removed <2024-04-02> -chmod +x scripts/* -chmod +x update.sh -[ -f ./build.sh ] && chmod +x build.sh - -# vim: ft=sh +../../common/files/init \ No newline at end of file |