diff options
author | EuAndreh <eu@euandre.org> | 2021-06-12 18:47:19 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2021-06-12 18:47:19 -0300 |
commit | dc51a628910eb872430e108084e81ee37f6e7dff (patch) | |
tree | 0576f7f1cac10de5ba8eff1d103643d283424a1a | |
parent | TODOs.md: Add some description to #task-6e6f917f-26ad-09fd-9a09-84b5df0f3ea4 (diff) | |
download | git-permalink-dc51a628910eb872430e108084e81ee37f6e7dff.tar.gz git-permalink-dc51a628910eb872430e108084e81ee37f6e7dff.tar.xz |
TODOs.md: Support URL overrides via "git config git-permalink"
-rwxr-xr-x | src/git-permalink.sh | 53 |
1 files changed, 31 insertions, 22 deletions
diff --git a/src/git-permalink.sh b/src/git-permalink.sh index 11da86b..12f9fc8 100755 --- a/src/git-permalink.sh +++ b/src/git-permalink.sh @@ -4,7 +4,9 @@ set -eu FILE="${1:-}" MYLINENO="${2:-}" COMMIT="$(git rev-parse HEAD)" -ORIGIN="$(git config --get remote.origin.url)" +ORIGIN="$(git config remote.origin.url)" +OVERRIDE_CF="$(git config git-permalink.template-commit-file ||:)" +OVERRIDE_FC="$(git config git-permalink.template-file-commit ||:)" REPOSITORY="$(basename "$PWD")" usage() { @@ -93,27 +95,34 @@ github() { } guess_permalink() { - case "$ORIGIN" in - *euandreh.xyz*) - euandreh - ;; - *git.sr.ht*) - sourcehut - ;; - *git.savannah.gnu.org*) - savannah - ;; - *gitlab.com*) - gitlab - ;; - *github.com*) - github - ;; - *) - echo "Unsupported origin: $ORIGIN" >&2 - exit 1 - ;; - esac + if [ -n "$OVERRIDE_CF" ]; then + printf "$OVERRIDE_CF\n" "$COMMIT" "$FILE" + elif [ -n "$OVERRIDE_FC" ]; then + printf "$OVERRIDE_FC\n" "$FILE" "$COMMIT" + else + case "$ORIGIN" in + *euandreh.xyz*) + euandreh + ;; + *git.sr.ht*) + sourcehut + ;; + *git.savannah.gnu.org*) + savannah + ;; + *gitlab.com*) + gitlab + ;; + *github.com*) + github + ;; + *) + printf "Unsupported origin: %s.\n\n" $ORIGIN >&2 + printf 'Add an template override to use git-permalink (see "man git-permalink.1" for instructions).\n' >&2 + exit 1 + ;; + esac + fi } LINK="$(guess_permalink)" |