Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/carolynvs/magex
Helper methods for Magefiles
https://github.com/carolynvs/magex
go golang mage magefile make
Last synced: about 2 months ago
JSON representation
Helper methods for Magefiles
- Host: GitHub
- URL: https://github.com/carolynvs/magex
- Owner: carolynvs
- License: mit
- Created: 2020-11-09T21:36:11.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-01-17T17:36:27.000Z (almost 2 years ago)
- Last Synced: 2024-10-31T23:31:07.840Z (2 months ago)
- Topics: go, golang, mage, magefile, make
- Language: Go
- Homepage:
- Size: 113 KB
- Stars: 32
- Watchers: 2
- Forks: 7
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Magefile Extensions
![test](https://github.com/carolynvs/magex/workflows/test/badge.svg)
This library provides helper methods to use with [mage](https://magefile.org).
Below is a sample of the type of helpers available. Full examples and
documentation is on [godoc](https://godoc.org/github.com/carolynvs/magex).```go
// +build magepackage main
import (
"github.com/carolynvs/magex/pkg"
"github.com/carolynvs/magex/shx"
)// Check if packr2 is in the bin/ directory and is at least v2.
// If not, install [email protected] into bin/
func EnsurePackr2() error {
opts := pkg.EnsurePackageOptions{
Name: "github.com/gobuffalo/packr/v2/packr2",
DefaultVersion: "v2.8.0",
VersionCommand: "version",
Destination: "bin",
}
return pkg.EnsurePackageWith(opts)
}// Install mage if it's not available, and ensure it's in PATH. We don't care which version
func Mage() error {
return pkg.EnsureMage("")
}// Run a docker registry in a container. Do not print stdout and only print
// stderr when the command fails even when -v is set.
//
// Useful for commands that you only care about when it fails, keeping unhelpful
// output out of your logs.
func StartRegistry() error {
return shx.RunE("docker", "run", "-d", "-p", "5000:5000", "--name", "registry", "registry:2")
}// Use go to download a tool, build and install it manually so
// that it has version information embedded in the final binary.
func CustomInstallTool() error {
err := shx.RunE("go", "get", "-u", "github.com/magefile/mage")
if err != nil {
return err
}
src := filepath.Join(GOPATH(), "src/github.com/magefile/mage")
return shx.Command("go", "run", "bootstrap.go").In(src).RunE()
}
```