diff options
Diffstat (limited to 'src/git-permalink.in')
-rwxr-xr-x | src/git-permalink.in | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/src/git-permalink.in b/src/git-permalink.in index 94697a3..a8e6477 100755 --- a/src/git-permalink.in +++ b/src/git-permalink.in @@ -1,10 +1,17 @@ #!/bin/sh set -eu +MSGS='' +add_msg() { + MSGS="$MSGS $1" +} + + MSG_USAGE="$(cat <<-'EOF' Usage: git permalink [-phV] FILE [LINENO] EOF )" +add_msg USAGE MSG_HELP="$(cat <<-'EOF' Options: @@ -15,11 +22,13 @@ MSG_HELP="$(cat <<-'EOF' See "man git-permalink" for more information. EOF )" +add_msg HELP MSG_MISSING_FILE="$(cat <<-'EOF' Missing FILE argument. EOF )" +add_msg MISSING_FILE MSG_UNSUPPORTED_ORIGIN="$(cat <<-'EOF' Unsupported origin: %s. @@ -28,22 +37,49 @@ MSG_UNSUPPORTED_ORIGIN="$(cat <<-'EOF' "man git-permalink" for instructions). EOF )" +add_msg UNSUPPORTED_ORIGIN MSG_OPEN="$(cat <<-'EOF' Opening %s EOF )" +add_msg OPEN # # End translatable strings # -if [ -r '@LIBEXECDIR@/@NAME@/load-locale-messages.sh' ]; then - . '@LIBEXECDIR@/@NAME@/load-locale-messages.sh' + +dump_translatable_strings() { + for msg in $MSGS; do + eval "echo \"\$MSG_$msg\"" > src/locale/"$msg".en.txt + done + + cat <<-'EOF' + #!/bin/sh + # shellcheck disable=2034 + set -eu + + EOF + for msg in $MSGS; do + printf 'MSG_%s="$(cat @LOCALEDIR@/@LANG@/LC_MESSAGES/@NAME@/%s.@LANG@.txt)"\n' \ + "$msg" "$msg" + done +} + +if [ -n "${GIT_PERMALINK_DUMP_TRANSLATABLE_STRINGS:-}" ]; then + dump_translatable_strings + exit +fi + + +if [ -r '@LIBEXECDIR@/@NAME@/load-messages.sh' ]; then + . '@LIBEXECDIR@/@NAME@/load-messages.sh' fi + # # Documentation functions # @@ -61,6 +97,7 @@ version() { } + # # Core functions # @@ -190,6 +227,7 @@ guess_permalink() { } + # # Main # |