際際滷

際際滷Share a Scribd company logo
CLI.GO と CLI-INIT で互堀にコマ 
ンドラインツ`ルを_kす
る 
THE COMMAND-LINE TOOL DEVELOPED AT HIGH SPEED CLI.GO 
AND CLI-INIT 
2014/12/12 @taketin
WHAT'S CLI.GO ? 
https://github.com/codegangsta/cli
A SMALL PACKAGE FOR BUILDING COMMAND 
LINE APPS IN GO 
star - over 1900 
GitHub code search hit - over 2800 
CLIツ`ルg廾に駅勣なインタフェ`スを戻工 
コアロジックに鹿嶄できる
WHAT'S CLI-INIT ? 
https://github.com/tcnksm/cli-init
THE EASY WAY TO START BUILDING GOLANG 
COMMAND-LINE APPLICATION 
ref. 
互堀にGo冱ZのCLIツ`ルをつくるcli-initというツ`ル 
をつくった 
cli.go のテンプレ`トを伏撹 
互堀に_k_兵
HANDS ON
#0 ENVIRONMENT 
$ brew install go 
$ vi .bashrc 
export GOPATH=$HOME/go 
export GOROOT=/usr/local/opt/go/libexec 
export PATH=$PATH:$GOPATH/bin:$GOROOT/bin
#1 INSTALLATION 
$ go get -d github.com/tcnksm/cli-init 
$ cd $GOPATH/src/github.com/tcnksm/cli-init 
$ make install
#2 SPECIFICATION 
碧をQめる 
TODOアプリ 
コマンドは todo とする 
弖紗、茅、匯E ができる 
インタ`フェ`スは add, delete, list とする
#3 CLI-INIT 
$ cli-init -s add,delete,list todo
#4 DEVELOPMENT 
commands.go にガリガリ慕く
#5 FLAGS 
コマンドにフラグオプションを弖紗する栽 
ex) todo delete -a 
commands.go にフラグの峰を弖 
var deleteFlags = []cli.Flag{ 
cli.BoolFlag{Name: "all, a", Usage: "all delete"}, 
} 
var commandDelete = cli.Command{ 
Name: "delete", 
Usage: "", 
Description: ` 
`, 
Action: doDelete, 
Flags: deleteFlags, // add 
} 
func doDelete(c *cli.Context) { 
isDeleteAll := c.Bool("all") 
if isDeleteAll { 
// snip.. 
} 
}
#6 BUILD 
$ go install 
$ todo -h
#7 ENJOY 
Golang 僥コストそれほど互くない櫃する 
き叟いしiみ叟い櫃する 
package の碧Mみ 
宴旋ツ`ル恬るのに恷mぽい 
淵薀ぅ屮薀螻g 
クロスコンパイルh廠 
堀業が壼い 
goroutine
TALKER 
https://github.com/taketin/talker 
嶷}oしでt輝たりのくじ哈き 
Dropbox をストレ`ジで聞う 
芙坪茶氏などにご旋喘ください
SEE ALSO 
Go冱ZによるCLIツ`ル_kとUNIX學僥について 
[まとめ] Go Conference 2014 autumn

More Related Content

cli.go と cli-init で互堀にコマンドラインツ`ルを_kする / The command-line tool developed at high speed cli.go and cli-init

  • 1. CLI.GO と CLI-INIT で互堀にコマ ンドラインツ`ルを_kす る THE COMMAND-LINE TOOL DEVELOPED AT HIGH SPEED CLI.GO AND CLI-INIT 2014/12/12 @taketin
  • 2. WHAT'S CLI.GO ? https://github.com/codegangsta/cli
  • 3. A SMALL PACKAGE FOR BUILDING COMMAND LINE APPS IN GO star - over 1900 GitHub code search hit - over 2800 CLIツ`ルg廾に駅勣なインタフェ`スを戻工 コアロジックに鹿嶄できる
  • 4. WHAT'S CLI-INIT ? https://github.com/tcnksm/cli-init
  • 5. THE EASY WAY TO START BUILDING GOLANG COMMAND-LINE APPLICATION ref. 互堀にGo冱ZのCLIツ`ルをつくるcli-initというツ`ル をつくった cli.go のテンプレ`トを伏撹 互堀に_k_兵
  • 7. #0 ENVIRONMENT $ brew install go $ vi .bashrc export GOPATH=$HOME/go export GOROOT=/usr/local/opt/go/libexec export PATH=$PATH:$GOPATH/bin:$GOROOT/bin
  • 8. #1 INSTALLATION $ go get -d github.com/tcnksm/cli-init $ cd $GOPATH/src/github.com/tcnksm/cli-init $ make install
  • 9. #2 SPECIFICATION 碧をQめる TODOアプリ コマンドは todo とする 弖紗、茅、匯E ができる インタ`フェ`スは add, delete, list とする
  • 10. #3 CLI-INIT $ cli-init -s add,delete,list todo
  • 11. #4 DEVELOPMENT commands.go にガリガリ慕く
  • 12. #5 FLAGS コマンドにフラグオプションを弖紗する栽 ex) todo delete -a commands.go にフラグの峰を弖 var deleteFlags = []cli.Flag{ cli.BoolFlag{Name: "all, a", Usage: "all delete"}, } var commandDelete = cli.Command{ Name: "delete", Usage: "", Description: ` `, Action: doDelete, Flags: deleteFlags, // add } func doDelete(c *cli.Context) { isDeleteAll := c.Bool("all") if isDeleteAll { // snip.. } }
  • 13. #6 BUILD $ go install $ todo -h
  • 14. #7 ENJOY Golang 僥コストそれほど互くない櫃する き叟いしiみ叟い櫃する package の碧Mみ 宴旋ツ`ル恬るのに恷mぽい 淵薀ぅ屮薀螻g クロスコンパイルh廠 堀業が壼い goroutine
  • 15. TALKER https://github.com/taketin/talker 嶷}oしでt輝たりのくじ哈き Dropbox をストレ`ジで聞う 芙坪茶氏などにご旋喘ください
  • 16. SEE ALSO Go冱ZによるCLIツ`ル_kとUNIX學僥について [まとめ] Go Conference 2014 autumn