Gistをファイルシステムとしてマウントできるものを、Goで書いてみました。
まだ以下の機能しか実装してませんが、それだけでも十分Gistを堪能できます。
- Gist一覧の取得
- ファイルの取得
- ファイルの更新
使い方
まず go get
で取得します。
go get github.com/ueokande/gist-fs
次に、Gistにアクセスできるpersonal access tokenを生成します。そしてコマンドラインから、gist-fsに引数を渡して起動します。<username>
はGitHubのユーザ名、<access_token>
は生成したpersonal access tokenを、そして引数の最後にマウント先のディレクトリを指定します。
gist-fs -u <username> -p <access_token> path/to/mount/point
使ったもの
ファイルシステムにマウントするために、FUSEのGoライブラリであるhanwen/go-fuseを使いました。go-fuseの日本語の解説は、@lufiaさんの記事が参考になりました。
また公式ドキュメントとサンプルも大変参考になります
そしてGistのGitHub Developer Guideを見ながらせっせと作ってました。
感想
驚く程に、簡単にファイルシステムを実装できて、楽しかったです。モチベーションとしては、リソースの場所を意識せず手元のエディタで編集したいだとか、他の言語への移植が面倒なシステムでもファイル操作だけでアダプタが書けるといった点でしょうか。