はじめに
普段頭の体操がてらterminalの使用感Upのためにあれこれ弄り回しているので、過去に作成したものをここで晒してみます🐕
特に困ってはいないけど、ググってツールをインストールしたりするほどでもないので、個人的な需要を満たすためにザックリと作成してみました。
コード内容
下記を.bashrc
や.zshrc
などaliasを書いているファイルに貼り付ければ $ github
でブラウザ上にカレントディレクトリのリモートリポジトリが表示されます。
function github() {
git="https://github.com/"
hub=$(git remote -v | head -n 1 | cut -f 2 -d ":" | rev | cut -c 8- | rev)
echo "opening repository ..."
echo $hub
open $git$hub
}
詳細
泥臭い書き方をしていますが、以下の通りです。
$ git remote -v
origin git@github.com:user_name/repository_name.git (fetch)
origin git@github.com:user_name/repository_name.git (push)
上記の$ git remote -v
の出力を使用していきます。
-
git
にGitHubのドメインをである"https://github.com/"
を用意。
hub=$(git remote -v | head -n 1 | cut -f 2 -d ":" | rev | cut -c 8- | rev)
続いてhub
の中身ですが、$ git remote -v
の出力内容からorigin git@github.com:user_name/repository_name.git (fetch)
を取り出し、
githubのドメインの後に連結するために下記の手順で加工しています。
-
head - 1
:出力結果の1行目を指定 -
cut -f 2 -d ":"
:cutコマンドの-f(--fields)オプション
で必要な項目が二番目であることを指定し、さらに-d(--delimiter)
のオプションによって区切り文字が":"
であることを指定。 -
上記headとcutを使用して得た結果をreverseして先頭から8文字削除することで、
(fetch)
と前にあるスペースを削除し再度reverseする。最終的にuser_name/repository_name.git
の形にしてhub
に格納。
最後に$git
と$hub
を連結してリポジトリのurlにし、openコマンドに渡してあげればデフォルトブラウザでgithubのリポジトリが表示されます。
まとめ
こんな感じで動いてくれると思います。
reverseしているとこなどかなり改善できる内容だと思いますがとりあえず使えればいいやで書いたものです🐕