Skip to content

Latest commit

 

History

History
87 lines (56 loc) · 1.73 KB

README.mkd

File metadata and controls

87 lines (56 loc) · 1.73 KB

gom - Go Manager

Build Status

Why

The go get command is useful. But we want to fix the problem where package versions are different from the latest update. Are you going to do go get -tags=1.1 ..., go get -tag=0.3 for each of them? We want to freeze package version. Ruby's bundle is awesome.

Installation

go get github.com/mattn/gom

Gomfile

gom 'github.com/mattn/go-runewidth', :tag => 'go1'
gom 'github.com/mattn/go-scan', :commit => 'ecb144fb1f2848a24ebfdadf8e64380406d87206'
gom 'github.com/daviddengcn/go-colortext'

Usage

Create vendor directory and bundle packages into it

gom install

Build on current directory with vendor packages

gom build

Run tests on current directory with vendor packages

gom test

Generate .travis.yml that uses gom test

gom gen-travis-yml

Tutorial

Writing Gomfile and bundle

$ ls
main.go

$ cat > Gomfile
gom 'github.com/mattn/go-runewidth', :tag => 'go1'
gom 'github.com/daviddengcn/go-colortext'
^D

$ gom install
installing github.com/mattn/go-runewidth
installing github.com/daviddengcn/go-colortext

$ find vendor/src -maxdepth 2
vendor/src
vendor/src/github.com
vendor/src/github.com/daviddengcn
vendor/src/github.com/mattn

$ gom build

If you want to bundle specified branch or commit

gom 'github.com/mattn/go-runewidth', :branch => 'branch_name'
gom 'github.com/mattn/go-runewidth', :commit => 'commit_name'

Todo

  • Documentation

Author

Yasuhiro Matsumoto [email protected]

License

MIT: http://mattn.mit-license.org/2013