Skip to content

carolynvs/magex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Magefile Extensions

test

This library provides helper methods to use with mage.

Below is a sample of the type of helpers available. Full examples and documentation is on godoc.

// +build mage

package 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 packr@v2.8.0 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()
}