Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mattn/gom
Go Manager - bundle for go
https://github.com/mattn/gom
Last synced: about 2 months ago
JSON representation
Go Manager - bundle for go
- Host: GitHub
- URL: https://github.com/mattn/gom
- Owner: mattn
- Archived: true
- Created: 2013-09-11T02:08:59.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2019-07-26T06:31:14.000Z (over 5 years ago)
- Last Synced: 2024-10-25T05:24:36.144Z (about 2 months ago)
- Language: Go
- Homepage:
- Size: 119 KB
- Stars: 1,382
- Watchers: 35
- Forks: 92
- Open Issues: 14
-
Metadata Files:
- Readme: README.mkd
Awesome Lists containing this project
- awesome-go - gom - Go Manager - bundle for go. (Package Management / HTTP Clients)
- zero-alloc-awesome-go - gom - Go Manager - bundle for go. (Package Management / HTTP Clients)
- go-awesome - gom - Management tool for package versions (Open source library / Dependency Management)
- awesome-go - gom - Go Manager - bundle for go. Stars:`1.4K`. (Package Management / HTTP Clients)
- awesome-go-tools - gom - Go Manager - bundle for go. (Go Compile Helpers / Contents)
- awesome-go - gom - Go Manager - bundle for go - ★ 1339 (Package Management)
- awesome-go-zh - gom - 捆去. (包管理 / 交流)
README
gom - Go Manager
================[![Build Status](https://travis-ci.org/mattn/gom.png?branch=master)](https://travis-ci.org/mattn/gom)
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`
```bash
$ # to use a regular $GOPATH/src folder you should specify GOM_VENDOR_NAME equal '.'
$ GOM_VENDOR_NAME=. gom
```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 accessgom '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 [email protected]
License
-------MIT: http://mattn.mit-license.org/2013