Go Manager

Go Manager - bundle for go

  • 所有者: mattn/gom
  • 平台:
  • 許可證:
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

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'
gom 'github.com/mattn/go-ole', :goos => 'windows'

# Execute only in the "test" environment.
group :test do
    gom 'github.com/mattn/go-sqlite3'
end

# Execute only for the "custom_group" group.
group :custom_group do
    gom 'github.com/golang/lint/golint'
end

By default gom install install all packages, except those in the listed groups.
You can install packages from groups based on the environment using flags (development, test & production) : gom -test install

Custom groups my be specified using the -groups flag : gom -test -groups=custom_group,special install

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

You can always change the name relative to the current $GOPATH directory using an environment variable: GOM_VENDOR_NAME

$ # to use a regular $GOPATH/src folder you should specify GOM_VENDOR_NAME equal '.'
$ GOM_VENDOR_NAME=. gom <command>

Tutorial

Writing Gomfile and bundle

$ ls
main.go

$ gom gen gomfile

$ cat Gomfile
gom 'github.com/daviddengcn/go-colortext'
gom 'github.com/mattn/go-runewidth'

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

$ 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 tag, branch or commit

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

If you want to bundle a repository that go get can't access

gom 'github.com/username/repository', :command => 'git clone http://example.com/repository.git'

If you want to change local repository directory with command 'git clone', also skipdep and insecure, which is useful in internal network environment.

gom 'github.com/username/repository', :private => 'true', :target => 'repository', :insecure=>'true', :skipdep=>'true' 

Todo

  • Documentation

Author

Yasuhiro Matsumoto mattn.jp@gmail.com

License

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

主要指標

概覽
名稱與所有者mattn/gom
主編程語言Go
編程語言Go (語言數: 2)
平台
許可證
所有者活动
創建於2013-09-11 02:08:59
推送於2019-07-26 06:31:14
最后一次提交2019-07-26 15:31:13
發布數0
用户参与
星數1.4k
關注者數34
派生數91
提交數202
已啟用問題?
問題數34
打開的問題數11
拉請求數43
打開的拉請求數3
關閉的拉請求數9
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?