git ignoreコマンドで.gitignoreを取得する


2 min read
git ignoreコマンドで.gitignoreを取得する

割とみんな知ってるのかもしれないですが。

git-xxxという名称で実行可能ファイルをパスの通ったところに配置すると、git xxxというgitのサブコマンドの形で実行することができるようになります。これを利用したのが拙作git-licenseで、git license [option] license_name > LICENSEの形で実行するとLICENSEファイルを簡単に作成することができます。
その他、git configでエイリアスを指定して、サブコマンドとして登録することも可能です。

同様にして、git ignoreで`.gitignoreファイルを簡単に取得できるようにしてみましょう。

おそらく現代では多くの人が.gitignoreの生成やテンプレート化をして、あるいはテンプレート化されたものを利用しているのではないでしょうか。GitHubのWUI上でリポジトリを作成するときにも生成することができますし、そのさい使用される.gitignoreファイルとしてgithub/gitignoreが提供されています。

今回紹介するのはgitignore.ioというサービスです。

gitignore.io

gitignore.ioはその名の通り、.gitignoreファイルを生成するサービスです。
基本的な使い方は非常に簡単で、ブラウザでアクセスして、テキストボックスに必要な言語、OS、エディタやIDEなどを指定していくだけです。指定が終わったらCreateボタンを押すことで、選択した対象用の.gitignoreテンプレートを全て含んだ.gitignoreファイルが作成されます。これを保存すれば良いですね。

しかし、その他の作業をコマンドラインから行なっていると、いちいちブラウザでアクセスして、マウスで操作して・・・というのが非常に面倒に感じます。

大丈夫です!gitignore.ioではもちろんAPIを提供しています(というか、WUIで生成された.gitignoreのURLがそのままAPIのURL)。
次のように実行してみます。

$ curl https://www.gitignore.io/api/go,emacs,macos

https://www.gitignore.io/api/の後ろに、カンマ区切りで必要なものを列挙して行くだけで、簡単にコマンドラインから.gitignoreファイルを取得できます。

ここまでやったらもう少し簡単にしたいですね?いちいちURLを打つのは面倒ですし、忘れてしまうかもしれません。せっかくなのでgitのサブコマンドとしてgit ignoreとできるようにしてみましょう。次のコマンドを実行してみます。

$ git config --global alias.ignore '!gi() { curl -L -s https://www.gitignore.io/api/$@ ;}; gi'

もしくは、~/.gitconfigファイルの[alias]のセクションに次のように設定しても良いでしょう。

[alias]
ignore = !curl -L -s https://www.gitignore.io/api/$@

$@は引数をそのまま渡すという変数です。このように設定をすることで、git ignoreとしてgitignore.ioのAPIを利用することができるようになります。実際に使用する時は次のように使用します。

$ git ignore go,emacs,macos

言語や環境のリストは全てまとめて一つの引数のため、カンマの後にスペースを入れないことに注意です。指定できる環境の一覧はgit ignore listとすることで表示できます。

標準出力をそのままリダイレクトして、.gitignoreファイルに書き込めばプロジェクトの初期設定として使用できるでしょう。


jessevdk/go-flagsでサブコマンドを実装する
Previous article

jessevdk/go-flagsでサブコマンドを実装する

Go言語を用いてコマンドラインツールを開発する際、皆さんはフラグのパースやサブコマンドの実装にどんなパッケージを使用していますか?標準のflagパッケージのほか、、spf13/cobra、alecthomas/kingpinなどもよく使われているようです。 私は専ら、jessevdk/go-flags(以下go-flags)を使用しています。 go-flagsはその名の通り、基本的にはオプション/フラグの解析用パッケージで、ドキュメントもフラグ解析に関するものがほとんどです。 しかし、go-flagsでは、サブコマンドの実装も可能です。今回はこれに焦点を当ててご紹介していきます。 go-flagsでは、親コマンドにサブコマンドを登録する、という形でサブコマンドを実装していきます。サブコマンドは構造体として実装し、それぞれがオプションを格納する構造体を兼ねる形となります。

LINE DEVELOPER DAY 2018に参加した
Next article

LINE DEVELOPER DAY 2018に参加した

LINE DEVELOPER DAY 2018はLINEの技術に関して紹介するイベントで、2018年11月21日に開催されたので、参加してみました。 八芳園開催地は白金台の八芳園です。初めて来たのですが、厳かな日本庭園なんですね。ちょっと気後れしてしまいます。 DevDayのれん八芳園の入り口にはDEVELOPER DAYのロゴ入り暖簾が下がっていました。 道ばたにたたずむDevDay行灯?灯籠?道案内の方が持つ提灯もDevDay仕様でした会場の建物に向かうには庭園を抜ける必要があり、八芳園を少しですが楽しめるのはなかなか良かったように思います。 受付。茶会のような雰囲気を感じます受付の直後に休憩所的なものが。ここで休憩する人はいるのでしょうか?大きい提灯もありました。雨じゃ無くて良かったですね受付は外にあり、非常に良い雰囲気でした。雨だったとしても建物の中でやれる様なプランはあったのでしょうが、雰囲気が大きく変わっていたと思いますので、雨じゃ無くて良かったですね。


GO TOP

🎉 You've successfully subscribed to something tech.!
OK