1. ItSANgo
Changes in body
Source | HTML | Preview
@@ -1,145 +1,173 @@
いままで.gitignoreはちまちま手で書いてたけど、<a href="https://github.com/simonwhitaker/gibo">gibo</a>という便利ツールを発見したのでメモ。
giboは、様々な言語、フレームワーク、ツールに対応していて、大抵のメジャーなものについては、簡単に.gitignoreを生成できる。
## インストール
Macの場合は、Homebrewで一発でインストールできる。
```bash
$ brew install gibo
```
これで使えるようになった。
```bash
$ gibo --version
-gibo 1.0.4 by Simon Whitaker <sw@netcetera.org>
+gibo 2.1.0 by Simon Whitaker <sw@netcetera.org>
https://github.com/simonwhitaker/gibo
+
```
## 使い方
### .gitignoreの生成
例えば、Javaのプロジェクトの場合はこんな感じで作成できる。
```bash
-$ gibo java
-### https://raw.github.com/github/gitignore/8c9b77cb5c85f6464c0bb31abdf4cfcfdf6833bb/java.gitignore
+$ gibo dump java
+### https://raw.github.com/github/gitignore/967cd6479319efde70a6fa44fa1bfa02020f2357/Java.gitignore
+# Compiled class file
*.class
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
+*.nar
*.ear
+*.zip
+*.tar.gz
+*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
```
見ての通り、結果は標準出力されるので、通常は.gitignoreにリダイレクトして使うことになるだろう。
```bash
-$ gibo java >> .gitignore
+$ gibo dump java >> .gitignore
```
### giboで自動生成可能なモノ一覧
何がgiboで自動生成できるか知りたい時は、-l オプションを使おう。
少し長いが、本記事執筆時の一覧は下記の通り。メジャーなものがほとんど網羅されていると思う。
```bash
-$ gibo -l
+$ gibo list
=== Languages ===
-Actionscript EPiServer Lua Scala
-Ada Erlang Magento Scheme
-Agda ExpressionEngine Maven SCons
-Android ExtJs Mercury Scrivener
-AppceleratorTitanium Fancy MetaProgrammingSystem Sdcc
-AppEngine Finale Nanoc SeamGen
-ArchLinuxPackages ForceDotCom Nim SketchUp
-Autotools Fortran Node Smalltalk
-C++ FuelPHP Objective-C Stella
-C Gcov OCaml SugarCRM
-CakePHP GitBook Opa Swift
-CFWheels Go OpenCart Symfony
-ChefCookbook Gradle OracleForms SymphonyCMS
-Clojure Grails Packer Terraform
-CMake GWT Perl TeX
-CodeIgniter Haskell Phalcon Textpattern
-CommonLisp Idris PlayFramework TurboGears2
-Composer IGORPro Plone Typo3
-Concrete5 Java Prestashop Umbraco
-Coq Jboss Processing Unity
-CraftCMS Jekyll PureScript UnrealEngine
-CUDA Joomla Python VisualStudio
-D Julia Qooxdoo VVVV
-Dart KiCad Qt Waf
-Delphi Kohana R WordPress
-DM LabVIEW Rails Xojo
-Drupal Laravel RhodesRhomobile Yeoman
-Eagle Leiningen ROS Yii
-Elisp LemonStand Ruby ZendFramework
-Elixir Lilypond Rust Zephir
-Elm Lithium Sass
-
+Actionscript Go Processing
+Ada Godot PureScript
+Agda Gradle Python
+Android Grails Qooxdoo
+AppceleratorTitanium GWT Qt
+AppEngine Haskell R
+ArchLinuxPackages Idris Rails
+Autotools IGORPro RhodesRhomobile
+C Java ROS
+C++ Jboss Ruby
+CakePHP Jekyll Rust
+CFWheels Joomla Sass
+ChefCookbook Julia Scala
+Clojure KiCad Scheme
+CMake Kohana SCons
+CodeIgniter Kotlin Scrivener
+CommonLisp LabVIEW Sdcc
+Composer Laravel SeamGen
+Concrete5 Leiningen SketchUp
+Coq LemonStand Smalltalk
+CraftCMS Lilypond Stella
+CUDA Lithium SugarCRM
+D Lua Swift
+Dart Magento Symfony
+Delphi Maven SymphonyCMS
+DM Mercury Terraform
+Drupal MetaProgrammingSystem TeX
+Eagle Nanoc Textpattern
+Elisp Nim TurboGears2
+Elixir Node Typo3
+Elm Objective-C Umbraco
+EPiServer OCaml Unity
+Erlang Opa UnrealEngine
+ExpressionEngine OpenCart VisualStudio
+ExtJs OracleForms VVVV
+Fancy Packer Waf
+Finale Perl WordPress
+ForceDotCom Perl6 Xojo
+Fortran Phalcon Yeoman
+FuelPHP PlayFramework Yii
+Gcov Plone ZendFramework
+GitBook Prestashop Zephir
=== Global ===
-Anjuta Ensime Mercurial SVN
-Ansible Espresso MicrosoftOffice SynopsysVCS
-Archives FlexBuilder ModelSim Tags
-Bazaar GPG Momentics TextMate
-BricxCC JDeveloper MonoDevelop TortoiseGit
-Calabash JEnv NetBeans Vagrant
-Cloud9 JetBrains Ninja Vim
-CodeKit Kate NotepadPP VirtualEnv
-CVS KDevelop4 Otto VisualStudioCode
-DartEditor Lazarus Redcar WebMethods
-Dreamweaver LibreOffice Redis Windows
-Dropbox Linux SBT Xcode
-Eclipse LyX SlickEdit XilinxISE
-EiffelStudio macOS Stata
-Emacs Matlab SublimeText
-
+Anjuta JDeveloper Patch
+Ansible JEnv Redcar
+Archives JetBrains Redis
+Backup Kate SBT
+Bazaar KDevelop4 SlickEdit
+BricxCC Lazarus Stata
+Calabash LibreOffice SublimeText
+Cloud9 Linux SVN
+CodeKit LyX SynopsysVCS
+CVS macOS Tags
+DartEditor Matlab TextMate
+Dreamweaver Mercurial TortoiseGit
+Dropbox MicrosoftOffice Vagrant
+Eclipse ModelSim Vim
+EiffelStudio Momentics VirtualEnv
+Emacs MonoDevelop VisualStudioCode
+Ensime NetBeans WebMethods
+Espresso Ninja Windows
+FlexBuilder NotepadPP Xcode
+GPG Otto XilinxISE
```
## .gitignoreのテンプレートファイル
### .gitignore-boilerplates
実は、giboをインストールすると、自動的にホームディレクトリ配下に、.gitignore-boilerplatesディレクトリというのが作成される。
ここには、.gitignoreのテンプレートファイルが格納され、gibo実行時にはココが参照されるようになっている。
で、このディレクトリの正体だが、<a href="https://github.com/github/gitignore">GitHubが公開している.gitignoreテンプレート集</a>が元ネタである。
### テンプレートのアップデート
giboでは、テンプレートのアップデートは自動では行われないので、必要な場合は手動で行う必要がある。
ただ、アップデートは簡単でこれだけでよい。
```bash
-$ gibo -u
+$ gibo update
```
## gitignore.ioとの比較
類似ソリューションとして、<a href="https://www.gitignore.io/">gitignore.io</a>というWebサービスがある。
APIも公開されており、エイリアスを定義してあげれば、gibo同様にコマンドラインだけで完結させることもできる。
が、毎回通信が発生するので、ローカルで完結するgiboと比較すると、通信分の時間が余計に必要になる。
## まとめ
とりあえず、gibo入れとけ。