X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=.bin%2Fvcs-url;h=8b05986768b33db107af0abf1bdf8d106d588e74;hb=fb5d2cb632ad05e57c8b257f5a3c85bb75c8ac31;hp=bba45e2839a98bb15c509be20bfbcc9eccffdc70;hpb=a7e8a010f1faccd923e0628bdc8ed042a858e9a4;p=home.git diff --git a/.bin/vcs-url b/.bin/vcs-url index bba45e2..8b05986 100755 --- a/.bin/vcs-url +++ b/.bin/vcs-url @@ -64,6 +64,16 @@ git_url() { local repo url local remote=$(git config remote.origin.url) + + if [[ -z ${remote} ]] ; then + # Maybe the repo doesn't use "origin". Try harder. + local branch=$(git rev-parse --abbrev-ref HEAD) + remote=$(git config "branch.${branch}.remote") + if [[ -n ${remote} ]] ; then + remote=$(git config "remote.${remote}.url") + fi + fi + case ${remote} in *://uclibc.org/*|*://git.uclibc.org/*|\ *://busybox.net/*|*://git.busybox.net/*|\ @@ -97,6 +107,10 @@ git_url() { repo=$(echo "${remote}" | sed -r -e 's,^git://git.(sv|savannah).gnu.org/,,' -e 's:[.]git$::') url="http://git.savannah.gnu.org/cgit/${repo}.git/commit/?h=" ;; + git://git.sv.nongnu.org/*|git://git.savannah.nongnu.org/*) + repo=$(echo "${remote}" | sed -r -e 's,^git://git.(sv|savannah).nongnu.org/,,' -e 's:[.]git$::') + url="http://git.savannah.nongnu.org/cgit/${repo}.git/commit/?h=" + ;; git://git.code.sf.net/p/*|ssh://*@git.code.sf.net/p/*) repo=$(echo "${remote}" | sed -r -e 's,(git://|ssh://([^@]*@)?)git.code.sf.net/p/([^/]*)/.*,\3,') url="https://sourceforge.net/p/${repo}/code/ci/" @@ -114,7 +128,11 @@ git_url() { ;; *://git.qemu.org/*) repo=$(echo "${remote}" | sed -e 's,^[^/]*//[^/]*/,,' -e 's,[.]git$,,') - url="http://git.qemu.org/?p=${repo}.git;a=commit;h=" + url="https://git.qemu.org/?p=${repo}.git;a=commit;h=" + ;; + *://git.kernel.org/*) + repo=$(echo "${remote}" | sed -e 's,^[^/]*//[^/]*/,,' -e 's,[.]git$,,') + url="https://git.kernel.org/${repo}.git/commit/?id=" ;; *) echo "Unknown remote: ${remote}"