Add CI config Signed-off-by: jolheiser <email@example.com> Co-authored-by: jolheiser <firstname.lastname@example.org> Reviewed-on: #1
|3 months ago|
|cmd||3 months ago|
|modules||3 months ago|
|.gitignore||3 months ago|
|.golangci.yml||3 months ago|
|Makefile||3 months ago|
|README.md||3 months ago|
|go.mod||3 months ago|
|go.sum||3 months ago|
|main.go||3 months ago|
Go Package Mapping
I personally use a lot of nice libraries in Go, but every time I start a new project I have to go hunting for import paths again!
Enter GPM, a glorified mapping of simple names to go-get imports.
For example, I use urfave/cli for all of my CLI projects. I’ve used it enough times to remember the import path, but let’s say I didn’t.
Using either a GPM server or local config, I can instead
gpm get cli which finds
cli in my map and runs
go get github.com/urfave/cli/v2.
add- Add a local package
remove- Remove a local package
list- List local packages
config- Change local configuration
export- Export local packages to JSON
import- Import JSON to local packages. Either give a path to a
.jsonfile, or a URL to a GPM server export endpoint
get- Get a list of packages
gpm get beaver survey toml homedir clito get all the modules needed for gpm itself (assuming the map resolves to the same packages)
server- Start a gpm server
If GPM doesn’t find a package locally, it can call out to a configurable gpm server to find a package there instead.
This makes it much simpler to have a central library of packages rather than exporting and importing between environments.
Want to run your own server? It’s very easy! This CLI comes packaged with the server inside, simply run
gpm server to start up a GPM server.
Put it behind your favorite reverse proxy and it’s ready to go!