巧用 fish shell 实现快速打开当前仓库的 GitHub 页面的功能

341 阅读1分钟

前言

更新:gh repo view -w 可以实现直接从浏览器打开当前仓库,my bad.

我在写了一个新的小工具并且将代码上传到 GitHub 的时候,突然想要打开这个仓库的主页,然而我找不到 gh 和 git 这俩 cli 支持这个功能的地方,于是我就用自己当前使用的 fish shell 写了一个函数,用于快速打开当前目录下的仓库。

主体内容

系统环境

  • Mac
  • fish

脚本代码

我对 fish 也不够了解,只是为了是实现这个功能而马上去看了其函数的语法和字符串处理的一些知识。

function ghome
 # 通过 git 尝试获取当前仓库的地址
  set -l homepage_url (command git remote --verbose 2> /dev/null | grep fetch | command cut -c 8-)
  # 显然如果不是仓库则执行失败
  if [ $status -gt 0 ]
    echo 'Not a git repo'
    return 1
  end
 # 没获取到地址也失败
  if [ -z $homepage_url ]
    echo 'Not a git repo'
    return 1
  end
 # 不是 GitHub 的仓库也不算
  if [ -z (echo $homepage_url | grep github) ]
    echo 'Not a git repo...'
    return 1
  end
  # 获取当前的分支名
  set -l branch (command git rev-parse --abbrev-ref HEAD)
 # 获取地址并使用 open 命令打开
  set -l url (string replace -r '.git.*' '' $homepage_url)
  open $url/tree/$branch
end

保存之后,只需要在仓库的终端目录下使用ghome命令,就能打开当前分支的github页面,还行~

最后

这看起来只是一个非常无聊的脚本,但是说实话对我来说挺好用的。尬住。

fish是一个非常好用的shell环境,某种程度上可以很好的代替zsh,你可以在很多地方搜索到它的优缺点~

又十二点过去了,狗命要紧🐶,睡觉,各位晚安。

参考