スクリーンショットをgithub.comやGHEで管理する

このブログの対象読者

Gyazoがセキュリティポリシー上利用できず、また社内Gyazoなども何らかの理由で利用できないような環境で、GitのWikiや、ソースのREADMEなどに画像を利用するときに、一度issueに画像を貼り付けたりしたりするのがうんざりな人。

このブログの内容で何ができるようになるか

スクリーンショットの画像がgithub.com、GHEの指定したリポジトリに自動でアップロードされ、クリップボードに所謂マークダウンの画像表示記法 ![](画像URL) がコピーされるようになります。副次的に過去のスクリーンショットが自動でGit管理されるようになるので、過去に撮ったデータを探すのが便利になったりします。

手順

nrmをダウンロードする

github.comのreleaseから最新のバイナリをダウンロードして、 /usr/local/bin/ あたりにおいてください。

$ wget https://github.com/pyama86/nrm/releases/download/v0.1.0-d21aa37/darwin_amd64.zip
$ unzip darwin_amd64.zip
$ mv nrm /usr/local/bin

Automatorでシェルスクリプトとしてサービス登録する

Automatorを利用すると、シェルスクリプトをサービスとして登録したり、色々なワークフローを定義することが出来ます。

automator

まずサービスとしてnrmを登録します。

service

シェルスクリプトを実行を検索して選択

shell

サービスは次の項目を受け取ります の項目は 入力なし であとは下記の感じで入力します。
もしGHEを利用する場合は、トークンに加えて GITHUB_API_ENDPOINT も指定してください。また環境変数を .zshenv などで指定している場合は、ここでの指定は不要です。各項目の意味は -o はリポジトリのオーナー、 -r はリポジトリを指定しています。この場合、僕のgithub.comアカウントのcaptureというリポジトリに画像データが送信されます。

zsh
GITHUB_API_ENDPOINT=https://your.ghe.local/api/v3/
GITHUB_AUTH_TOKEN=xxxxxxxxxxxxxxxx
/usr/local/bin/nrm -o <organization> -r <repository>

入力ができたら nrm_shell として登録してください。

nrm_shell

キーボードショートカットを設定する

登録したnrm_shellはショートカットを定義することでどこからでも呼び出すことが出来ます。

[システム環境設定]->[キーボード]->[ショートカット]->[サービス]

下までスクロールすると nrm_shell があるので、ショートカットを割り当ててください。
僕の場合は Command + Alt + n で起動するようにしています。

alt

ここまでの作業が終わると、ショートカットを入力するだけで、いつでもスクリーンショットがgithub.comに送信されるようになります。

まとめ

それなりに限られた環境で力を発揮する nrm コマンドですが、このブログを書くにあたり自分で利用してみたところ、めちゃくちゃ便利だったので、ブロガーの方々も活用いただけるかもしれません。

P.S.
nrmコマンドの由来は、雰囲気で同僚の名字から取りました。