diff options
Diffstat (limited to 'build/rust/init')
-rw-r--r-- | build/rust/init | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/build/rust/init b/build/rust/init index e8f72c8..b645441 100644 --- a/build/rust/init +++ b/build/rust/init @@ -30,6 +30,16 @@ die() { printf "init: ERROR: %s\n" "$1" exit 1 } +quotify() { + python -c " +import sys +if len(sys.argv) > 1: + text =''.join(sys.argv[1:]) +else: + text = sys.stdin.read() +quoted_text = text.replace(\"'\", \"'\\\\''\") +print(f\"'{quoted_text}'\", end='')" "$@" +} # Prompt the user for a specific variable. # ## Args: @@ -57,7 +67,7 @@ prompt() { LE "> " 0 " " "$pr_suggested_answer" "" fi - pr_new_variable="$(printf '%s="%s"' "$pr_variable_upper" "$REPLY")" + pr_new_variable="$(printf '%s=%s' "$pr_variable_upper" "$(quotify "$REPLY")")" eval "$pr_new_variable" printf "%s\n" "$pr_new_variable" >>"$replacement_file" @@ -73,6 +83,8 @@ require mv require sed require chmod +require python + # 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/[_-]/ /g' | sed 's/^\(\w\)/\U\1/g' | sed 's/ \(\w\)/ \U\1/g')" @@ -169,6 +181,11 @@ while read -r var; do done done <"$replacement_file" +if [ "$(rg "%INIT_" --files-with-matches | wc -l)" -ne 0 ]; then + echo "Following init variables were not replaced. This is a bug." + rg "%INIT_" +fi + # HACK: Re-add the executable permissions to files, which the nix template has somehow # removed <2024-04-02> chmod +x scripts/* |