ローカルでも GitHub でお馴染みの「使用言語割合」を表示する「github-linguist」

GitHub でリポジトリを開くと、画面上部にリポジトリ内で使われているプログラミング言語の割合が表示される。例えばこのブログのアセットを管理しているリポジトリだとこんな感じ。

このような、使用言語別の割合をローカルのディレクトリでも検査できないか調べてみたところ、GitHub がこの機能の CLI ツールを出していた。github-linguist というツールだ。

「Ruby : 67.7%」ということで Ruby 製のツール。インストールも $ gem install github-linguist で行える。

インストールに失敗した場合は

まっさらな MacOS Mojave で $ gem install github-linguist と実行したところ、Permission 関連のエラーが出てしまった。どうやら MacOS にデフォルトで入っている Ruby はシステム領域にインストールされているので、RubyGems のインストールなどでつまづくようだ。

そこで、以下の文献を参考に rbenv をインストールし、Ruby v2.6.3 をグローバルに設定した。$ which ruby で確認すると、コレまでは /usr/bin/ruby を見ていたのが、/Users/【ユーザ名】/.rbenv/shims/ruby と、rbenv でインストールしたところが見えるようになっていたら OK。

この状態で gem install をやり直したら正常にインストールできた。

使い方

インストール後、検査したいディレクトリに移動し、$ github-linguist コマンドを実行するだけ。ただし条件があって、対象のディレクトリは Git 管理されていないといけない。

github-linguist はディレクトリ配下のファイルを見ているのではなく、Git のログを見ているのだ。だから極端な話、実ファイルの有無はどうでもよく、git addgit commit された内容だけ分かれば良いのだ。

というワケで、Git 管理していないディレクトリで検査したい場合は、以下のように Git 管理を始め、全てのファイルをコミットした後でないと、割合を表示してくれない。

$ git init
$ git add .
$ git commit -m 'github-linguist'

# 正しく実行できるようになる
$ github-linguist

以上。