pockestrap

Programmer's memo

Firefoxでgithub-greedy-collectorを使う

Google Chrome には、GitHubのレポジトリのページに訪れた際に自動的にgit cloneしてくれるExtensionがあります。

moznion.hatenadiary.com

便利そうなのですが、宗教上の理由でFirefoxを使っているため、このExtensionを使うことが出来ません。 そのため、Firefoxで動くようにコードを書いてみました。

Solution

Firefox のadd-onを作るのはめんどくさいため、今回はVimperator上にこの機能を実装しました。 Vimperatorを入れていない人は今すぐインストールしましょう。幸せになれます。

以下のコードを~/.vimperatorrcに貼り付けることで動作します。

js <<END
function __vimperator_ggc() {
  if (window.content.window.document.querySelector('.fork-flag')) {
    return;
  }

  const paths = buffer.URL.split('/');

  const host = paths[2];
  const owner = paths[3];
  const repo = paths[4];
  if (typeof owner === 'undefined' || typeof repo === 'undefined') {
    return;
  }

  fetch(
    `http://localhost:8080?host=${host}&owner=${owner}&repo=${repo}`,
    {method: 'POST'}
  );
}
END

autocmd PageLoad github.com/* js __vimperator_ggc()

Usage

上記コードを.vimperatorrcに貼り付けFirefoxを再起動し、ggc-serverコマンドラインから起動しておくことで有効になります。

この状態でGitHubのレポジトリに訪れると、そのレポジトリを自動でローカルにcloneしてきます。

Note

  • forkされたレポジトリはCloneしないようになっています
  • インストール方法や設計はオリジナルのブログも参考になります