diff options
author | EuAndreh <eu@euandre.org> | 2021-06-12 17:04:46 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2021-06-12 17:04:46 -0300 |
commit | 9aded035e3a6ab3fbac3129353db587b22132c79 (patch) | |
tree | fd35579babb6c3d263857345d95257b53f899b5b | |
parent | TODOs.md: Version flag is upper case V (diff) | |
download | git-permalink-9aded035e3a6ab3fbac3129353db587b22132c79.tar.gz git-permalink-9aded035e3a6ab3fbac3129353db587b22132c79.tar.xz |
src/git-permalink.sh: Add -p, -V|--version and -h|--help flags
-rwxr-xr-x | src/git-permalink.sh | 48 |
1 files changed, 43 insertions, 5 deletions
diff --git a/src/git-permalink.sh b/src/git-permalink.sh index 5202d29..11da86b 100755 --- a/src/git-permalink.sh +++ b/src/git-permalink.sh @@ -8,18 +8,50 @@ ORIGIN="$(git config --get remote.origin.url)" REPOSITORY="$(basename "$PWD")" usage() { + printf 'Usage: %s [-p] FILE [LINENO]\n' "$0" +} + +help() { cat <<EOF -Usage: - $0 FILE [LINENO] + +Options: + -p only print the link, don't try to open it + -h, --help show this help + -V, --version print the version number EOF } +version() { + echo 'git-permalink-@VERSION@ @DATE@' +} + if [ -z "$FILE" ]; then - echo "Missing \$FILE argument" + printf "Missing \$FILE argument\n\n" >&2 usage >&2 exit 2 fi +PRINTONLY=false +for flag in $@; do + case "$flag" in + -h|--help) + usage + help + exit + ;; + -V|--version) + version + exit + ;; + -p) + PRINTONLY=true + shift + ;; + *) + ;; + esac +done + euandreh() { printf 'https://git.euandreh.xyz/%s/tree/%s?id=%s%s\n' "$REPOSITORY" "$FILE" "$COMMIT" "${MYLINENO:+#n$MYLINENO}" } @@ -78,10 +110,16 @@ guess_permalink() { github ;; *) - echo "Unsupported origin: $ORIGIN" + echo "Unsupported origin: $ORIGIN" >&2 exit 1 ;; esac } -xdg-open "$(guess_permalink)" +LINK="$(guess_permalink)" +if [ "$PRINTONLY" = true ]; then + echo "$LINK" +else + echo "Opening $LINK" >&2 + xdg-open "$LINK" +fi |